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

02.11.21

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

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

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

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

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

 

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

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

См. также

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

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

21.05.2024    28085    dimanich70    83    

151

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

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

1 стартмани

18.03.2024    4744    5    John_d    11    

57

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

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

12.02.2024    29897    atdonya    25    

59

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

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

30.11.2023    6333    ke.92@mail.ru    17    

65

WEB-интеграция Универсальные функции Механизмы платформы 1С Программист Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    17486    YA_418728146    8    

170

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

Расширение для программ 1С:Управление торговлей, 1С:Комплексная автоматизация, 1С:ERP, которое позволяет распечатывать печатные формы для непроведенных документов. Можно настроить, каким пользователям, какие конкретные формы документов разрешено печатать без проведения документа.

2 стартмани

22.08.2023    4587    76    progmaster    11    

4

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

Копирует в буфер значения из списков, из ячеек отчетов, таблиц, настроек списков, других отборов и вставляет в выбранную настройку отбора. Работает с Объект не найден. Работает как в одной так и между разными базами 1С. Использует комбинации [Alt+C] Копировать список, [Alt+V] Вставить список. Также для копирования данных используется стандартная [Ctrl+C] (например из открытого xls, mxl, doc и т.п. файла скопировать список наименований)

1 стартмани

13.10.2022    19512    186    sapervodichka    112    

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

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


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


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

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

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

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