Проводка

Проводка - бухгалтерское представление информации о движении учетных средств. Для хранения проводок применяется таблица ‘Проводка’.

Внутри раздела ‘Проводка’ можно создать только раздел Классификация, в  котором хранятся описания классов и типов проводок.

Описание всех параметров проводки находится в базовом разделе ‘Системная область’.

image-1648650261495.png

При создании проводки следующие параметры должны быть обязательно заполнены:

  • Проводка – UID записи проводки. Заполняется автоматически в момент создания записи.
  • План счетов – ссылка на план счетов, для которого сформирована проводка. При описании проводки можно использовать счета только из одного плана счетов. Заполняется автоматически в момент создания записи.
  • Тип – тип проводки. Заполняется автоматически в момент создания записи.
  • ЦФО – центр финансовой ответственности. Определяет основной уровень группировки проводок.
  • Дата – дата создания проводки.
  • Счет дебет – ссылка на счет.
  • Счет кредит – ссылка на счет.
  • Валюта – валюта или размерность суммы проводки.
  • Сумма – сумма проводки.

Если для какого-либо из перечисленных параметров не будет задано правило его заполнения, то проводка создана не будет. Правила заполнения параметров проводки указываются в описании типов и классов проводок.

Классификация проводок

Проводки классифицируются в разрезе плана счетов. Для каждого плана счетов создаются свои типы проводок.

Применяемое в проекте понятие тип проводки означает тип записи в таблице ‘Проводка’ и, одновременно, правила формирования этой записи. Термин проводка обозначает одну запись в таблице ‘Проводка’.

image-1648650286179.png

Для класса проводки можно указать следующие атрибуты:

image-1648650305800.png

  • HFile definition – используется программистами.
  • Использование – условие доступа проектировщиков к классу проводки.
  • Допускает наследование атрибутов – при установленном признаке в описании наследника можно будет изменить атрибуты.
  • Указатель на элемент – применяется для указания специальных атрибутов класса проводки.
  • Элемент – применяется для указания специальных атрибутов класса проводки.
  • Точка входа – алгоритм создания проводки. Может принимать следующие значения:

image-1648650324760.png

      • Нормальный – проводка создается на соответствующем этапе акцепта. 
      • FIFO – не используется.
      • Суммовые (для строк документа) – проводка рассчитывается на этапе расчета суммовых проводок документа. После обработки всех строк документа проводится объединение рассчитанных суммовых проводок по значениям аналитик. И затем в БД записываются полученные объединенные проводки.
  • Исходящий контекст – при описании проводки будут доступны параметры перечисленных объектов.
  • Параметры – содержит описания функций и выражений.

Типы проводок создаются на основе классов, и атрибуты типа проводки определяются ее классом.

Описание правил формирования проводок

Типы проводок могут быть созданы в разделе ‘Проводки’, раздел ‘Классификация’.

image-1648650344296.png

Также можно создавать типы проводок при описании типов документов и типов строк. В этом случае применяется атрибут ‘Проводки’ для класса или типа документа (строки).

image-1648650359115.png

При создании правил формирования проводки, прежде всего, выбирается план счетов, для которого будут указаны правила. Затем, можно создать элементы следующих типов:

image-1648650377133.png

  • Стандартные проводки – для наследования описания проводок из родителя проводки.
  • Тип проводки – для создания нового правила формирования проводки.
  • Подстановка проводки – для включения в список существующего правила формирования проводки и изменения атрибутов правила.
  • Варианты проводок, в зависимости от – позволяет указать, какую группу правил формирования проводок следует применить в зависимости от значения указанного условия.

Пример.

image-1648650393955.png

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

Пример описания проводок

Рассмотрим описание проводок на примере.

Продолжаем решение задачи по организации ввода документов для прихода и реализации товаров. Осталось описать правила формирования проводок в процедурах акцепта документа и строк.

Как обычно, перечислим, что требуется найти или создать в проекте.

  • Описать правила формирования проводок для партионных строк.
  • Описать правила формирования проводок для обычных строк.
  • Описать правила формирования проводок для документов.

Рассмотрим возможный вариант действий автора проекта.

Проводки для партионных строк

Описание проводок находится в описании типов строк. Рассмотрим описание проводок для типа строки ‘Строка FIFO прихода от поставщика’.

image-1648650412758.png

Для типа строки указаны проводки по двум планам счетов ‘Товарный план’ и ‘Суммы по Документам’.

Две проводки будут созданы по плану счетов ‘Товарный план’.  Поскольку в описании типа строки указана подстановка проводки, то сначала найдем описание проводки.

image-1648650429568.png

Описание проводки содержит дебетовый счет с аналитиками, размерность и сумму. Добавим кредитовый счет из подстановки проводки и получим полное описание правил формирования проводки типа ‘Увеличение товарного запаса (сумма по учетн.)’.

  • Счет дебет – ‘Количество (товарный запас)’.

Для данного счета заданы три аналитики: Подразделение, Продукт, Цена.

image-1648650444437.png

Вот так эти аналитики заполняются в описании проводки:

        • Аналитика ‘Подразделение’ заполняется значением параметра документа ‘Подразделение’.
        • Аналитика ‘Продукт’ заполняется значением параметра строки ‘Базовый продукт’.
        • Аналитика ‘Цена’ заполняется ссылкой на описание параметра строки ‘Цена учетная’. По сути, в эту аналитику заносится UID проектного элемента.
  • Счет кредит – ‘Приход/возврат от поставщика’.

Для данного счета заданы две аналитики: Продукт, Подразделение.

image-1648650459799.png

В описании проводки указаны следующие правила расчета значений аналитик:

        • Аналитика ‘Продукт’ заполняется значением параметра строки ‘Базовый продукт’.
        • Аналитика ‘Подразделение’ заполняется значением параметра документа ‘Контрагент’.
  • Сумма проводки вычисляется с помощью выражения ‘Сумма по цене учетной (из товара)’

image-1648650478627.png

Выражение определяет расчет суммы как произведение количества на учетную цену.

  • Размерность суммы указана в рублях.

Смысл рассмотренной проводки заключается в следующем. Проводка уменьшает сальдо по счету ‘Приход/возврат от поставщика’ (для указанного набора значений аналитик) и увеличивает сальдо по счету ‘Количество (товарный запас)’ (для указанного набора значений аналитик) на вычисленную сумму в рублях.

Необходимо проверить правила заполнения остальных обязательных параметров проводки. Эти правила следует искать у родителей проводки.

image-1648650495425.png

Здесь указаны правила заполнения параметров ‘ЦФО’ и ‘Дата’.

Аналогичным образом описана и вторая проводка по плану счетов ‘Товарный план’.

Необходимо еще раз повторить, что в описании проводки можно использовать счета только одного плана счетов.

Теперь разберем проводки по другому плану счетов ‘Суммы по Документам’.

image-1648650511399.png

Прежде всего, выясним, что в данном случае означает наличие атрибута ‘Стандартные проводки’. Автор проекта применил данный атрибут для того, чтобы наследовать описания проводок от родителей типа строки. Попробуем найти описание проводок у родителей. Такое описание имеется в подстановке класса строки ‘Класс строки FIFO прихода’.

image-1648650527101.png

Таким образом, всего для строки указаны правила формирования семи проводок по плану счетов ‘Суммы по Документам’. (Три правила из описания типа строки и четыре – из описания класса строки).

При рассмотрении проводок предыдущего плана счетов ‘Товарный план’ описание класса счетов нас не интересовало, поскольку в списке проводок не был применен атрибут ‘Стандартные проводки’.

Разберем описание правил создания одной проводки из семи. Остальные правила описаны аналогичным образом.

Описание типа строки содержит подстановки проводок, и никакие атрибуты в подстановках не определены. Значит, достаточно изучить только описание проводок.

image-1648650543616.png

Поскольку в описании не указаны правила заполнения еще нескольких обязательных параметров проводки, то изучим родителя проводки.

image-1648650561167.png

В результате получаем следующее правило формирования проводки типа ‘Сумма по закупочной цене (по суммам из базовых строк)’.

  • Счет дебет – ‘Сумма по документу’.

Для данного счета заданы пять аналитик: Документ, Цена, НДС, Тип продукта, Налог с продаж.

image-1648650579915.png

В описании проводки заполняются все аналитики.

        • Аналитика ‘Документ’ заполняется значением параметра строки ‘Документ’ (т.е. в аналитику заносится UID документа).
        • Аналитика ‘Цена’ заполняется ссылкой на описание параметра строки ‘Цена по приходу’. По сути, в эту аналитику заносится UID проектного элемента с описанием цены.
        • Аналитика ‘НДС’ заполняется значением типа продукта, являющимся базовым по отношению к продукту из строки. (Причина такого заполнения данной аналитики автору не известна).
        • Аналитика ‘Тип продукта’ заполняется значением типа продукта из строки (т.е. UID проектного элемента с описанием типа продукта).
        • Аналитика ‘Налог с продаж’ заполняется результатом вычисления выражения ‘Облагается налогом с продаж (из строки)’.
  • Счет кредит – ‘Сумма по контрагенту (КОРРЕСПОНДИРУЮЩИЙ)’.

Для данного счета аналитики не указаны. Более того, по счету не формируется сальдо.

image-1648650599030.png

  • Сумма проводки вычисляется с помощью выражения ‘Сумма по закупочной цене (по суммам из базовых строк)

image-1648650621241.png

Выражение возвращает значение параметра базовой строки ‘Сумма по цене накладной поставщика’.

  • Размерность суммы указана в рублях.

Для класса проводок указан алгоритм генерации проводок – Суммовые (для строк документа). Отличие данного алгоритма от нормального алгоритма генерации проводок заключается в следующем. При нормальном алгоритме проводка рассчитывается и сразу же записывается в базу данных в процедуре акцепта строки. Суммовые проводки рассчитываются на отдельном этапе процедуры акцепта документа после обработки всех строк. В этот момент суммовые проводки в базу данных не записываются. На другом этапе акцепта документа  проводится объединение полученных суммовых проводок и запись результата объединения. Если для двух проводок полностью совпадают все параметры кроме суммы, то обе проводки объединяются в одну новую проводку с общей суммой. Такой алгоритм позволяет существенно сократить число хранимых проводок.

Проводки для обычных строк

Описание проводок для обычных строк выполняется аналогично описанию проводок для партионных строк. В нашем случае некоторый интерес представляет описание типа строки ‘Приход товара от поставщика’. Для этой строки указаны правила создания проводок по двум планам счетов. Если описание проводок по плану счетов ‘Суммы по Документам’ повторяет уже рассмотренный ранее вариант, то проводки по плану счетов ‘Товарный план’ описаны несколько иным образом.

image-1648650644315.png

В предыдущих вариантах применялись подстановки типов проводок, а в данном случае созданы новые типы. Остальное описание ничем не отличается от ранее изученного.

При описании классов и типов документов (строк) можно как создавать новые типы проводок, так и применять подстановки типов проводок. Для повышения наглядности дерева проекта рекомендуется использовать подстановки типов проводок.

Проводки по документу

Рассмотрим описание проводок для используемых типов документов.

Описание типа документа ‘Приход товаров’ не содержит никаких значимых атрибутов. Рассмотрим имеющиеся подстановки.

image-1648650662490.png

image-1648650669742.png

image-1648650676914.png

image-1648650684530.png

С помощью трех подстановок для данного типа документа указаны правила формирования проводок по трем планам счетов: ‘Налоговый учет’, ‘Бюджетирование’ и ‘Бухгалтерский план’.

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

В описании проводок для бухгалтерского плана счетов имеется следующая конструкция.

image-1648650700936.png

С помощью атрибута ‘Варианты проводок, в зависимости от’ проектировщик задал условие формирования проводки типа ‘Постоянное налоговое обязательство (расх.с накл.пост-ка)’. Данная проводка будет сформирована в том случае, если выражение ‘Начисление налогов (ПБУ 18/2)’ вернет истинное значение.

image-1648650717423.png

Выражение анализирует наличие значения у параметра ‘Использовать ПБУ 18’ в записи партнера, соответствующей ЦФО.

Второй пример связан с понятием пакетных проводок.

Рассмотрим описание типа проводки ‘Сумма по учетной цене товара’ по бухгалтерскому плану счетов.

image-1648650732997.png

Тип проводки ‘Сумма по учетной цене товара’ ссылается на тип ‘Пакетная бухгалтерская проводка’. Изучим родителей проводки.

image-1648650750088.png

В описании класса проводки ‘БУХГАЛТЕРСКАЯ ПРОВОДКА ПАКЕТНАЯ’ имеется признак ‘Пакетная проводка’.

Наличие этого признака означает, что при создании проводок указанного типа будет применен механизм формирования пакета проводок.

Пакетные проводки

Механизм пакетных проводок позволяет, описав одну проводку, создать при акцепте документа или строки целый пакет однотипных проводок.

Сначала выбираются записи сальдо по некоторому счету. Затем для каждой полученной записи создается проводка. При этом значения аналитик (параметров) записи используются для заполнения параметров вновь создаваемых проводок.

Пакетная проводка отличается от обычной тремя дополнительными атрибутами:

  1. Признак ‘Пакетная проводка’ в описании типа или класса проводки указывает на то, что при создании проводки данного типа (класса) следует использовать механизм формирования пакетных проводок.
  2. Раздел ‘Локальные переменные’ в описании типа или класса проводки содержит набор переменных, в которые будут помещены значения параметров выборки, и которые будут использованы при расчете параметров создаваемых пакетных проводок.
  3. Раздел ‘Ограничения на выборку для пакетной проводки’ задает набор ограничений для выборки записей сальдо и одновременно устанавливает связи параметров выборки с локальными переменными. Если ограничение ссылается на локальную переменную, то считается, что это описание связи параметра с локальной переменной. Если ограничение ссылается на любой другой проектный элемент, то считается, что это описание ограничения.

Можно задать ограничения/связи по пяти основным параметрам сальдо:

  • ЦФО. Допускает как указание ограничения, так и связывание.
  • Счет. Можно указывать только ограничение, связывание счета недопустимо. Под счетом можно задать ограничения по аналитикам, или связать аналитики с локальными переменными.
  • Размерность. Допускает как указание ограничения, так и связывание.
  • Количество/сумма. Этот атрибут предназначен только для связывания параметра ‘Сумма’ выборки по сальдо с локальной переменной. Задание ограничения недопустимо.
  • Дата. Дату нельзя связывать с локальной переменной, так как это не имеет смысла. Можно только устанавливать ограничение по дате, то есть использовать не текущее сальдо, а сальдо на конкретную дату.

Если необходимо задать дату, то следует учесть, что сальдо выбирается на ‘начало’ указанной даты. То есть не учитываются проводки с этой датой-временем, и, следовательно, проводки по текущему документу в расчет не попадут. Для устранения такого эффекта необходимо прибавить к дате единицу.

Теперь рассмотрим описание пакетной проводки в нашем примере.

image-1648650785619.png

Признак ‘Пакетная проводка’ находится в описании класса проводки ‘БУХГАЛТЕРСКАЯ ПРОВОДКА ПАКЕТНАЯ’.

В разделе ‘Локальные переменные’ описаны две переменные ‘Сумма’ и ‘НДС’.

В список ограничений из раздела ‘Ограничения на выборку для пакетной проводки’ следует добавить ограничения из родителей проводки.

image-1648650801177.png

image-1648650807621.png

Таким образом, получаем ограничения по следующим параметрам: ‘ЦФО’, ‘Размерность’, ‘Счет’ и двум аналитикам счета: ‘Документ’ и ‘Цена’.

Параметры ‘НДС’ и ‘Сумма’ связываются с одноименными локальными переменными.

Смысл рассмотренной пакетной проводки заключается в следующем. Необходимо выбрать все записи сальдо, удовлетворяющие следующим ограничениям :

  • ЦФО = результат вычисления выражения ‘Центр финанс. Ответственности для ТОВАРНЫХ ПЛАНОВ’
  • Размерность = Рубли
  • Счет = Сумма по документу
  • Аналитика счета ‘Документ’ = текущий документ
  • Аналитика счета ‘Цена’ = цена учетная

Посмотрим на описание счета ‘Сумма по документу’ и его родителя для определения списка и порядка аналитик.

image-1648650825520.png

image-1648650833101.png

Для счета описаны пять аналитик. Для двух первых заданы ограничения.

В разделе ‘Ограничения на выборку для пакетной проводки’ указана связь аналитики ‘НДС’ с локальной переменной. Это означает, что в результат выборки должен содержать записи, различающиеся только значением аналитики ‘НДС’. Так как для счета описаны пять аналитик, а ограничение указано только для двух из них, то в базе данных будут найдены несколько записей сальдо с одинаковым значением аналитики ‘НДС’. Такие записи будут объединены в одну запись. Результат сложения сумм из объединяемых записей заносится в локальную переменную ‘Сумма’.

Таким образом, количество записей в результате выборки будет равно числу разных значений аналитики ‘НДС’ в записях сальдо, удовлетворяющих указанному набору ограничений.

Для каждой отобранной записи сальдо будет сформирована проводка типа ‘Сумма по учетной цене товара’. Для заполнения аналитики ‘НДС’ дебетового счета используется одноименная локальная переменная. Значение локальной переменной ‘Сумма’ будет занесено в сумму создаваемой проводки.

Описание одной  пакетной проводки заменяет описания нескольких обычных проводок. В нашем случае пришлось бы создать три типа проводок для каждого из вариантов значений НДС (0, 10, 20).

Кроме того, поскольку в пакетной проводке не имеется явного указания значений обрабатываемой аналитики (в нашем случае ‘НДС’), то изменение списка возможных значений аналитики не потребует изменения проекта в этом месте.