Тонкий конструктор СКД (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С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

12000 руб.

02.09.2020    101579    563    385    

608

Онлайн-интенсив "DevOps для 1С". с 5 февраля по 19 марта 2024 г.

Инструментарий разработчика DevOps и автоматизация разработки DevOps для 1С Платные (руб)

Данный онлайн-курс (интенсив) предусматривает изучение процессов, инструментов и методик DevOps, их применение при разработке на платформе 1С. 

25000 руб.

20.06.2023    11473    3    2    

142

PowerTools

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

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

3600 руб.

14.01.2013    172899    1042    0    

815

Infostart PrintWizard

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

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

18000 руб.

06.10.2023    3473    3    0    

17

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

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

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

10000 руб.

10.11.2023    1371    3    1    

20

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

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

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

5000 руб.

07.02.2018    97565    237    97    

287

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

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

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

2400 руб.

24.09.2019    22370    14    15    

27

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

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

Программист - это человек, непрерывно принимающий решения. Написание кода не является процессом принятия решения - это всего лишь трансляция ваших желаний. Если вас периодически тяготит написание сотен строк кода ради решения задач, то прошу обратить внимание. Данный продукт позволит существенно сократить время на рутинные операции при разработке. За счет библиотечной реализации сокращается объём кода, а его читаемость повышается. К библиотеке прилагается документация API и шаблоны кода для наиболее популярных методов.

4200 руб.

16.04.2021    13826    5    9    

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