Генератор кода схемы компоновки данных (СКД)

0. 104 04.02.21 11:45 Сейчас в теме
Формирование кода для программного создания схемы компоновки данных (СКД)

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. DitriX 1851 04.02.21 13:23 Сейчас в теме
2. Sergspectr 104 04.02.21 13:38 Сейчас в теме
(1) Добрый день. Пока нет, данная опция в планах развития обработки
3. DitriX 1851 04.02.21 15:03 Сейчас в теме
поля кода и хмл можно переделать на monaco, где то тут статья была про это.
4. Sergspectr 104 04.02.21 15:34 Сейчас в теме
5. Dzenn 485 04.02.21 16:57 Сейчас в теме
круто, только не очень понятно зачем ;-)
red80; NoRazum; +2 Ответить
6. Sergspectr 104 04.02.21 17:56 Сейчас в теме
(5) ) Можно использовать как инструмент-помощник для программного создания настроек компоновки данных, условного оформления и т.д.
7. МихаилМ 04.02.21 18:03 Сейчас в теме
чем Ваше решение лучше convertskd
http://1cskd.ru/2013/02/avtomaticheskoe-preobrazovanie-sxemy-skd-v-programmnyj-kod/ ?

похоже она хуже , тк требует предварительной генерации xml схемы
8. Sergspectr 104 04.02.21 18:40 Сейчас в теме
(7) Честно говоря, ранее не смотрел данную обработку. Сейчас бегло изучил, и сложилось первоначальное сугубо личное мнение. Первое что попадает в глаза, это частичная обфускация кода, что соответственно мешает дальнейшим доработкам под свои интересы. Второе это не очень удобная читабельность итогового кода.
Относительно предварительной генерации xml схемы, да в данной обработке нет возможности выбора отчета, а требуется подгружать xml схему, но так же в ней имеется возможность в пользовательском режиме в толстом клиенте создать свою схему и произвести генерацию кода по ней.
9. infosoft-v 521 04.02.21 22:21 Сейчас в теме
Добрый день. Подскажите пожалуйста адрес этого проекта на GitHub?
10. Sergspectr 104 05.02.21 07:08 Сейчас в теме
(9) Добрый день. На данный момент проект не опубликован на GitHub, возможно в ближайшее время ситуация изменится.
11. sapervodichka 4287 05.02.21 12:57 Сейчас в теме
12. Sergspectr 104 05.02.21 13:05 Сейчас в теме
(11) Пожалуйста. Надеюсь будет полезна в работе.
user1346935; +1 Ответить
13. John_d 3269 07.02.21 19:58 Сейчас в теме
14. Sergspectr 104 08.02.21 07:39 Сейчас в теме
15. Бубузяка 62 08.02.21 10:17 Сейчас в теме
Конечно, плюс. Делать такие операции приходится не часто, а писать инструмент лениво.
16. Бубузяка 62 08.02.21 10:37 Сейчас в теме
Ошибка при генерации кода:
Поле объекта не обнаружено (СвязиНаборовДанных)
{ВнешняяОбработка.ГенераторКодаСКД.Форма.Форма.Форма(824)}:		СтруктураКода.СвязиНаборовДанных.Добавить(КодРазбора.ПолучитьТекст());
{ВнешняяОбработка.ГенераторКодаСКД.Форма.Форма.Форма(113)}:	СгенерироватьКодНаСервере();

Видимо, иногда, в "СтруктураКода.СвязиНаборовДанных" СвязиНаборовДанных - структура.
Схема, вызывающая ошибку в файле.
Прикрепленные файлы:
1.xml
17. Sergspectr 104 08.02.21 11:13 Сейчас в теме
(16) Спасибо за сообщение.
Закомментируйте пожалуйста строку 824 в модуле формы.
18. kirill_sh 12.02.21 19:28 Сейчас в теме
У вас вся схема разбирается или только часть?
19. Sergspectr 104 13.02.21 14:52 Сейчас в теме
(18) Не затрагиваются макеты и вложенные схемы. Как вариант можете выслать xml схему отчета, созданную в демо базе БСП, в ответ вышлю код сформированный обработкой.
20. kirill_sh 15.02.21 10:24 Сейчас в теме
(19) я спрашиваю вот из-за этого
1 - скрин со схемой, где есть параметры
2 - обработка по кнопке "сгенерировать код"

кусок схемы на 1 скрине не преобразуется в код?
Прикрепленные файлы:
21. Sergspectr 104 15.02.21 12:35 Сейчас в теме
(20) Спасибо что нашли данный нюанс. На данный момент не производиться заполнение доступных значений параметра. Данная возможность добавлена в план разработки.
22. Sergspectr 104 15.02.21 13:17 Сейчас в теме
(20) Можно добавить требуемый функционал (не дожидаясь новой версии) добавив следующий код:
1. В цикл процедуры РазборПараметров (строка 1100) добавляем следующий код:
		
		ДоступныеЗначенияПараметра = СтрокаПараметра.ПолучитьДоступныеЗначения(); 
		
		Если Не ДоступныеЗначенияПараметра = Неопределено Тогда
			
			КодРазбора.ДобавитьСтроку("");
			КодРазбора.ДобавитьСтроку("//Доступные значения для параметра - "+СтрокаПараметра.Имя);
			
			КодРазбора.ДобавитьСтроку("ДоступныеЗначенияПараметра = Новый СписокЗначений;");
			
			Для каждого ЗначениеПараметра Из ДоступныеЗначенияПараметра Цикл
				КодРазбора.ДобавитьСтроку("ДоступныеЗначенияПараметра.Добавить("+ПолучитьЗначениеДляКонфигуратора(ЗначениеПараметра.Значение)+","+СформироватьТекстДляКонфигуратора(ЗначениеПараметра.Представление)+");");
			КонецЦикла;
			
			КодРазбора.ДобавитьСтроку("ПараметрСхемы.УстановитьДоступныеЗначения(ДоступныеЗначенияПараметра);");
			
		КонецЕсли;
		
		СтруктураМассива.Вставить("Параметры_ДоступныеЗначения",КодРазбора.ПолучитьТекст());
		КодРазбора.Очистить();
		
Показать


2. В процедуру ЗаполнитьСтруктуруСКД (строка 416) добавляем следующий код:
	
	НоваяСтрока = СтруктураСКД.Добавить();
	НоваяСтрока.НазваниеСтруктуры = "Параметры_ДоступныеЗначения";
	НоваяСтрока.Родитель = "Параметры_Состав";
	НоваяСтрока.Синоним = "Доступные значения";
	НоваяСтрока.Обязательная = Ложь;
23. Summer_13 16.02.21 11:45 Сейчас в теме
Всё отработало, шикарная штука. Молодец!
24. Sergspectr 104 16.02.21 11:59 Сейчас в теме
25. Dinochka 13 24.02.21 17:22 Сейчас в теме
Здравствуйте. Приобрела Вашу обработку. Загрузила схему. При попытке сгенерировать код выдает ошибку:
{ВнешняяОбработка.ГенераторКодаСКД.Форма.Форма.Форма(921)}: Поле объекта не обнаружено (ИспользоватьГруппировкиЗапросаЕслиВозможно)
КодРазбора.ДобавитьСтроку("НаборДанныхЗапросСхемыКомпоновкиДанных.ИспользоватьГруппировкиЗапросаЕслиВозможно = "+Формат(СтрокаНабора.ИспользоватьГруппировкиЗапросаЕслиВозможно, "БЛ=Ложь; БИ=Истина")+";");

В чем может быть проблема?
26. Sergspectr 104 24.02.21 17:52 Сейчас в теме
(25) Добрый день. Один из вариантов возникновения данной ошибки, это использование платформы до релиза 8.3.14, если это так, то закомментируйте пожалуйста строку 921.
27. Dinochka 13 25.02.21 09:09 Сейчас в теме
(26) Добрый день. Да, платформа 8.3.12.
Заработало. Спасибо!
28. Sergspectr 104 25.02.21 09:42 Сейчас в теме
(27) Пожалуйста! Рад, что помогло.
29. Cujoko 7 15.03.21 21:45 Сейчас в теме
Это полезнейшая вещь. Гениально.
30. Sergspectr 104 16.03.21 07:16 Сейчас в теме
31. Cujoko 7 16.03.21 10:55 Сейчас в теме
(30) Там с отборами небольшая трабла. Все группы элементов отбора нызываются "ГруппаЭлементовОтбора" или что-то подобное. Даже если группа находится в другой группе, обе они называются одинаково. Их надобно переименовывать: типа "ГруппаЭлементовОтбора1" и "ГруппаЭлементовОтбора2".
32. Sergspectr 104 19.03.21 08:57 Сейчас в теме
(31) Спасибо за комментарий. Учту при обновлении.
33. Cujoko 7 21.03.21 19:02 Сейчас в теме
(32) Ещё, если у группы отбора есть представление, то оно тоже не попадает в код. Ещё у параметров "ВключатьВДоступныеПоля" не попадает в код.
34. wizard.ilmir02 107 26.04.21 08:48 Сейчас в теме
Добрый день! А можете рассказать примеры когда тогда случаи бывают, что необходимо формировать код СКД програмно на основе макета?
35. Sergspectr 104 02.05.21 18:00 Сейчас в теме
(34) Добрый день! Один из вариантов - это подмена схемы под различные условия, пример подобных реализаций можно посмотреть в типовых конфигурациях, например, БП 3.0 отчеты ОСВ и Карточка счета. В большинстве случаев использую при программном формировании условного оформления.
Оставьте свое сообщение
Вопросы с вознаграждением