FormEditor - поставляемый модуль программного создания элементов форм

30.12.19

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

Упрощенное добавление реквизитов формы, добавление их на форму (в том числе и таблиц), также добавление групп, команд формы и кнопок к ним.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
FormEditor - Поставляемый модуль программного создания элементов форм:
.cf 18,34Kb ver:1.0.3.4
51
51 Скачать (1 SM) Купить за 1 850 руб.

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

Концепция модуля:  Модуль поставляется через поставку. Проверка обратной совместимости новых версий модуля, обеспечивается обработкой тестирования, обновляющейся версии. Модуль имеет сборочную линию на Jenkins, собирающую релиз из проекта EDT и запускающую сценарий тестирования ADD(не опубликована).

Программный интерфейс, добавляющий элементы на форму всегда использует контекст элемента, создается функцией СоздатьКонтекстЭлемента.

Контекст элемента - структура, со свойствами:

  1. Форма - Форма добавления элемента.
  2. Родитель - Группа добавляемого элемента
  3. РасположитьПередЭлементом - элемент, перед которым будет расположен элемент.
  4. Свойства -  структура, содержащая свойства элемента, которые будут установлены новому элементу.

Остальная логика реализована в функциях, отвечающих за добавление соответствующих элементов.

Полная документацияhttps://github.com/huxuxuya/1cFormEditor/blob/master/README.md

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

Основные возможности:

  • Добавление групп на форму
  • Добавление таблиц на форму
  • Добавление команд и вывод на форму
  • Добавление элементов формы и объекта

Зачем нужен модуль?

Меньше строк

Лучше читабельность

Пример формы полностью сгенерированной модулем:

 

Описание демонстрационного примера использования:

  • В примере показывается добавление модуля в типовую конфигурацию, изначально, находящуюся на поддержке, с добавлением конфигурации поставщика поставляемого модуля.
  • Добавление реквизитов и табличной части в метаданные документа.
  • Программный вывод элементов на форму: 
  • Новой страницы
  • Булевого реквизита
  • Числового реквизита
  • Многострочного реквизита
  • Табличной части документа с колонками

Код демонстрационного примера:

	//Добавление страницы
	КонтекстСтраницы = РедакторФорм.СоздатьКонтекстЭлемента(ЭтотОбъект);
	КонтекстСтраницы.Свойства.Вставить("Вид", ВидГруппыФормы.Страница);
	КонтекстСтраницы.Свойства.Вставить("Заголовок", "График оплат");
	КонтекстСтраницы.Родитель = Элементы.Страницы;
	СтраницаГрафикОплат = РедакторФорм.ДобавитьГруппуНаФорму(КонтекстСтраницы, "префикс_СтраницаГрафикОплат");
	
	//Добавление таблицы на форму
	КонтекстГрафикОплат = РедакторФорм.СоздатьКонтекстЭлемента(ЭтотОбъект, СтраницаГрафикОплат);
	СтруктураКолонок = Новый Структура;
	СтруктураКолонок.Вставить("префикс_ГрафикОплатДатаОплаты", "ДатаОплаты");
	СтруктураКолонок.Вставить("префикс_ГрафикОплатПроцентОплаты", "ПроцентОплаты");
	ЭлементТаблицаОплат = РедакторФорм.ДобавитьТаблицуНаФорму(КонтекстГрафикОплат, "префикс_ГрафикОплаты", "Объект.префикс_ГрафикОплаты", СтруктураКолонок);
	
	//Добавление многострочного поля
	КонтекстОписания = РедакторФорм.СоздатьКонтекстЭлемента(ЭтотОбъект, СтраницаГрафикОплат);
	РедакторФорм.ДобавитьМногострочноеПолеРеквизитОбъекта(КонтекстОписания, "префикс_ОписаниеЭтаповОплаты");
	
	//Добавление группы скидки
	КонтекстГруппаСкидка = РедакторФорм.СоздатьКонтекстЭлемента(ЭтотОбъект, ЭтотОбъект, Элементы.ОтветственныйКомментарий);
	КонтекстГруппаСкидка.Свойства.Вставить("Группировка", ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяВсегда);
	
	ГруппаСкидка = РедакторФорм.ДобавитьГруппуОбычную(КонтекстГруппаСкидка, "ГруппаСкидка");
	
	КонтекстСумма = РедакторФорм.СоздатьКонтекстЭлемента(ЭтотОбъект, ГруппаСкидка);
	ЭлементПроцентСкидки = РедакторФорм.ДобавитьРеквизитОбъектаНаФорму(КонтекстСумма, "префикс_ПроцентСкидки");
	
	КонтекстСумма.Свойства.Вставить("ТолькоПросмотр", Истина);
	ЭлементСуммаСкидки = РедакторФорм.ДобавитьРеквизитОбъектаНаФорму(КонтекстСумма, "префикс_СуммаСкидки");
	
	//Добавление группы менеджера
	КонтекстМенеджерГруппа = РедакторФорм.СоздатьКонтекстЭлемента(ЭтотОбъект, Элементы.ШапкаСправа);
	РедакторФорм.ДобавитьГруппуСКолонкамиЛевоИПраво(КонтекстМенеджерГруппа, "ГруппаМенеджер");
	
	КонтекстМенеджер = РедакторФорм.СоздатьКонтекстЭлемента(ЭтотОбъект, Элементы.ГруппаМенеджерЛево);
	ЭлементЕстьМенеджер = РедакторФорм.ДобавитьРеквизитОбъектаНаФорму(КонтекстМенеджер, "префикс_ЕстьМенеджер");
	
	КонтекстМенеджер.Родитель = Элементы.ГруппаМенеджерПраво;
	КонтекстМенеджер.Свойства.Вставить("ПоложениеЗаголовка", ПоложениеЗаголовкаЭлементаФормы.Нет);
	КонтекстМенеджер.Свойства.Вставить("РастягиватьПоГоризонтали", Ложь);
	КонтекстМенеджер.Свойства.Вставить("Ширина", 35);
	
	ЭлементМенеджер = РедакторФорм.ДобавитьРеквизитОбъектаНаФорму(КонтекстМенеджер, "префикс_Менеджер");

Видеозапись разработки примера для демонстрации использования модуля и добавление его через поставку для типовой конфигурации(видео без звука).

Платформы на которых протестирована работа конфигурации:
8.3.13.1644
8.3.14.1630
8.3.16.869
8.3.16.1063

UI UX Интерфейс Элементы Управляемая форма ЭтаФорма Кнопка Поле Группа Динамический список программно программное

См. также

SALE! 15%

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

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

10000 руб.

02.09.2020    159335    872    399    

861

SALE! 15%

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

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

8400 7140 руб.

20.08.2024    7752    55    22    

66

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

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

9360 руб.

17.05.2024    23416    68    45    

117

SALE! 15%

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

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

10000 8500 руб.

10.11.2023    10404    36    20    

61

SALE! 15%

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

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

22200 19980 руб.

06.10.2023    15384    35    7    

70

SALE! 35%

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

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

4800 3120 руб.

14.01.2013    187961    1138    0    

912

SALE! 15%

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

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

15000 12750 руб.

07.10.2021    17295    6    32    

42

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

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

1800 руб.

21.02.2023    7691    8    35    

23
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Dzenn 894 20.12.19 12:18 Сейчас в теме
А что не так с обычным программным созданием элементов форм?
cio-rbauto; +1 Ответить
2. noprogrammer 239 20.12.19 12:28 Сейчас в теме
(1) Это и есть обычное программное создание элементов формы - только преподнесено́ как подсистема.
3. Dzenn 894 20.12.19 12:30 Сейчас в теме
(2) как всё сложно в нашем бренном мире ;-)
4. noprogrammer 239 20.12.19 12:33 Сейчас в теме
(3) Так никто и не говорил, что будет легко :)

Автору стоит посмотреть в сторону расширений (и перехвата событий "ПриСозданииФормы" и т.д.).
5. huxuxuya 376 20.12.19 12:48 Сейчас в теме
(4)Не хотелось бы начинать холивар, но этот модуль как раз что бы не использовать расширение, а дорабатывать конфигурацию, находящуюся на поддержке и в дальнейшем обновлять ее используя трёхсторонней сравнение.
15. DELOVOYDOM 09.02.24 03:17 Сейчас в теме
(2) Я тоже не понял столько текста из ничего. Все современные решения сейчас на расширениях, пару минут и внедрил клиенту. Пару минут и 1с не узнать. Автор молодец что провел лабораторную работу "как я научился программно создавать форму" так, что поддерживать потом от 100 клиентов было бы невозможно).
6. huxuxuya 376 20.12.19 13:56 Сейчас в теме
(1)Тут можно переиспользовать контекст элемента, т.е. настроил как должен выглядеть определенный вид элемента и клепаешь дальше одной строчкой аналогичные.
Так же думаю что быстрее ту же табличную часть на форму добавить, для этого нужно имя табличной части, да имена колонок в структуре.
Группу создать у которой будут две группы внутри - правая и левая, тоже достаточно частая задача которая тоже решается одной строчкой.
Команду - гиперссылки добавить тоже строчек меньше должно получиться чем все писать кодом обычным.
Грубо говоря фреймворк.

Если будут идеи, чего не хватает, буду рад узнать.
7. Steelvan 306 20.12.19 18:15 Сейчас в теме
Мало написать программу, надо еще доказать что она нужна :)
DELOVOYDOM; VitalyKepov; ITSun; rovenko.n; acanta; +5 Ответить
16. DELOVOYDOM 09.02.24 03:19 Сейчас в теме
(7) В этой публикации 1% информации про 1с и 99% процентов доказывания как это нужно и почему автору так показалось
8. kirill_sh 2 23.12.19 12:08 Сейчас в теме
Добрый день, данная подсистема может добавлять команды формы, общие команды?
9. Светлый ум 415 23.12.19 12:33 Сейчас в теме
10. huxuxuya 376 23.12.19 12:39 Сейчас в теме
(8) Добавлять команды формы и выводить команды на форму можно как в виде кнопок так и гиперссылок и кнопок командной панели.

Общие команды пока что нет.

https://github.com/huxuxuya/1cFormEditor/blob/master/README.md

Тут перечень функций есть можно посмотреть что есть.

Картинку тестовой обработки которая программно сформирована сегодня постараюсь выложить, что бы были визуально видны возможности модуля.
11. JohnyDeath 302 29.03.21 12:10 Сейчас в теме
Как создать новый реквизит формы и на его основании новый элемент формы.
Судя по коду общего модуля, метод "ИзменитьРеквизиты" вызывается только в функции "ДобавитьДинамическийСписокФормы".
Или я что-то не так смотрю?
12. huxuxuya 376 01.04.21 16:46 Сейчас в теме
(11) Новые реквизиты формы добавлять надо самым обычным кодом перед тем как выводить их на форму, чтобы один раз вызывать ИзменитьРеквизиты.

Стандартный код добавления реквизита на форму с среднем занимает одну строчку, если количество реквизитов больше 3х штук. :)

Поэтому тут особо упрощать нечего.

А ИзменитьРеквизиты при добавлении динамического списка, я над этим медитирую периодически и убрать хочется и если убрать, то функция смысл теряет, не знаю еще что с динамическим списком делать :(.
13. sergo5 07.09.22 12:53 Сейчас в теме
Добрый день. Подскажите, пожалуйста, есть ли обновление данной разработки. и как можно их получить? спасибо
14. huxuxuya 376 13.09.22 10:19 Сейчас в теме
Добрый день.
На гитхабе должно быть все самое актуальное, но сомневаюсь что в разработке менялось в последнее время.
Если какие проблемы есть пишите там ишьюзы
https://github.com/huxuxuya/1cFormEditor
https://github.com/huxuxuya/FormCodeGenerator
Оставьте свое сообщение