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