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

11.01.22

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

См. также

Управление дашбордами

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

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

2400 руб.

29.06.2020    17111    23    4    

37

Новогоднее оформление для 1С

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

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

27.12.2023    11581    772    elcoan    46    

107

Конструктор HTML, CSS и javascript

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

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

2 стартмани

10.04.2023    10139    156    acces969    31    

119

Модель состояния для MVC

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

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

1 стартмани

05.07.2022    4148    kalyaka    4    

31

Условное оформление элементов форм в пользовательском режиме 1С (управление видимостью и доступностью элементов форм)

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

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

6000 руб.

18.01.2022    9077    1    2    

6

[mobile] Переносим HTML интерфейс на 1С

Работа с интерфейсом Мобильная разработка Программист Платформа 1С v8.3 Мобильная платформа Конфигурации 1cv8 Бесплатно (free)

Разберем методы переноса HTML интерфейса на 1С на примере реализации нижнего меню для мобильного приложения. Сравним методы между собой. Данные методы можно применять не только для мобильной разработки, но и для веб-клиента и т.д

02.11.2020    17203    leobrn    83    

120
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. retr0 25.11.21 10:03 Сейчас в теме
Так, в документообороте 3 уже давно есть модуль называется РаботаСФормами, при желании этот модуль можно выдернуть в расширение для любой другой конфигурации и адаптировать процедуры/функции под свои нужды. В целом он и из коробки хорошо работает.
DrAku1a; salexdv; TMV; EliasShy; ubnkfl; +5 2 Ответить
3. Dementor 1020 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 169 29.11.21 13:40 Сейчас в теме
(1)
РаботаСФормами


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

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

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

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

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

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

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


и

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