Вход | Регистрация
 

Как сделать ссылку на временную таблицу из документа во ВПФ УТ10.3 (подробно внутри)

Как сделать ссылку на временную таблицу из документа во ВПФ УТ10.3 (подробно внутри)
Я
   Shecurok
 
28.01.20 - 09:37
Здравствуйте форумчане.
Еще многого не знаю и прошу помощи.
Необходимо было немного доработать печатную форм УПД для УТ10.3, а именно заполнить ответственных лиц с доверенностью. Решено было прикрутить ВПФ с формой выбора ответственного лица, и уже из формы вызывается сама процедура печатать.
Так вот, код брал из типовых модулей, в целом ничего сложного, сделать форму тоже оказалось не проблематично, там всего несколько кнопок.

Вся мой ВПФ, повторюсь, сделана из кусков кода типовой УТ.
Но не могу вывести платежно-расчетные документы.
За вывод ПРД отвечает этот код:

СтрокаПоДокументу = "";
    Если ДанныеДляПечати.Свойство("ТаблицаДатОплат") Тогда
        Для каждого ПараметрыДокументаОплаты Из ДанныеДляПечати.ТаблицаДатОплат Цикл
            
            Если НЕ ЗначениеЗаполнено(ПараметрыДокументаОплаты.НомерПлатежноРасчетногоДокумента)
                И НЕ ЗначениеЗаполнено(ПараметрыДокументаОплаты.ДатаПлатежноРасчетногоДокумента) Тогда
                Продолжить;
            КонецЕсли;
            СтрокаПоДокументу = СтрокаПоДокументу
                + ?(ПустаяСтрока(СтрокаПоДокументу), ?(ЭтоПечатьУПД, "", "К платежно-расчетному документу № "),", ")
                + ПараметрыДокументаОплаты.НомерПлатежноРасчетногоДокумента
                + " от " + Формат(ПараметрыДокументаОплаты.ДатаПлатежноРасчетногоДокумента, "ДФ=dd.MM.yyyy") + " г.";
            
        КонецЦикла;
    КонецЕсли;
    Если ПустаяСтрока(СтрокаПоДокументу) Тогда
        Если ДанныеДляПечати.ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАванс
            ИЛИ ДанныеДляПечати.ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАвансКомитента Тогда
            СтрокаПоДокументу = ?(ЭтоПечатьУПД, "", "К платежно-расчетному документу № ") + "-- от --";
        Иначе
            СтрокаПоДокументу = ?(ЭтоПечатьУПД, "", "К платежно-расчетному документу № ") + "   от";
        КонецЕсли;
    КонецЕсли;
Скрыть


Тут нас интересует самое начало:
Если ДанныеДляПечати.Свойство("ТаблицаДатОплат") Тогда


Вот это вот свойство. И вот это свойство указывается в документе СФВыданный, а именно:
ТаблицаДатОплат = ДатаНомерДокументовОплаты.Выгрузить();
    ТаблицаДатОплат.Свернуть("ДатаПлатежноРасчетногоДокумента, НомерПлатежноРасчетногоДокумента");
    СтрокиКУдалению = Новый массив();
    Для каждого СтрокаОплат Из ТаблицаДатОплат Цикл
        Если не ЗначениеЗаполнено(СтрокаОплат.ДатаПлатежноРасчетногоДокумента)
            и ПустаяСтрока(СтрокаОплат.НомерПлатежноРасчетногоДокумента) Тогда
            СтрокиКУдалению.Добавить(СтрокаОплат);
        КонецЕсли;
    КонецЦикла;
    Для каждого СтрокаКУдалению Из СтрокиКУдалению Цикл
        ТаблицаДатОплат.Удалить(СтрокаКУдалению);
    КонецЦикла;
    
    ДанныеДляПечати.Вставить("ТаблицаДатОплат", ТаблицаДатОплат);

Скрыть


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


Пробовал пойти по простому пути, скопировал всё в свою ВПФ, скопировал табличную часть, в процедуре, что выше ДокументОснование заменил на СсылкуНаОбъект (у меня такой реквизит есть), но ничего, выводится всё так же "--".
Каким образом мне вытащить ТаблицуДатОплат из документа СФ?
 
 

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