Программный интерфейс для доработки форм

11.01.22

Разработка - Работа с интерфейсом

Реализовал простой способ программного создания новых элементов, команд и реквизитов на форме.

Понимаю, что тема не новая, и что есть тут же подобные публикации.

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

Пока этот механизм доработан не до конца: нет работы с таблицей и декорацией. Так как разрабатывал это всё по потребностям.

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

Примерно так может быть организована общая процедура по доработке форм:

 
 Общая процедура доработки форм

Далее представлены основные функции по программной работе с формой:

 
 Добавление реквизита/ов
 
 Добавление команды
 
 Добавление поля
 
 Добавление кнопки
 
 Добавление группы

Также были добавлены две обобщенные функции, создающие за раз команду с кнопкой и реквизит с полем:

 
 Добавление реквизита и поля в одну строчку
 
 Добавление команды и кнопки в одну строчку

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

 
 Служебная функция получения произвольного реквизита формы по пути
 
 Служебная функция получения заголовка по имени

Скопировать весь код сразу и следить за изменениями: github.com/AtamanovYS/interface-for-developing-forms

 
 Весь код программного интерфейса (без лишнего кода)

 

Программирование Интерфейс Формы Программно

См. также

Работа с интерфейсом Программист Платформа 1С v8.3 Конфигурации 1cv8 1С:ERP Управление предприятием 2 Платные (руб)

Обработка предназначена для создания и управления дашбордами.

2400 руб.

29.06.2020    17678    24    6    

38

Работа с интерфейсом Программист Платформа 1С v8.3 Бесплатно (free)

Пример простого и симпатичного прогресс-бара в динамическом списке, без картинок, используя редактирование запроса.

27.05.2024    5467    smielka    37    

96

Работа с интерфейсом Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    12514    789    elcoan    47    

110

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

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

2 стартмани

10.04.2023    10697    158    acces969    31    

120

Работа с интерфейсом Программист Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

"MVC плохо применима в 1С" - познакомьтесь с моделью состояния и, возможно, ваше мнение поменяется! Представленное решение является эволюционным развитием идеи реализации MVC для 1С. В новой версии добавлены DSL для описания модели состояния, а также параметризация свойств параметров и элементов формы.

1 стартмани

05.07.2022    4631    kalyaka    6    

32

Работа с интерфейсом Платформа 1С v8.3 Платные (руб)

Подсистема условного оформления элементов форм (далее подсистема) предназначена для настройки оформления элементов форм (видимость, доступность, цвет фона, цвет текста и прочее) в пользовательском режиме 1С. Также подсистему возможно использовать для ограничения доступа к реквизитам формы для определенных пользователей (или групп пользователей).

6000 руб.

18.01.2022    9388    1    2    

6
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. retr0 25.11.21 10:03 Сейчас в теме
Так, в документообороте 3 уже давно есть модуль называется РаботаСФормами, при желании этот модуль можно выдернуть в расширение для любой другой конфигурации и адаптировать процедуры/функции под свои нужды. В целом он и из коробки хорошо работает.
DrAku1a; salexdv; TMV; EliasShy; ubnkfl; +5 2 Ответить
3. Dementor 1026 25.11.21 18:17 Сейчас в теме
(1) забавный у вас комментарий )))

1. "Документооборота 3" пока нет в релизе, так как до сих пор не написаны правила конвертации, чтобы перейти с 2.1 (они не совместимы). В этом контексте "уже давно есть" звучит странно.
2. Копировать код из конфигураций, а дальше "выдернуть в расширение для любой другой конфигурации и адаптировать процедуры/функции под свои нужды" разрешается только при условии покупки коробки.
Светлый ум; Evg-Lylyk; IgorS; triviumfan; semagin@gmail.com; DrAku1a; mrChOP93; mihap; +8 Ответить
5. retr0 26.11.21 06:44 Сейчас в теме
(3) Что ты "забавного" видишь в моем комментарии? Пол года для меня уже считается давно, то что она есть или нет в релизе значения не имеет, я назвал конкретный модуль, с работающими функциями. Причем здесь твои правила конвертации и какие-то переходы не понятны вообще. Конкретный модуль не является каким-то особенным, у меня, у самого имелся аналогичный, еще до того как я увидел их реализацию.
nkp14108; ubnkfl; +2 6 Ответить
15. ser6702 170 29.11.21 13:40 Сейчас в теме
(1)
РаботаСФормами


верное замечание ДО 3 еще не в релизе - ничего особенного в публикации нет кроме одного - все собрано в одно место и если еще с таблицами форм доделано будет то выглядит как законченный продукт. + за то что человек собрал и структурировал. Пользуйтесь и не требуется лезть в бета релиз
dimaster; +1 Ответить
2. Дмитрий74Чел 237 25.11.21 17:50 Сейчас в теме
За оформление плюс. Не хватает возможности передать произвольные значения свойств в функцию создания поля: Видимость, Доступность и т.п. - структурой. А также передать имя события и имя процедуры, которая должна быть назначена обработчиком ("ПриИзменении", "НовоеПолеПриИзменении")
AtamanovYS; +1 Ответить
4. AtamanovYS 155 25.11.21 18:51 Сейчас в теме
(2) Неплохая идея, позже что-нибудь придумаю. Полезно будет, когда сразу нужно создать много аналогичных элементов, чтобы не переназначать свойства (хотя часть свойств через "Эталон" можно и сейчас копировать).
При создании же единичного элемента представляется излишним такая передача. Проще после получения элемента через точку задать свойства, это и короче будет по синтаксису.

Ещё подумал, что будет полезно добавить такие совмещённые функции, как: "СоздатьКомандуИКнопку", "СоздатьРеквизитИПоле".
16. ser6702 170 29.11.21 13:43 Сейчас в теме
(2) мне кажется это усложнит структуру и все эти свойства достаточно просто можно в своих процедурах переопределять. Тем более все это очень индивидуально и специфично для каждого конкретного случая. Не стоит загромождать
6. Serg O. 270 26.11.21 09:12 Сейчас в теме
большой + автору, хорошее оформление статьи,
всё структурировано и по пунктам расписано.
За использование github отдельное спасибо.
ivnik; user1430978; +2 Ответить
7. Aletar 26.11.21 11:41 Сейчас в теме
А вы не смотрели вот это решение: https://infostart.ru/1c/articles/1284403/ ?

...А то может сходу скажите отличия.
8. AtamanovYS 155 26.11.21 12:16 Сейчас в теме
(7)
- Не увидел автоматическое формирование заголовков по имени
- Не увидел копирование оформление элемента по другому элементу (см. параметр "Эталон" в функциях создания элемента).
- Не увидел создание имени поля по пути (при создании поля у меня не нужно передавать имя, достаточно только пути, имя из реквизита берется).
- Не увидел динамически изменяемого типа поля формы, в зависимости от типа данных (если реквизит типа "булево", то вид поля автоматически станет полем флажка)
- Если у реквизита свойство ПроверкаЗаполнения в Истина, то у создаваемого поля автоматически проставится ОтметкаЗаполнения и АвтоОтметкаНезаполненного

Посмотрел сходу. Может что-то из этого есть, но в функции СздПоле, в СоздатьРеквизиты и просто поиском такого поведения не увидел в коде того автора.

У меня не было желания создавать универсальную библиотеку для программной работой с формой.
Основная идея (на начальном этапе так точно) заключалась в том, чтобы автоматически выполнять те действия, которые сама платформа выполняет при интерактивной работе с формой.
DrAku1a; asteblev; Aletar; +3 Ответить
9. user1674163 29.11.21 11:51 Сейчас в теме
Для бесшовного внедрения на конфигурациях с БСП

тут лучше указать в каких именно конфигурациях есть этот переопределяемый модуль, потому что далеко не во всех типовых он есть (не проверял, но по-моему, такой модуль есть только в УТ/ERP)
AtamanovYS; +1 Ответить
10. ser6702 170 29.11.21 12:48 Сейчас в теме
Указано что Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт
// Эту функцию корректнее размещать в клиентСерверном модуле, так как необходимость ее вызова возможна и с клиента

может быть имелось ввиду в модуле с указанием "Вызов сервера"?
11. AtamanovYS 155 29.11.21 13:13 Сейчас в теме
(10) А зачем идти лишний раз на сервер ? Просто бывает потребность получить эту же информацию на клиенте. Например, в переопределяемой процедуре ПослеЗаписи (см. "МодификацияКонфигурацииКлиентПереопределяемый"). Там тоже может нужна будет потребность определить, что это за форма.
13. ser6702 170 29.11.21 13:23 Сейчас в теме
(11) с какой директивой ее
Функция ПолучитьСтруктурированноеОписаниеИмениФормы(ПолноеИмяФормы) Экспорт
тогда определяете в клиент серверном модуле?
14. ser6702 170 29.11.21 13:25 Сейчас в теме
(11) или тогда две функции иметь надо в этом модуле, чтоб не ходить на сервер. Одну
&Клиент
Функция ПолучитьСтруктурированноеОписаниеИмениФормы(ПолноеИмяФормы) Экспорт


и

Функция ПолучитьСтруктурированноеОписаниеИмениФормыСервер(ПолноеИмяФормы) Экспорт
17. AtamanovYS 155 29.11.21 13:44 Сейчас в теме
(14) Не сосвем понял. Эта функция просто находится в другом модуле, где стоят крыжеки и клиента, и сервера. Если мы обращаемся в этот модуль с сервера, то он компилируется на сервере. Если с клиента, то на клиенте.
18. ser6702 170 29.11.21 13:58 Сейчас в теме
12. ser6702 170 29.11.21 13:22 Сейчас в теме
(10) имелась ввиду конечно эта Функция ПолучитьСтруктурированноеОписаниеИмениФормы(ПолноеИмяФормы) Экспорт
19. Yashazz 4763 30.11.21 13:03 Сейчас в теме
Ещё один велосипед, который никто, кроме автора, юзать не станет вообще, да и сам автор через полтора годика забросит. Скучно.
Evg-Lylyk; G13ma; slauter77; +3 1 Ответить
Оставьте свое сообщение