Имя: Пароль:
1C
 
УТ 11.2. Документ установка цен номенклатуры
0 AlexKulikov
 
10.11.17
18:20
Добрый день, уважаемые форумчане.

Подскажите пожалуйста, со следующей проблемой.

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

НовыйДокументУстановкиЦенНоменклатуры = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
    НовыйДокументУстановкиЦенНоменклатуры.Дата = ТекущаяДата();
    НовыйДокументУстановкиЦенНоменклатуры.Согласован = Истина;
    НовыйДокументУстановкиЦенНоменклатуры.Ответственный = Пользователи.ТекущийПользователь();
    ВидЦеныРозничный = Справочники.ВидыЦен.НайтиПоНаименованию("Розничная, rur");
    ВидЦеныОптовый = Справочники.ВидыЦен.НайтиПоНаименованию("Закупочная, rur");
    ТЧВидЦены = НовыйДокументУстановкиЦенНоменклатуры.ВидыЦен.Добавить();
    ТЧВидЦены.ВидЦены = ВидЦеныРозничный;
    ТЧВидЦеныОтптовый = НовыйДокументУстановкиЦенНоменклатуры.ВидыЦен.Добавить();     
    ТЧВидЦеныОтптовый.ВидЦены = ВидЦеныОптовый;
    
    Для каждого Элемента Из ТаблицаДанных Цикл
        
        Если  ЗначениеЗаполнено(Элемента.ОптоваяЦена) ИЛИ ЗначениеЗаполнено(Элемента.РозничнаяЦена)  Тогда
            НоваяСтрокаТЧТовары = НовыйДокументУстановкиЦенНоменклатуры.Товары.Добавить();
            НоваяСтрокаТЧТовары.Номенклатура = Элемента.НоменклатураСсылка;

            Если ЗначениеЗаполнено(Элемента.РозничнаяЦена) Тогда
                НоваяСтрокаТЧТовары.ВидЦены = ВидЦеныРозничный;
                ОбработаннаяЦена = УбратьЛишниеСимволыИзЦены(Элемента.РозничнаяЦена);
                НоваяСтрокаТЧТовары.Цена = Формат(Число(ОбработаннаяЦена),"ЧДЦ=2");                
            КонецЕсли;
            
            Если ЗначениеЗаполнено(Элемента.ОптоваяЦена) Тогда
                НоваяСтрокаТЧТовары.ВидЦены = ВидЦеныОптовый;
                ОбработаннаяЦена = УбратьЛишниеСимволыИзЦены(Элемента.ОптоваяЦена);
                НоваяСтрокаТЧТовары.Цена = Формат(Число(ОбработаннаяЦена),"ЧДЦ=2");    
            КонецЕсли;    
            
            НовыйДокументУстановкиЦенНоменклатуры.Товары.Свернуть("Номенклатура,Характеристика, ВидЦены, Цена");
        КонецЕсли;    
        
    КонецЦикла;
1 DrShad
 
10.11.17
18:40
ну так ты только одну и добавляешь
2 DrShad
 
10.11.17
18:44
и вообще весь код в топку, для чего в цикле сворачивать табличную часть
3 AlexKulikov
 
10.11.17
18:52
Да уже разобрался, нужно для каждой цены добавлять номенклатуру. И как правильно заметили выше сворачивать после цикла. Извиняюсь, тяжелый день.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн