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

05.09.19

Разработка - Механизмы типовых конфигураций

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

Введение

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

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

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

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

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

См. также

СКД Механизмы типовых конфигураций Запросы Программист Платформа 1С v8.3 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Россия Бесплатно (free)

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

20.08.2024    1737    PROSTO-1C    0    

18

Механизмы типовых конфигураций Программист Платформа 1С v8.3 1С:Комплексная автоматизация 2.х Россия Бесплатно (free)

Эта ошибка была обнаружена мной в типовой конфигурации 1С:Комплексная автоматизация 2 (2.5.16.115), БСП версия 3.1.9.302. Возникает она после того, как вы добавляете в расширение бизнес-процесс или задачу, выполняете обновление идентификаторов метаданных расширений, но ошибка при записи любого элемента справочника "Профили групп доступа" всё равно остаётся.

01.07.2024    1744    Vidz    0    

11

Механизмы типовых конфигураций Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

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

24.06.2024    1106    olja-ljaaa    0    

3

Механизмы типовых конфигураций Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Статистическая выборка сценариев и точек изменения отчетов на общей форме ФормаОтчета в типовых конфигурациях. Примеры кода.

03.06.2024    4891    Serg2000mr    32    

108

Механизмы типовых конфигураций Ценообразование, анализ цен Программист Пользователь Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Россия Абонемент ($m)

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

1 стартмани

11.04.2024    1058    tango    5    

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

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

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

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

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

Спасибо!
14. DoctorRoza 05.09.19 16:05 Сейчас в теме
На собеседовании как-то спросили:"Сколько таблиц создается в СУБД, если в базе есть 1 РБ?. А если 2 РБ?" И, если память не изменяет, то ответы: 7 и 13.
YPermitin; +1 Ответить
15. nicxxx 255 05.09.19 17:11 Сейчас в теме
(14) Это к разряду самых тупых вопросов на собеседованиях :)
user1706724; Merkalov; YPermitin; +3 Ответить
17. пользователь 05.09.19 22:43
(15) мне тоже не ясно что этим вопросом можно узнать :)
18. DoctorRoza 06.09.19 13:27 Сейчас в теме
(15),(17) можно узнать, внимательно ли я читал ЖКК ))
19. nicxxx 255 06.09.19 13:38 Сейчас в теме
Очень полезная информация о кандидате. Неделю назад искал работу, самый жирные офферы были там, где говорили без детальных тестов на знания, а так, на философские больше темы:) А компании-жопошники давили тестами на встречах и ещё домой давали:))
m_aster; more; fomix; +3 Ответить
20. more 17 11.09.19 10:34 Сейчас в теме
(19) Это, как сказал великий Адизес: "Лучше взять на работу хорошего человека, и дать ему знания, чем взять знающего негодяя и разрушить климат в коллективе" (ну или как то так)
user1706724; m_aster; user833363; chng; +4 Ответить
23. bugagashenka 203 26.02.20 10:26 Сейчас в теме
(20) а как понять, сколько стоит хороший человек? Ну, вот например, знающий много анекдотов сколько стоит? А если еще и песни поет и на гитаре играет? А если он при этом пишет как попало? А если многого не знает и просит в два раза больше, чем стоит? Понятно, что заваливать с ног до головы не стоит, но если компания работает 24/7 и час простоя системы стоит миллионы, а обновление нельзя сделать в течение рабочего дня, то стоит ли довольствоваться только человеческими качествами соискателя или уж лучше взять матерого интроверта, который при желании и свое сделает как следует и носом ткнет, где исправить другому.
rinat_alp2; +1 Ответить
21. sertak 324 27.09.19 13:05 Сейчас в теме
Спасибо, отличная статья!
YPermitin; +1 Ответить
25. menen 11.04.21 02:59 Сейчас в теме
На рис. Основная таблица поля _Fld96Dt и _Fld96Сt - наверное это СУММЫ в ВАЛЮТЕ Дт и Кт соответственно ?
26. tarroman 16.12.21 13:13 Сейчас в теме
(25) Ага. Автор обещал это поправить (было выше про это), но видимо пока не дошли руки :)
27. tarroman 16.12.21 13:22 Сейчас в теме
Также в скрине таблицы оборотов тоже путаница, т.к. там должно быть не балансовое измерение Валюта (да и по имени видно, что там ссылки должны быть, а в подписи - суммы). Я про _Fld94DtRRef и _Fld94СtRRef.
28. Merkalov 11 24.03.22 06:21 Сейчас в теме
(27) +
Тоже обратил внимание. Таблица итогов между счетами отображена абсолютно некорректно.
1. Аналитика ведется в разрезе всех измерений (а не только балансовых).
2. По балансовому полю в этой таблице будет 1 поле - СуммаОборот за месяц (нет никакого смысла балансовый ресурс разделять на ОборотДт и ОборотКт, они всегда будут равны)
3. По не балансовым ресурсам всегда два поля - ВалютнаяСуммаОборотКт и ВалютнаяСуммаОборотДт (суммы могут различаться)
Оставьте свое сообщение