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

Публикация № 1556681 25.11.21

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

Специальные предложения

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

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


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

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

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

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

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

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

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


и

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

См. также

Подсистема 1С "Визуальные инструменты АФРОДИТА" (Панель показателей и виджетов)

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

Создайте свою панель показателей и виджетов в любой конфигурации 1С с помощью подсистемы 1С "Визуальные инструменты АФРОДИТА". Дашборды на начальном экране изменят ваш подход к интерфейсу и рабочему месту.

10800 руб.

20.03.2023    6937    7    19    

24

[Расширения] Динамическое управление видимостью и доступностью элементов форм (УФ) (8.3.6+)

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

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

5000 руб.

14.01.2016    52130    15    21    

38

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

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

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

2 стартмани

10.04.2023    6058    130    acces969    28    

103

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

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

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

1 стартмани

05.07.2022    1525    kalyaka    2    

16

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

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

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

02.11.2020    13750    leobrn    82    

106

Редактор графов

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

Внешний отчет, формирует граф на основе таблицы значений, используя рисунки табличного документа. Есть возможность добавления, редактирования объектов графа и выгрузки результата в таблицу значений.

1000 руб.

06.10.2020    7543    4    7    

6

[Общий модуль] Динамическое формирование интерфейса

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

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

28.08.2020    31100    rpgshnik    88    

284

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

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

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

2400 руб.

29.06.2020    13054    15    4    

22

Форма выбора (подбор) в управляемых формах

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

Разбор небольших примеров того, как правильно открывать форму выбора (подбора) в управляемых формах, не прибегая к модальным окнам.

08.05.2020    180435    user5300    40    

291

Простой и красивый интерфейс

Работа с интерфейсом Мобильная разработка Мобильная платформа Бесплатно (free)

Разработчики мобильных приложений на платформе 1С сталкиваются с проблемой адаптации сгенерированного платформой интерфейса под удобство использования. О том, какие приемы помогут сделать интерфейс красивым и удобным, на конференции Infostart Event 2019 Inception рассказал руководитель отдела мобильной разработки компании «1С-Рарус» Никита Бакшеев.

30.01.2020    20972    Baksheev-Nikita    36    

110

СКД. Шаг 3. Используем макеты для оформления отчета

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

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

13.01.2020    72306    aximo    23    

199

[СКД] Вывод картинки в результат любого отчета на СКД

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

Если у вас в справочнике Номенклатура (или другом справочнике) заполнена картинка, то ее можно легко вывести для наглядности отчета.

09.12.2019    16196    John_d    18    

122

[Взрыв шаблона!] Новый способ программной настройки условного оформления

Работа с интерфейсом Управляемые формы Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

01.12.2019    30558    73    mszsuz    13    

161

Управляемые формы. Изменение формы списка или формы объекта без внесения изменений в типовые формы (без использования расширений)

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

Вносим изменения в типовые формы объектов (документы, справочники, журналы, обработки, общие формы). Не снимая с поддержки эти формы. Создаем программно элементы из общего модуля. Для примера рассмотрю добавление колонки "Скрепка" в форму списка документа. Если к документу привязан файл, то в списке в новой колонке должна отображаться "скрепка".

12.11.2019    21542    John_d    29    

125

"Живые" картинки со Snap.SVG

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

В статье рассмотрен пример использования http-сервисов для визуализации данных

1 стартмани

24.10.2019    16595    blackhole321    7    

94

Создание асинхронных виджетов

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

Описание нескольких способов создания асинхронных виджетов для 1С:Предприятия. Рассматриваются способы с использованием HTTP-сервисов и фоновых заданий.

16.10.2019    16394    Infostart    19    

156

Формы. Трудности программной работы

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

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

06.10.2019    14744    Infostart    32    

116

Альтернативный способ добавления элементов и реквизитов на формы

Работа с интерфейсом Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Россия Абонемент ($m)

Предлагаю альтернативный вариант добавления динамически создаваемых элементов и реквизитов на форму.

1 стартмани

09.09.2019    26127    46    bmk74    9    

83

[Шпаргалка] Программное создание элементов формы

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

Программное создание практически всех популярных элементов формы.

06.09.2019    209036    rpgshnik    87    

863

Отслеживание выполнения фонового задания

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

Запуск фонового задания из модуля внешней обработки. Отслеживание выполнения задания в виде прогресса, расположенного на форме.

17.08.2019    56188    ids79    23    

224

[Механизм интерфейса] Свой флажок (чекбокс)

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

Создадим свой флажок для интерфейса, используем простой универсальный алгоритм.

1 стартмани

09.08.2019    32168    29    rpgshnik    44    

172

Форма отчета СКД

Работа с интерфейсом Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

Описание объекта ОбщиеФормы – ФормаОтчета.

01.08.2019    22448    vasilev2015    5    

89

Подсистема "Варианты отчетов". Используете ли Вы ее правильно?

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

Небольшая история про использование подсистемы "Варианты отчетов" из БСП. Используете ли Вы ее правильно?

04.06.2019    72697    Infostart    57    

334

Быстрый ввод неудобных символов

Работа с интерфейсом Бесплатно (free)

Использование Alt-кодов для ввода “[”, “]”, “”, “&”, “#”, “|”

15.04.2019    20059    pparshin    30    

97

Программное добавление элементов на управляемую форму

Работа с интерфейсом Управляемые формы Конфигурации 1cv8 Россия Абонемент ($m)

Пример добавления Команд, Полей ввода, Групп, Страниц, Реквизитов, Обработчиков событий.

1 стартмани

13.02.2019    145293    74    spec8s    47    

256

Расширение: Темы для 1С 8.3

Работа с интерфейсом Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Расширение позволяет сменить цвет оформления для интерфейса Такси.

3 стартмани

10.02.2019    33849    213    spec8s    29    

60

HTML в новой версии 8.3.14 на примере 3-х JavaScript библиотек: AmCharts, HighCharts, DHTMLX

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

Тестируем возможности HTML в новой версии 8.3.14 платформы на примере 3-х JavaScript библиотек: AmCharts, HighCharts, DHTMLX.

1 стартмани

29.01.2019    34680    Synoecium    46    

215

Подмена заголовка 1С

Универсальные функции Работа с интерфейсом Россия Бесплатно (free)

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

08.12.2018    12451    moolex    26    

26

Шпаргалка разработчика для работы с формами

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

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

3 стартмани

31.10.2018    22095    95    ELAM    3    

30

Открывашка ячеек таблиц

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

Глобальное сочетание клавиш для открытия объекта по ссылке из текущей ячейки любой таблицы в большинстве управляемых форм

1 стартмани

27.10.2018    29191    16    tormozit    39    

107

Прикладной пример переработки стандартной формы РМК - Розница

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

Простой пример, как с помощью программного изменения шрифтов элементов формы достичь наилучшего результата отображения на примере формы РМК.

04.10.2018    25418    asdfgcom    88    

92

Визуализация событий на временной шкале средствами "Поле HTML документа"

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

Интересный способ наглядно отобразить события на временной шкале. Например, может быть применен для красивого вывода документов по клиенту. Тестировалось на платформе 8.3.12.1469

1 стартмани

31.07.2018    36242    160    Plotks2017    27    

236

Продвинутое рисование в табличном документе (стрелок и не только)

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

Вспоминаем геометрию и основы компьютерной графики. Матрицы и аффинные преобразования на плоскости.

1 стартмани

24.07.2018    28203    28    WalterMort    31    

87

[Шпаргалка] Свой заголовок отчету на СКД с параметрами, картинками (без программирования)

Работа с интерфейсом Система компоновки данных Конфигурации 1cv8 Бесплатно (free)

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

23.07.2018    103245    rpgshnik    73    

366

Работа с данными выбора

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

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

1 стартмани

17.07.2018    96751    33    kalyaka    17    

74

Управление состоянием формы через конечный автомат

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

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

1 стартмани

19.06.2018    17778    kalyaka    41    

89