Как массово заполнить реквизиты номенклатуры в 1С:УТ 11 из файла Excel?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

Часто в процессе работы с конфигурацией 1С:Управление торговлей 11 возникает задача по массовому дозаполнению справочника Номенклатура данными, которые приходят из сторонних файлов Excel. Например, у вас есть список Артикул и Производитель, и вам нужно обновить карточки товаров в базе. Рассмотрим, как подойти к этой задаче профессионально и эффективно.

Подход первый: использование запросов и временных таблиц

Самый надежный и быстрый способ для разработчика — это загрузка данных файла во временную таблицу и последующее сопоставление с данными справочника с помощью запроса. Этот метод позволяет обрабатывать тысячи записей за считанные секунды.

Рассмотрим пошагово, как это реализовать:

  1. Считайте данные из файла Excel в ТабличныйДокумент или массив структур.
  2. Создайте МенеджерВременныхТаблиц и поместите туда считанные данные.
  3. Используйте запрос для объединения данных файла со справочником Номенклатура по полю Артикул.

Пример структуры запроса для сопоставления данных:


ВЫБРАТЬ
    ВременнаяДанныеПоиска.Артикул КАК Артикул,
    ВременнаяДанныеПоиска.Производитель КАК Производитель
ПОМЕСТИТЬ ВременнаяДанныеПоиска
ИЗ
    &ТаблицаДанных КАК ВременнаяДанныеПоиска
;

ВЫБРАТЬ
    СпрНоменклатура.Ссылка КАК СсылкаНаТовар,
    ВременнаяДанныеПоиска.Производитель КАК НовыйПроизводитель
ИЗ
    ВременнаяДанныеПоиска КАК ВременнаяДанныеПоиска
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпрНоменклатура
    ПО ВременнаяДанныеПоиска.Артикул = СпрНоменклатура.Артикул

После того как запрос вернул выборку, вам останется только пройтись в цикле по результату, найти объект через СсылкаНаТовар.ПолучитьОбъект(), установить значение реквизита Производитель и сохранить изменения методом Записать().

Подход второй: применение инструментов разработчика (PowerTools)

Если вы часто сталкиваетесь с подобными задачами, написание «велосипеда» каждый раз — не самый эффективный путь. Использование готовых инструментов, таких как PowerTools или специализированные обработки для загрузки прайс-листов, позволяет автоматизировать процесс сопоставления данных.

Работая с внешними инструментами, вы также можете использовать функционал временных таблиц. Суть остается прежней: инструмент берет на себя рутину по парсингу Excel, а вы концентрируетесь на логике обновления данных в базе 1С.

Почему не стоит полагаться только на стандартные средства?

Хотя в 1С:УТ 11 есть штатные механизмы загрузки из табличного документа, они часто оказываются недостаточно гибкими для массовых операций с уже заполненным справочником. При работе с обновлением существующих записей важно:

Рекомендации по реализации

Для создания собственной универсальной обработки, которая поможет вам не только с производителем, но и с другими реквизитами (ценовыми группами, номенклатурными группами и т.д.), рекомендуем придерживаться следующей архитектуры:

  1. Создайте форму обработки с полем для выбора файла.
  2. Реализуйте функцию чтения файла, которая преобразует данные в ТаблицуЗначений.
  3. Добавьте настройки соответствия: пользователь выбирает, какая колонка файла соответствует какому реквизиту 1С.
  4. Выполняйте обновление данных в транзакции, чтобы обеспечить целостность базы данных.

Используя этот подход, вы один раз создадите инструмент, который будет служить вам годами, позволяя загружать любые данные в любые справочники системы 1С:Управление торговлей 11 без необходимости постоянно дописывать код под каждую новую задачу.

← На главную