Добавление произвольных движений Хозрасчетный к документам в ERP, Комплексная автоматизация 2.4.9
Как добавить произвольные проводки документов к типовым без изменений типовой архитектуры отражения документов в регл. учете.
- Описание
- Подробнее
Описание
Проковырялся день с поиском оптимального решения. Мож кому пригодится.
Задача
Для документа нужно формировать произвольные проводки по регл учету. Эти проводки должны добавляться к типовым.
Запросом собрать нужные данные не получалось, требовался алгоритм расчета: распределение и т.д.
Для формирования движений нужны были только данные документа. Результаты расчета себестоимости и т.д. не влияли на данные движений. Это можно считать ограничением применения описанного решения.
Решение
При проведении документа записываем нужные движения в Хозрасчетный. Важно, чтобы Статус документов в регистре ОтражениеДокументовВРеглУчете не менялся. Для этого в коде записи набора Хозрасчетный набора добавляем строку
Набор.ДополнительныеСвойства.Вставить("НеВыполнятьДопОбработкуПроводок", Истина);
В общем модуле РеглУчетПроведениеСервер находим функцию ВыборкиОтраженияДокументов.
В функции есть строка
ЗапросХозрасчетныйДополнение = РеглУчетВыборкиСерверПовтИсп.ЗапросХозрасчетныйДополнение();
Данные движений для Хозрасчетный, собираемые этим запросом, добавляются к движениям, собираемым ранее типовыми средствами. Этот запрос, конечно, тоже типовой, и это не Переопределяемый. Но в него влезть достаточно просто и предназначен он как раз для выборки существующих движений.
РеглУчетВыборкиСерверПовтИсп.ЗапросХозрасчетныйДополнение() забираем в расширение.
Первая часть запроса получает все движения отражаемых документов. Во второй части производится выборка нужных движений. Во второй части реализуем выборку нужных. Важно отобрать именно "наши", не собирая типовые. Иначе получим дублирование движений при закрытии месяца.
Внесенные изменения в запросе завернуты в комментарий ДОБАВЛЯЕМЫЕ ДВИЖЕНИЯ. Ключами выборки движений являются тип регистратора и реквизит "Содержание" регистра Хозрасчетный.