Механизм инвариантов (УАУ)
Постановка задачи
В настоящее время система "УАУ" включает в себя большое количество настроек и способна находиться во множестве состояний, как корректных с точки зрения эталонного ведения учета, так и критических, способных приводить к необратимым потерям информации. Вторая ситуация возникает, как правило, в тех случаях, когда ошибочные действия пользователей остаются незамеченными долгое время. Для исключения подобных случаев был разработан механизм инвариантов, способный следить за:
- неизменностью однажды установленных настроек;
- соответствием данных выбранным правилам ведения учета;
- целостностью данных в прошлых периодах.
Описание работы с инвариантами
Журнал. Первое знакомство
Для организации в системе "УАУ" механизма инвариантов создан специальный вид документов. Чтобы начать работу с ними необходимо зайти в меню Журналы > Закрытие периода > Инварианты (проверка состояния). Теперь мы находимся в "Панели управления запуском проверки".
В левой таблице представлен "Список существующих документов". Если он пуст, то стоит создать новый документ с помощью кнопки "Создать", находящейся в верхнем левом углу формы. Рядом с ней находятся уже ставшие привычными кнопки "Копировать" "Редактировать" и "Пометить на удаление".
При создании документа система предложит выбрать его категорию. От выбора будет зависеть, какие действия сможет выполнять документ. Когда документ создан, он появляется в "Списке существующих документов". Если нового документа в списке не появилось, то следует обратиться к панели "Отбор документов", находящейся прямо над списком. Она позволяет управлять видимостью документов в зависимости от их категории, даты создания и наличия пометки на удаление. Чтобы видеть абсолютно все имеющиеся документы, необходимо в выпадающем списке на панели "Отбор документов" выбрать "все"; задать период, в который попали бы все документы созданные вами или до вас, а также включить флажок "Показывать документы с пометкой удаления".
Когда в "Списке существующих документов" есть хотя бы один документ, в таблице "Методы контроля выбранного документа" отображаются те действия, которые способен выполнять документ, на который установлен курсор. Если в этой таблице пусто, значит в документе не выбрано ни одного действия.
Последний набор элементов формы находится в самом ее низу - это кнопки управления проверкой. Кнопка "Полная проверка" запускает выполнение действий тех документов "Списка существующих документов", у которых в крайней левой колонке стоит черная галочка. Кнопка "Запустить выбранный документ" запускает выполнение действий только одного документа - того, на котором стоит курсор. Кнопка "Результаты проверки" открывает окошко с информацией о результатах последней проверки.
Документ. Настройка действий
Откроем из журнала инвариантов форму любого документа.
Основа документа - это таблица "Методы контроля", которую с помощью кнопок справа от нее можно наполнять различными методами. При нажатии кнопки добавления нового метода, появляется список методов, доступных для категории этого документа. Категорию документа можно увидеть на самом верху, в заголовке формы, для каждого документа она выбирается один раз - при создании, поменять ее после невозможно.
Когда в таблице "Методы контроля" присутствуют какие-либо методы, то их можно запускать на проверку с помощью кнопок внизу формы. Кнопка "Полная проверка" запускает те методы, из имеющихся в документе, которые отмечены черной галкой (третья колонка слева). Кнопка "Запуск выбранного метода" запускает только один метод - тот, на котором стоит курсор.
Нажатие кнопки "Полная проверка" в документе идентично нажатию "Запуск выбранного документа" в журнале, когда курсор стоит на соответствующем документе.
При двойном щелчке мышью на строке таблицы "Методы контроля" открывается форма настройки метода, где пользователь имеет возможность выбрать, что будет проверять метод. На большинстве форм настройки в левом нижнем углу есть кнопка "Настроить по умолчанию". На форме документа, кроме информационных реквизитов, есть и влияющие на проверку - это две даты, озаглавленные "Период проверки". В зависимости от контекста проверки, они могут быть использованы, как период выборки данных или как моменты времени, на которые контролируются остатки.
Итоги выполнения проверок
О том, как прошла проверка можно узнать из отчета проверки, который хранится в документе на закладке "Отчет". Сверху в нем всегда находятся данные самой последней проверки, ниже - результаты последних 99 проверок в порядке устаревания. В информации о проверках присутствуют дата и время проверки, а также данные о пользователе, который ее запускал. В крайней левой колонке отражается значок "+" или "-", в зависимости от того прошла проверка или нет. Проверка считается пройденной, если в крайней правой колонке напротив всех методов контроля стоят "+" и непройденной, если есть хотя бы один "-".
С помощью двойного щелчка мыши на названии метода контроля можно получить подробную информацию о том, как прошла проверка и в чем была проблема, если проверка не выполнилась.
Краткие данные отчета о последней проверке в терминах "+/-" присутствуют также на закладке "Настройка" в документе и в левых частях таблиц журнала.
Перечень методов проверки
Здесь представлен список инвариантов с условным делением на группы по области и виду контроля.
Проверка настроек системы
- Контроль привязки счетов к регистрам. Проверка привязки счетов к регистрам в зависимости от регламентации (например, "62", "60" – взаиморасчеты, "10", "41", "43" – складской учет). В окне настройки можно задать список счетов с привязками, наличие которых будет контролироваться при проверке. При нажатии кнопки "Заполнить по умолчанию" этот список очищается и заполняется счетами фирмы, имеющими привязку, по текущему состоянию плана счетов.
- Контроль привязки проводок к регистрам. Проверка привязки некоторых проводок к регистрам. В окне настройки можно задать список проводок с привязками, наличие которых будет контролироваться при проверке. При нажатии кнопки "Заполнить по умолчанию" этот список очищается и заполняется проводками фирмы, имеющими привязку, по текущему состоянию реестра проводок.
- Контроль регламентации статей затрат, прибыли, убытков. Не должно быть статей затрат, видов прибыли и убытков, по которым есть обороты, но не проставлена регламентация. Из плана счетов выбираются счета фирмы, у которых есть аналитика "Статьи затрат" или "Виды прибыли/убытков". По этим счетам выбираются движения из регистра "Шахматка", причем только те, у которых аналитика - "Статьи затрат" или "Виды прибыли/убытков", проверяется, регламентирована ли эта аналитика.
- Заполненность "Вида деятельности" в регистре "Реализация". Из регистра "Реализация" выбираются движения и проверяется, заполнено ли измерение "Вид деятельности".
- Контроль регламентации счетов, имеющих обороты. Не должно быть счетов с непроставленной регламентацией, по которым есть обороты. Из регистра "Шахматка" выбираются движения по нерегламентированным счетам фирмы.
- Контроль оборотов с видами деятельности без регламентации. Не должно быть видов деятельности, по которым есть обороты, но не проставлена регламентация. Из регистра "Шахматка" выбираются движения с аналитикой "Вид деятельности", проверяется регламентация этой аналитики.
- Контроль остатков на счетах без регламентации. В окне настройки присутствует список дат, на которые будет осуществляться проверка. При нажатии кнопки "Заполнить по умолчанию" в этот список помещаются даты начала и окончания периода документа-инварианта. Из плана счетов выбираются все нерегламентированные счета и проверяется равен ли нулю остаток по ним на все даты из списка "Даты проверки нулевых остатков".
Проверка состояния
Проверка остатков
- Контроль равенства дебета и кредита в бух. балансе. На форме находятся два списка, содержащие счета, на которых будет контролироваться наличие только положительного/отрицательного остатка соответственно. При нажатии кнопки "Заполнить по умолчанию" в список "Счета с нулевым дебетом" помещаются счета регламентированные как "80", "96", "98", а в список "Счета с нулевым кредитом" - "01", "03", "04", "07", "08", "09", "10", "19", "20", "21", "23", "28", "29", "41", "43", "44", "45", "50", "51" "55" "57" "58" "97". При проверке получаются остатки на дату начала и окончания периода документа-инварианта и производится проверка: "Счета с нулевым дебетом" не должны иметь положительного остатка, а "Счета с нулевым кредитом" - отрицательного.
- Соответствие остатка типу счета. Проверка соответствия остатков на счетах по типу счета (активный, пассивный). Выбираются остатки на дату начала и окончания периода документа-инварианта по тем счетам фирмы, у которых указан тип счета (Активный/Пассивный). На активных счетах остаток не должен быть отрицательным, а на пассивных - не должен быть положительным.
- Контроль нулевого остатка. Проверка остатков на счетах, по которым не должно быть остатка. На форме расположен список счетов, на которых на контролируемую дату (начало и окончание периода документа-инварианта) не должно быть остатка. При нажатии кнопки "Заполнить настройку по умолчанию" в список помещаются счета, регламентированные как "25", "26", "40", "76", "90", "91", "99". Выбираются остатки по счетам из списка и сравниваются с нулём.
- Проверка остатков на счетах. Проверяется соответствие остатков на счете и остатков на данном счете в соответствующем регистре. На форме расположена таблица эталонных значений, которая заполняется вручную. Она имеет три колонки: "Счет", "Остаток на начало периода" и "Остаток на конец периода" (имеется ввиду период документа-инварианта). При проверке выбираются остатки на начало и окончание периода документа-инварианта по счетам, перечисленным в таблице-эталоне, и сравниваются со значениями, указанными в соответствующих ячейках таблицы-эталона.
Проверка соответствия остатков
- Соответствие счетов 76 и 62. Кредитовый остаток счета(ов) регламентированных как 62 умноженный на 18% должен соответствовать дебетовому остатку счета(ов) регламентированных как 76-учет НДС с авансов. Остатки по 62-му счету нужно получать по взаиморасчетам в развороте по контрагентам и договорам. На форме находятся элементы используемые в проверке, это: списки счетов, флаги использования разворотов по аналитикам "Клиент" и "Договор", процент НДС. Проверка проходит в два этапа. Сначала сравниваются остатки по счетам из списка "Счета 76" (из регистра "БухСчета") с остатками по счетам из списка "Счета 62", (из регистра "Взаиморасчеты") умноженными на коэффициент = -НДС/(100+НДС). Затем сравниваются остатки по счетам из списка "Счета 62" (из регистра "Взаиморасчеты") с суммой измерений "Стоимость" и "Сумма НДС" остатков по этим же счетам из регистра "Учет счетов-фактур на аванс" (знак при сравнении меняется на противоположный).
- Установка правил сравнения остатков. Инвариант позволяет выбрать список счетов (бухгалтерских, управленческих, забалансовых) и установить для них правила сравнения остатков. В этом методе можно устанавливать линейные зависимости, которым должны удовлетворять остатки счетов или наборов счетов. В списке правил пользователем создаются правила, для каждого из них можно заполнить списки счетов, у которых будет вычисляться суммарный остаток и использоваться в формуле контроля, записанной посередине формы. Если заполнить поля аналитик, расположенные снизу формы, то сравнение остатков будет происходить лишь по совпадающим аналитикам.
- Равенство аналитики ОС на счетах 01 и 02. Проверяется условие: подразделения и МОЛ не должны расходиться.
Проверка документооборота
- Сравнение накладных и счетов-фактур. На форме находится несколько флажков, задающих, что нужно контролировать, по умолчанию контролируется всё. При проверке для каждого счёта-фактуры из периода документа-инварианта выбираются все подчиненные ей накладные и сравниваются объединенные табличные части накладных с табличной частью счёта-фактуры. Сравнение идёт только по указанным в настройке параметрам, всё остальное сворачивается.
- Контроль суммы документа и суммы, прошедшей по регистру. На форме находится настроечная таблица, разделенная колонкой со знаком "=" на левую и правую половины. В левой части указывается вид документа и его реквизит, сумма по которому будет сравниваться с суммой по ресурсу регистра, указанным в правой части таблицы. Последняя колонка - коэффициент, при сравнении, на него умножается значенние ресурса регистра. Пример использования: по регистру проходит сумма с НДС; в документе нет такого реквизита, а есть лишь сумма без НДС и сумма НДС; в настроечную таблицу добавляем две строки: по реквизиту "Сумма без НДС" и "Сумма НДС"; в последней колонке устанавливаем коэффициенты 0.5;
Контроль целостности данных в прошлых периодах
- Контроль остатков по счетам на дату. На форме находится таблица "Контрольные даты". В ней перечислены даты точек контроля. Для создания новой точки контроля следует добавить новую строку в таблицу, задать счета в списке "Бухгалтерские счета" (если оставить список пустым, то это равносильно выбору всех счетов) и нажать кнопку "Запомнить новую точку". При этом будут запомнены остатки по счетам из списка "Бухгалтерские счета" на дату из текущей строки таблицы "Контрольные даты". В таблице "Контрольные даты" есть колонка "Записано", для строк, имеющих в этой колонке непустое значение можно провести сравнение, нажав одноименную кнопку; при этом произойдет получение данных из регистров и сравнение их с запомненными ранее. Кнопкой со значком лупы можно открыть для просмотра данные запомненные ранее: будет заполнен список "Бухгалтерские счета" и открыта таблица с данными. При запуске проверки из документа инварианта будут проверены все запомненные точки контроля из таблицы "Контрольные даты".