Простейший способ учета изменений управляемых форм объектов 1С

02.11.21

Разработка - Универсальные функции

Описание методологии, позволяющей контролировать список изменений форм + вспомогательные функции программного изменения форм. Пригодятся при внесении изменений в расширениях, если есть необходимость видеть и контролировать все сделанные с формой изменения.

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

Для изменений в расширении в модуле формы добавим процедуру "ПриСозданииНаСервере". Если нужны только изменения формы, то желательно использовать директиву "&После", чтобы все, что могло измениться стандартными процедурами, уже изменилось. И пишем в этой процедуре свой код. Ниже, под спойлером, самые часто используемые процедуры, которые упростят процесс.

 
 Функции для работы с элементами форм

 

Это, возможно, не самый быстрый и удобный способ конструирования формы, но контроль точно будет на высоте. Причем, с помощью некоторых уловок и привычки к такому способу работы скорость может быть вполне на уровне.

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

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Загрузка и выгрузка в Excel Универсальные функции Программист 1С:Предприятие 8 Россия Бесплатно (free)

Описанный ниже подход позволяет в три шага заполнять формулы в Excel файлы, вне зависимости от ОС сервера (MS Windows Server или Linux). Подход подразумевает отказ от работы с COM-объектом в пользу работы через "объектную модель документа" (DOM).

30.10.2025    3616    Abysswalker    9    

45

Универсальные функции Работа с интерфейсом Программист 1С:Предприятие 8 Бесплатно (free)

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

14.05.2025    6716    DeerCven    15    

59

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

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

21.05.2024    49682    dimanich70    83    

170

Универсальные функции Программист 1С:Предприятие 8 1C:Бухгалтерия Абонемент ($m)

Задача: вставить картинку из буфера обмена на форму средствами платформы 1С.

1 стартмани

18.03.2024    7390    6    John_d    13    

59

Универсальные функции Программист Стажер 1С:Предприятие 8 1C:Бухгалтерия Бесплатно (free)

Пришлось помучиться с GUID-ами немного, решил поделиться опытом, мало ли кому пригодится.

12.02.2024    62391    atdonya    31    

70

Универсальные функции Программист 1С:Предприятие 8 Бесплатно (free)

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

30.11.2023    9223    ke.92@mail.ru    17    

68
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. RocKeR_13 1464 02.11.21 12:28 Сейчас в теме
Программное изменение форм использовалось еще в обычных формах. Во многих конфигурациях существуют даже общие модули а-ля МодификацияКонфигурацииПереопределяемый, которые вызываются из стандартных форм и позволяют как раз внести программные изменения в формы. По этому вопросу в вашей статье ничего нового:
Программное изменение управляемых форм
Библиотека программного изменения формы (УФ)
Динамическое изменение формы: кнопочная форма выбора справочника
Формы. Трудности программной работы
Управляемые формы. Изменение формы списка или формы объекта без внесения изменений в типовые формы (без использования расширений)
cleaner_it; AseevAndrew; DrAku1a; +3 Ответить
2. avalakh 581 02.11.21 13:35 Сейчас в теме
В целом согласен, но возможно кому то будет полезно. Готовые процедуры тоже вероятно кому нибудь облегчать жизнь, для меня этого достаточно, что бы написать подобную статью. И большое спасибо за ваш комментарий, а тем более подборку ссылок, которая так же будет очень в тему для ищущих тут информацию.
9. maxim.samokhval 09.11.21 14:44 Сейчас в теме
(2) Подскажите, пожалуйста, как решали вопрос с добавлением обработчиков на добавленные реквизиты и элементы? ПриАктивации, ПриИзменении?
Например, добавлю я программно элемент, пропишу ему

Элемент.УстановитьДействие("ПриИзменении", "Подключаемый_ПараметрКритерияОтбораПриИзменении"); 


Но ведь метод "Подключаемый_ПараметрКритерияОтбораПриИзменении" уже должен быть в форме.
Единственный вариант - это в расширении формы прописывать методы и тогда событие сработает.
Какой вариант обработки событий Вы используете у себя?
10. avalakh 581 09.11.21 16:44 Сейчас в теме
(9) Функция добавления возвращает элемент, к нему можно установить действие. Или в функцию добавления можно дописать установку действий
11. maxim.samokhval 09.11.21 16:53 Сейчас в теме
(10)
кция добавления возвращает элемент, к нему можно установить действие. Или в функцию добавления можно дописать установку


Да, все верно и я понимаю как это работает.
Но чтобы установить действие, нужно чтобы элемент знал где это действие расположено, например в моем примере это метод "Подключаемый_ПараметрКритерияОтбораПриИзменении" НаКлиенте.

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

И об этом и был мой вопрос: где Вы прописываете установленные действия ?
12. avalakh 581 10.11.21 18:32 Сейчас в теме
(11) Тут же в модуле формы в расширении. Прописываем процедуру, на которую ссылается наше действие. С директивой &НаКлиенте
14. skyadmin 78 23.05.23 10:08 Сейчас в теме
(12) Можно обойтись без формы, оставлю тут ссылку на решение
3. MiniGrad2014 03.11.21 06:11 Сейчас в теме
Дополнительно к данным процедурам размещения надо ещё программно описать привязку своих элементов?
4. avalakh 581 03.11.21 21:44 Сейчас в теме
MiniGrad2014, не совсем понял вопрос. Функции нужны для упрощения работы с элементами программно, в конечном итоге во всех проектах где вы так будете вести работу в вас похожие появятся, это просто что бы их не писать заново. Все изменения элементов предлагается описать таким образом, и что то в функциях несомненно придется дописать самому, т.к. везде есть свои нюансы
5. Brawler 465 05.11.21 10:35 Сейчас в теме
С 2019 года только программно все формы отнаследованные так сказать в расширения и редактируем, так как уже напарывались на то что если ручками просто что-то на форме поменять, то банально, когда в типовой форма изменится и ты ее захочешь изменить в расширении кнопкой обновления, то может все к черту на форме поплыть.
Конечно, когда вообще все изменения формы находятся в виде кода, то это 100% проще.
Ты понимаешь, что ничего кроме этого больше нет измененного.

Я бы даже был не против такого режима наследования форм в расширении, когда наследуется от формы только модуль формы и все!
Ну это как опция, либо вся форма + модуль, либо только модуль.
Однако бывают ситуации, когда немного все же нужно пошалить с подписками на события и уже явно их указывать у элементов формы или у самой формы. По этому поводу как правило в самом начале модуля пишется комментарий, что вручную сделано на форме без кодинга.
cleaner_it; avalakh; +2 Ответить
6. МимохожийОднако 142 07.11.21 08:01 Сейчас в теме
я в своих доработках и расширениях держу отдельным объектом макет ИСТОРИЯ, в котором не ленюсь писать внесенные изменения. Мне помогает
triviumfan; +1 Ответить
8. triviumfan 102 09.11.21 14:25 Сейчас в теме
(6) Спасибо за наводку. Возьму на вооружение
7. maks_20 172 09.11.21 14:12 Сейчас в теме
Данную методику применяем уже несколько лет и каких-либо нареканий к ней нет.
13. пользователь 02.07.22 14:39
Сообщение было скрыто модератором.
...
Для отправки сообщения требуется регистрация/авторизация