IE2017

Автоматическое преобразование схемы СКД в программный код

Программирование - Инструментарий

Программное заполнение СКД - это просто )

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


Но всякий, кто брался за это дело - быстро убеждался в большой трудоемкости этого процесса.
СКД использует около 100 специальных типов и свыше 1000 различных свойств, до 30 уровней вложенности, и это не считая свойств системных перечислений и собственно объектов конфигурации.
Дело усложняется тем, что многие параметры взаимосвязаны и не подлежат прямому изменению.

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

Примечание - при модификации своего отчета(например группировок) нужно не забывать очищать замещаемые параметры, а также учитывать связанные с ними параметры. В формируемом коде очистка автоматом не ставится.

Также конечно интересно - насколько корректен полученный код - для этого в отчете предусмотрены функции сохранения в файл компоновки и сравнения программно-формируемой и исходной.
Сравнение происходит по файлам XML .
Выгруженную схему можно загрузить в свой отчет и проверить "вживую".
При сравнении возможно сообщения несоответствия, связанные с тем, что строковые параметры 1С иногда хранит в своем формате -  на функциональности это не сказывается. В любом случае, при наличии таких сообщений нужно откорректировать код вручную.
Код минимизирован - параметры, которые будут сформированы автоматически идентично схеме - не заполняются.
Пользовательские идентификаторы оставлены для возможности сравнения.
 
Ошибки отлавливаю - и они будут исправлены в будущих версиях, если отчет будет востребован.
Спасибо всем, кто не поленился дочитать этот текст )

Скачать файлы

Наименование Файл Версия Размер
Конвертер схемы СКД
.erf 51,66Kb
12.02.13
773
.erf 51,66Kb 773 Скачать

См. также

Комментарии
1. Maxim k (maxis33) 42 12.02.13 10:13 Сейчас в теме
Интересная разработка, попробую на досуге!
2. mxm2 mxm2 (mxm2) 1036 12.02.13 14:58 Сейчас в теме
3. Яков Коган (Yashazz) 2097 12.02.13 21:25 Сейчас в теме
Мощно. Идея лежала на поверхности, но её надо было воплотить.
Единственно, интерфейс бы дорихтовать - "Группа отбор" это так и задумано, или не поменян заголовок?
4. kiruha Дронов (kiruha) 360 12.02.13 21:26 Сейчас в теме
Да ляп,спасибо - поправлю.
5. semario (semario) 9 13.02.13 06:17 Сейчас в теме
+1 за идею и реализацию... а то в "кишках" копаться иногда ой как неохота)
6. sanches (sanches) 230 13.02.13 06:58 Сейчас в теме
Спасибо, интересно. Обработка только для управляемых форм?
7. 0vrcr PesskoFF (0vrcr) 48 13.02.13 09:45 Сейчас в теме
На скринах не увидел (портянку с кодом не изучал) формирует ли она сам процессор компоновки. Формирует? :) Определение внешних источников данных?
8. kiruha Дронов (kiruha) 360 13.02.13 11:20 Сейчас в теме
(6) sanches,

Да, для управляемых - но добавить обычную не проблема - если кому тонужно
9. kiruha Дронов (kiruha) 360 13.02.13 11:24 Сейчас в теме
(7) 0vrcr,

Нет, она формирует программно только схему компоновки
Дальше я же не знаю что захочет сделать с ней программист
В режиме отбора надо самостоятельно вставить кусок кода куда нужно - т.е. получить схему, очистить например группировки,
потом скопировать и отредактировать код, далее отправить по назначению.
10. Андрей Андреев (Arven) 24 13.02.13 11:40 Сейчас в теме
Спасибо, сильная вещь.
kuzyara; mamanelli; +2 Ответить
11. Lena Denysiuk (Pechenuych_ka) 13.02.13 17:55 Сейчас в теме
12. Алексей Роза (DoctorRoza) 13.02.13 19:12 Сейчас в теме
Поддерживаю, нужная вещица! :)
13. Виталий Черненко (SeiOkami) 592 13.02.13 21:37 Сейчас в теме
Плюс!
Автор, можно реализовать своего рода "конвертёр" отчетов. Чтобы обработка создала файл отчета на основе готового на СКД (ну или просто на основе СКД) и туда прописала этот код. Это так, идея такая в голову пришла)
14. Oleg (Rebel2007) 13.02.13 21:49 Сейчас в теме
Попробую протестить на досуге.
За идею плюс (+)!
15. kiruha Дронов (kiruha) 360 13.02.13 22:21 Сейчас в теме
(13) SeiOkami,
да, интересно, надо обмозговать как это сделать получше...
Все таки отчет не только схема
16. Матрос (Матрос) 14.02.13 04:39 Сейчас в теме
"Плюс".
Спасибо все кто не поленился дочитать этот текст )

Не поленился.
17. Наталья Медведева (masik85) 20 14.02.13 09:29 Сейчас в теме
офигеть +, одно дело мысль, другое дело -реализовать, просто преклоняюсь...
18. psih12 121 14.02.13 10:11 Сейчас в теме
А для обычных форм можете выложить?
19. Dmitriy Kuklin (amadeus2011) 18.02.13 10:21 Сейчас в теме
спасибо автору за интересную разработку, очень помогает при разработке отчетов
20. Vladimir A (wowik) 280 18.02.13 16:42 Сейчас в теме
21. kiruha Дронов (kiruha) 360 19.02.13 22:57 Сейчас в теме
(20)
8.2.17
на предыудищих релизах может не работать, если в платформе были изменения в компоновке
22. Вера Белевич (integragirl) 20.02.13 15:23 Сейчас в теме
Респект автору! Очень полезная вещь, хоть увидеть все кишки скд-шки можно.
23. Yran Kolm (Yran) 20.02.13 19:11 Сейчас в теме
(15) kiruha,
Плюс однозначно, а если еще реализует "конвертёр" (13)SeiOkami тогда 5 плюсов.
24. Елена Петрова (revril) 21.02.13 15:26 Сейчас в теме
Начала изучать СКД. Долго получилась с программной установкой отбора! Думаю с помощью вашей разработки станет более понятнее механизм СКД! Спасибо!
25. Алексей Опарихин (Al-X) 22.02.13 15:33 Сейчас в теме
+ !!! Мне эта обработка точно пригодиться !!! ;)
26. Sasha Забол (zba) 48 24.02.13 17:06 Сейчас в теме
27. Alister (Alister) 9 24.02.13 17:10 Сейчас в теме
для обычных форм можете выложить?

Присоединяюсь к просьбе.
28. Илья Олегович Червяков (amiralnar) 8 09.03.13 17:33 Сейчас в теме
Крута! Спасибо, пригодилась!
29. mi4asib (sheff161) 10.03.13 19:02 Сейчас в теме
выложите для обычных форм
30. Oberonm (oberonm) 9 11.03.13 11:33 Сейчас в теме
31. ivanov660 ivanov660 (ivanov660) 336 12.03.13 11:48 Сейчас в теме
Интересная идея. Будет время попробую поискать с практической точки зрения, вроде и задачка похожая есть.
32. Алекс Ю (AlexO) 116 15.03.13 10:00 Сейчас в теме
(9) kiruha,
Нет, она формирует программно только схему компоновки

Т.е. "иммитирует" программное создание Отбора, Настроек, Добавление полей, Параметры, Запрос и все?
Т.е. основного кода принципа создания и "контроля" за СКД - не формирует?
(13) SeiOkami,
Чтобы обработка создала файл отчета на основе готового на СКД

Какого "готового" СКД? Здесь нет создания самого отчета, его обработки и вывода. Только - схема.
(3) Yashazz,
Мощно. Идея лежала на поверхности, но её надо было воплотить.

Если мощно - то надо написать, что не сам СКД делает программно, а схему настроек.
(22) integragirl,
хоть увидеть все кишки скд-шки можно

нет, не можно. Это не тот конвертер.
(24) revril,
станет более понятнее механизм СКД!

более понятным не станет.
Применение обработки - поменять/добавить параметры и подобное (при том, что еще нужно знать, в какое место этот код добавлять, и где). Но не "сделать отчет на СКД".
33. Алекс Ю (AlexO) 116 15.03.13 10:57 Сейчас в теме
(8) kiruha,
Да, для управляемых

(20) wowik,
На 8.2.13 не работает.

(21) kiruha,
на предыудищих релизах может не работать, если в платформе были изменения в компоновке

- хоть стой, хоть падай. Привет от 1с.
34. Алекс Ю (AlexO) 116 15.03.13 10:58 Сейчас в теме
(25) Al-X,
Мне эта обработка точно пригодиться !

судя по аватаре - нет, не пригодится.
Уже ничего не поможет.
35. Алекс Ю (AlexO) 116 15.03.13 10:59 Сейчас в теме
(29) mi4asib,
выложите для обычных форм

на самом деле, kiruha, доделайте уж страждущим. Пусть радуются :)
36. kiruha Дронов (kiruha) 360 16.03.13 12:25 Сейчас в теме
Так она же для разработчиков - запустил режим управляемого приложения - переконвертировал и все.
Минимум усилий
37. Андрей Карев (lamelioss) 138 25.06.13 18:01 Сейчас в теме
Мощная штуковина =)) автору большое спасибо! )))
38. Андрей Карев (lamelioss) 138 25.06.13 18:02 Сейчас в теме
если будут обновления под нее - вообще шоколад, а то галки по скд искать всесто привычного кода - это сатанизм =))
39. Василий Зайцев (vasiliy_b) 273 26.06.13 08:30 Сейчас в теме
Не работает, в клиент серверном варианте.
Файл(отчет), нужно передавать на сервер через временное хранилище.
40. kiruha Дронов (kiruha) 360 02.07.13 18:00 Сейчас в теме
(39)
Ок, спасибо - поправлю как только с работой разгребусь
41. Владимир Семенов (kruglay) 84 19.07.13 13:56 Сейчас в теме
ТОже плюсану!!!Много работы проделано
42. Марина Чирина (chmv) 24.07.13 15:14 Сейчас в теме
43. Maxim Kolkin (the1) 282 07.08.13 16:34 Сейчас в теме
(0) Обычные формы, плизззз! Заранее плюс и спасибо!
44. Александр (alex_sear) 08.08.13 05:36 Сейчас в теме
За работу жирный плюс, думаю некоторые вещи можно допилить =)
Вопрос автору, разработка данной обработки будет продолжаться?
45. Sabfir Sabfir (Sabfir) 14.08.13 13:27 Сейчас в теме
Классная штука.
Попробовал - очень полезно, не надо вспоминать что да как делается.
Еще бы код вставить который формирует программно отчет.
47. Alex Stasyuk (GreenFox) 16.08.13 13:48 Сейчас в теме
Да обычных форм не хватает, а код который формирует программно отчет можно и самому написать и в себе в шаблонах сохранить. Автор - молодец.
48. andrey dyak (dyak84) 19.08.13 15:54 Сейчас в теме
Автор ваша работа вещь знатная слов нет. Только есть к вам небольшая прозьба все ето дело виложить для обычных форм. Буду очень и очень признательным. Зарание спасибо
49. Несынов Михаил (mixa_gr) 53 05.09.13 11:07 Сейчас в теме
Заметил, что при использовании нескольких групп полей в исходном отчете получается не несколько групп на одном уровне, а группы вложенные одна в другую. Хотя вряд ли кто будет так программно выводить. Как правило достаточно получить результирующую табличку. Отличная разработка. Неплохо бы добавить НЕ управляемую форму.
50. andpyxa (andpyxa) 07.09.13 14:59 Сейчас в теме
Хорошая обработка, но ... хотел добавить обычную форму, открываю управляемую и вижу, что ВыполнитьПреобразованиеСервер() для преобразование вызывает вот такой вот хлам:

Функция bf8ca7868f0b46ca8e0aff9842ca2f2e
(a4bc2cc3040f4a127185588664e56,b3c8d32b68439b8ceb9de3cc700a94,af5874c967904edb82d0ebdf07778a4a,e7f008e4c48e6a042534817346cbc,da9c9c8b78411f9975155bdaac975c,aac765476383f42f6f21678844,d5e02ed4aa386614f3035c50060,bda8d53b5c464b38ade2958a60674b0e,ea312c14e25a862559cbcd8af79,b892134c74215a0dbae7dd491ebd8,df79010b;
...
... и так далее.
Просьба заменить на адекватный текст, нам тут шифроваться не от кого !
51. Константин Куликов (Светлый ум) 203 20.09.13 10:00 Сейчас в теме
Ковертирует только основной макет, а если у меня составной отчет из 8 схем - то не видит.
52. Константин Куликов (Светлый ум) 203 20.09.13 10:03 Сейчас в теме
dyak84, Если управляемую обработку (отчет) поместить в дерево конфигурации - то её можно будет открыть в обычном режиме (псевдоуправляемый).
53. andpyxa (andpyxa) 10.10.13 13:43 Сейчас в теме
Вместо обычных форм можно использовать толстый клиент, или сделать обычную форму самому примерно за час.
54. Игорь Чайкин (ЧИА) 148 13.04.14 21:05 Сейчас в теме
Скачал, хотел посмотреть, как генерятся программно пользовательские поля.
ПользовательскоеПолеВыражениеКомпоновкиДанных
К сожалению, заголовки выбрало, а формулы - нет
55. Василий (васисубатор) 64 14.05.14 22:01 Сейчас в теме
По описанию вещь полезная, жаль посмотреть нет денег
56. kiruha Дронов (kiruha) 360 15.05.14 10:12 Сейчас в теме
Новые публикации невозможно сделать "без смартмани" - это к админам сайта
Также сейчас нет времени на поддержку - на днях выложу с открытым кодом , чтобы править могли все кто пожелает
57. Евгений Сосна (pumbaE) 545 13.06.14 13:09 Сейчас в теме
(56) kiruha, а можно по просить "на днях" поскорей, хоть сырой вариант?
58. Stas Bobkov (stas1kbob) 33 10.07.14 12:44 Сейчас в теме
выглядит круто, не пробовал
59. andpyxa (andpyxa) 25.10.14 22:33 Сейчас в теме
ест уже вариант для загрузки без обсфукации, или пока ещё ждём ?
60. Владимир Курепин (Voffffka) 21 14.07.15 15:15 Сейчас в теме
Нужная вещь, то что искал! Только вот ошибочки бы поправить или код открыть,)
Оставьте свое сообщение