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

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

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


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

Если НовДокПеремещ.Проведен Тогда
НовДокПеремещ.Записать(РежимЗаписиДокумента.Проведение);
Иначе
НовДокПеремещ.Записать(РежимЗаписиДокумента.Запись);
Конецесли;

НовДокПеремещ.Проведен - а как он в истине будет?
3. dmbarchenkov 13.07.20 09:36 Сейчас в теме
(3) Верно вам подсказывают, откуда у созданного документа будет Проведен = Истина, если вы его ещё не провели? нужно так:

Попытка
        НовДокПеремещ.Записать(РежимЗаписиДокумента.Проведение);
Исключение
       НовДокПеремещ.Записать(РежимЗаписиДокумента.Запись); // если нужно записать документ, если нет, то удалите это строку
       Отказ = ИСТИНА;

       Сообщить("Не удалось записать документ ""Перемещение тмц"" по причине:"); 
       Сообщить(ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));

КонецПопытки
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот