Расшифровка в отчете на СКД (БСП) по собранным заранее данным.
Здравствуйте.
Имеется нетиповой отчет, используется СКД, источником данных для отчета является таблица значений. По стандартной для таких случаев логике, таблица значений для источника формируется в ПриКомпановкеРезультата.
Вместе с этой таблицей значений, там же, формируется несколько таблиц значений, которые я хочу использовать для построения отчетов-расшифровок по некоторым полям. Логика формирования всех этих данных взаимосвязана, и я не хочу выполнять ее каждый раз, когда вызывается расшифровка, вместо этого я хочу получать эти данные из временного хранилища и использовать повторно, пока отчет сформирован.
В качестве формы отчета я хочу использовать типовую форму отчетов конфигурации (ERP).
Вопрос: как это сделать и как сделать это правильно?
Мне известно, что существует событие ОтчетыКлиентПереопределяемый.ОбработкаРасшифровки.
Я искал похожие запросы в интернете, и есть информация о расшифровках, однако там нет понятных ответов на мои вопросы в рамках моей задачи.
Мало информации о том, как именно стоит показывать отчет расшифровки. Можно ли для отчета расшифровки тоже использовать стандартную форму отчетов? Нужно ли создавать отдельный объект отчета, или создавать вторую схему компановки данных в этом же отчете? Первоначальный вопрос выше: как сохранить все полученные данные расшифровок (например есть таблица значений, где в разрезах контрагентов и догворов хранятся некие данные, я хочу затем расшифровку вызывать для конкретной связки договор-контрагент, то есть мои "данные расшифровки" они для всех возможных расшифровок сразу в одной таблице), и потом ими пользоваться, пока отчет не переформируют? Примерно такие вопросы. Если есть публикации на эту тему, дайте пожалуйста ссылки.
Имеется нетиповой отчет, используется СКД, источником данных для отчета является таблица значений. По стандартной для таких случаев логике, таблица значений для источника формируется в ПриКомпановкеРезультата.
Вместе с этой таблицей значений, там же, формируется несколько таблиц значений, которые я хочу использовать для построения отчетов-расшифровок по некоторым полям. Логика формирования всех этих данных взаимосвязана, и я не хочу выполнять ее каждый раз, когда вызывается расшифровка, вместо этого я хочу получать эти данные из временного хранилища и использовать повторно, пока отчет сформирован.
В качестве формы отчета я хочу использовать типовую форму отчетов конфигурации (ERP).
Вопрос: как это сделать и как сделать это правильно?
Мне известно, что существует событие ОтчетыКлиентПереопределяемый.ОбработкаРасшифровки.
Я искал похожие запросы в интернете, и есть информация о расшифровках, однако там нет понятных ответов на мои вопросы в рамках моей задачи.
Мало информации о том, как именно стоит показывать отчет расшифровки. Можно ли для отчета расшифровки тоже использовать стандартную форму отчетов? Нужно ли создавать отдельный объект отчета, или создавать вторую схему компановки данных в этом же отчете? Первоначальный вопрос выше: как сохранить все полученные данные расшифровок (например есть таблица значений, где в разрезах контрагентов и догворов хранятся некие данные, я хочу затем расшифровку вызывать для конкретной связки договор-контрагент, то есть мои "данные расшифровки" они для всех возможных расшифровок сразу в одной таблице), и потом ими пользоваться, пока отчет не переформируют? Примерно такие вопросы. Если есть публикации на эту тему, дайте пожалуйста ссылки.
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)
То, что там написано в 4 пункте, мне известно. Я не понимаю каким образом использовать эту возможность. Как минимум, как передать в этот обработчик события данные расшифровки, которые были получены в ПриКомпановкеРезультата.
Мне известно, что существует событие ОтчетыКлиентПереопределяемый.ОбработкаРасшифровки.
То, что там написано в 4 пункте, мне известно. Я не понимаю каким образом использовать эту возможность. Как минимум, как передать в этот обработчик события данные расшифровки, которые были получены в ПриКомпановкеРезультата.
Можно так попробовать
Но тут нужно иметь в виду, что если внешние данные собираются с учетом отбора компоновщика, то при изменении отбора таблицы нужно пересобирать.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
Идентификатор = "Отчет.ИмяОтчета/ИмяПользователя";
КлючДанных = "СтруктураТаблиц";
ВнешниеДанные = ОбщегоНазначения.ПрочитатьДанныеИзБезопасногоХранилища(Идентификатор, КлючДанных);
Если ВнешниеДанные = Неопределено Или ВнешниеДанныеУстарели(ВнешниеДанные) Тогда
ВнешниеДанные = ПолучитьВнешниеДанные();
ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(Идентификатор, ВнешниеДанные, КлючДанных);
КонецЕсли;
// Формируем отчет с использованием внешних данных...
КонецПроцедуры
Функция ВнешниеДанныеУстарели(ВнешниеДанные)
// Данные старше 10 минут считаем неактуальными
Если ВнешниеДанные.Свойство("ДатаАктуальности") И ВнешниеДанные.ДатаАктуальности - ТекущаяДатаСеанса() > 600 Тогда
Возврат Истина;
КонецЕсли;
Возврат Ложь;
КонецФункции
Функция ПолучитьВнешниеДанные
// Собираем структуру таблиц и дату их формирования.
ВнешниеДанные = Новый Структура("ДатаАктуальности", ТекущаяДатаСеанса());
ВнешниеДанные.Вставить("Таблица1", СобратьДанныеТаблицы1());
Возврат ВнешниеДанные;
КонецФункции
ПоказатьНо тут нужно иметь в виду, что если внешние данные собираются с учетом отбора компоновщика, то при изменении отбора таблицы нужно пересобирать.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот