Типовой механизм упрощенного изменения конфигурации в ERP 2.0 и УТ 11

В ERP 2.0 (и соответственно в УТ 11) появился функционал для упрощенной возможности модификации конфигурации разработчиками. Он касается в частности изменения форм объектов и размещения подписок на элементы, теперь задача изменения конфигурации на поддержке упростилась. Также появились дополнительные возможности в новой версии платформы 8.3.5, которые также упростят задачу.
1,9 тыс. 150

В ERP 2.0 (и соответственно в УТ 11) появился функционал для упрощенной возможности модификации конфигурации разработчиками. Он касается в частности изменения форм объектов и размещения подписок на элементы, теперь задача изменения конфигурации на поддержке упростилась. Также появились дополнительные возможности в новой версии платформы 8.3.5, которые также упростят задчу.

Этот функционал представлен следующим блоком общих модулей (разбивка на наш взгляд):

1)      События форм. Этот блок представлен двумя общими модулями -  «События Форм» и «События Форм Клиент».

Если вернуться в статьям о механизмах минимального изменения конфигураций, то эти два модуля позволяют разместить динамически элементы и обработчики на форме и обрабатывать их. В модуле «События Форм» находится процедура «ПриСозданииНаСервере», которая вызывается из практически каждой формы в функции формы «ПриСозданииНаСервере». Соответственно в ней удобно разместить код позволяющий создавать динамически элементы на формах и обработчики событий этих форм. К примеру, можно это сделать следующим образом:

Если Форма.Имя= «Доумент.РеализацияТоваровУслуг.ФормаДокумента» Тогда
ИначеЕсли ….
КонецЕсли;

Однако разработчики предложили перенести этот код в общий модуль «МодификацияКонфигурацииПереопределяемый». И из процедуры идет еще один вызов:

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

Для отработки динамических команд элементов практически в каждой форме добавлена только одна обезличенная процедура Подключаемый_ВыполнитьПереопределяемуюКоманду, обрабатывать события предлагается в специальных общих модулях – «События Форм Клиент». Решение элегантное. С общим модулем «События Форм Клиент» ситуация аналогичная, в нем происходит перевозов процедуры.

2)      Модификация конфигурации. Этот блок представлен следующими общими модулями:

«Модификация Конфигурации Вызов Сервера Переопределяемый», «Модификация Конфигурации Клиент Переопределяемый», «Модификация Конфигурации Клиент Сервер Переопределяемый», «Модификация Конфигурации Переопределяемый».

В каждой форме документа коллеги вставили следующий код для поддержки механизма модификации конфигурации. На серверной части:

  • В процедуре «ПриСозданииНаСервере» вызывается «СобытияФорм.ПриСозданииНаСервере»;
  • В процедуре «ПриЧтенииНаСервере» вызывается «МодификацияКонфигурацииПереопределяемый.ПриЧтенииНаСервере»;
  • В процедуре «ПослеЗаписиНаСервере» вызывается «МодификацияКонфигурацииПереопределяемый.ПослеЗаписиНаСервере»;
  • В процедуре «ПередЗаписьюНаСервере» вызывается «МодификацияКонфигурацииПереопределяемый.ПередЗаписьюНаСервере»;

На клиентской части:

  • В процедуре «ПослеЗаписи» вызывается функция «МодификацияКонфигурацииКлиентПереопределяемый.ПослеЗаписи»;
  • И универсальная процедура для обработки событий для всех элементов формы на клиенте «Подключаемый_ВыполнитьПереопределяемуюКоманду».

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

Если Форма.Имя= «Доумент.РеализацияТоваровУслуг.ФормаДокумента» Тогда
ИначеЕсли ….
КонецЕсли;

И для обработки команд дополнительное условие:

Если Команда.Имя= «Команда_Х» Тогда
ИначеЕсли ….
КонецЕсли;

3)      Особенности. К особенностям можно отнести некоторые специфические моменты.

Во-первых, пока не во всех формах и списках добавлена поддержка этого механизма. Вполне возможно, что в бедующих релизах этот пробел будет восполнен.

Во-вторых, в некоторых случаях разработчики сами используют блок динамической инициализации обработчиков изменений элементов. При первоначальном включении в их блок мы сперва очень удивились, что почему-то некоторые наши обработчики не совсем адекватно и не всегда отрабатывают в некоторых документах. Объяснение этому простое, как оказалось для документов в которых используется механизм согласование: Заказ Клиента, Реализация Товаров и Услуг и др.; используется динамическое создание подписок на события изменения элементов, которое происходит после нашей точки инициализации (в процедура При создании на сервере). На сброс флага согласован влияет множество изменений реквизитов и чтобы не обрабатывать каждый реквизит в отдельности они создают динамическую привязку события изменения к одной функции. К тому же эта операция происходит не всегда, а зависит от статусов документа.

В связи с этим при данную ситуацию необходимо обрабатывать самостоятельно, если у вас есть необходимость повестить свою обработку событий на эти реквизиты.

Зато можно воспользоваться готовой встроенной функцией для установки подписки на событие элемента формы:

ОбщегоНазначенияУТ.УстановитьПодпискуНаСобытияИзмененияЭлементовФормы(ЭтаФорма, МассивЭлементов, УстановитьПодписку);

В третьих, не все случаи по прежнему удается обрабатывать данным нововведением. Хотя это уже большой плюс. И мы выражаем глубокий респект разработчикам конфигурации ERP 2.0 за такую возможность.

4)      Бонус. Правила которые мы используем при доработках типовых конфигураций.

  • Добавление своих объектов метаданных с префиксом. Мы добавляем префикс в таком формате «DI_»+наименование объекта. Иногда используется вариант добавления префикса поле наименования: наименование объект+ «DI»; но этот вариант менее нагляден. Для дополнительной фильтрации новых объектов создается своя подсистема, в которую включаются все новые объекты.
  • Добавление своих реквизитов к существующим объектам метаданных. Мы используем добавление реквизитов по аналогии с добавлением своих объектов: «DI_»+наименование реквизита.
  • Изменение форм объектов. Изменение форм объектов и подписок на элементы осуществляем динамически. Также уже используем технологию, о которой говорится выше. В случае, когда требуется кардинальное изменение формы объектов, то мы создаем свою форму и назначаем ее основной.
  • Использование модификаций запросов. В связи с нововведениями в версии платформы 8.3.5, а именно: конструктор запросов в управляемом приложении и объектная модель схемы запроса - появилась возможность более удобно вносить модификации в запросы. Если ранее пользователь создавал рваный запрос или использовал функцию СтрЗаменить, то теперь достаточно использовать объектную модель. К примеру, добавить в исходный запрос новое поле в выбранных полях:
СхемаЗапроса = Новый СхемаЗапроса;
СхемаЗапроса.УстановитьТекстЗапроса(Запрос.Текст);
//при создании схема содержит один пакет и один оператор в пакете.
Пакет = СхемаЗапроса.ПакетЗапросов[0];
Оператор = Пакет.Операторы[0];
Оператор.ВыбираемыеПоля.Добавить(«РеализацияТоваровУслуг.Ссылка»);
Запрос.Текст = СхемаЗапроса.ПолучитьТекстЗапроса();

Ожидаем использование подобного механизма в скором будущем в текущих типовых конфигурациях.

  1. Использование подписок на события. Мы используем подписки на события для дополнительных проверок, формирования своих движение и т.д. В этом случае создается необходимая подписка на событие и формируется код проверки. Позволяет не вносить изменение в типовой функционал.
  2. Использование дополнительных команд. Для увеличения удобства интерактивной работы с нашими доработками довольно часто используем данный механизм.
  3. Поиск точки минимального изменения или воздействия. Прежде чем вносить изменения согласно задания на доработку ищем в коде тот участок, при изменении в котором понадобится минимальное число исправлений. Как вариант возможно переписывания какой-то функции целиком.
  4. Добавление реквизитов в регистры. При добавлении изменений в регистры мы поступаем по следующему правилу. Если это регистр накопления оборотный, то можем смело добавить измерение. Если это регистр накопления остатков, то в данном случае стараемся не вносить изменения в измерения и ресурсы, а создать свой новый регистр остатков. Если затрагивает реквизиты, то в данном случае можно выполнять эту операцию без проблем.
  5. Комментарии и документация. При внесении изменений мы обязательно делаем комментарии, указывая Автора, Дату, Задачу, Пояснения, вход и выход изменений. Дополнительно вносится информация в реестр изменений с такими же параметрами.
  6. Использование средств командной разработки. Мы используем механизм хранилище конфигурации, систему баг-трекинга, трехуровневое тестирование – внутренне тестирование разработчиком, тестирование таксировщиком самостоятельно и по кейсам и внешнее тестирование представителем от заказчика.
  7. Техническое задание. Хорошей практикой является формализация требований к доработкам.
  8. Другие правила.

Начать дискуссию

О госзакупках простым языком

Сегодня, как и было обещано, хочу поделиться с вами обновлениями в системе государственных закупок.

Курсы повышения
квалификации

20
Официальное удостоверение с занесением в госреестр Рособрнадзора

МВД хочет приостанавливать денежные переводы в рамках уголовного преследования

Силовые структуры смогут приостанавливать такие переводы на 10 дней

Банки обяжут за 24 часа предоставлять в МВД данные о переводе цифровых денег

Ведомство разработало проект соответствующего федерального закона

Лучшие спикеры, новый каждый день

Киргизский Finca Bank приостановит зачисление переводов из «Сбера» и «Тинькофф»

Ограничения начнут действовать в мае

193

⚡️Меняем тарифы на «Клерке». Успейте подключить безлимитные консультации

У нас молния. С понедельника на «Клерке» произойдут изменения. Тарифов с безлимитными консультациями больше не будет. Хотите безлимит? Подключайте тариф на год или на полтора прямо сейчас.

Иллюстрация: Вера Ревина / «Клерк»

В Telegram можно заработать на продаже стикеров

Создатели стикеров и эмодзи в Telegram смогут получить в криптовалюте 95% выручки от продажи своего творчества.

Опытом делятся эксперты-практики, без воды
Самозанятые

👵 Чтобы заработать пенсию, самозанятые должны платить добровольные взносы. Но не обязаны, уточняет наш эксперт

В стаж для пенсии идет период работы, если за этот период начисляют и уплачивают взносы. За работников взносы платит работодатель, ИП сами платят свои взносы. А самозанятые не платят.

Экономика России

Официально: сколько в России ресторанов, кафе и баров

Росстат привел статистику за 2023 год по местам общепита.

Налоговая подсмотрит за вами через камеры, если понадобится. 🎥«Ночной бухгалтер» № 1668

Улыбнитесь, вас скрывает скрытая камера! А может и не скрытая, а просто камера наблюдения на улице. Корреспондент «Клерка» узнала о любопытном способе налоговиков проверять ваш бизнес.

Иллюстрация: создана при помощи ИИ playground.com / Елена Балаклицкая

КС РФ: иногда УК должна продолжать управление домом и после прекращения договора

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

Малый и средний бизнес выпустил облигации на 2,5 млрд рублей

До конца года МСП Банк готов поддержать выпуск биржевых облигаций компаний на сумму до 8 млрд рублей.

Банкротство

Новое постановление КС: как теперь платить налоги при банкротстве компании

Чтобы не получать требования о взыскании убытков от налоговиков или других кредиторов, арбитражный управляющий должен согласовать интересы сторон в суде, который определит порядок выплат при банкротстве организации.

Миникурсы, текстовые и видеоинструкции для бухгалтеров
Бухгалтеры

❗️ Оформите подписку «Клерк.Премиум» со скидкой 50%! В понедельник цена вырастет

До 22 апреля вы можете купить подписку «Клерк.Премиум» на 12 месяцев со скидкой 50% за 9900 рублей. Успейте получить доступ к образовательным материалам «Клерка» по старой цене.

Больничные

Как бывшим контрактникам считать стаж для оплаты больничного

Военная служба по контракту входит в стаж для больничного.

Самозанятый написал жалобу на руководителя в трудовую? А так можно было?

Привет, это налоговый юрист для бизнеса и СЕО «Патрикеев и партнеры» Павел Патрикеев. И я никогда не думал, что тема переквалификации будет окутана такими интригами.

Самозанятый написал жалобу на руководителя в трудовую? А так можно было?
1
226
Обзоры новостей

⚡️ Итоги дня: сотрудники не хотят терпеть токсичных начальников, глава Willdberries стала обедневшим миллиардером, в Москве будет шторм, а Питер завалит снегом

Подготовили обзор главных событий дня. Все самое интересное, что писали и обсуждали в сети, в одной подборке.

186

Решила зайти в рефералку «Клерка». Как думаете, получится?

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

Иллюстрация: создано с помощью ИИ OpenAI © Вера Ревина/Клерк.ру
Охрана труда

Порядок обучения сотрудников по охране труда в организации

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

Иллюстрация: dcstudio/freepik
Бухгалтеры

Эксперты «Клерка» ответили с начала года на 3000+ вопросов бухгалтеров. Торопитесь — безлимитные консультации можно получать только до 21 апреля!

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

Интересные материалы

Сайты с картинками могут воровать telegram-аккаунты

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

88