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

Публикация № 1376937

Разработка - Инструментарий разработчика - Прочие инструменты разработчика

СКД программное создание генератор кода

Формирование кода для программного создания схемы компоновки данных (СКД)

Иногда встречаются случаи, когда приходится описывать схему компоновки данных при помощи встроенного языка.

Данная обработка позволяет сформировать код по уже имеющейся схеме.

В тонком клиенте доступна загрузка схемы только из файла.

 

 

В толстом клиенте появляется возможность ещё использовать конструктор схемы компоновки данных.

 

В качестве примера генерации кода возьмем схему отчета «_ДемоДинамикаИзмененийФайлов» из демо базы БСП  3.1.3.331

 
 Схема XML

После загрузки схемы в обработку и нажатии кнопки «Сгенерировать код», генерируется код для конфигуратора, который в дальнейшем можно применить при разработке.

 
 Код для конфигуратора

 

Работоспособность обработки проверена на платформе 1С:Предприятие 8.3 (8.3.16.1814), БСП  3.1.3.331

 

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

Наименование Файл Версия Размер
Генератор кода схемы компоновки данных (СКД):

.epf 20,48Kb
37
.epf 1.1 20,48Kb 37 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. DitriX 1843 04.02.21 13:23 Сейчас в теме
2. Sergspectr 98 04.02.21 13:38 Сейчас в теме
(1) Добрый день. Пока нет, данная опция в планах развития обработки
3. DitriX 1843 04.02.21 15:03 Сейчас в теме
поля кода и хмл можно переделать на monaco, где то тут статья была про это.
4. Sergspectr 98 04.02.21 15:34 Сейчас в теме
5. Dzenn 461 04.02.21 16:57 Сейчас в теме
круто, только не очень понятно зачем ;-)
red80; NoRazum; +2 Ответить
6. Sergspectr 98 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 98 04.02.21 18:40 Сейчас в теме
(7) Честно говоря, ранее не смотрел данную обработку. Сейчас бегло изучил, и сложилось первоначальное сугубо личное мнение. Первое что попадает в глаза, это частичная обфускация кода, что соответственно мешает дальнейшим доработкам под свои интересы. Второе это не очень удобная читабельность итогового кода.
Относительно предварительной генерации xml схемы, да в данной обработке нет возможности выбора отчета, а требуется подгружать xml схему, но так же в ней имеется возможность в пользовательском режиме в толстом клиенте создать свою схему и произвести генерацию кода по ней.
9. infosoft-v 503 04.02.21 22:21 Сейчас в теме
Добрый день. Подскажите пожалуйста адрес этого проекта на GitHub?
10. Sergspectr 98 05.02.21 07:08 Сейчас в теме
(9) Добрый день. На данный момент проект не опубликован на GitHub, возможно в ближайшее время ситуация изменится.
11. sapervodichka 4215 05.02.21 12:57 Сейчас в теме
12. Sergspectr 98 05.02.21 13:05 Сейчас в теме
(11) Пожалуйста. Надеюсь будет полезна в работе.
user1346935; +1 Ответить
13. John_d 3019 07.02.21 19:58 Сейчас в теме
14. Sergspectr 98 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 98 08.02.21 11:13 Сейчас в теме
(16) Спасибо за сообщение.
Закомментируйте пожалуйста строку 824 в модуле формы.
18. kirill_sh 12.02.21 19:28 Сейчас в теме
У вас вся схема разбирается или только часть?
19. Sergspectr 98 13.02.21 14:52 Сейчас в теме
(18) Не затрагиваются макеты и вложенные схемы. Как вариант можете выслать xml схему отчета, созданную в демо базе БСП, в ответ вышлю код сформированный обработкой.
20. kirill_sh 15.02.21 10:24 Сейчас в теме
(19) я спрашиваю вот из-за этого
1 - скрин со схемой, где есть параметры
2 - обработка по кнопке "сгенерировать код"

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


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

В чем может быть проблема?
26. Sergspectr 98 24.02.21 17:52 Сейчас в теме
(25) Добрый день. Один из вариантов возникновения данной ошибки, это использование платформы до релиза 8.3.14, если это так, то закомментируйте пожалуйста строку 921.
27. Dinochka 13 25.02.21 09:09 Сейчас в теме
(26) Добрый день. Да, платформа 8.3.12.
Заработало. Спасибо!
28. Sergspectr 98 25.02.21 09:42 Сейчас в теме
(27) Пожалуйста! Рад, что помогло.
Оставьте свое сообщение

См. также

daСклонение: склонение ФИО, должностей, чисел, прилагательных, существительных на языке 1С + ТестЦентр Промо

Универсальные функции v8 1cv8.cf Абонемент ($m)

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

1 стартмани

14.02.2015    108465    110    daMaster    90    

Сравнение реального дохода со средним доходом из API.HH.RU

Зарплата Управленческие v8 v8::СПР ЗУП3.x УУ Абонемент ($m)

Внешняя обработка на управляемой форме для 1С:Предприятие 8.3 по интеграции с HH.RU используя HH REST API. Ключевые функции: получение списка вакансий по должностям (Ключ для работы не нужен); расчет среднего дохода; Тестирование проводилось на платформе 1С:Предприятие 8.3 (8.3.13.1513) Зарплата и управление персоналом, редакция 3.1 (3.1.11.68) совместно с API.HH.RU.

1 стартмани

11.11.2019    4814    7    solaru    2    

Конфигурация для рекламного агентства

Управление услугами и сервисом Управление взаимоотношениями с клиентами (СRM) Производство готовой продукции (работ, услуг) Управление взаимоотношениями с клиентами (СRM) Производство готовой продукции (работ, услуг) v8 Реклама, PR и маркетинг УУ Абонемент ($m)

Данная конфигурация выполнена для решения тестового задания: Цель задания: 1) Понять, на каком из клиентов сколько мы заработали;  2) Понять, по какому виду СМИ сколько мы заработали;  3) Проследить по каждой услуге: у кого за сколько купили и кому за сколько продали, с возможностью перейти в соответствующий документ. Реализовано с помощью: 1. Справочники - контрагенты, номенклатура 2. Документы - Поступление услуг, реализация услуг 3. Отчеты - отчет по контрагентам, номенклатуре и движений.

1 стартмани

21.05.2019    6189    0    solaru    0    

Загрузка номенклатуры в УТ 10.3 из Excel файла с генерацией штрихкодов

Загрузка и выгрузка в Excel Обработка справочников Оптовая торговля Розничная торговля Учет ТМЦ Оптовая торговля Розничная торговля Учет ТМЦ v8 УТ10 Россия Абонемент ($m)

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

1 стартмани

24.03.2017    8538    7    solaru    0    

Под капотом управляемых форм

Практика программирования v8 1cv8.cf Бесплатно (free)

Управляемые формы уже давно и плотно вошли в жизнь 1С-разработчика. Однако, судя по недавним публикациям на Инфостарте, многие до сих пор мало знакомы с ними. Предлагаю разобраться с тем, что же это такое.

26.08.2013    277031    Evil Beaver    274    

[NotaBene] Универсальный отчет по таблице значений

Практика программирования v7.7 1cv7.md Россия Абонемент ($m)

1C v.7.7 Готовое решение. Не требует настройки. Не требует допрограммирования. Данная обработка решает часто встречающуюся задачу вывода в "красивом" виде таблицы значений (полученной, например, из запроса). Поддерживается произвольное группирование данных, отключение/включение группировок, в т.ч и создание "шахматок" (типа "продажи понедельно"). Обработка может использоваться как и в отладочных целях (для нормального просмотра ТЗ), так и в составе вполне рабочих отчетов. По крайней мере, я неоднократно клиентам данную обработку ставил вместо того, чтобы каждый раз писать замороченные выводы данных. И клиенты довольны, и мне - проще...

2 стартмани

07.05.2007    30295    2900    CheBurator    64