Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Заполнение документа Перемещение на основании документа Реализация товаров

Заполнение документа Перемещение на основании документа Реализация товаров
Я
   sergqwert
 
12.07.20 - 21:22
Заполняю документ Перемещение ТМЦ на основании документа Реализация товаров. Конфигурация Комплексный учет для бюджетных учреждений. Документ перемещение создается, но не проводится не проводится, в чем причина?

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


&НаСервере
Процедура СформироватьПеремещенияНаСервере()
    
    Для Каждого СтрокаД Из Объект.СписокРасходных Цикл
        
        НовДокПеремещ = Документы.ПеремещениеТМЦ.СоздатьДокумент();
        НовДокПеремещ.Заполнить(СтрокаД.Накладная);
        НовДокПеремещ.УстановитьНовыйНомер();
        НовДокПеремещ.Дата = СтрокаД.Накладная.Дата - 1;
        НовДокПеремещ.Организация = СтрокаД.Накладная.Организация;
        НовДокПеремещ.МестоХранения = Объект.СкладОткуда;
        НовДокПеремещ.МестоХраненияНазначение = Объект.СкладКуда;
        НовДокПеремещ.Сдал = СтрокаД.Накладная.Сдал;
        НовДокПеремещ.Принял = СтрокаД.Накладная.Принял;
        НовДокПеремещ.Комментарий = "Перемещение ТМЦ с" + НачалоДня(Объект.НачПериода)+ " по "+КонецДня(Объект.КонПериода);
        Если Не ЗначениеЗаполнено(НовДокПеремещ.ВидОперации) Тогда
            НовДокПеремещ.ВидОперации = Перечисления.ОперацииПеремещениеТМЦ.Перемещение;
        КонецЕсли;
        НовДокПеремещ.ПользовательСоздание = Пользователи.ТекущийПользователь();
        Для Каждого СтрокаТМЦ Из СтрокаД.Накладная.ТМЦ Цикл
            НовСтрока = НовДокПеремещ.ТМЦ.Добавить();
            ЗаполнитьЗначенияСвойств(НовСтрока, СтрокаТМЦ);
            НовСтрока.Контрагент = СтрокаД.Накладная.Контрагент;
            НовСтрока.СчетУчета = СтрокаТМЦ.СчетУчета;
        КонецЦикла;
        Попытка
            Если НовДокПеремещ.Проведен Тогда
                НовДокПеремещ.Записать(РежимЗаписиДокумента.Проведение);
            Иначе
                НовДокПеремещ.Записать(РежимЗаписиДокумента.Запись);
            Конецесли;
            
        Исключение
            
            Отказ = ИСТИНА;
            
            Сообщить("Не удалось записать документ ""Перемещение тмц"" по причине:");
            Сообщить(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
            
        КонецПопытки
        
    КонецЦикла;
    
    Сообщить("Проведен документ: "+НовДокПеремещ);
    
    Объект.СписокРасходных.Очистить();    
    
    
КонецПроцедуры
   acht
 
1 - 12.07.20 - 22:26
(0)
> НовДокПеремещ = Документы.ПеремещениеТМЦ.СоздатьДокумент();
...
Если НовДокПеремещ.Проведен Тогда
    НовДокПеремещ.Записать(РежимЗаписиДокумента.Проведение);
Иначе
    НовДокПеремещ.Записать(РежимЗаписиДокумента.Запись);
Конецесли; 

С чего бы ему стать проведенным?
   AlvlSpb
 
2 - 12.07.20 - 23:08
(0) У меня мозги закрутило. Это в какой ситуации надо Перемещение на основании Реализации? Т.е. товар продан, им владеет покупатель и вы его куда-то хотите переместить? Оригинально
   acht
 
3 - 12.07.20 - 23:14
(2) Выравнивание остатков задним числом. Обрати внимание на:

> НовДокПеремещ.Дата = СтрокаД.Накладная.Дата - 1;
   acht
 
4 - 12.07.20 - 23:16
А потом он наткнется на документ в начале дня =)

Список тем форума
Рекламное место пустует  Рекламное место пустует
Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Э. Йодан
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.