gifts2017

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

Опубликовал kiruha Дронов (kiruha) в раздел Программирование - Инструментарий

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

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


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

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

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

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

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

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

См. также

Подписаться Добавить вознаграждение

Комментарии

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

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

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

Не поленился.
17. Наталья Медведева (masik85) 14.02.13 09:29
офигеть +, одно дело мысль, другое дело -реализовать, просто преклоняюсь...
18. psih12 14.02.13 10:11
А для обычных форм можете выложить?
19. Dmitriy Kuklin (amadeus2011) 18.02.13 10:21
спасибо автору за интересную разработку, очень помогает при разработке отчетов
20. Vladimir A (wowik) 18.02.13 16:42
21. kiruha Дронов (kiruha) 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) 24.02.13 17:06
27. Alister (Alister) 24.02.13 17:10
для обычных форм можете выложить?

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

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

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

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

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

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

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

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

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

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

на самом деле, kiruha, доделайте уж страждущим. Пусть радуются :)
36. kiruha Дронов (kiruha) 16.03.13 12:25
Так она же для разработчиков - запустил режим управляемого приложения - переконвертировал и все.
Минимум усилий
37. Андрей Карев (lamelioss) 25.06.13 18:01
Мощная штуковина =)) автору большое спасибо! )))
38. Андрей Карев (lamelioss) 25.06.13 18:02
если будут обновления под нее - вообще шоколад, а то галки по скд искать всесто привычного кода - это сатанизм =))
39. Василий Зайцев (vasiliy_b) 26.06.13 08:30
Не работает, в клиент серверном варианте.
Файл(отчет), нужно передавать на сервер через временное хранилище.
40. kiruha Дронов (kiruha) 02.07.13 18:00
(39)
Ок, спасибо - поправлю как только с работой разгребусь
41. Владимир Семенов (kruglay) 19.07.13 13:56
ТОже плюсану!!!Много работы проделано
42. Марина Чирина (chmv) 24.07.13 15:14
43. Maxim Kolkin (the1) 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 wer (mixa_gr) 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. Константин Куликов (Светлый ум) 20.09.13 10:00
Ковертирует только основной макет, а если у меня составной отчет из 8 схем - то не видит.
52. Константин Куликов (Светлый ум) 20.09.13 10:03
dyak84, Если управляемую обработку (отчет) поместить в дерево конфигурации - то её можно будет открыть в обычном режиме (псевдоуправляемый).
53. andpyxa (andpyxa) 10.10.13 13:43
Вместо обычных форм можно использовать толстый клиент, или сделать обычную форму самому примерно за час.
54. Игорь Чайкин (ЧИА) 13.04.14 21:05
Скачал, хотел посмотреть, как генерятся программно пользовательские поля.
ПользовательскоеПолеВыражениеКомпоновкиДанных
К сожалению, заголовки выбрало, а формулы - нет
55. Василий (васисубатор) 14.05.14 22:01
По описанию вещь полезная, жаль посмотреть нет денег
56. kiruha Дронов (kiruha) 15.05.14 10:12
Новые публикации невозможно сделать "без смартмани" - это к админам сайта
Также сейчас нет времени на поддержку - на днях выложу с открытым кодом , чтобы править могли все кто пожелает
57. Евгений Сосна (pumbaE) 13.06.14 13:09
(56) kiruha, а можно по просить "на днях" поскорей, хоть сырой вариант?
58. Stas Bobkov (stas1kbob) 10.07.14 12:44
выглядит круто, не пробовал
59. andpyxa (andpyxa) 25.10.14 22:33
ест уже вариант для загрузки без обсфукации, или пока ещё ждём ?
60. Владимир Курепин (Voffffka) 14.07.15 15:15
Нужная вещь, то что искал! Только вот ошибочки бы поправить или код открыть,)
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа