Конструктор выражений для СКД
Прилагается деморолик (просто запустить exe-файл).
При разработке отчетов с применением Системы компоновки данных (СКД) требуется составлять выражения на языке СКД, которые применяются для описания вычисляемых полей, ресурсов, условий связи, параметров макета и т.п. Эти выражения часто бывают довольно сложными, например, такими:
"ВЫБОР КОГДА &Периодичность = 6 ТОГДА Формат(Период, ""ДФ=dd.MM.yy"") КОГДА &Периодичность = 7 ТОГДА Формат(НачалоПериода(Период, ""Неделя""), ""ДФ=dd.MM.yy"") + "" - "" + Формат(КонецПериода(Период, ""Неделя""), ""ДФ=dd.MM.yy"") КОГДА &Периодичность = 8 ТОГДА Формат(НачалоПериода(Период, ""Декада""), ""ДФ=dd.MM.yy"") + "" - "" + Формат(КонецПериода(Период, ""Декада""), ""ДФ=dd.MM.yy"") КОГДА &Периодичность = 9 ТОГДА Формат(Период, ""ДФ = 'MMMM yy'"") КОГДА &Периодичность = 10 ТОГДА Формат(Период, ""ДФ='к """"кв."""" yyyy'"") КОГДА &Периодичность = 11 ТОГДА ВЫБОР КОГДА Квартал(Период) < 2 ТОГДА Формат(Период, ""ДФ = '""""1 полугодие"""" yy'"") ИНАЧЕ Формат(Период, ""ДФ = '""""2 полугодие"""" yy'"") КОНЕЦ КОГДА &Периодичность = 12 ТОГДА Формат(Период, ""ДФ = 'yyyy'"") КОНЕЦ" |
К сожалению, в Редакторе СКД средства конструирования подобных сложных выражений на сегодняшний день отсутствуют, и их приходится полностью выписывать вручную.
Предлагаемая разработка Конструктор выражений СКД призвана облегчить процесс составления сложных выражений для СКД.
Она представляет из себя внешний отчет КонструкторВыраженийСКД.erf, в который нужно загрузить схему того отчета, для которого нужно построить выражения.
Чтобы воспользоваться Конструктором, нужно:
а) выгрузить схему компоновки данных, для которой нужно построить выражения, в xml-файл (стандартная операция СКД);
б) загрузить этот xml-файл в макет ОСНОВНАЯ_СХЕМА_КОМПОНОВКИ_ДАННЫХ внешнего отчета Конструктор выражений СКД;
в) сохранить отчет Конструктор выражений СКД;
г) запустить отчет Конструктор выражений СКД в управляемом режиме 1С:Предприятие (можно из тонкого клиента).
После запуска отчета в режиме 1С:Предприятие появляется форма, которая содержит:
а) списки доступных полей загруженной схемы компоновки данных (доступные поля выбора, порядка, а также параметры данных);
б) список конструкций языка СКД;
в) текстовое поле для формирования выражения, в которое можно перетаскивать указанные элементы выражений мышью (drag’n’drop):
Нужное выражение формируется в текстовом поле, причем большая часть работы выполняется при помощи перетаскивания из списков на форме, а вручную требуется вводить только литералы и знаки операций.
По нажатию соответствующей кнопки на форме открывается Конструктор форматной строки, в котором можно настроить формат; после его закрытия форматная строка появляется в тексте выражения – в том месте, где стоял текстовый курсор.
По окончании формирования выражения сформированный текст помещается в буфер обмена при помощи соответствующей кнопки на форме, после чего текст выражения может быть вставлен из буфера обмена в нужное место Редактора СКД отчета в Конфигураторе.
Если перед нажатием кнопки копирования в буфер обмена некий фрагмент текста был выделен, то в буфер обмена копируется выделенный фрагмент, если выделения не было, то копируется весь текст выражения.
После того, как все нужные выражения составлены, форму Конструктора можно закрыть. При закрытии формы в буфер обмена помещается текст из текстового поля – таким образом выполняется страховка потери текста сформированного выражения при случайном закрытии формы Конструктора выражений СКД.
Вы можете скачать саму разработку по ссылке, а также посмотреть деморолик.