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

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


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

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

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