Примерная схема проведения документов (Механизм проведения) в ERP 2.5.x.x
Разработка - Механизмы типовых конфигураций
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Примерная схема проведения документов (Механизм Проведения) в ERP 2.5.x.x.
Процедуры в блоках расположены в порядке вызовов по стеку. (верхние вызываются перед теми, что ниже)
Предлагаю использовать как отправную точку, и некий шаблон для понимания "общей" картины действия по проведению документа в типовом решении. ( Что, где, как надо изменить чтобы встроить свой документ / регистр и т.д. в решение)
Все видно на схеме. (см. скриншот, или во вложении схема построенная с помощью https://www.draw.io/, + pdf, html, svg)
Основное "ядро" механизма это ОМ "ПроведениеДокументов". Далее идет ряд обязательных требований к процедурам, которые должны быть оформлены в ОМ, МО, ММ, МНЗ задействованных объектов в собственной схеме учета чего либо...которую можно назвать "собственный учетный механизм"
Принятые имена и сокращения:
- МодульУчетногоМеханизма - ОМ, либо ММ любого объекта который выбрали хранилищем "логики" собственного учетного механизма
- МО - Модуль объекта (документа, ведь проводятся только они)
- ММ - Модуль Менеджера объекта (документа)
- ОМ - ОбщийМодуль
- МНЗ - Модуль набора записей (регистра)
Большинство процедур из схемы в коде ERP содержат описания. Примеры реализаций можно подсматривать в типовом решении используя Глобальный поиск по именам процедур.
P.S. Заметки:
- ПередЗаписью() / ПриЗаписи() - в МодулеОбъекта документа, может быть какой-то код для заполнения структуры "ДополнительныеСвойства"
- Запись в "Независимые регистры" обрабатывается в событии ПриЗаписи() МодуляОбъекта (Документа)
- ПроведениеДокументов.УчетныеМеханизмыКонфигурации() - внутри метода добавить свойство структуры (см. типовой) если требуется связь со своим модулем учета. Используется в ММ ЗарегистрироватьУчетныеМеханизмы()
- ПередЗаписью() - в МодулеНабораЗаписей регистра с контролем ставится БлокироватьДляИзменения = Истина; - Если используется "Новая методика" контроля остатков. Если "Старая", то четкого места установки управляемой блокировок нет - ММ, ОМ и т.д. в зависимости от логики.
- После процедуры ПроведениеДокументов.ОбработкаПроведения() могут быть вызваны действия вне механизма проведения, например ВыполнитьКонтрольСвоимМетодом() или СвойОбщийМодульУчетногоМеханизма.ОбработкаПроведения(ЭтотОбъект, Отказ, РежимПроведения) ....как я понял такой подход является устаревшим или применим для модулей с постфиксом "Локализация"
- ПередЗаписью() - в МодулеНабораЗаписей регистра с контролем собираются данные движений регистратора по регистру расход(-), приход (+)
и помещаются в вт "ДвиженияИмяРегистраПередЗаписью".
ПриЗаписи() - собираются данные движений регистратора по регистру расход(+), приход (-) (с ОБРАТНЫМ ЗНАКОМ !!!), объединяются (ОБЪЕДИНИТЬ ВСЕ) с данными регистра до записи движений - ВТ "ДвиженияИмяРегистраПередЗаписью", группируются по измерениям (СГРУППИРОВАТЬ ПО) и помещаются в ВТ "ДвиженияИмяРегистраИзменения". Если ДвиженияИмяРегистраИзменения не пустая, то значит произошли изменения, в ту или иную сторону и их нужно обработать (дать Отказ транзакции, вывести сообщения и т.д.)
Составил для себя, как памятку, и надеюсь кому-то поможет, пригодится еще.
Вступайте в нашу телеграмм-группу Инфостарт