Имя: Пароль:
1C
1С v8
Не удается создать документ Реализации Товаров и Услуг ☑
0 okosv
 
07.03.12
✎
19:28
Приветствую всех.
Платформа: 8.2
Конфигурация: УТ 11.0

Полдня мучаюсь, с автоматическим созданием документа Реализация Товаров и услуг (РТУ).
Данные для документа берутся из xml-данных, исходные данные нормально обрабатываются, а вот создание РТУ не работает, точнее он создается, но не устанавливается значение колонок "Количество" в таблице товаров.
Привожу кусок кода, где собственно и записывается документ.

СоглашениеСКлиентом = Справочники.СоглашенияСКлиентами.ПустаяСсылка();

Запрос = Новый Запрос("ВЫБРАТЬ ПЕРВЫЕ 1
                     |    СоглашенияСКлиентами.Ссылка,
                     |    СоглашенияСКлиентами.Контрагент
                     |ИЗ
                     |    Справочник.СоглашенияСКлиентами КАК СоглашенияСКлиентами
                     |ГДЕ
                     |    СоглашенияСКлиентами.Наименование = ""Типовое соглашение""");
Выборка = Запрос.Выполнить().Выбрать();

Если Выборка.Количество() = 0 Тогда
   Сообщить("Невозможно найти соглашение контрагента: " + Контрагент.Наименование);
Иначе
   Выборка.Следующий();
   СоглашениеСКлиентом = Выборка.Ссылка;
   
   Запрос = Новый Запрос("ВЫБРАТЬ
                         |    Номенклатура.Ссылка,
                         |    Номенклатура.Наименование
                         |ИЗ
                         |    Справочник.Номенклатура КАК Номенклатура
                         |ГДЕ
                         |    Номенклатура.Код = &Код");
   Запрос.УстановитьПараметр("Код", Xml_КодНоменклатуры);
   Выборка = Запрос.Выполнить().Выбрать();
   
   Если Выборка.Количество() = 0 Тогда
       Сообщить("Невозможно найти номенклатуру с кодом: " + Xml_КодНоменклатуры);
       ОшибкаОбработки = Истина;
       Прервать;
   Иначе
       Выборка.Следующий();
       Номенклатура = Выборка.Ссылка;
       
       ДатаДок = Дата(Xml_Дата);
       КоличествоТовара = Число(Xml_Сумма);
       
       //search existing RTU document
       Запрос = Новый Запрос("ВЫБРАТЬ
                             |    РеализацияТоваровУслуг.Ссылка
                             |ИЗ
                             |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
                             |ГДЕ
                             |    РеализацияТоваровУслуг.Дата = &Дата
                             |    И РеализацияТоваровУслуг.Контрагент = &Контрагент
                             |    И РеализацияТоваровУслуг.Склад = &Склад
                             |    И РеализацияТоваровУслуг.Организация = &Организация
                             |    И РеализацияТоваровУслуг.Комментарий ПОДОБНО &Комментарий");
                             
       Запрос.УстановитьПараметр("Организация", Организация);
       Запрос.УстановитьПараметр("Склад", Склад);
       Запрос.УстановитьПараметр("Контрагент", Контрагент);
       Запрос.УстановитьПараметр("Дата", ДатаДок);
       Запрос.УстановитьПараметр("Комментарий", "Автообмен");
       Выборка = Запрос.Выполнить().Выбрать();
       
       Если Выборка.Количество() = 0 Тогда
           РТУ = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
           РТУ.Дата = ДатаДок;
           РТУ.СтатусОтгрузки = Перечисления.СтатусыОтгрузки.Отгружено;
           РТУ.Организация = Организация;
           РТУ.Склад = Склад;
           РТУ.Партнер = Партнер;
           РТУ.Контрагент = Контрагент;
           РТУ.Соглашение = СоглашениеСКлиентом;
           РТУ.Валюта = Константы.ВалютаУправленческогоУчета.Получить().Ссылка;
           РТУ.ВалютаВзаиморасчетов = Константы.ВалютаУправленческогоУчета.Получить().Ссылка;
           РТУ.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиенту;
           
           РТУ.Подразделение = Подразделение;
           РТУ.ДатаПлатежа = ДатаДок;
           РТУ.НалогообложениеНДС = Перечисления.ТипыНалогообложенияНДС.ПродажаНеОблагаетсяНДС;
           РТУ.Менеджер = Менеджер;
           
           РТУ.Комментарий = "Автообмен";
           
           Товар = РТУ.Товары.Добавить();
           Товар.Склад = Склад;
           Товар.Номенклатура = Номенклатура;
           Товар.Цена = 1;
           Товар.Количество = КоличествоТовара;
           Товар.Сумма = КоличествоТовара;
           
           РТУ.Записать(РежимЗаписиДокумента.Запись);
       Иначе
           Выборка.Следующий();
           РТУ = Выборка.Ссылка.ПолучитьОбъект();
           
           Товар = РТУ.Товары.Добавить();
           Товар.Склад = Склад;
           Товар.Номенклатура = Номенклатура;
           Товар.СтавкаНДС = 0;
           Товар.Количество = КоличествоТовара;
           Товар.Цена = 1;
           Товар.Сумма = КоличествоТовара;
           
           РТУ.Записать(РежимЗаписиДокумента.Запись);
       КонецЕсли;
   КонецЕсли;
КонецЕсли;

Спасибо за советы, заранее ;-)
1 aleks-id
 
07.03.12
✎
19:33
надо устанавливать КоличествоУпаковок
2 okosv
 
07.03.12
✎
19:45
(1) СУПЕРРР!!!
Большое спасибо, я уже не знал в каком направлении копать
Получилось