Скд параметр расшифровки выражение
Обновлено: 22.12.2024
Подробно рассматривать все настройки схемы компоновки мы не будем, остановимся только на том, ради чего была сделана статья.
Имеется некий отчет, у него схема компоновки данных, наборы данных, ресурсы, Параметры, Настройки.
Основные настройки отчета:
1. Рассмотрим вкладку «Макеты» основной схемы компоновки данных.
В макете описано каждое поле, для того что бы можно было сделать расшифровку по ним.
Если поле не ссылочного типа:
- В параметре расшифровки указываем наименование параметра
- В параметрах макета в поле Выражение делаем выбор
- В Параметр расшифровки в поле Выражение указываем ссылку на документ, по которому будет производиться расшифровка.
Если поле ссылочного типа:
Все тоже самое, только в Параметр расшифровки добавляем 2 параметра:
- Один из низ это ссылка на элемент указанный в поле
- Второй это ссылка на документ, по которому будет производиться расшифровка
На этом со схемой компоновки данных закончили.
3. Формы в отчете я использовал БСПшные, только для расшифровки создал свою форму "ФормаРасшифровки" с типом «Форма Отчета»
4. Открываем основную форму отчета БСП, для элемента формы «ОтчетТабличныйДокумент» ищем событие «ОбработкаРасшифровки» и переходим в нее.
В открывшейся процедуре вызываем процедуру обработки в переопределяемом модуле.
5. Проверяем имя отчета, при необходимости подсистему на существование, определяем модуль дальнейшей обработки и вызываем из него следующую процедуру.
6. Полный код вызываемой процедуры:
Разберем подробно код процедуры
Прежде всего отменяем стандартную обработку:
Создаем обработку расшифровки:
Создаем ОписаниеОповещения с параметрами, для алгоритма после выбора действия пользователем:
Добавляем два действия, одно платформенное, другое создаем свое собственное "КодыМаркировки":
Вызываем меню выбора действий:
7. В обработке оповещения обрабатываем каждый пункт меню действий
- В первом случае просто открываем объект по ссылке
- Во втором вызываем процедуру, которая нам вернет выбранное поле.
И если Выбранное поле заполнено, тогда вызываем процедуру открывающую новую форму отчета.
Т.к. функция получения выбранного поля находится в общем модуле с галочкой Вызов Сервера, то делаем там только инициализацию серверной функции
А уже в серверном общем модуле, описываем алгоритм получения выбранного поля Документ поступления.
8. Процедура инициализирует открытие формы отчета с передачей параметров.
9. В модуле открывшейся формы процедура ПриСозданииНаСервере:
Разберем ключевые строки процедуры:
- Проверяем параметры формы, и вызываем формирование динамического запроса по полученному параметру ссылки на документ.
- Процедура формирования динамического запроса:
- Получаем макет скд и в первом наборе данных переопределяем запрос, на тот, что мы сформировали динамически выше.
Посмотрим на вкладку "Наборы данных" полученного макета расшифровки и видим что запрос в нем это лишь шаблон, т.к. мы заранее не знаем какой тип
документа будет расшифровываться. На вкладке "Настройки" вывод детальных записей, больше настроек у этой схемы нет.
- Применяем настройки и добавляем полученный в параметрах отбор
- После располагается типовой код по программному формированию отчета,
куда мы передаем полученную схему, и сформированные настройки отчета.
Статья, по формированию расшифровки, без использования БСП
Ссылка на публикациюСпециальные предложения
Комментарии Свернуть все 1. artms 242 04.09.19 09:12 Сейчас в теме Получение данных из документов, не зачет на экзамене, нужно было сделать регистр сведений, событием. Возможно здесь приводится отчет встроенный но "СформироватьДинамическиЗапрос" это мягко говоря не верно. Новый запрос, нужно сделать либо как отчет № 2 либо как второй набор данных передав параметр "КлючТекущегоВарианта", настройки. Параметры отчета нужно было передать через параметр "ПользовательскиеНастройки,Отбор", а не кодом "ПриСозданииНаСервере". Тогда ваш код не нужен почти весь, достаточно правильно настроить отчет № 2 или вариант. И сделать заполнение пользовательских настроек, полученных на основании расшифровки отчета № 2. Конечно, возможно автор пытался минимально изменить конфигурацию и это частично его оправдывает, но не оправдывает вторую часть публикации. FirePyres; + 1 – Ответить 2. Viktor_Ermakov 288 04.09.19 23:47 Сейчас в теме
(1)Спасибо Вам за отзыв.
1. "Получение данных из документов, не зачет на экзамене, нужно было сделать регистр сведений, событием" - тут Вы правы, но это уже тема архитектуры, в рамках которой я был ограничен.
2. "СформироватьДинамическиЗапрос" - чем это плохо, поясните, ведь я заведомо не знаю тип документа по которому мне нужно получить расшифровку, поэтому формирую динамический запрос. Это кстати стандартная практика типовых решений в настоящее время.
3. "Новый запрос, нужно сделать либо как отчет № 2 либо как второй набор данных передав параметр "КлючТекущегоВарианта"" - это уже тонкости, вариации решения. Я против отчета №2, а вот второй набор можно сделать, но не вижу ничего плохого во второй схеме компоновки.
4. "Параметры отчета нужно было передать через параметр "ПользовательскиеНастройки,Отбор", а не кодом "ПриСозданииНаСервере"" - то что использовать нужно пользовательские настройки это да. Но что значит передать, я не понял.
Резюмирую: да, скорее всего представленный алгоритм можно улучшить, оптимизировать, я могу чего то не знать еще, все приходит с опытом.
Цель статьи была показать как в дорабатываемой конфигурации на БСП сделать отчет с расшифровкой, минимизируя изменения объектов на поддержке.
2. "СформироватьДинамическиЗапрос" - это к получению данных из документов, в логике формирования запроса динамически нет никаких нарушений.
4.Делал открытие отчета СКД с заполнением параметров и отборами так :
Показать
(УстановитьПользовательскиеНастройкиОтчета - сделана не рекурсивно, т.к. группы условий это не стандартные наборы параметров и их даже если есть устанавливать не нужно, так было принято)
Читайте также: