Имя: Пароль:
1C
1С v8
Не делает движений УстановкаЦенНоменклатуры при программном создании, УФ УТ11
0 mortal
 
22.03.13
13:40
Приветствую всех!
Сразу извиняюсь, туплю откровенно:
Создаю обработкой док УстановкаЦенНоменклатуры. Цены гружу из экселя.
В обработке табчасть, затем процедура:

&НаСервере
Процедура СоздатьЗаказСервер(ТаблицаДокумента)
   
   Запрос = Новый Запрос;
   Запрос.Текст=
   "ВЫБРАТЬ
   |    УстановкаЦенНоменклатуры.Ссылка,
   |    УстановкаЦенНоменклатуры.Дата,
   |    УстановкаЦенНоменклатуры.ВидыЦен.(
   |        ВидЦены
   |    )
   |ИЗ
   |    Документ.УстановкаЦенНоменклатуры КАК УстановкаЦенНоменклатуры
   |ГДЕ
   |    УстановкаЦенНоменклатуры.Дата = &ЭтаДата
   |    И УстановкаЦенНоменклатуры.ВидыЦен.ВидЦены = &ВидЦены
   |    И УстановкаЦенНоменклатуры.Проведен = ИСТИНА";    
   
   Запрос.УстановитьПараметр("ЭтаДата", Объект.ДатаДокумента);
   Запрос.УстановитьПараметр("ВидЦены", Объект.ВидЦены);
   Результат = Запрос.Выполнить();
   Если Результат.Пустой() Тогда        
       НовыйДок = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
       НовыйДок.Дата = Объект.ДатаДокумента;
       НовыйДок.УстановитьНовыйНомер();
   Иначе
       Выборка = Результат.Выбрать();
       Пока Выборка.Следующий() Цикл
           ДокументУЦН = Выборка.Ссылка.ПолучитьОбъект();
           ДокументУЦН.Товары.Очистить();
           ДокументУЦН.ВидыЦен.Очистить();
           НовыйДок = ДокументУЦН;
       КонецЦикла;
   КонецЕсли;
   
   НовыйДок.Ответственный = ПараметрыСеанса.ТекущийПользователь;
   //ВидЦены
   ВидЦеныДок = НовыйДок.ВидыЦен.Добавить();
   ВидЦеныДок.ВидЦены = Объект.ВидЦены;
   //Номенклатура
   Для Каждого Стр Из ТаблицаДокумента Цикл
       ТоварыДок = НовыйДок.Товары.Добавить();
       ТоварыДок.ВидЦены = Объект.ВидЦены;
       ТоварыДок.Номенклатура = ПолучитьНоменклатуру(Стр.Артикул, Стр.Номенклатура);
       ТоварыДок.Цена = Стр.ЦенаБезНДС;
   КонецЦикла;
   НовыйДок.Комментарий = ("Создан загрузкой из Эксель " + Строка(ТекущаяДата()) + ", автор " + ИмяПользователя());
   
   НовыйДок.Записать();
   Попытка
       НовыйДок.Записать(РежимЗаписиДокумента.Проведение);
       Текст = НСтр("ru = 'Создан документ Установка цен номенклатуры %НовыйДок%.'");
       Текст = СтрЗаменить(Текст, "%НовыйДок%", НовыйДок.Ссылка);
       ОбщегоНазначенияКлиентСервер.СообщитьПользователю(Текст);
   Исключение
       Текст = НСтр(ОписаниеОшибки());
       ОбщегоНазначенияКлиентСервер.СообщитьПользователю(Текст);          
       //Сообщить(ОписаниеОшибки());
   КонецПопытки;    
   
КонецПроцедуры

___
документ формируется, проводится, но не делает движений!
если этот же док скопировать и провести копию, все норм.

ЧЯДНТ?
Ткните, плз...
1 mortal
 
22.03.13
13:56
пятница жеж...
в обработке проведения в модуле УЦН действительно пустая таблица передается.
т.е. я явно где то недописал...
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.