Регистры бухгалтерии. Общая информация

Публикация № 1118124

Программирование - Практика программирования

регистры бухгалтерии внутреннее устройство базы данных платформа механизмы

92
Общая информация о внутреннем устройстве регистров бухгалтерии.

Введение

Вот мы и добрались до регистров бухгалтерии платформы 1С:Предприятие 8.x. Ранее мы говорили о регистрах накопления и регистрах сведений, подробно рассматривали их устройство и принцип работы с ними со стороны платформы. В этом плане, регистры бухгалтерии интереснее и сложнее, т.к. имеют большее количество настроек, а сама специфика бухгалтерского учета усложняет их структуру хранения в базе данных, а также SQL-запросы платформы для получения этих данных.

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

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

Итак, приступим!

Назначение

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

Любой регистр бухгалтерии обязательно должен быть связан с одним из планов счетов, который своими настройками влияет на хранение итогов (об этом подробнее мы поговорим в следующих статьях). На структуру хранения записей регистра бухгалтерии в основном влияют как сама структура регистра (измерения, ресурсы, реквизиты) и его настройки (включена ли корреспонденция, разделение итогов и др.), так и настройки используемых счетов (признаки учета счетов и субконто, вид счета и т.д.).

 
 Что такое регистры бухгалтерии

Сейчас же мы рассмотрим структуру хранения самой распространённой конфигурации регистра бухгалтерии (см. скриншот в начале статьи), а также определим какие темы будут рассматриваться дальше.

Структура хранения в базе

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

Настройки регистра

Итак, у нас есть регистр бухгалтерии со следующей структурой:

Опишем каждую из настроек:

  1. Настройки регистра
    • План счетов - указание на объект метаданных "План счетов", который используется регистром бухгалтерии.
    • Корреспонденция - флаг, указывающий используется ли корреспонденция счетов при создании записей в регистре. Регистр бухгалтерии может работать в двух режимах:
      1. С корреспонденцией - в этом случае используется механизм двойной записи, когда каждая запись регистра содержит поля "СчетДт" (счет дебета) и "СчетКт" (счет кредита).
      2. Без корреспонденции - в этом случае механизм двойной записи использоваться не будет. В каждой записи будет использоваться только одно измерение для указания счета - "Счет"
  2. Измерения
    • Организация - ссылка на справочник "Организации". Не используется признак учета, т.е. измерение будет использоваться для всех записей. Установлена настройка "Балансовый", которая определяет поддержку двойной записи для этого измерения и, соответственно, схождение баланса для него. Другими словами регистр бухгалтерии в нашем случае сконфигурирован таким образом, чтобы баланс можно было сводить в разрезе организации.
    • Валюта - ссылка на справочник "Валюты". Измерение ссылается на признак учета "Валютный". Это означает, что измерение будет использоваться только в том случае, если у счета установлен признак учета "Валютный".
  3. Ресурсы
    • Сумма - балансовый показатель, используемый для всех счетов. Признак учета субконто "Суммовой" указывает ведется ли учет по этому ресурсу для указанных в счете субконто. Подробнее об этом еще поговорим и рассмотрим работы этой настройки на примерах.
    • ВалютнаяСумма - не балансовый ресурс, используемый только для счетов с признаком учета "Валютный", а также используемый только для тех субконто, у которых признак учета субконто "Валютный" установлен в Истина.
    • Количество - также, как и ресурс "ВалютнаяСумма", не является балансовым. Используется только для счетов с признаком учета "Количественный", а также только для тех субконто, у которых в Истина установлен признак учета субконто "Количественный".
  4. Реквизиты
    • Содержание - реквизит с типом "Строка" (макс. длина 150) для хранения справочной информации записей регистра.

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

Для новичков все эти настройки кажутся запутанными. Мы не будем подробно рассказывать о назначении каждой из настроек регистра и плана счетов. О каждой настройке с прикладной точки зрения Вы можете узнать на ИТС и здесь. Также в последующих статьях мы подробнее остановимся на каждой настройке и проанализируем ее влияние на структуру таблиц регистра и работы платформы 1С:Предприятие с ними.

Таблицы регистра

В нашем примере используется регистр бухгалтерии с поддержкой корреспонденции и с максимальным количеством субконто - 3. Для измерений используются как признаки учета счетов, так и признаки учета субконто. В итоге платформа создала следующую структуру таблиц:

1. Основная таблица (_AccRg[внутренний номер]) - основная таблица регистра, в которой хранятся данные аналогично той структуре регистра, которая задана в конфигураторе (измерения + ресурсы + реквизиты). В нашем примере она выглядит следующим образом:

Заметим, что значения доп. аналитики, а именно субконто, не хранятся в основной таблице регистра. Для их хранения используется отдельная таблица, которая содержит все поля регистра, включая стандартные (период, регистратор, номер записи). Также присутствует поле "Активность" типа булево, которое влияет на то, будет ли запись влиять на таблицы итогов (если Истина, то запись учитывается в таблицах итогов).

2. Значения субконто (_AccRgED[внутренний номер]) - таблица создается, если для плана счетов регистра бухгалтерии используются субконто. Она нужна для хранения значений субконто записей основной таблицы регистра. В нашем примере таблица имеет следующую структуру:

Поле "Вид движения" может содержать два значения: 0 - дебет, 1 - кредит. Вид субконто в большинстве случаев содержит ссылку на элемент плана вида характеристик, задающий виды субконто. Значение субконто хранится по правилам, аналогично тому типу данных, который нужно сохранить. В нашем случае это ссылочный тип (подробнее о значениях каждого поля в этом случае Вы можете прочитать в одной из предыдущих статей).

3. Таблицы итогов.  К таблицам итогов регистра накопления относят:

 
 Таблица остатков (или таблица итогов по счетам)  (_AccRgAT[внутренний номер])
 
 Таблица оборотов (или таблица итогов между счетами) (_AccRgCT[внутренний номер])
 
 Таблицы итогов субконто (или итоги по счетам с субконто) (_AccRgAT[количество субконто][внутренний номер])

4. Настройки хранения итогов (_AccRgOpt[внутренний номер]) - таблицы с настройками итогов регистра бухгалтерии. Имеют следующую структуру:

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

Примечание: аналогичная таблица есть и у регистров накопления. Когда мы рассматривали эту тему ранее (еще на платформе 8.2), таких настроек как макс. и мин. хранимый период итогов не было. Это нововведение платформы 8.3. На примере регистра бухгалтерии мы проанализируем работу этих настроек, который будет актуальным и для регистров накопления.

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

Вместо заключения

Платформа 1С внутри содержит множество интересных механизмов, решений и много другого. Речь идет не только о стороне базы данных, но и особенностях работы сервера приложений, клиентской части, взаимодействия с веб-сервером и так далее. В этой и предыдущих статьях мы лишь немного приоткрыли внутреннюю структуру базы данных

Если есть интерес к подобным темам или другие вопросы – пишите в комментариях. Вы сами задаете темы будущих публикаций!

Сегодня мы коснулись общего назначение и структуры таблиц регистра бухгалтерии. В будущих статьях поднимем такие темы как:

  • Виртуальные таблицы регистра и SQL-запросы платформы
  • Настройки хранения итогов
  • Влияние количества субконто на производительность
  • Запросы платформы при записи в регистр бухгалтерии
  • Запросы обновления итогов
  • Проблемные ситуации при записи в регистр бухгалтерии

Нравятся статьи? Поддержите автора!

Ставьте лайки, подписывайтесь в профиле, оставляйте комментарий! :)

Другие ссылки

92

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. nvv1970 05.09.19 08:07 Сейчас в теме
Юрий, простите за офтоп, но сколько у Вас ещё материала в запасе для публикаций? Уже перевалили за половину? ;)
Попкорн заканчивается. Нужно понимать, сколько ещё закупать. )

ПС: спасибо за труды!
jif; CyberCerber; rpgshnik; YPermitin; +4 Ответить
2. YPermitin 3862 05.09.19 08:08 Сейчас в теме
(1) большинство публикаций пишется за вечер субботы на следующую неделю.

Пожтому, пока не надоест или мне не скажет сообщество "да заканчивай ты уже!".
3vs; CyberCerber; rpgshnik; +3 Ответить
3. leosoft 139 05.09.19 09:01 Сейчас в теме
Юрий, раз уж Вы затронули эту тему - хотелось бы получить информацию по "вытягиванию" данных
из этих регистров с помощью запросов и универсальных отчетов...
YPermitin; +1 Ответить
5. YPermitin 3862 05.09.19 09:13 Сейчас в теме
(3) уточните что имеете ввиду.
8. leosoft 139 05.09.19 09:26 Сейчас в теме
(5) Я про запросы к регистрам бухгалтерии - как их правильно делать, как вытягивать аналитику, как получать развернутое сальдо и т.п.
fomix; VKuser3060905; YPermitin; +3 Ответить
10. YPermitin 3862 05.09.19 09:43 Сейчас в теме
(8) принято, взял на будущее.
4. rpgshnik 1602 05.09.19 09:06 Сейчас в теме
Вы уже эксперт или готовитесь?) За труд однозначно плюс!
YPermitin; +1 Ответить
6. YPermitin 3862 05.09.19 09:14 Сейчас в теме
(4) если вы про сертификат, то нет. Сдавать сертификат эксперта не планирую.

Предпочитаю другие виды обучения и сертификации.
7. YPermitin 3862 05.09.19 09:14 Сейчас в теме
(4) но хотел его сдать лет 6 назад :)
9. AlexPC 05.09.19 09:33 Сейчас в теме
В большинстве мест данные ссылочного типа хранятся с использованием двух полей - TRef и RRef, почему в основной таблице регистра бухгалтерии используется только RRef? Каким образом определяется тип регистратора?
11. CheBurator 3395 05.09.19 11:50 Сейчас в теме
Отсутсвует пояснения что такое "признак учета субконто" и просто "Признак учета"
YPermitin; +1 Ответить
12. YPermitin 3862 05.09.19 12:03 Сейчас в теме
(11) эта информация будет раскрыта в будущем
13. AlexPC 05.09.19 13:39 Сейчас в теме
что хранится в полях _Fld96{Dt/Ct}? Сомневаюсь что это валюты, ведь тогда эти поля дублируют _Fld94{Dt/Ct}RRef. по всей видимости это суммы.
YPermitin; +1 Ответить
16. YPermitin 3862 05.09.19 22:42 Сейчас в теме
(13) вероятно, Вы правы. Видимо глаз замылился и я некоректно записал.

На днях проверю и поправлю публикацию.

Спасибо!
14. DoctorRoza 05.09.19 16:05 Сейчас в теме
На собеседовании как-то спросили:"Сколько таблиц создается в СУБД, если в базе есть 1 РБ?. А если 2 РБ?" И, если память не изменяет, то ответы: 7 и 13.
YPermitin; +1 Ответить
15. nicxxx 229 05.09.19 17:11 Сейчас в теме
(14) Это к разряду самых тупых вопросов на собеседованиях :)
YPermitin; +1 Ответить
17. YPermitin 3862 05.09.19 22:43 Сейчас в теме
(15) мне тоже не ясно что этим вопросом можно узнать :)
18. DoctorRoza 06.09.19 13:27 Сейчас в теме
(15),(17) можно узнать, внимательно ли я читал ЖКК ))
19. nicxxx 229 06.09.19 13:38 Сейчас в теме
Очень полезная информация о кандидате. Неделю назад искал работу, самый жирные офферы были там, где говорили без детальных тестов на знания, а так, на философские больше темы:) А компании-жопошники давили тестами на встречах и ещё домой давали:))
more; fomix; +2 Ответить
20. more 11.09.19 10:34 Сейчас в теме
(19) Это, как сказал великий Адизес: "Лучше взять на работу хорошего человека, и дать ему знания, чем взять знающего негодяя и разрушить климат в коллективе" (ну или как то так)
Оставьте свое сообщение