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

01.09.21

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

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

Начало

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

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

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

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

 

 

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

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

 

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

 

 

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

 

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

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

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

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

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

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

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

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

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

 

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

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

 

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

См. также

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

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

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

10000 руб.

02.09.2020    124555    681    389    

732

Infostart PrintWizard

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

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

18000 руб.

06.10.2023    7714    24    6    

42

Infostart УДиФ: Управление данными и формами

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

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

10000 руб.

10.11.2023    4231    12    2    

36

SALE! %

PowerTools

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

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

3600 2880 руб.

14.01.2013    178557    1083    0    

861

Многопоточность. Универсальный «Менеджер потоков» 2.1

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

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99579    239    97    

298

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18348    6    8    

40

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

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

2400 руб.

24.09.2019    23840    16    15    

33

1С HTML Шаблоны / HTML Templates

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

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28294    3    10    

15
Отзывы
4. Yashazz 4722 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 1880 01.09.21 11:45 Сейчас в теме
Это интересно.
Не увидел на скриншоте на вкладке Наборы данных свойство Путь. Он всегда будет равен свойству Поле?
2. Evg-Lylyk 4614 01.09.21 11:47 Сейчас в теме
(1) В полях используется дерево и путь к данным собирается по дереву. Например, поле1 в Группе1 при сборке схемы получит путь Группа1.Поле1
3. echo77 1880 01.09.21 11:50 Сейчас в теме
(2) О! это еще лучше! А порядок полей можно будет менять на вкладке наборы данных, Вычисляемые поля? В штатном конструкторе СКД этого сделать нельзя и приходится выгружать схему в XML, править порядок и загружать заново.
Evg-Lylyk; ixijixi; +2 Ответить
4. Yashazz 4722 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 4614 01.09.21 12:06 Сейчас в теме
(3) Да конечно через drag & drop, не проблема и кнопки добавить исходил из минималистичности интерфейса.
Теперь можно исправить многое
6. rpgshnik 3645 01.09.21 12:08 Сейчас в теме
Тема однозначно заслуживает внимания! Жирный лайк!
7. akim2040 41 01.09.21 13:58 Сейчас в теме
А когда релиз то выйдет, хочу обновиться ))
8. Evg-Lylyk 4614 01.09.21 14:01 Сейчас в теме
(7) Уже выложен в основной публикации IS Toolkit
9. akim2040 41 01.09.21 14:02 Сейчас в теме
(8) так в этом и беда, в кабинете покупателя недоступно
Прикрепленные файлы:
10. Evg-Lylyk 4614 01.09.21 14:04 Сейчас в теме
(9) Нужно написать в поддержку ИС
Прикрепленные файлы:
11. Evg-Lylyk 4614 01.09.21 16:56 Сейчас в теме
(9) Еще пишут что есть кнопка "Получить обновления", на почту упадет последняя версия
12. akim2040 41 01.09.21 16:57 Сейчас в теме
(11) Не, не работает к сожалению. Это самое первое что пробовал.
Он не видит, что есть новая версия
13. JohnyDeath 301 07.09.21 09:50 Сейчас в теме
Огромный труд был проделан! Почет и уважение таким разработчикам!
14. It-developer 24 01.02.22 12:49 Сейчас в теме
Для мобильного приложения кто напишет?
15. Evg-Lylyk 4614 01.02.22 12:54 Сейчас в теме
(14) оно там нужно? Это же очень неудобно
16. It-developer 24 01.02.22 12:56 Сейчас в теме
Хотя бы способ закинуть текст запроса, установить параметры и посмотреть что получилось. Конструктор запроса там, скорее всего, будет неудобен
17. Evg-Lylyk 4614 01.02.22 13:00 Сейчас в теме
(16) Если без конструктора упрощённо, написать подобное будет несложно. Есть объект СхемаКомпоновкиДанных с ним работать.
It-developer; +1 Ответить
18. qwed557 30 28.02.22 12:11 Сейчас в теме
В тонком конструкторе не получилось настроить связь между несколькими наборами. Не дает выбрать источник и приемник.
Прикрепленные файлы:
19. Evg-Lylyk 4614 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 4614 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) тонкий клиент.
Оставьте свое сообщение