Принцип работы механизма заключается в проверке результирующих движений документов по регистру бухгалтерии "Хозрасчетный" в соответствии с заранее настроенными правилами. Для каждого типа документа и вида операции (если имеется) можно контролировать:
- корреспонденцию счетов (счет Дт и счет Кт)
- значения субконто (описывается ограничением в виде произвольного отбора)
Если ограничение аналитики не задано, то проверяется только сама корреспонденция.
Механизм основан на системе компоновки данных и динамическом сборе текста запроса для проверки движений. При этом компоновка макета и обработка каждой настройки не выполняется в цикле при проведении документа, поэтому механизм работает достаточно быстро.
Тестирование выполнялось на версии 3.0.67.72 конфигурации "Бухгалтерия предприятия".
Настройка механизма
Команды для настройки размещены в разделе Администрирование - Проведение документов в группе Контроль корреспонденций счетов. Имеется возможность включения/выключения контроля в разрезе пользователей. Допускается указание конкретного пользователя, группы или пустой ссылки (все пользователи). Т.е. при необходимости для разных пользователей можно отключить механизм контроля.
Для каждого контролируемого типа документа необходимо настроить исчерпывающий список корректных проводок. Движения документа проверяются только в случае, если имеется хотя бы одно правило для соответствующего типа документа, в противном случае движения документа считаются заведомо корректными.
В настройке указываются:
- тип документа - выбирается из списка, доступны все документы-регистраторы регистра бухгалтерии "Хозрасчетный", кроме регламентной операции
- вид операции - если у документа имеется соответствующий реквизит
- счет Дт и счет Кт - корректная корреспонденция
- ограничение аналитики - задаются условия отбора по субконто, можно использовать любые вложенные реквизиты. Для удобства виды субконто снабжены дополнительным заголовком, указывающим на тип значения
- описание - текстовое описание настройки
- флаг использования - настройка может быть не активна, в этом случае она не используется при контроле движений
Для одной и той же корреспонденции в рамках одного типа документа и вида операции может быть задано несколько правил. В этом случае корреспонденция будет считаться корректной, если она удовлетворяет условиям хотя бы одной настройки.
На этапе подготовки настроек можно или отключить контроль для всех пользователей, или не ставить флаг активности у настроек. А после того как все будет готово включить механизм.
Пример использования
Рассмотрим простой пример с поступлением услуг от поставщика.
Для проводки 44.01 / 60 необходимо выполнение следующих условий:
- обязательно указана статья затрат
- контрагент из папки "Поставщики услуг"
- дата документа поступления больше даты договора
При проведении документа в случае нарушения одного из условий будет выдано соответствующее сообщение пользователю, а документ проведен не будет. Если же все движения документа прошли проверку, то документ проводится без выдачи каких-либо сообщений.
В реальной жизни настройки контроля зависят конечно же от особенностей конкретной системы, ее бизнес-логики, всевозможных доработок. Данный пример - всего лишь демонстрация работы механизма.
Ограничения механизма
- Нет возможности задать ограничение на значения измерений (организация, подразделение)
- Не учитывается иерархия счетов, нужно указывать конкретные счета и субсчета
Механизм не тестировался на больших объемах данных, поэтому не известно как пострадает производительность проведения документа с десятками тысяч проводок и более.
Возможно также описанный подход подойдет не всем, но код открыт и всегда можно что-то доработать при необходимости.