Имя: Пароль:
1C
1С v8
Разделение типоаого отчета Бух корп. с сохранением типовой расшифровки полей.
, ,
0 segun
 
14.02.18
18:59
Вопрос по типовой конфигурации Бух. Корп. версии 8.3

Вкратце суть вопроса в следующем.

Есть типовой, встроенный в конфигурацию отчет. например "ВедомостьАмортизацииОСБухгалтерскийУчет".

Как сделать несколько внешних отчетов на базе данного отчета, поместив их в стандартное хранилище Дополнительные отчеты и обработки, но при этом, оставив типовой механизм расшифровки полей данного отчета, с помощью процедуры

Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
    
    БухгалтерскиеОтчетыКлиент.ОбработкаРасшифровкиСтандартногоОтчета(ЭтаФорма, Элемент, Расшифровка, СтандартнаяОбработка);

КонецПроцедуры.

Для того, чтобы поместить все созданные внешние отчеты в "дополнительные отчеты и обработки", надо задать уникальные имена.

Но чтобы отработал стандартный функционал расшифровки полей отчета

Общий модуль  БухгалтерскиеОтчетыВызовСервера
Функция ПолучитьПараметрыРасшифровкиОтчета(Адрес, ИдентификаторОбъекта, Расшифровка) Экспорт    
    ......
    ПараметрыИсполненияОтчета = Отчеты[ИдентификаторОбъекта].ПолучитьПараметрыИсполненияОтчета();

Имена отчетов необходимо оставить такими же, какими они были у исходного, иначе появляется ошибка.
Поле объекта не обнаружено. Например: {ОбщийМодуль.БухгалтерскиеОтчетыВызовСервера.Модуль(2103)}: Поле объекта не обнаружено (ВедомостьАмортизацииОСБухгалтерскийУчетСвернутая)
    ПараметрыИсполненияОтчета = Отчеты[ИдентификаторОбъекта].ПолучитьПараметрыИсполненияОтчета();

И не совсем понятно как правильно обойти данную ситуацию. Дорабатывать типовые модули, для подмены имени не хочется. Так как конфигурация обновляемая. Вносить все отчеты в конфигурацию, тоже не вариант.  

Может кто сталкивался уже с такой задачей.  Какие есть варианты решения?
1 Вафель
 
14.02.18
19:10
через расширение сделай
2 Фрэнки
 
14.02.18
19:10
но даже получишь параметры от корректно указанного имени - это же будут параметры не того же отчета, что открыт у тебя в текущем сеансе, а того, что остался из прошлого запуска другого отчета?
3 Фрэнки
 
14.02.18
19:13
и не мешает посмотреть, а что это такое вообще: коллекция или что-то еще под именем Отчеты[] в данном контексте?
4 Cyberhawk
 
14.02.18
19:35
Я бы на твоем месте сначала сделал отчет просто внешним, т.к. для этого придется, скорее всего, попотеть, плюс функциональность отчета уменьшится
5 Tateossian
 
14.02.18
19:37
Жаль в 1с нет наследования(((
6 segun
 
14.02.18
21:11
(3) Насколько я понял. это метаданные конфигурации Отчеты. т.е идет обращение к встроеномму отчету.
7 segun
 
14.02.18
21:14
(1) а можно поподробнее?
8 Фрэнки
 
14.02.18
21:15
(6) ну так а в твоем отчете есть такая процедура?
9 segun
 
14.02.18
21:21
это общий модуль конфигурации. все типовые бух. отчеты.. для получения расшифровки используют его.. не хотелось бы весь механизм перосить во внешний отчет.
10 Фрэнки
 
14.02.18
21:34
(9)
чтобы получить вот это :
---
Имена отчетов необходимо оставить такими же, какими они были у исходного, иначе появляется ошибка.
Поле объекта не обнаружено. Например: {ОбщийМодуль.БухгалтерскиеОтчетыВызовСервера.Модуль(2103)}: Поле объекта не обнаружено (ВедомостьАмортизацииОСБухгалтерскийУчетСвернутая)
    ПараметрыИсполненияОтчета = Отчеты[ИдентификаторОбъекта].ПолучитьПараметрыИсполненияОтчета();
---
что было сделано?
11 Tateossian
 
14.02.18
21:36
(0) Сделай прокси-функцию, или функцию-обертку. Там переопределяй данные перед подачей на вход. И все.
12 Фрэнки
 
14.02.18
21:44
*(10)+ Просто дело в том, что эта вызываемая функция и еще несколько ее подобных находятся в модуле менеджера встроенного отчета. Когда отчет из конфтгурации сохраняется во внешний файл, то в нем этот модуль исчезает и все.

Возможно, что самых простых решений тут всего два:
1 - скопировать экспортные функции из модуля менеджера в модуль объекта внешнего отчета.
2 - разрабатывать все эти новые отчеты в составе Расширения.
Отчеты в Расширении позволяют использовать код в контексте модуля менеджера.
13 Фрэнки
 
14.02.18
21:44
и похоже на то, что вариант 2 будет работать на 100%
14 segun
 
15.02.18
18:06
Спасибо большое. буду разбираться с расширением
Программист всегда исправляет последнюю ошибку.