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

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

Загрузка свойств номенклатуры в конфигурации «Управление торговлей 10.3» — задача, с которой часто сталкиваются при наполнении каталога товаров или обновлении характеристик. В отличие от артикула или наименования, свойства хранятся в отдельной структуре, что сбивает с толку начинающих пользователей и разработчиков. В этой статье мы подробно разберем, как выполнить эту задачу, используя стандартные средства 1С, и на что обратить внимание при подготовке данных.

Понимание структуры хранения данных в УТ 10.3

Прежде чем приступать к загрузке, разберем архитектуру хранения свойств. В конфигурациях на обычных формах, таких как УТ 10.3, используется механизм дополнительных реквизитов, построенный на базе Плана видов характеристик (ПВХ). Это означает, что свойства не являются колонками в таблице справочника Номенклатура.

Данные распределены следующим образом:

  1. План видов характеристик «Свойства объектов» — здесь хранятся названия самих свойств (например, «Цвет», «Размер», «Материал»).
  2. Справочник «Значения свойств объектов» — в нем содержатся конкретные варианты значений для свойств (например, «Красный», «XL», «Хлопок»).
  3. Регистр сведений «Значения свойств объектов» — именно здесь устанавливается связь между конкретным товаром, его свойством и выбранным значением.

Следовательно, наша задача при загрузке из Excel — не обновить справочник Номенклатура, а создать новые записи в регистре сведений.

Подготовка файла Excel для импорта

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

Важный совет: перед массовой загрузкой убедитесь, что в 1С уже создано само Свойство в Плане видов характеристик. Если свойство имеет тип «Значение свойств объектов», то все текстовые значения из Excel также должны быть предварительно созданы в соответствующем справочнике, иначе система не сможет их сопоставить.

Работа с обработкой «Загрузка данных из табличного документа»

Для решения задачи воспользуемся типовой обработкой от фирмы 1С. Если она не встроена в вашу конфигурацию, ее можно найти на диске ИТС или в составе дополнительных инструментов разработчика.

Рассмотрим пошагово процесс настройки:

  1. Запуск и выбор цели: Откроем обработку и в поле «Загружать в:» выберем переключатель «Регистр сведений». В выпадающем списке найдем ЗначенияСвойствОбъектов.
  2. Настройка колонок: На вкладке «Настройка полей» мы увидим структуру регистра. Нам необходимо сопоставить колонки нашего Excel-файла с полями регистра:
    • Поле Объект: устанавливаем поиск по полю «Артикул» или «Код» справочника Номенклатура.
    • Поле Свойство: устанавливаем поиск по наименованию в Плане видов характеристик СвойстваОбъектов.
    • Поле Значение: устанавливаем связь со справочником ЗначенияСвойствОбъектов.
  3. Режим загрузки: Выясним причину возможных ошибок на этапе записи. Чтобы не плодить дубли, в настройках обработки выберем режим «Искать существующие и обновлять». Это гарантирует, что если у товара уже было заполнено свойство «Цвет», оно просто обновится на новое значение из файла.

Программный метод загрузки (для разработчиков)

Если стандартная обработка не подходит из-за сложной логики (например, если нужно создавать значения «на лету»), рассмотрим пример кода для записи свойства программно. Выясним, как взаимодействовать с менеджером записи регистра сведений:


// Пример создания/обновления записи свойства номенклатуры
МенеджерЗаписи = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();

// Указываем измерения (ключевые поля)
МенеджерЗаписи.Объект   = СсылкаНаНоменклатуру;
МенеджерЗаписи.Свойство = СсылкаНаСвойствоПВХ;

// Сначала пробуем прочитать существующую запись
МенеджерЗаписи.Прочитать();

// Устанавливаем значение (ресурс)
МенеджерЗаписи.Значение = СсылкаНаЗначениеСвойства;

// Записываем данные в базу
Попытка
    МенеджерЗаписи.Записать(Истина); // Параметр Истина означает замещение
Исключение
    Сообщить("Ошибка при записи свойства: " + ОписаниеОшибки());
КонецПопытки;

В данном примере СсылкаНаНоменклатуру — это объект типа СправочникСсылка.Номенклатура, который мы предварительно нашли в базе по артикулу из Excel. СсылкаНаСвойствоПВХ — это элемент Плана видов характеристик.

Типичные ошибки и способы их решения

Проанализируем ситуации, которые могут возникнуть в процессе импорта:

Таким образом, мы разобрали основной механизм работы со свойствами в УТ 10.3. Использование регистра сведений ЗначенияСвойствОбъектов является ключом к успешной загрузке. Мы рекомендуем всегда делать резервную копию базы данных перед выполнением массовых операций импорта, чтобы иметь возможность откатиться к исходному состоянию в случае некорректной настройки полей поиска.

← На главную