Имя: Пароль:
1C
1С v8
Не заполняется табличная часть при создании и проведении.
0 Maikroft
 
08.05.19
12:39
Добрый день.
Что-то я никак не пойму, обращаюсь за помощью.
Есть документ, который создается на основании другого документа по определенной команде.
Вставил в создаваемый документ еще одну ТЧ, написал процедуру (ниже), которая заполняет её, вставил вызов процедуры в ОбработкаПроведения
По отладчику при вызове команды вхожу в процедуру, все отрабатывает, отбирается, заполняется, но при открытии документа ТЧ пустая.
При этом если провести документ, все заполнится, но нужно именно при создании.
Посоветуйте что-нибудь, а?)

ЗДЕСЬ БОЛЬШОЙ И СЛОЖНЫЙ ЗАПРОС, ОН РАБОТАЕТ.

Запрос.УстановитьПараметр("Ссылка", Ссылка);
    ПакетРезультатов = Запрос.ВыполнитьПакет();
    
    ВыборкаНаДатуОтгрузки = ПакетРезультатов[1].Выбрать();
    Если ВыборкаНаДатуОтгрузки.Следующий() Тогда
        НоваяСтрокаВыборкаНаДО = Температура.Добавить();
        ЗаполнитьЗначенияСвойств(НоваяСтрокаВыборкаНаДО, ВыборкаНаДатуОтгрузки);
        НоваяСтрокаВыборкаНаДО.ДатаВыгрузкиРН = НачалоДня(ТекущаяДата());
    КонецЕсли;
    
    ВыборкаНаДатуДоставки = ПакетРезультатов[2].Выбрать();
    Если ВыборкаНаДатуДоставки.Следующий() Тогда
        НоваяСтрокаВыборкаНаДД = Температура.Добавить();
        ЗаполнитьЗначенияСвойств(НоваяСтрокаВыборкаНаДД, ВыборкаНаДатуДоставки);
        НоваяСтрокаВыборкаНаДД.ДатаВыгрузкиРН = НачалоДня(ТекущаяДата());
        Если ВыборкаНаДатуДоставки.ПолденьПрогноз = Истина И Константы.РасчетТемпературыВРН = Истина Тогда
            ТребуетсяРЕФ = Истина;
        Иначе
            ТребуетсяРЕФ = Ложь;
        КонецЕсли;
    КонецЕсли;
1 sqr4
 
08.05.19
12:42
вставлять в другое место
2 hhhh
 
08.05.19
12:45
(0) в ОбработкаПроведения документ не записывается. Попробуйте ПередЗаписью()
3 Maikroft
 
08.05.19
12:57
Перед записью же вроде еще нет ссылки в документе, чтобы отобрать его?
4 Ns33
 
08.05.19
12:58
Лучше, конечно как в (2).

Могу дать вредный совет: после заполнения ТЧ в ОбработкаПроведения можно вызвать Записать(), но тогда повторно вызовутся ПередЗаписью() и ПриЗаписи(), но через ДополнительныеСвойства или переменную можно это отслеживать и пропускать повторные вызовы.
5 hhhh
 
08.05.19
13:13
(3) перепишите запрос не на ссылку в документе, а например тз с данными документа
6 Maikroft
 
08.05.19
13:21
Как вариант, кстати.
Можно еще выбирать ТЧ из исходного документа, а не того, который создается, но там много всяких ограничений и дополнительных выборок.
Поставил пока перезапись документа по вредному совету в том случае, если количество строк новой ТЧ = 0.
Спасибо всем за советы.