Вариант программного изменения форм в ЕРП

20.08.25

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

Вариант изменения форм программно в конфигурации ERP с наименьшим вмешательством в код вендера.

В ЕРП почти у каждой формы, за очень маленьким исключением, в событии ПриСозданииНаСервере присутствует вызов

СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);

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

МодификацияКонфигурацииПереопределяемый.ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка)

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

Процедура ПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт

	ЛокализацияМодификацийФормОбъектовСервер.ПриСозданииНаСервереИзменениеФорм(Форма, Отказ, СтандартнаяОбработка);

КонецПроцедуры

А дальше как сами определите структуру. Определение, какую мы форму получили при входе, идет по имени Формы:

Если Форма.ИмяФормы = "Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента" Тогда
		ПриСозданииНаСервере_РеализацияТоваровУслуг_ФормаДокумента(Форма, Отказ, СтандартнаяОбработка);

Посмотреть пример кода можно по ссылке Вариант программного изменения форм в ЕРП

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

См. также

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

Создайте свой функциональный интерфейс в любой конфигурации 1С с помощью расширения Infostart Dashboard. Настраивайте панели виджетов с метриками, индикаторами и показателями на начальном экране. Узнайте возможность внедрения подсистемы у себя в конфигурации с помощью бесплатной обработки "Анализ внедрения подсистемы 1С Infostart Dashboard"!

28800 руб.

27.03.2025    56896    32    25    

45

Разработка Инструментарий разработчика Работа с интерфейсом Адаптация типовых решений Нейросети 1C:Бухгалтерия 1C:ERP 1С:ЗУП 1С:КА 1С:УНФ 1С:УТ 1С:Розница 1С:ДО 1С:ERP Управление предприятием 2 Платные (руб)

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

36000 руб.

28.08.2025    2804    1    2    

4

Работа с интерфейсом Системный администратор Программист 1С:Предприятие 8 1C:Бухгалтерия Платные (руб)

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

6000 руб.

14.01.2016    58303    20    25    

46

Консолидация данных Работа с интерфейсом Программист Пользователь 1С:Предприятие 8 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 1C:ERP Узбекистан Беларусь Кыргызстан Россия Казахстан Платные (руб)

Знакомая ситуация? Пользователи, особенно менеджеры, уверены: отборов много не бывает. Идут пожелания добавить в форму списка еще один быстрый фильтр, еще два, еще пять... В итоге интерфейс превращается в нагромождение полей отбора, а потребность в «самом главном» отборе, который «вот прямо сейчас нужен», все равно не закрыта. Универсальное расширение, которое решает эту проблему элегантно и технологично. С его помощью в любую форму списка можно легко добавить панель настраиваемых кнопок-закладок, каждая из которых применяет сложный фильтр-запрос, а так же показывает актуальное количество элементов в реальном времени.

5988 руб.

17.10.2025    797    1    0    

2

Работа с интерфейсом Программист 1С:Предприятие 8 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

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

5160 руб.

29.06.2020    22902    32    6    

51

Работа с интерфейсом Программист 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

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

5040 руб.

06.10.2020    12884    8    8    

14

Работа с интерфейсом Программист Стажер 1С:Предприятие 8 Бесплатно (free)

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

20.08.2024    43542    mrXoxot    44    

138
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Константин С. 676 20.08.25 16:50 Сейчас в теме
Ну... такто это уже старо как наш мир. Вот если для БП-ки придумали как обойтись, цены не былоббб)
6. Tahallus 441 01.09.25 14:00 Сейчас в теме
(1) Практически по всех формах в ПриСозданииНаСервере есть вызов ВерсионированиеОбъектов.ПриСозданииНаСервере или ПодключаемыеКоманды.ПриСозданииНаСервере можно на них повесить свой вызов.
7. Chif13 1262 01.09.25 17:25 Сейчас в теме
(6) Но в данном случае по смыслу именно эти процедуры не подходят для проектирования формы. В ПодключаемыеКоманды можно распоряжаться только командами, в ВерсионированиеОбъектов соответственно версиями. Т.е. логически не верно помещать изменение формы через данные связки.
8. Tahallus 441 01.09.25 19:31 Сейчас в теме
(7) надо ведь чтобы функция ЛокализацияМодификацийФормОбъектовСервер.ПриСозданииНаСервереИзменениеФорм вызывалась каждый раз при создании формы, почему бы тогда не поместить её там где это возможно сделать.
Переносить формы в расширение только чтобы вызвать функцию думаю избыточно.
9. Chif13 1262 01.09.25 23:03 Сейчас в теме
(8) Потому что получается винегрет, причем ты не поймешь откуда и когда у тебя пойдет вызов метода, а понимание этого должно быть четко. У тебя модули должны быть четко структурированы и вызываться только в рамках того контекста, в котором предусмотрены логикой.
Более того, у тебя в при вызове ПриСозданииНаСервере могут быть использованы все эти три вызова, т.е. у тебя пойдет троекратный вызов изменения формы.
10. Tahallus 441 02.09.25 09:33 Сейчас в теме
(9) Кому-то шашечки. а кому-то ехать.
причем ты не поймешь откуда и когда у тебя пойдет вызов метода

все предельно ясно если сделать грамотно, вы сразу встали в позу и без адаптации примеряете свой подход.
Вызов можно контролировать и будет все вызываться один раз.
Зато не надо иметь кучу фантомных форм в расширении или изменений в типовых формах только чтобы отрисовать элементы.
11. Chif13 1262 02.09.25 09:38 Сейчас в теме
(10) Фантомных форм у тебя и не будет много. Про шашечки и ехать все хорошо, но когда приходишь в контору и открываешь то что хотели хоть как то ехать, становится не по себе. Иногда это даже уже не телега.
По поводу адаптации: это модель спокойно работает в себе в достаточной большой конторе. Давно уже крутиться.
И есть в конце концов требования к разработке, где четко прописано, что пихать что попало в то что попало под руку не стоит.
Но это дело каждого ведь, правда? Кто-то придерживается стандартов, кому-то нет до этого дела. Я стараюсь придерживаться, считаю это правильным. После меня код должен быть абсолютно понятен и привычен.
2. Chif13 1262 20.08.25 16:53 Сейчас в теме
Так есть такое, найди Алексея Степаненко, у него есть фрэймворк для программной доработки форм.
3. pscorp 6 21.08.25 12:13 Сейчас в теме
Мы для БП сделали расширения добавляем вызов из ПриСозданииНаСервере общего модуля, а там уже программная доработка формы.
4. ltfriend 27.08.25 11:55 Сейчас в теме
А как при таком подходе добавить обработчик события своего реквизита, например "ПриИзменении"?
5. Chif13 1262 27.08.25 12:01 Сейчас в теме
(4) Примерно так:
	ЭлементФормы = Форма.ЭлементыФормы.Найти("ИмяЭлемента"); 
	Если ЭлементФормы <> Неопределено Тогда
		ЭлементФормы .УстановитьДействие("ПриИзменении", "ВыполнитьДействиеПриИзмененииДанных");
	КонецЕсли;


В модуле формы должно быть определена процедура с таким именем с необходимыми параметрами. В этом случае, да форму все равно затрагиваем, но только в определении процедуры.
VyacheslavShilov; +1 Ответить
Для отправки сообщения требуется регистрация/авторизация