Конструктор выражений для СКД 8.2

10.11.11

Разработка - СКД

Конструктор выражений для СКД предназначен для построения сложных выражений в СКД при помощи мыши - перетаскиванием элементов выражения из готовых списков (доступные поля, параметры) в текстовое поле, что позволяет сократить время и избежать ошибок ручного набора. Сформированное выражение копируется в буфер обмена и затем вставляется в нужное место СКД.
Прилагается деморолик (просто запустить exe-файл).

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Конструктор выражений для СКД 8.2
.rar 32,12Kb
436
436 Скачать (1 SM) Купить за 1 850 руб.
Деморолик - пример работы с Конструктором выражений
.rar 1,61Mb
102
102 Скачать (1 SM) Купить за 1 850 руб.

 

Конструктор выражений для СКД

При разработке отчетов с применением Системы компоновки данных (СКД) требуется составлять выражения на языке СКД, которые применяются для описания вычисляемых полей, ресурсов, условий связи, параметров макета и т.п. Эти выражения часто бывают довольно сложными, например, такими:

ВЫБОР  

   КОГДА &Периодичность = 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):

 

Нужное выражение формируется  в текстовом поле, причем большая часть работы выполняется при помощи перетаскивания из списков на форме, а вручную требуется вводить только литералы и знаки операций.

По нажатию соответствующей кнопки на форме открывается Конструктор форматной строки, в котором можно настроить формат; после его закрытия форматная строка появляется в тексте выражения - в том месте, где стоял текстовый курсор.

По окончании формирования выражения сформированный текст помещается в буфер обмена при помощи соответствующей кнопки на форме, после чего текст выражения может быть вставлен из буфера обмена в нужное место Редактора СКД отчета в Конфигураторе.

Если перед нажатием кнопки копирования в буфер обмена некий фрагмент текста был выделен, то в буфер обмена копируется выделенный фрагмент, если выделения не было, то копируется весь текст выражения.

После того, как все нужные выражения составлены, форму Конструктора можно закрыть. При закрытии формы в буфер обмена помещается текст из текстового поля - таким образом выполняется страховка потери текста сформированного выражения при случайном закрытии формы Конструктора выражений СКД.

 

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    152286    834    397    

845

Запросы СКД Программист Стажер Система компоновки данных Россия Бесплатно (free)

Часто при разработке отчетов в СКД возникает ситуация, когда не совсем понятно, почему отчет выводит не те данные, которые нужны, либо не выводит вовсе. Возникает потребность увидеть конечный запрос, который формирует СКД. Как это сделать, рассмотрим в этой статье.

15.05.2024    7262    implecs_team    6    

46

Инструментарий разработчика СКД Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

По выбранной схеме компоновки данных генерирует программный код, который генерирует СКД, аналогичную исходной схеме. Есть дополнительные инструменты для просмотра дерева схемы, сравнение исходной схемы и полученной по коду, а также сравнение изменений в сгенерированном коде для исходной схемы и для измененной.

3 стартмани

05.02.2024    6481    50    obmailok    21    

79

Запросы СКД Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Есть список полей в виде текста, или запрос - закидываем в набор СКД.

1 стартмани

31.01.2024    2984    3    Yashazz    0    

34

СКД WEB-интеграция Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Долгое время поддерживаю web-портал, в котором появилась необходимость создавать отчеты. Просмотрев различные фреймворки на js, я решил сделать свое решение, которое позволяло бы быстро разрабатывать и добавлять новые отчеты на web-портал.

2 стартмани

11.12.2023    10325    23    John_d    25    

124

СКД Программист Платформа 1С v8.3 Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

Рассмотрим еще не получивший широкого распространения способ работы с внешними данным в СКД. В процессе обсуждения работы с СКД выяснилось, что многие не знакомы со способом помещения туда временной таблицы, полученной предварительно. Статья будет полезна разработчикам, знакомым с программным созданием СКД.

05.12.2023    7298    PROSTO-1C    14    

67
Отзывы
43. boln 1041 04.07.15 12:58 Сейчас в теме
Господа! Прежде, чем скачивать эту разработку, примите во внимание, что возможности ее покрываются другой, более поздней разработкой:
http://infostart.ru/public/179939/
Это Консоль СКД с возможностью конструирования выражений и просмотра текста исполняемого запроса.
TeMochkiN; Evg-Lylyk; +2 Ответить
Остальные комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Damian 909 04.11.11 22:14 Сейчас в теме
Однозначно, плюс, но... скринов бы побольше, люди потянулись бы быстрее.
2. boln 1041 04.11.11 23:32 Сейчас в теме
(1) Damian, согласен, надо скринов подбросить.
3. Поручик 4691 05.11.11 00:34 Сейчас в теме
Очень интересно, пока не юзал, но одобряю
4. Boroda 90 05.11.11 11:12 Сейчас в теме
Да, собственно, скрины особо и не нужны - деморолик-то есть. Если только в качестве его альтернативы (чтобы очки не сдирались за скачку файла). А для привлечения клиентуры... кому понятно и нужно, тот и так заценит и возьмёт, думаю.
5. boln 1041 05.11.11 14:24 Сейчас в теме
(4) Boroda, да, давненько, выходит, я здесь не бывал.
"Очки" какие-то появились и премодерация. Какая жизнь, оказывается, интересная вокруг :)
6. alexk-is 6541 05.11.11 15:32 Сейчас в теме
Почему конструкции не раскрашенные? Конструктор ведь.
Раскрашенные гораздо нагляднее выглядят.
Может быть это поможет http://infostart.ru/public/19856/
8. boln 1041 05.11.11 15:37 Сейчас в теме
(6) alexk-is, согласен, но с html или форматированным документом связываться неохота. К тому же, в СКД ведь все по-любому нераскрашенное.
9. alexk-is 6541 05.11.11 15:48 Сейчас в теме
(8) ПолеТекстовогоДокумента - Свойства - Характеристики - Расширение - Язык запросов

и ни каких html или форматированных документов
10. Поручик 4691 05.11.11 16:12 Сейчас в теме
(9) Учи матчасть по разработке управляемых формы, чтобы не садиться в лужу. У элементов управляемых форм нет такого свойства.
11. alexk-is 6541 05.11.11 16:15 Сейчас в теме
(10) Вот засада. Не обратил внимания, что это управляемые формы.
12. Поручик 4691 05.11.11 16:20 Сейчас в теме
(11) Вот, изучай.
Редактор кода 1с для тонкого клиента, управляемые формы http://infostart.ru/public/78340/
7. boln 1041 05.11.11 15:33 Сейчас в теме
Во чего еще придумал - надо прикрутить Конструктор форматной строки. На неделе сделаю.
13. orsprog 05.11.11 18:15 Сейчас в теме
Однозначно, плюс, но... скринов бы побольше...Раскрашенные конструкции гораздо нагляднее выглядят...можно и раскрасить...
14. _also 490 07.11.11 10:35 Сейчас в теме
Хотя бы загрузку схемы их xml можно было в предприятии сделать. А то каждый раз менять в конфигураторе...
15. boln 1041 07.11.11 14:00 Сейчас в теме
_also пишет:
Хотя бы загрузку схемы их xml можно было в предприятии сделать. А то каждый раз менять в конфигураторе...

Пробовал. В этом случае гриды доступных полей не полнофункциональны.
16. sergnik 07.11.11 22:05 Сейчас в теме
посмотрим, давно хотел изучить эту тему, никак руки не доходили
17. WiseSnake 1521 08.11.11 01:16 Сейчас в теме
(0)
К сожалению, в Редакторе СКД средства конструирования подобных сложных выражений на сегодняшний день отсутствуют, и их приходится полностью выписывать вручную.

Ну мне в принципе хватало того функционала что есть в стандартном конструкторе. А выписывать вручную ничего не надо. Можно конструкции мышкой перетаскивать, остальное копипастить(если это выражение из дерева таблиц то двойным кликом). Ооочень сложные писал, все пучком.

P.S. Обработку посмотрю на досуге. Может правда удобнее будет.
18. boln 1041 08.11.11 14:04 Сейчас в теме
WiseSnake пишет:
А выписывать вручную ничего не надо. Можно конструкции мышкой перетаскивать, остальное копипастить(если это выражение из дерева таблиц то двойным кликом).

Не догнал. Вот, пишем выражение для вычисляемого поля. Откуда конструкции мышкой перетаскивать? И где здесь дерево таблиц?
26. WiseSnake 1521 14.11.11 12:11 Сейчас в теме
(18) Да не внимательно просто читал )). Спасибо за разработку.
19. che666 08.11.11 18:35 Сейчас в теме
автору + за необходимый инструментарий
20. MoneG2 27 09.11.11 09:20 Сейчас в теме
Полезно уже от того, что не надо справку листать и копипастить.
Может, еще добавить описания встроенных функций из СП?
Пригодится, например, если забыл разницу между "Вычислить()" и "ВычислитьВыражение()".
21. boln 1041 09.11.11 14:16 Сейчас в теме
(20) MoneG2, интересная идея. Надо подумать.
22. dkprim 5 09.11.11 15:16 Сейчас в теме
хорошая публикация. хотелось бы увидеть подсветку синтаксиса запроса.. автору спасибо :)
Inetguru; +1 Ответить
23. boln 1041 11.11.11 21:33 Сейчас в теме
MoneG2 пишет:
Может, еще добавить описания встроенных функций из СП?
Пригодится, например, если забыл разницу между "Вычислить()" и "ВычислитьВыражение()".

К сожалению, не выйдет. 1С ответила, что любое цитирование справки или документации в собственных разработках есть нарушение ЛС.
А своими словами писать влом.
27. Inetguru 205 17.11.11 15:58 Сейчас в теме
(23) а сделать что-то вроде конструктора,через который можно было бы создавать справку для выбранной функции СКД самостоятельно и записывать во внешний файл, а при открытии считывать файл со справкой. Народ сам себе скопирует то, что 1С не хочет видеть в разработках. Всем будет хорошо, а такие файлы народ будет раздавать друг другу в закрытом виде, может через файлообменники.
(25) все-таки дерево удобно тем, что видно логически что нужно, если еще не решил заранее или забыл название функции.
Присоединяюсь к пожеланию внедрения подсветки синтаксических конструкций как в запросах.Так хоть визуально видно что именно в выражении не закончено.
Может еще добавить возможность пользователю сохранять свои сложные выражения (опять же во внешний файл) и показывать закладку с алгоритмами расчета скд...было бы круто!
28. boln 1041 17.11.11 17:21 Сейчас в теме
(27) Inetguru, да, насчет "конструктора справки" идея понравилась :). Надо подумать.

Насчет дерева - тоже подумаю, склоняюсь, что так лучше будет. Хранить xml в макете и при запуске поднимать его в дерево - проблем нет.

Подсветка - думал уже, прикидывал, здесь надо html-поле или форматированный документ, а они драг-дроп не поддерживают как надо. Платформа же подсветку в управляемом режиме не поддерживает, это уже Поручик говорил выше.

Сохранять в файл - думал с самого начала, потом решил, что это никому не нужно будет. А вот все же, выходит, нужно! :)
31. AlexO 135 22.11.11 22:55 Сейчас в теме
(23)
а почему бы и нет? ))
пересказать топорную справку своими словами... мне думается - это подвиг и всяческий почет, а не копипаст...
Вот именно потому, что приходится сначала делать что-то здесь, потом пастить в СКД, и нужна подсказка - а что за выражения, а зачем, в какой последовательности (уж как 1с любит все делать в "своих" последовательностях!)
А то получается - если запамятовал (а при составлении "длинных" выражений, на которые и ориентирована разработка, так и случается), лезешь в справки-книжки, и уже и Коснтурктор выражений не нужен - и так все уже составил...
Или в чем преимущество конструктора, как не в убыстрении разработки СКД??
24. Spacer 363 12.11.11 17:50 Сейчас в теме
По своему назначению этот конструктор похож на конструктор произвольных выражений полей
в конструкторе запросов.
В связи с этим мне кажется логичным и удобным чтобы интерфейс конструктора выражений для СКД
был похож на интерфейс конструктора произвольных полей.
Т.е. вверху слева - доступные поля, вверху справа - синтаксические конструкции языка выражений,
внизу - само сформированное выражение.
Выбор синтаксических конструкций удобно было бы сделать не только в алфавитном порядке как сейчас,
но и из дерева категорий, как сделано в конструкторе произвольных выражений.
25. boln 1041 13.11.11 11:30 Сейчас в теме
(24) Spacer, ИМХО, будет лучше, если 1С свой Конструктор произвольных выражений сделает как у меня :)
Ведь мы читаем слева направо, поэтому перемещение мыши слева направо выглядит более естественно, чем сверху вниз.
К тому же, я в (фирме) 1С уже 8 лет как не работаю. Имеем, тзть, полное основание не копировать рабски бывшего работодателя :)
29. alexkl 18.11.11 09:51 Сейчас в теме
Привычная форма облегчает привыкать к новому.
30. Nika-cat 21.11.11 15:08 Сейчас в теме
Прикольно облегчет мне жизнь а то голова кругом после 7.7
32. dtitov 28.11.11 11:16 Сейчас в теме
Очень интересно, надо попробовать. Спасибо за разработку!
33. Lizi60 30.11.11 12:29 Сейчас в теме
34. Zas1402 01.12.11 10:26 Сейчас в теме
Спасибо за разработку! Хорошая публикация.
35. FE_D_OR83 02.12.11 16:40 Сейчас в теме
полезная весщ,надо скачать.
36. tormozit 7219 26.12.11 02:28 Сейчас в теме
Реализовал родственный инструмент в подсистеме "Инструменты разработчика" http://infostart.ru/public/15126/
Там есть контекстная подсказка и контекстная справка, а также проверка корректности выражения и указание ошибочной строки.
37. serge_focus 4 28.01.12 15:45 Сейчас в теме
А может кто подскажет как в СКД запихнуть подобные параметры

ПорядокСубконто = Новый Массив();
ПорядокСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Номенклатура);
ПорядокСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады);
ПорядокСубконто.Добавить(ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.НоменклатурныеПозиции);
Запрос.УстановитьПараметр("ПорядокСубконто", ПорядокСубконто);


И

Запрос.УстановитьПараметр("ВидСубконто", ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Склады);

Никак не нарою :(
38. boln 1041 28.01.12 22:21 Сейчас в теме
(37) serge_focus, на закладке Параметры возле параметра ПорядокСубконто надо установить флажок "Доступен список значений", тогда в колонке Значение по кнопке открывается список значений - в него можно занести предопределенные значения видовх характеристик.
serge_focus; +1 Ответить
39. pjv 02.07.12 08:23 Сейчас в теме
Если честно, не особенно облегчает жизнь
40. dedicated 25 28.02.13 06:52 Сейчас в теме
Не работает. Все делаю по инструкции, но при открытии в режиме 1С:Предприяте ни чего не открывается и не выдаются ни какие сообщения. Подскажите что не так делаю? Версия 8.2 ЗУП.
41. boln 1041 28.02.13 23:33 Сейчас в теме
(40) Вы, видимо, открываете ЗУП в обычном режиме. Обработка работает только в управляемом режиме. В обычном режиме форма управляемого режима внешней обработки не открывается.
42. нОлька 30.07.13 10:11 Сейчас в теме
Очень полезная статья. Спасибо автору. !!!!
43. boln 1041 04.07.15 12:58 Сейчас в теме
Господа! Прежде, чем скачивать эту разработку, примите во внимание, что возможности ее покрываются другой, более поздней разработкой:
http://infostart.ru/public/179939/
Это Консоль СКД с возможностью конструирования выражений и просмотра текста исполняемого запроса.
TeMochkiN; Evg-Lylyk; +2 Ответить
Оставьте свое сообщение