Как обойти засаду - продолжение

1. makfromkz 35 06.10.20 08:57 Сейчас в теме
Перетаскиваю процедуры и функции из модуля менеджера в модуль формы сохраненного внешнего отчета, и
дошел до такой ошибки:

Неправильные параметры источника доступных настроек
{ВнешнийОтчет.ОтчетОРеализацииТоваровУслуг.Форма.ФормаОтчета.Форма(770)}: КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));
{ВнешнийОтчет.ОтчетОРеализацииТоваровУслуг.Форма.ФормаОтчета.Форма(1196)}: Сформировать1Отчет(ПараметрыОтчета, АдресХранилища);
{ВнешнийОтчет.ОтчетОРеализацииТоваровУслуг.Форма.ФормаОтчета.Форма(582)}: РезультатВыполнения = СформироватьОтчетНаСервере();

по причине:
Неправильные параметры источника доступных настроек


в строчке кода внешнего отчета:
	КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));


И отладчик в СхемаКомпоновкиДанных показывает пустую строку с вытекающей из этого руганью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Alex_E 2355 06.10.20 09:00 Сейчас в теме
Зачем в модуль формы то? Просто скопировать модуль менеджера в модуль внешнего отчета не судьба? Потом заменить вызов этих процедур с <имя отчета>.<имя процедуры/функции> на РеквизитыФормыВЗначение("Отчет").<имя процедуры/функции> и жить счастливо...
3. makfromkz 35 06.10.20 09:05 Сейчас в теме
(2) Все процедуры и функции которые я переношу находятся в общем модуле БухгалтерскиеОтчетыВызовСервера, поэтому где их копии размещать в модуле объекта внешнего отчета или в модуле формы внешнего отчета наверное все равно.
4. comptr 31 06.10.20 09:09 Сейчас в теме
(3)
наверное все равно.

А практика показывает, что не всё равно.
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаКомпоновкиДанных));

Такой код в модуле формы считает, что СхемаКомпоновкиДанных - реквизит формы или локальная переменная.
Такой же код в модуле объекта будет считать что СхемаКомпоновкиДанных - реквизит объекта или локальная переменная.
Всегда нужно помнить про контекст исполнения кода.
Либо делать как в (2), либо обращаться из формы к Объект.СхемаКомпоновкиДанных и т.д.
6. Alex_E 2355 06.10.20 09:23 Сейчас в теме
(3) а и общего модуля то зачем? хотя, если очень хочется, то хрен бы с ним, тут тогда только убрать имя общего модуля при
вызове в модуле внешнего отчета и боле не надо ничё... естественно, если модуль менеджера уже скопирован в этот модуль...
5. makfromkz 35 06.10.20 09:20 Сейчас в теме
Пока я сравниваю поведение встроенного в конфу отчета и внешнего.
и во встроенном отчете в функции:
&НаСервере
Функция ПодготовитьПараметрыОтчета()

есть такая строчка:
ПараметрыОтчета.Вставить("СхемаКомпоновкиДанных" , ПолучитьИзВременногоХранилища(СхемаКомпоновкиДанных));


буду над ней думать
7. makfromkz 35 06.10.20 14:07 Сейчас в теме
в общем я не смог переделать во внешний из -за такой ошибки:
Прикрепленные файлы:
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот