Примерная схема проведения документов (Механизм проведения) в ERP 2.5.x.x

Публикация № 1185321

Разработка - Практика программирования

Механизм проведения Типовое проведение ОбработкаПроведения

Некий шаблон "общей" картины связи процедур выполняемых типовым механизмом проведения в ERP 2.5.

Примерная схема проведения документов (Механизм Проведения) в ERP 2.5.x.x. 

Процедуры в блоках расположены в порядке вызовов по стеку. (верхние вызываются перед теми, что ниже)

Предлагаю использовать как отправную точку, и некий шаблон для понимания "общей" картины действия по проведению документа в типовом решении. ( Что, где, как надо изменить чтобы встроить свой документ / регистр и т.д. в решение)

Все видно на схеме. (см. скриншот, или во вложении схема построенная с помощью https://www.draw.io/, + pdf, html, svg) 

Основное "ядро" механизма это ОМ "ПроведениеДокументов". Далее идет ряд обязательных требований к процедурам, которые должны быть оформлены в ОМ, МО, ММ, МНЗ задействованных объектов в собственной схеме учета чего либо...которую можно назвать "собственный учетный механизм"

Принятые имена и сокращения:

  • МодульУчетногоМеханизма - ОМ, либо ММ любого объекта который выбрали хранилищем "логики" собственного учетного механизма
  • МО - Модуль объекта (документа, ведь проводятся только они)
  • ММ - Модуль Менеджера объекта (документа)
  • ОМ - ОбщийМодуль
  • МНЗ - Модуль набора записей (регистра)

Большинство процедур из схемы в коде ERP содержат описания. Примеры реализаций можно подсматривать в типовом решении используя Глобальный поиск по именам процедур.

P.S. Заметки:

  • ПередЗаписью() / ПриЗаписи() - в МодулеОбъекта документа, может быть какой-то код для заполнения структуры "ДополнительныеСвойства" 
  • Запись в "Независимые регистры"  обрабатывается в событии ПриЗаписи() МодуляОбъекта (Документа)
  • ПроведениеДокументов.УчетныеМеханизмыКонфигурации()  - внутри метода добавить свойство структуры (см. типовой) если требуется связь со своим модулем учета. Используется в ММ ЗарегистрироватьУчетныеМеханизмы()
  • ПередЗаписью()  - в МодулеНабораЗаписей регистра с контролем ставится  БлокироватьДляИзменения = Истина;  - Если используется "Новая методика" контроля остатков. Если "Старая", то четкого места установки управляемой блокировок нет - ММ, ОМ и т.д. в зависимости от логики.
  • После процедуры ПроведениеДокументов.ОбработкаПроведения() могут быть вызваны действия вне механизма проведения, например ВыполнитьКонтрольСвоимМетодом() или СвойОбщийМодульУчетногоМеханизма.ОбработкаПроведения(ЭтотОбъект, Отказ, РежимПроведения) ....как я понял такой подход является устаревшим или применим для модулей с постфиксом "Локализация" 
  • ПередЗаписью() - в МодулеНабораЗаписей регистра с контролем собираются данные движений регистратора по регистру  расход(-), приход (+)
    и помещаются в вт "ДвиженияИмяРегистраПередЗаписью".
    ПриЗаписи()   -  собираются данные движений регистратора по регистру  расход(+), приход (-)  (с ОБРАТНЫМ ЗНАКОМ !!!), объединяются (ОБЪЕДИНИТЬ ВСЕ) с данными регистра до записи движений - ВТ "ДвиженияИмяРегистраПередЗаписью", группируются по измерениям (СГРУППИРОВАТЬ ПО) и помещаются в ВТ "ДвиженияИмяРегистраИзменения".                                                          Если ДвиженияИмяРегистраИзменения не пустая, то значит произошли изменения, в ту  или иную сторону и их нужно обработать                          (дать Отказ транзакции, вывести сообщения и т.д.)

Составил для себя, как памятку, и надеюсь кому-то поможет, пригодится еще.

Скачать файлы

Наименование Файл Версия Размер
Cхема проведения документов в ERP 2.5 ( html, pdf, drawio)

.zip 412,09Kb
13
.zip 0.0.2 412,09Kb 13 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Diversus 2154 27.01.20 10:18 Сейчас в теме
Немного офтоп. Скажите пожалуйста, а в каком редакторе такую красивую схему нарисовали? :)
2. puzo 27.01.20 13:03 Сейчас в теме
4. s14adow 104 27.01.20 13:39 Сейчас в теме
(2)Все верно. Вещь классная, но все же рисование кривых не так "интуитивно" и удобно как могло бы быть ( контрольные точки не выделяются), да и при перемещении блоков линии порой спутываются что приходится все править...
5. s14adow 104 27.01.20 23:07 Сейчас в теме
3. Йожкин Кот 1081 27.01.20 13:13 Сейчас в теме
Поставил +
За draw.io отдельное спасибо
6. Yashazz 3757 28.01.20 17:51 Сейчас в теме
Вообще вещь нужная, т.к. наши разлюбезные коллеги, ваяющие БСП и вообще все эти громоздкие уродства под названием "типовые конфиуграции", любят накрутить всего, побольше и посложнее. И документировано это фигово, и описано - ниже плинтуса. Поэтому приходится выкручиваться.

Но имхо, лучше делать конкретные схемы проведения. У меня вот есть конфа, которая строит не менее красивый граф последовательности вызванных процедур и функций автоматически, по результатам трассировки или замера производительности. И выясняется, что эти криворукие методисты и хитромудрые деятели от ERP даже собственный стандарт удивительным образом не соблюдают. И исполнение кода заносит в совершенно чудные места...
cleaner_it; s14adow; +2 Ответить
Оставьте свое сообщение

См. также

Публикаций не найдено

Попробуйте расширить область поиска, проверьте поисковый запрос и повторите попытку.

Или закажите индивидуальную разработку вашего решения.

Создать заказ на разработку