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

20.08.25

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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также

SALE! 10%

Работа с интерфейсом Анализ учета Мониторинг 1С v8.3 8.3.14 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 25920 руб.

27.03.2025    25766    25    19    

36

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

Универсальный редактор картинок 1С предназначен для обработки изображений в режиме «Предприятие», с возможностью рисовать на них. Поддерживается работа как в обычных формах (толстый клиент) так и на управляемых формах (тонкий клиент). Обработка позволяет редактировать как картинки, хранимые в базе, так и графические файлы с диска на файловой системе. Помимо базовых функций (изменение размеров, преобразование формата, обрезание картинки, повороты и т.п.) – редактор имеет богатый набор инструментов для рисования. Доступна функция вставки изображения из буфера обмена. Объект может быть использован: на стороне клиента, на стороне сервера, из внешнего соединения. Обработка будет особенно полезна тем, кто вносит картинки в базу (изображения номенклатуры, фотографии физических лиц и т.п.). Функционал реализуется с использованием JavaScript и бесплатного ПО ImageMagick (без использования внешних компонент).

6000 руб.

16.01.2015    66369    45    60    

84

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

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

5160 руб.

29.06.2020    21981    32    6    

49

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

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

5040 руб.

06.10.2020    11885    8    8    

14

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

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

20.08.2024    38556    mrXoxot    44    

136

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

Пример простого и симпатичного прогресс-бара в динамическом списке, без картинок, используя редактирование запроса.

27.05.2024    22655    smielka    37    

108

Работа с интерфейсом 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Зарплата и Управление Персоналом 3.x 1С:Управление нашей фирмой 3.0 Бесплатно (free)

Добавьте новогоднего настроения! Расширение создает декорацию в виде гирлянды на некоторых формах объектов.

27.12.2023    21450    1297    elcoan    53    

128

Инструментарий разработчика Работа с интерфейсом Программист 1С v8.3 1C:Бухгалтерия Абонемент ($m)

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

3 стартмани

10.04.2023    15341    175    acces969    31    

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

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


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