Тонкий конструктор СКД (Infostart Toolkit)

01.09.21

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

Реализация конструктора СКД с нуля для управляемых форм. Контекстная подсказка для языка выражений СКД и другое.

Начало

IS Toolkit набор инструментов, который позволяет разрабатывать схемы и отчеты на СКД через консоль компоновки данных, инструменты используются только для управляемых форм, а конструктор СКД от 1С у нас работает только с обычными формами.

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

Решено было исправить эту проблему реализовав свой конструктор СКД с нуля. В основном конструктор повторяет реализацию в 1С с улучшениями. Важно чтобы разработчикам не нужно было привыкать к чему-то новому.

Задача очень сложная уже работаю над ней с разной степенью приложения усилий более полугода. Ранее рассказывал о том что разработка ведется в докладе "Infostart Toolkit – инструмент, в котором сделано то, что давно просят от 1С" (Инфостарт Евент 2021 Санкт-Петербург), но тогда версия еще была далека от релиза. Первая реализация, которая достойна описания, появилась в IS Toolkit с версии 2.0, которая вышла несколько дней назад.

 

 

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

Главные плюсы

 

Конструктор по умолчанию выключен, включается Настройки - Общие - Конструктор СКД - Toolkit (тестовый)

 

 

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

 

 
 Редактирование выражения

Удобный редактор выражений (требуется платформа 8.3.14)

Функциональность:

  • Подцветка синтаксиса
  • Контекстная подсказка по полям и параметрам
  • Подсказка по функциям например, ВычислитьВыражениеСГруппировкойТаблицаЗначений :)
  • Шаблоны Выбор и др.
 
 Работа с группами и наборами полей

В стандартном конструкторе очень неудобно реализована работа с группами и наборами полей, весьма не очевидным образом через путь к данным. Поля разбросаны от своих родителей. И чтобы включить поле в группу нужно в путь к данным добавлять префикс "<ИмяГруппы>."

Стандартный конструктор от 1С

Схема в тонком конструкторе

Поддерживается перенос полей через Drag & Drop и удалось полностью уйти от поля путь к данным

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

 

Что не реализовано (известные проблемы)

  • Макеты (только просмотр)
  • Редактирование настроек вложенной схемы
  • Автоматическое получение ролей полей по тексту запроса
  • Форма конструктор настроек структуры
  • Установка типов параметра Системные перечисления, Характеристика, ОпределяемыйТип
 
 Чем лучше конструктора из универсальных инструментов разработчика?

 

Консоль компоновки данных Тонкий Конструктор СКД

См. также

SALE! %

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

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

12000 10000 руб.

02.09.2020    161230    892    399    

872

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 руб.

20.08.2024    8548    65    29    

76

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    15672    38    8    

73

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

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

9360 руб.

17.05.2024    23835    70    45    

119

SALE! %

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

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

15000 10000 руб.

10.11.2023    10653    38    27    

63

SALE! %

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

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

4800 3840 руб.

14.01.2013    188475    1142    0    

913

SALE! %

Инструментарий разработчика Программист 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

20000 15000 руб.

07.10.2021    17549    6    32    

42

Инструментарий разработчика Программист Платные (руб)

Менеджер конфигураций 1С — альтернативный стартер информационных баз 1С:Предприятие.

1800 руб.

21.02.2023    7828    8    35    

23
Отзывы
4. Yashazz 4794 01.09.21 11:55 Сейчас в теме
Ну что ж. Мы долго ждали, что 1С сподобится сама... Респект тем, кто взялся за сей непростой труд.
Сложного, правда, ничего, но объём работ внушительный... Занудно делать, если честно, поэтому лично от меня дважды респект.
MCV; KrutoyGeniy; KaMa3; chrnv; ong1990; mike1970; yku; so-quest; salexdv; klaus38; rabid_otter; dhurricane; ABudnikov; antonius888; cleaner_it; Evg-Lylyk; +16 Ответить
Остальные комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. echo77 1907 01.09.21 11:45 Сейчас в теме
Это интересно.
Не увидел на скриншоте на вкладке Наборы данных свойство Путь. Он всегда будет равен свойству Поле?
2. Evg-Lylyk 4854 01.09.21 11:47 Сейчас в теме
(1) В полях используется дерево и путь к данным собирается по дереву. Например, поле1 в Группе1 при сборке схемы получит путь Группа1.Поле1
3. echo77 1907 01.09.21 11:50 Сейчас в теме
(2) О! это еще лучше! А порядок полей можно будет менять на вкладке наборы данных, Вычисляемые поля? В штатном конструкторе СКД этого сделать нельзя и приходится выгружать схему в XML, править порядок и загружать заново.
Evg-Lylyk; ixijixi; +2 Ответить
4. Yashazz 4794 01.09.21 11:55 Сейчас в теме
Ну что ж. Мы долго ждали, что 1С сподобится сама... Респект тем, кто взялся за сей непростой труд.
Сложного, правда, ничего, но объём работ внушительный... Занудно делать, если честно, поэтому лично от меня дважды респект.
MCV; KrutoyGeniy; KaMa3; chrnv; ong1990; mike1970; yku; so-quest; salexdv; klaus38; rabid_otter; dhurricane; ABudnikov; antonius888; cleaner_it; Evg-Lylyk; +16 Ответить
5. Evg-Lylyk 4854 01.09.21 12:06 Сейчас в теме
(3) Да конечно через drag & drop, не проблема и кнопки добавить исходил из минималистичности интерфейса.
Теперь можно исправить многое
6. rpgshnik 3797 01.09.21 12:08 Сейчас в теме
Тема однозначно заслуживает внимания! Жирный лайк!
7. akim2040 47 01.09.21 13:58 Сейчас в теме
А когда релиз то выйдет, хочу обновиться ))
8. Evg-Lylyk 4854 01.09.21 14:01 Сейчас в теме
(7) Уже выложен в основной публикации IS Toolkit
9. akim2040 47 01.09.21 14:02 Сейчас в теме
(8) так в этом и беда, в кабинете покупателя недоступно
Прикрепленные файлы:
10. Evg-Lylyk 4854 01.09.21 14:04 Сейчас в теме
(9) Нужно написать в поддержку ИС
Прикрепленные файлы:
11. Evg-Lylyk 4854 01.09.21 16:56 Сейчас в теме
(9) Еще пишут что есть кнопка "Получить обновления", на почту упадет последняя версия
12. akim2040 47 01.09.21 16:57 Сейчас в теме
(11) Не, не работает к сожалению. Это самое первое что пробовал.
Он не видит, что есть новая версия
13. JohnyDeath 302 07.09.21 09:50 Сейчас в теме
Огромный труд был проделан! Почет и уважение таким разработчикам!
14. It-developer 26 01.02.22 12:49 Сейчас в теме
Для мобильного приложения кто напишет?
15. Evg-Lylyk 4854 01.02.22 12:54 Сейчас в теме
(14) оно там нужно? Это же очень неудобно
16. It-developer 26 01.02.22 12:56 Сейчас в теме
Хотя бы способ закинуть текст запроса, установить параметры и посмотреть что получилось. Конструктор запроса там, скорее всего, будет неудобен
17. Evg-Lylyk 4854 01.02.22 13:00 Сейчас в теме
(16) Если без конструктора упрощённо, написать подобное будет несложно. Есть объект СхемаКомпоновкиДанных с ним работать.
It-developer; +1 Ответить
18. qwed557 30 28.02.22 12:11 Сейчас в теме
В тонком конструкторе не получилось настроить связь между несколькими наборами. Не дает выбрать источник и приемник.
Прикрепленные файлы:
19. Evg-Lylyk 4854 28.02.22 13:38 Сейчас в теме
(18) В некоторых возникают платформах проблемы с выводом списка выбора, работает с клавиатуры вниз.
Какая у вас платформа? постараемся найти обход
20. qwed557 30 28.02.22 14:17 Сейчас в теме
(19) Не работает стрелка вниз, ничего не происходит. Платформы 8.3.18.1741 и 8.3.20.1710 , поведение одинаковое.
21. qwed557 30 28.02.22 14:23 Сейчас в теме
у меня нет острой необходимости в этом функционале, я просто как в багтрекер написал, вдруг не знали )
22. Evg-Lylyk 4854 28.02.22 16:11 Сейчас в теме
23. rugubara 19 16.07.23 21:28 Сейчас в теме
Не смог заставить работать конструктор с параметрами виртуальных таблиц. Всегда пишет ошибку Несоответствие типов (Параметр номер ""1"")

	<parameter>
		<name>ОкончаниеПериода</name>
		<title xsi:type="v8:LocalStringType">
			<v8:item>
				<v8:lang>ru</v8:lang>
				<v8:content>Окончание периода</v8:content>
			</v8:item>
		</title>
		<valueType>
			<v8:Type>xs:dateTime</v8:Type>
			<v8:DateQualifiers>
				<v8:DateFractions>DateTime</v8:DateFractions>
			</v8:DateQualifiers>
		</valueType>
		<value xsi:type="xs:dateTime">0001-01-01T00:00:00</value>
		<useRestriction>true</useRestriction>
		<expression>&Период.ДатаОкончания</expression>
		<availableAsField>false</availableAsField>
	</parameter>
Показать

Хотя запрос элементарный и в консоли запросов работает без проблем:
 ВЫБРАТЬ
	ТоварыКОтгрузкеОстатки.Склад КАК Склад,
	ТоварыКОтгрузкеОстатки.Получатель КАК Получатель,
	ТоварыКОтгрузкеОстатки.ДокументОтгрузки КАК ДокументОтгрузки,
	ТоварыКОтгрузкеОстатки.Номенклатура КАК Номенклатура,
	ТоварыКОтгрузкеОстатки.Характеристика КАК Характеристика,
	ТоварыКОтгрузкеОстатки.Назначение КАК Назначение,
	ТоварыКОтгрузкеОстатки.Серия КАК Серия,
	ТоварыКОтгрузкеОстатки.ВРезервеОстаток КАК ВРезервеОстаток,
	ТоварыКОтгрузкеОстатки.КОтгрузкеОстаток КАК КОтгрузкеОстаток,
	ТоварыКОтгрузкеОстатки.КОформлениюОстаток КАК КОформлениюОстаток,
	ТоварыКОтгрузкеОстатки.КСборкеОстаток КАК КСборкеОстаток,
	ТоварыКОтгрузкеОстатки.СобираетсяОстаток КАК СобираетсяОстаток,
	ТоварыКОтгрузкеОстатки.СобраноОстаток КАК СобраноОстаток,
	1 КАК Линии
ИЗ
	РегистрНакопления.ТоварыКОтгрузке.Остатки(&ОкончаниеПериода,) КАК ТоварыКОтгрузкеОстатки 
Показать

Платформа 1С:Предприятие 8.3 (8.3.22.1750) тонкий клиент.
Оставьте свое сообщение