Имя: Пароль:
1C
1С v8
Программное заполнение Документа УстановкаЦенноменклатуры УТ 11
,
0 Zabeldos
 
26.12.14
16:08
Столкнулся с проблемой заполнения нескольких видов цен в табличной части товаров. В ТЗ ВидыЦен добавляю 3 вида цены, НО(!) в товарной части есть реквизит видЦены, в который 3 вида не записать.

Знаю, что у формыДокумента есть ТЧ "ДеревоЦен", из которой и берутся несколько видов цен, но я не могу получить к ней доступ, т.к. "интерактивные операции недоступны &наСервере"

УстановкаЦен = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
        
        УстановкаЦен.ВидыЦен.Очистить();
        Цена = УстановкаЦен.ВидыЦен.Добавить();
        Цена.ВидЦены = Справочники.ВидыЦен.НайтиПоНаименованию("Розничная");
        Цена = УстановкаЦен.ВидыЦен.Добавить();
        Цена.ВидЦены = Справочники.ВидыЦен.НайтиПоНаименованию("Закупочная");
        Цена = УстановкаЦен.ВидыЦен.Добавить();
        Цена.ВидЦены = Справочники.ВидыЦен.НайтиПоНаименованию("Цена поступления");
            
        //УстановкаЦен.ДокументОснование = Поступление;        
        //УстановкаЦен.Заполнить(УстановкаЦен.ДокументОснование);
    
        //Для каждого С Из Поступление.Товары Цикл
        //                    
        //    Ст = УстановкаЦен.Товары.Добавить();
        //    Ст.Номенклатура = С.Номенклатура;
        //    Ст.Характеристика = С.Характеристика;
        //    Ст.Упаковка = С.Упаковка;
    
                Ст.ВидЦены = с.ВидЦены;
            Ст.Цена = С.Цена;
                    
;
        
        УстановкаЦен.Статус = Перечисления.СтатусыУстановокЦенНоменклатуры.Согласован;
        УстановкаЦен.Согласован = Истина;
        УстановкаЦен.Ответственный = Пользователи.ТекущийПользователь();
        УстановкаЦен.Дата = Поступление.Дата;
1 Otkr
 
26.12.14
16:15
Три строки на каждую номенклатуру - по количеству видов цен
2 Zabeldos
 
26.12.14
16:20
Делал так:

Для Каждого Вид ИЗ ВидыЦен Цикл
ст.ВидЦены = Вид;
ст.Цена = с.Цена;
КонецЦикла;

//где ст = строки тч товары документа Установки цен
//с = строки документа поступления товаров.

При этом устанавливается только цена, которая идет последняя в цикле.
3 Otkr
 
26.12.14
16:27
(2) Да при заполнении:

//Для каждого С Из Поступление.Товары Цикл

                            

            Ст = УстановкаЦен.Товары.Добавить();

            Ст.Номенклатура = С.Номенклатура;

            Ст.Характеристика = С.Характеристика;

            Ст.Упаковка = С.Упаковка;

    
             Ст.ВидЦены = Справочники.ВидыЦен.НайтиПоНаименованию("Розничная");
            Ст.Цена = С.ЦенаРозничная;
            Ст = УстановкаЦен.Товары.Добавить();

            Ст.Номенклатура = С.Номенклатура;

            Ст.Характеристика = С.Характеристика;

            Ст.Упаковка = С.Упаковка;

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

и т.д
4 Zabeldos
 
26.12.14
16:31
Пробую
5 Zabeldos
 
26.12.14
16:37
Получилось, огромное спасибо!
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший