Версия для печати темы (https://pro1c.org.ua/index.php?s=994de3b073b3fd40366baef9cdd79851&showtopic=50535)

Нажмите сюда для просмотра этой темы в обычном формате

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

Автор: Constantus 18.02.19, 12:28

Приветствую, форумчане!

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

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

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

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

Код

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

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

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

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


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



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

Судя по всему здесь получают данные. Но где этот "ПечатьНестандартныхОтверстий" и где идет обработка макета печатной формы - вот загадка природы...

Автор: Bernet 18.02.19, 12:28

Constantus @ Сегодня, 12:26 * ,

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

смотрите в модуле объекта обработки эти процедуры, там скорее всего запросы

Автор: Constantus 18.02.19, 12:38

Bernet @ Сегодня, 15:28 * ,

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

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua