Имя: Пароль:
1C
 
Как поймать инициализацию параметров в типовой отчет "Реестр документов" БП 3
,
0 Charity
 
10.08.18
15:05
Добрый день, уважаемые.
Очень давно не работала с УФ и затупила на простейшей, казалось бы, задаче. Итак, имеем типовой отчет "Реестр документов" бп 3, вызываемый по кнопке "Печать" из формы списка документов. Задача состоит в добавлении некоторых колонок в указанный реестр для некоторых видов документов. Так вот, не могу поймать запрос, инициализирующий СКД данного отчета. Т.е.при создании на сервере формы отчета "Реестр документов" отладчик показывает, что параметры уже заполнены, текст запроса есть. Хотелось бы сделать по фен-шую, поймав инициализацию текста запроса и изменив его для некоторых документов.
А я затупила, не пойму, где именно эта инициализация производится. Пните в нужном направлении, пожалуйста. Спасибо.
1 spiller26
 
10.08.18
15:06
(0) Тебе повезло, только на этой неделе это делал
щас найду выложу тебе
2 Charity
 
10.08.18
15:07
Заранее рассыпаюсь в благодарностях)
3 spiller26
 
10.08.18
15:16
1. Отчеты.Формы.ФормаОтчета
   Модуль
   &НаСервере
Процедура ИнициализироватьОтчет(ОсновнаяТаблица, ТекстЗапроса)
...
    СхемаКомпоновкиДанныхЭталон = Отчеты.РеестрДокументов.ПолучитьМакет("СхемаКомпоновкиДанныхЭталон");
    //-> Кра 06.08.2018
    Если ИмяТаблицы = "Документ.РеализацияТоваровУслуг" Тогда
        ТекстЗапроса = абтЗапросДляТаблицыРеализацияТоваровУслуг();
        СхемаКомпоновкиДанныхЭталон = Отчеты.РеестрДокументов.ПолучитьМакет("СхемаКомпоновкиДанныхЭталонРеализация");
    КонецЕсли;    
    //<- Кра 06.08.2018    
-----------------------------

&НаСервере
Процедура ПриЗагрузкеПользовательскихНастроекНаСервере(Настройки)
...
        //-> Кр 06.08.2018
        Если ИмяТаблицы = "Документ.РеализацияТоваровУслуг" Тогда
            НовоеПолеВыбора = ПоказателиИсточник.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
            НовоеПолеВыбора.Поле = Новый ПолеКомпоновкиДанных("РублеваяСумма");
            НовоеПолеВыбора.Использование = Истина;
        КонецЕсли;    
        //<- Кра 06.08.2018
        
        ТаблицаПоказателей = СохраняемыеПоказатели.Получить();

2. ОбщМодуль.БухгалтерскиеОтчетыВызовСервера
    
Процедура СформироватьОтчет(ПараметрыОтчета, АдресХранилища) Экспорт
...
    //-> Кра 06.08.2018
    Если ПараметрыОтчета.Свойство("ИмяТаблицы") Тогда
        Если ПараметрыОтчета.ИмяТаблицы = "Документ.РеализацияТоваровУслуг" Тогда
            ПараметрыОтчета.СхемаКомпоновкиДанных.НаборыДанных.НаборДанных1.Запрос = абтЗапросДляТаблицыРеализацияТоваровУслуг();
        КонецЕсли;    
    КонецЕсли;    
    //<- Кра 06.08.2018
    
    КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных;
4 spiller26
 
10.08.18
15:24
(3) При открытии формы подставил свой запрос. Добавил свой параметр "РублеваяСумма"
В общмодуле опять ему запрос подкидываю, т.к. могут переформировать.

Минусы: так и не понял как сразу с параметром формировать и сохранять выбранный параметр пользователю (им приходиться самим выбирать в настройках) Времени особо не было и им не в лом самим ставить галочку этого параметра.
    
Вот тут не забывай проверять свойтво структуры, т.к. будут пробелмы при формировании отчета по счетам.
Если ПараметрыОтчета.Свойство("ИмяТаблицы") Тогда
5 Charity
 
10.08.18
15:34
Спасибо! а в какой конфигурации были сделаны эти доработки? У мну например, в файловой базе не заходит в процедуру общего модуля БухгалтерскиеОтчетыВызовСервера
6 Charity
 
10.08.18
15:35
Пардон, заходит, не то посмотрела)
7 spiller26
 
10.08.18
15:41
(5) БП 3.0 Корп
8 Charity
 
10.08.18
15:44
у меня БП 3.0 простая, не корп. Не заходит отладчик в эту процедуру общего модуля. Соответственно, я не вижу параметра "Имя таблицы".
9 Charity
 
10.08.18
15:45
(3.0.60.46)
10 Charity
 
10.08.18
15:57
У меня, видимо, с отладкой какая-то шляпа была. Да! я вижу имя таблицы в процедуре инициализации отчета. Спасибо,     spiller26!
11 Charity
 
10.08.18
15:58
Возможно, и в общем модуле увижу, а то долбилась в шары. Спасибо еще раз!
2 + 2 = 3.9999999999999999999999999999999...