Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
17 фев 2026, 14:36

Программное заполнение установки цен в УНФ

Автор Serg-007, 27 янв 2025, 19:37

sali и 2 гостей просматривают эту тему.

Serg-007

Всем привет!
В УНФ 3.0 программно создаю документ Установка цен.

Док_УЦ = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
Док_УЦ.Дата = ТекущаяДата();
Док_УЦ.ДокументОснование = Объект.Ссылка; // здесь приходная накладная
Док_УЦ.ЗаписыватьНовыеЦеныПоверхУстановленных = Истина;
Док_УЦ.ПоказыватьДействующуюЦену = Истина;
Док_УЦ.ВидыЦенЗаполнятьИзОснования();
Док_УЦ.ОтображатьНаценку = Истина;
Док_УЦ.ПоказыватьНовуюЦену = Истина;

Валюта = Константы.ВалютаУчета.Получить(); // рубль

ВидЦены_Розничная = Справочники.ВидыЦен.НайтиПоНаименованию("Розничная цена");

ТЧ_Запас_Приход = Объект.Запасы; // таб часть прих накладной
ТЧ_Запасы_УЦ = Док_УЦ.Запасы; // таб часть установки цен


Для каждого СтрокаТЧ_Запас_Приход Из ТЧ_Запас_Приход Цикл

СтрокаТЧ_Запас_Док_УЦ = ТЧ_Запасы_УЦ.Добавить(); //новая строка в тч

СтрокаТЧ_Запас_Док_УЦ.Номенклатура = СтрокаТЧ_Запас_Приход.Номенклатура;
СтрокаТЧ_Запас_Док_УЦ.ЕдиницаИзмерения = СтрокаТЧ_Запас_Приход.Номенклатура.ЕдиницаИзмерения;
СтрокаТЧ_Запас_Док_УЦ.Валюта = Валюта;
СтрокаТЧ_Запас_Док_УЦ.ВалютаСтарая = Валюта;
СтрокаТЧ_Запас_Док_УЦ.ВидЦены = ВидЦены_Розничная;
СтрокаТЧ_Запас_Док_УЦ.Цена = СтрокаТЧ_Запас_Приход.ЦенаРозничнаяНовая; // цена новая
СтрокаТЧ_Запас_Док_УЦ.ЦенаСтарая = СтрокаТЧ_Запас_Приход.ЦенаРозничнаяДействующая;

КонецЦикла;

Док_УЦ.Автор = Пользователи.ТекущийПользователь();
Док_УЦ.Записать(РежимЗаписиДокумента.Запись);
Скрыть



Документ "Установка цен" создается, всё заполняется кроме параметра "Цена", т.е. открываю документ, а цена пустая. Хотя если смотреть по точке останова, то все параметры установлена и цена в том числе.

Подскажите почему параметр Цена не сохраняется в документе???

sponchebob

Сам доого мучался....в итоге реквизит Валюта нужно заполнять не из справочника, а из констант!!!

         НоваяСтрока.Валюта = Справочники.Валюты.НайтиПоКоду("643"); //НЕПРАПВИЛЬНО

         НоваяСтрока.Валюта = Константы.ВалютаУчета.Получить();  //Правильно!




////Пример установки цен для УНФ 3.0


   ВидыЦенВДокументе = новый массив;
   ВидыЦенВДокументе.Добавить(Справочники.ВидыЦен.НайтиПоНаименованию("Закупочная"));
   
   ДокументОснование = Объект.Ссылка;
   ВидыЦен = ВидыЦенВДокументе;
   
   Если ВидыЦен.Количество() = 0 Тогда
      Возврат;
   КонецЕсли;
   
    ДокументУстановкиЦенОбъект = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
    ДокументУстановкиЦенОбъект.ДокументОснование = Объект.Ссылка; 
   ДокументУстановкиЦенОбъект.Дата = Объект.Дата;
   ДокументУстановкиЦенОбъект.ЗаписыватьНовыеЦеныПоверхУстановленных = Истина;
   ДокументУстановкиЦенОбъект.ПоказыватьДействующуюЦену = Истина; 
   ДокументУстановкиЦенОбъект.ОтображатьНаценку = Истина;
   ДокументУстановкиЦенОбъект.ПоказыватьНовуюЦену = Истина;
   
    ДокументУстановкиЦенОбъект.Автор = ПараметрыСеанса.ТекущийПользователь;
   ДокументУстановкиЦенОбъект.Комментарий ="! Создано автоматически на основании " + Объект.Ссылка;

    Для Каждого эл из ВидыЦенВДокументе Цикл
       Для Каждого СтрокаТовары Из Закупка.Запасы Цикл
           НоваяСтрока = ДокументУстановкиЦенОбъект.Запасы.Добавить();
           НоваяСтрока.Номенклатура = СтрокаТовары.Номенклатура;
           НоваяСтрока.Характеристика = СтрокаТовары.Характеристика;
           НоваяСтрока.ВидЦены = эл.Ссылка;
           НоваяСтрока.Цена = СтрокаТовары.Цена; 
      //   НоваяСтрока.Валюта = Справочники.Валюты.НайтиПоКоду("643");
         НоваяСтрока.Валюта = Константы.ВалютаУчета.Получить();
         НоваяСтрока.ЕдиницаИзмерения = СтрокаТовары.ЕдиницаИзмерения;

       КонецЦикла;
     КонецЦикла;
    Попытка
        ДокументУстановкиЦенОбъект.Записать(РежимЗаписиДокумента.Проведение,РежимПроведенияДокумента.Неоперативный);
      Сообщить("Создано автоматически на основании " + Закупка.Ссылка + " " + ДокументУстановкиЦенОбъект.Ссылка);

    Исключение
        ДокументУстановкиЦенОбъект.Записать();
    КонецПопытки;

sali


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск