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

02.11.21

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

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

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

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

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

 

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

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

См. также

Вставляем картинку из буфера обмена (платформа 1С 8.3.24)

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

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

1 стартмани

18.03.2024    2930    2    John_d    11    

56

GUID в 1С 8.3 - как с ними быть

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

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

12.02.2024    5203    atdonya    22    

52

Переоткрытие внешних обработок

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

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

30.11.2023    4149    ke.92@mail.ru    16    

62

Валидация JSON через XDTO (включая массивы)

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

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

28.08.2023    9549    YA_418728146    6    

143

Печать непроведенных документов для УТ, КА, ERP. Настройка печати по пользователям, документам и печатным формам

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

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

2 стартмани

22.08.2023    2291    28    progmaster    8    

3

Расширение: Быстрые отборы через буфер [Alt+C] Копировать список, [Alt+V] Вставить список, [Ctrl+C] Копировать из файлов

Инструментарий разработчика Универсальные функции Платформа 1С v8.3 Конфигурации 1cv8 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    16417    143    sapervodichka    112    

130

Система контроля ведения учета [БСП]

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

В данном материале рассмотрим типовой алгоритм подсистемы контроля учета БСП в конфигурациях на примерах.

18.07.2022    7387    quazare    8    

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

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


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


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

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

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

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