Имя: Пароль:
1C
 
обработка для Установки цен УТ11
0 prog-Igor
 
20.02.15
18:39
не записывает цены в документ, через отладчик показывает что в Док.Товары есть номенклатура и цена но когда открываю документ есть только номенклатура....
Вот часть когда, подскажите как правильно записать цены?!
Запрос = Новый Запрос;
        Запрос.Текст = "ВЫБРАТЬ
                       |    ЦеныНоменклатурыСрезПоследних.Номенклатура,
                       |    ЦеныНоменклатурыСрезПоследних.Цена
                       |ИЗ
                       |    РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ) КАК ЦеныНоменклатурыСрезПоследних
                       |ГДЕ
                       |    ЦеныНоменклатурыСрезПоследних.ВидЦены = &ВидЦены
                       |    И ЦеныНоменклатурыСрезПоследних.Цена > 0";
          Запрос.УстановитьПараметр("ВидЦены",ВидЦеныНоменклатуры);
          Запрос.УстановитьПараметр("Дата",ДатаТ);
    
    
    
    Док = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
    Док.Дата = ТекущаяДата();
    Док.Согласован = Истина;
    Док.Ответственный = ПараметрыСеанса.ТекущийПользователь;
    Док.Статус = Перечисления.СтатусыУстановокЦенНоменклатуры.Согласован;
    НовыйВид = Док.ВидыЦен.Добавить();
    НовыйВид.ВидЦены = ВидЦеныНоменклатуры;
    
    ТабЦен = Запрос.Выполнить().Выгрузить();
    
    УдалитьСтроки = Новый СписокЗначений;
    Если ВидЦены.ВидИсточника <> Перечисления.eCommerce_ИсточникиЦен.ПрайсЛисты Тогда
    
        Для Каждого СтрокаТовара Из ТабЦен Цикл
            
                    
        ДатаДок=ТекущаяДата();
            АлгоритмРасчетаЦены = ВидЦеныНоменклатуры.АлгоритмРасчетаЦены;        
            Для каждого Выборка Из ВидЦены.ВидЦены.ВлияющиеВидыЦен Цикл
                
                ТекущийВидЦены = Выборка.ВлияющийВидЦен;   //Закупочная
                ЦенаН=ПолучитьЦенуНаДату(ТекущийВидЦены,СтрокаТовара.Номенклатура,ДатаДок);
                ЦенаВ_ВалютеЗависимой = СтрЗаменить(СТрока(ЦенаН),Символы.НПП,"");
                //ПолучитьЦенуНаДату(ТекущийВидЦены,СтрокаТовара.Номенклатура,ДатаДок);  
                СтрокаПересчетаВалюты   = СтрокаПересчетаВалюты(ТекущийВидЦены.ВалютаЦены, ВидЦены.Валюта);
                СтрокаЗамены = "" + ЦенаВ_ВалютеЗависимой + " " + СтрокаПересчетаВалюты;
        АлгоритмРасчетаЦены = СтрЗаменить(АлгоритмРасчетаЦены, "[" + ТекущийВидЦены.Идентификатор + "]", СтрокаЗамены);
                
            КонецЦикла;
            Попытка
                
    СтрокаТовара.Цена = ОкруглитьЦену(Вычислить(АлгоритмРасчетаЦены), ВидЦены.ВидЦены);
                
             Исключение
                Продолжить;
            КонецПопытки;
            
            Если Удалить Тогда
                УдалитьСтроки.Добавить(СтрокаТовара);
            КонецЕсли;
            
        ////////////////    
        КонецЦикла;
        
    Док.Товары.Загрузить(ТабЦен);    
    КонецЕсли;
Если Док.Товары.Количество() > 0 Тогда
        Попытка
            Док.Записать(РежимЗаписиДокумента.Проведение);
        Исключение
            Док.Записать(РежимЗаписиДокумента.Запись);
            
        КонецПопытки;
    КонецЕсли;
1 prog-Igor
 
20.02.15
18:42
Я так понимаю что самом документе Установка цен еще есть дерево цен(ДеревоЗначений) в котором есть ценоваяГруппа вот наверно сюда и нужно записать эти цены....или я ошибаюсь?
2 prog-Igor
 
20.02.15
18:54
Кто то может подсказать?
3 prog-Igor
 
20.02.15
19:14
У кого какие есть идеи???
4 prog-Igor
 
20.02.15
19:16
Почему в ТЧ.Товары в отладчике видно цены а уже в самом документе их нет? не могу понять куда записываются цены
5 prog-Igor
 
20.02.15
19:26
Я надеюсь на форуме есть умные программисты которые смогут помочь.
6 prog-Igor
 
20.02.15
19:31
Походу я сам с собой поговорил......
7 Лохматые Уши
 
20.02.15
19:43
Если ВидЦены.ВидИсточника <> Перечисления.eCommerce_ИсточникиЦен.ПрайсЛисты Тогда

Скорее всего не срабатывает данное условие.
8 prog-Igor
 
20.02.15
19:50
(7) Спасибо но если бы не срабатывало то в отладчике увидел бы.
обнаружил что в место -  Док.Товары.Загрузить(ТабЦен);
добавил:
НоваяСтрока=Док.Товары.Добавить();
                НоваяСтрока.Номенклатура=СтрокаТовара.Номенклатура;
                НоваяСтрока.ВидЦены =ВидЦеныНоменклатуры;
                НоваяСтрока.Упаковка="";
                НоваяСтрока.Характеристика="";
                НоваяСтрока.Цена =СтрокаТовараЦена;
                НоваяСтрока.ЦенаИзмененаВручную=Ложь;
Вот так заработало!
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.