Дмитрий Медведков программист, консультант 1С
Работаю в 1С с 2012-го, специализируюсь на УТ 11
Имею 10 квалифиционных сертификатов 1C:Профессионал, 1С:Специалист и 1С:Специалист-консультант
Заполнение любых дополнительных реквизитов в любых справочниках и документах системы из табличного файла (excel, dbf, mxl) а также выгрузка во внешний файл и удаление значений дополнительных реквизитов.
Артикул | 464 |
Обновлено | 21.12.2022 |
Исходный код | Открыт |
Изменение конфигурации | Не требуется |
Покупок | 72 |
Обработка позволяет заполнить ЛЮБЫЕ дополнительные реквизиты в ЛЮБЫХ справочниках системы из табличного файла (Excel, dbf и прочих). Допустим для номенклатуры назначены следующие дополнительные реквизиты, причем с разным типом значения.
И у нас есть файл Excel, из которого будем заполнять реквизиты в карточках (в данном случае доп.реквизиты будем грузить в номенклатуру). Открываем обработку, в правой части вставляем содержимое файла в табличную область. Вставку можно делать с помощью буфера обмена или по кнопке Загрузить из файла (второй способ подходит только для файлов Microsoft Excel и OpenOffice Calc).
В левой части выбираем тип объекта Справочник, имя объекта Номенклатура, указываем граничные строки таблицы данных и номер колонки с полем для поиска нужного элемента справочника. В случае номенклатуры, в этой колонке может быть указан код, наименование или артикул товара. Для остальных справочников поиск осуществляется по коду и наименованию.
В нижней части нужно заполнить таблицу загружаемых реквизитов - выбрать какие именно реквизиты загружать, из каких колонок и нужно ли автоматически создавать ненайденные значения (актуально только для дополнительных реквизитов с типом Дополнительное значение).
Обработка может единоразово загружать значения любого количества дополнительных реквизитов.
После выполнения всех настроек нажимаем Заполнить. В результате в номенклатурной карточке успешно заполнятся дополнительные реквизиты.
В случае, если реквизиты нужно загружать для документов, в качестве полей поиска необходимо указывать номер и дату документа.
Если в процессе выполнения загрузки возникнут какие-то ошибки/коллизии, они будут отражены в итоговом протоколе.
Релиз 464.1.1.2 от 16.06.2020
Если загружаются дополнительные реквизиты номенклатуры, есть возможность автоматически заполнить таблицу настроек по списку реквизитов, относящихся к определенному виду номенклатуры. Удобно пользоваться, если список реквизитов большой, экономит время.
Релиз 464.1.1.3 от 26.07.2020
При загрузке дополнительных реквизитов номенклатуры теперь можно выбрать вариант поиска нужных товаров. Доступны следующие варианты поиска:
Появилась возможность не только загружать, но и выгружать дополнительные реквизиты из базы во внешний табличный файл (Excel, OpenOffice, MXL). Например, для того чтобы проверить/поправить/загрузить доп.реквизиты в другую базу.
Для этого сделана отдельная закладка на форме.
Для выборочной выгрузки сведений можно воспользоваться фильтром на форме (работает по ЛЮБЫМ реквизитам исходного справочника или документа).
К примеру выгрузим доп.реквизиты товаров (исключая услуги):
В результате получаем сформированную талицу, которую можно сохранить во внешний файл. Потом из этой же таблицы можно без проблем сделать перезаполнение реквизитов в базе.
Релиз 464.1.1.4 от 27.01.2021
Теперь можно очищать значения дополнительных реквизитов в справочниках и документах системы. При этом можно использовать удобный фильтр для отбора нужных данных (например по владельцам и/или списку реквизитов). На скрине ниже показано удаление значений двух дополнительных реквизитов в номенклатурной справочнике.
После выполнения операции появится итоговый протокол:
Релиз 464.1.1.5 от 20.08.2021
Добавлена возможность сохранения настроек загрузки дополнительных реквизитов. Рядом с полем Имя объекта расположены две кнопки - одна для сохранения текущей настройки, другая для выбора сохраненной ранее настройки. Для любого справочника или документа можно сохранить неограниченное количество настроек.
Для номенклатурного справочника добавлен вариант поиска по артикулу и производителю. При этом можно указать как конкретного производителя, так и номер колонки таблицы, откуда его нужно взять.
Добавлена возможность заполнения списка значений для дополнительных реквизитов с типом Дополнительное значение.
Необходимо заполнить таблицу данных, указать номера граничных строк для загрузки, номер колонки со значением и выбрать дополнительный реквизит. Если значения для него нужно разбивать на группы, можно дополнительно выбрать группу значений для загружаемых данных.
Релиз 464.1.1.6 от 14.03.2022
Если вы приобрели обработку по учету множественных реквизитов номенклатуры, то с помощью данной разработки вы теперь сможете загрузить эти множественные значения в номенклатурный справочник. Для этого нужно указать используемый разделитель значений.
Дмитрий Медведков программист, консультант 1С
Работаю в 1С с 2012-го, специализируюсь на УТ 11
Имею 10 квалифиционных сертификатов 1C:Профессионал, 1С:Специалист и 1С:Специалист-консультант
Комментарии (12)
Dmitry Sabatovich 25 августа 2020 г.
Добрый. Заполнение идет по Видам номенклатуры или по Номенклатуре, отнесенной к видам?
У нас есть множество видов номенклатуры с разными свойсвами.
Будет работать?
Игорь 15 октября 2020 г.
Здравствуйте. Скажите а будет работать на 1С:Предприятие 8.3 (8.3.17.1549) редакция 11 (11.4.12.102) Базовая?
Дмитрий Медведков, администратор 15 октября 2020 г.
Добрый день. Да, будет
Андрей 21 октября 2020 г.
Планируется ли добавление возможности загрузки свойств и для характеристик номенклатуры?
вообще в целом плюсом интересует следующий функционал
1. Переезд названий свойств НАД колонками, то есть выпадающий список над каждой колонкой, если заполнено = сопоставлено.
2. Автоопределение заполнения свойств по наименованию в первой колонке (если этого нет, а наверное есть)
3. Добавление еще и доп.реквизитов характеристик
4. Выбор колонки для идентификации номенклатуры по свойству характеристики (уникальный идентификатор)
5. Настройка контроля полей. Допустим наименование номенклатуры уникальное с учетом уже существующих элементов справочника. Или не соответствие значения свойства значениям реквизита.
6. Возможность выводить уже существующие элементы справочников (по какому-то отбору или еще как) для их корректировки, например задублировалось значение, мы меняем на нужное и "плохое" удаляем стандартными средствами без заморочек.
Дмитрий Медведков, администратор 22 октября 2020 г.
Обработка позволяет заполнить доп. реквизиты в любом справочнике. В том числе и для характеристик. Перечисленные вами пункты я понял не до конца, но в любом случае обработка этим запросам не удовлетворяет.
Герман 4 марта 2021 г.
Добрый день, Дмитрий ! Скорее как идея, но в "идеи" в личном кабинете не удаётся весь текст отправить..
Используя ваши обработки очень высокого качества, на мой взгляд, для разного рода импорта данных в 1С (в основном смотрел для УТО 11) я заметил, что алгоритмы, которые читают данные из внешних файлов EXCEL (например, конкретный лист этого файла, по умолчанию "1") работают очень медленно/сравнительно от того, как это могло бы быть в принципе/ (в обработке под =ID464= и собственно, видимо в других похожих, где используется импорт из внешних файлов EXCEL). Есть совсем простой штатный способ в 1С читать вообще весь файл со всеми листами в "ТабличныйДокумент" как текст, а затем просто делать выбор уже нужного раздела в загруженном ТабличномДокументе (опять же встроенными штатными средствами) - и здесь с ТабличнымДокументом работать совсем просто (например копируя нужный лист целиком - т.е. раздел в , например, другой ТабличныйДокумент - тем самым получая прочтение нужного листа по итогу в нужном ТабличномДокументе). Самое главное - это работает на порядок быстрее ! Беря ваши обработки за основу я внедрял именно этот усовершенствованный способ, поскольку , приходится работать очень с большими объёмами внешних данных.
//**** примерно так ****
ТабДок.Очистить();
ИмяФайла = ПолучитьИмяВременногоФайла("xlsx");
ДвДанные = ПолучитьИзВременногоХранилища(АдресВХ);
ДвДанные.Записать(ИмяФайла);
ТабДок.Прочитать(ИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Текст);
//***** и при выборе определенной области - т.е. нужного листа ****
ТабДокЛист.Очистить();
ТабДокЛист = ТабДок.ПолучитьОбласть(ВыбралиЛистExcel);
//... Где области можно предварительно перебрать
Для Каждого ОбластьТД ИЗ ТабДок.Области Цикл
ВыбралиЛистExcel=ОбластьТД.Имя;
КонецЦикла;
//.. и назначить для ВыбралиЛистExcel
С уважением,
Герман Д.
05.03.21 12-17
Дмитрий Медведков, администратор 5 марта 2021 г.
Добрый вечер, Герман! Спасибо за дельный совет. Действительно, в более ранних разработках я использовал недостаточно эффективный метод работы с Эксель. В более новых разработках используют тот, который вы описали. Ну и параллельно стараюсь переделывать алгоритм в старых разработках.
Александр 28 марта 2022 г.
Добрый день! Возможно ли удаление с помощью этой обработки задвоенные, затроенные и т.д. допонительные реквзиты?
Дмитрий Медведков, администратор 29 марта 2022 г.
Здравствуйте. Нет, для таких задач обработка не предназначена.
Александр 29 марта 2022 г.
А что Вы могли бы предложить для решения этой задачи?
Дмитрий Медведков, администратор 29 марта 2022 г.
Для этой задачи у меня нет обработки. Сделать тоже не смогу, много работы.
Дмитрий Медведков, администратор 26 августа 2020 г.
Добрый день. Можно заполнять реквизиты как у номенклатуры, так и у видов номенклатуры.