Загрузка свойств номенклатуры в конфигурации «Управление торговлей 10.3» — задача, с которой часто сталкиваются при наполнении каталога товаров или обновлении характеристик. В отличие от артикула или наименования, свойства хранятся в отдельной структуре, что сбивает с толку начинающих пользователей и разработчиков. В этой статье мы подробно разберем, как выполнить эту задачу, используя стандартные средства 1С, и на что обратить внимание при подготовке данных.
Прежде чем приступать к загрузке, разберем архитектуру хранения свойств. В конфигурациях на обычных формах, таких как УТ 10.3, используется механизм дополнительных реквизитов, построенный на базе Плана видов характеристик (ПВХ). Это означает, что свойства не являются колонками в таблице справочника Номенклатура.
Данные распределены следующим образом:
Следовательно, наша задача при загрузке из Excel — не обновить справочник Номенклатура, а создать новые записи в регистре сведений.
Проанализируем структуру файла, который нам понадобится. Для корректной работы обработки 1С нам нужно подготовить таблицу со следующими колонками:
Важный совет: перед массовой загрузкой убедитесь, что в 1С уже создано само Свойство в Плане видов характеристик. Если свойство имеет тип «Значение свойств объектов», то все текстовые значения из Excel также должны быть предварительно созданы в соответствующем справочнике, иначе система не сможет их сопоставить.
Для решения задачи воспользуемся типовой обработкой от фирмы 1С. Если она не встроена в вашу конфигурацию, ее можно найти на диске ИТС или в составе дополнительных инструментов разработчика.
Рассмотрим пошагово процесс настройки:
ЗначенияСвойствОбъектов.Объект: устанавливаем поиск по полю «Артикул» или «Код» справочника Номенклатура.Свойство: устанавливаем поиск по наименованию в Плане видов характеристик СвойстваОбъектов.Значение: устанавливаем связь со справочником ЗначенияСвойствОбъектов.Если стандартная обработка не подходит из-за сложной логики (например, если нужно создавать значения «на лету»), рассмотрим пример кода для записи свойства программно. Выясним, как взаимодействовать с менеджером записи регистра сведений:
// Пример создания/обновления записи свойства номенклатуры
МенеджерЗаписи = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
// Указываем измерения (ключевые поля)
МенеджерЗаписи.Объект = СсылкаНаНоменклатуру;
МенеджерЗаписи.Свойство = СсылкаНаСвойствоПВХ;
// Сначала пробуем прочитать существующую запись
МенеджерЗаписи.Прочитать();
// Устанавливаем значение (ресурс)
МенеджерЗаписи.Значение = СсылкаНаЗначениеСвойства;
// Записываем данные в базу
Попытка
МенеджерЗаписи.Записать(Истина); // Параметр Истина означает замещение
Исключение
Сообщить("Ошибка при записи свойства: " + ОписаниеОшибки());
КонецПопытки;
В данном примере СсылкаНаНоменклатуру — это объект типа СправочникСсылка.Номенклатура, который мы предварительно нашли в базе по артикулу из Excel. СсылкаНаСвойствоПВХ — это элемент Плана видов характеристик.
Проанализируем ситуации, которые могут возникнуть в процессе импорта:
СокрЛП() при программной обработке.Таким образом, мы разобрали основной механизм работы со свойствами в УТ 10.3. Использование регистра сведений ЗначенияСвойствОбъектов является ключом к успешной загрузке. Мы рекомендуем всегда делать резервную копию базы данных перед выполнением массовых операций импорта, чтобы иметь возможность откатиться к исходному состоянию в случае некорректной настройки полей поиска.