Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Внешние печатные формы: как добраться до кода обработки данных (запроса)?
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование управляемых форм 1С 8.2
Constantus
Приветствую, форумчане!

8.3.6, УФ, полностью самописная, досталась в наследство.

Имеется некий документ. На нем расположена группа кнопок с разными формами печати. Как выяснилось, для печати применяются внешние печатные формы, которые расположены в справочнике "Дополнительные отчеты и обработки" (Наверное механизм БСП)...

Сохранил одну из этих форм как внешний отчет (епф). Открыл его в конфигураторе и пытаюсь разобраться в коде.
Этот отчет формирует некий список из Реализаций и Заказов. Нужно отследить, почему отчет некорректно данные некоторые выводит.

Для этого пытаюсь разглядеть, где эти данные формируются, но вошел в тупик. На форме этого внешнего отчета есть короткий код.
Помогите понять, где всё это происходит, где формируется запрос для печати этого отчета? макеты также на этой внешнем отчете...

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

&НаКлиенте
Процедура Печать(Команда)
    
    ПечатьНаСервере();
    
    Если ЭтоАдресВременногоХранилища(АдресРезультата) Тогда
        ТабДок = ПолучитьИзВременногоХранилища(АдресРезультата);
        ТабДок.Показать();
    КонецЕсли;
    
КонецПроцедуры

&НаКлиенте
Процедура Печать_Отверстия(Команда)
    ПечатьНаСервере(,Истина);
    Если ЭтоАдресВременногоХранилища(АдресРезультата) Тогда
        ТабДок = ПолучитьИзВременногоХранилища(АдресРезультата);
        ТабДок.Показать();
    КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура Печать_Мастера(Команда)
    ПечатьНаСервере(Истина);
    Если ЭтоАдресВременногоХранилища(АдресРезультата) Тогда
        ТабДок = ПолучитьИзВременногоХранилища(АдресРезультата);
        ТабДок.Показать();
    КонецЕсли;
КонецПроцедуры


Имеются также дополнительные реквизиты:
АдресРезультата (строка)
Ссылка - ссылка на исходный документ, из которого производится печать отчета



ТабДокумент = ОбработкаОбъект.ПечатьНестандартныхОтверстий(Ссылка, Неопределено);

Судя по всему здесь получают данные. Но где этот "ПечатьНестандартныхОтверстий" и где идет обработка макета печатной формы - вот загадка природы...
Bernet
Constantus @ Сегодня, 12:26 необходимо зарегистрироваться для просмотра ссылки ,
Цитата(Constantus @ 18.02.19, 12:26) необходимо зарегистрироваться для просмотра ссылки
 Если Мастера Тогда
        ТабДокумент = ОбработкаОбъект.ПечатьМастеров(Ссылка, Неопределено);
    ИначеЕсли Отверстия Тогда    
        ТабДокумент = ОбработкаОбъект.ПечатьНестандартныхОтверстий(Ссылка, Неопределено);
    Иначе    
        ТабДокумент = ОбработкаОбъект.ПечатьДляКомплектовщиков(Ссылка, Неопределено);
    КонецЕсли;

смотрите в модуле объекта обработки эти процедуры, там скорее всего запросы
Constantus
Bernet @ Сегодня, 15:28 необходимо зарегистрироваться для просмотра ссылки ,

Елки-палки, не увидел там явную привычную кнопку "Модуль объекта"...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.