Для чего предназначены регистры планы и константы в системе 1с предприятие

Обновлено: 07.07.2024

В любой конфигурации 1с 8.2 можно увидеть такой вид объектов, как регистры. Основное их предназначение — оптимизация получения данных для отчетов. Существует четыре вида реистров: регистры сведений, регистры накоплений, регистры бухгалтерии и регистры расчета. И хотя предназначены эти виды для решения разных задач, уже по тому, что они все называются «регистрами» можно догадаться, что они имеют и нечто общее.

Во-первых, как уже упоминалось, как объекты конфигурации они нужны для более быстрого считывания информации из базы данных, например в запросах. Регистры можно сравнить с каталогом книжной библиотеки (раньше их составляли на бумажных карточках). То есть это не только хранение информации (данных), но и ее систематизация (создание определенной структуры), когда в конкретный регистр попадают данные (например, из документов разного вида) и при необходимости ее можно достаточно быстро оттуда извлечь и вывести, например, в отчет или обработать иным образом. В общем случае основное использование регистров в 1с можно изобазить следующей схемой: «Документ — Регистр — Отчет», хотя существуют и исключения.

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

В-третьих, регистры имеют табличную структуру, но она отличается от структуры объектных таблиц. Так что вы не найдете таких классов, как РегистрСсылка или РегистрОбъект. Состав таблицы регистра зависит от его свойств.

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

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

Терперь поговорим об особенностях каждого вида регистров:

1. Регистры сведений

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

Имеет особое свойство, не используемое в других видах регистров — периодичность.

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

Кроме того, данный вид регистра имеет автоматический контроль уникальности записей по периоду (периодичность, указанная в свойствах регистра) и измерениям. То есть среди записей регистра не может быть более одной записи с одинаковыми показателями период+измерение+регистратор(если он есть). Уникальность записей в других видах регистров осуществляется по регистратору.

2. Регистры накоплений

Предназначен для накопления числовых покателей (ресурсов) и делится на два подвида — Остатки и Обороты. Отличие между ними заключается в том, что Регистр накопления Остатки предназначен для получения информации о состоянии «на момент времени», а Обороты — информации о данных «за период».

Данные регистра накопления хранятся в БД в виде двух таблиц — таблица движений и таблица итогов. Обращение напрямую возможно только к таблице движений.

3. Регистры бухгалтерии

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

Его основная особенность заключается в возможности учета данных методом двойной записи по принципу Дебет-Кредит. Для реализации возможности формирования проводок Регистр бухгалтерии должен быть связан со специальным объектом - План счетов.

4. Регистры расчета

Этот вид регистра предназначен не только для хранения, накопления и систематизации данных, но и для реализации сложных механизмов периодческих расчетов. Для этого в свойствах регистра расчета необходимо определить еще один объект 1с — план видов расчета. То есть работа регистра этого вида невозможна без определения для него конкретного плана видов расчета.

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

Таким образом, можно сказать, что регистр расчета имеет в итоге самую сложную структуру по сравнению с другими видами регистров в 1с.

В системе 1С:Предприятие константы предназначены для хранения постоянной или условно-постоянной информации. Такая информация либо совсем не изменяется в процессе деятельности предприятия, либо изменяется достаточно редко. Наиболее простой пример подобной информации -- название организации, которое, как правило, не меняется.

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

Рассмотрим такой пример. Наиболее часто на документах предприятия встречается подпись директора и главного бухгалтера. Естественно, что подписи эти должностные лица должны ставить самостоятельно. Но помимо самой подписи, в документах требуется ее расшифровка -- фамилия подписавшего документ. Конечно, можно ввести фамилии директора и главного бухгалтера непосредственно в формы документов. Но, если какая-либо из фамилий изменится, то придется вновь редактировать все бланки документов и исправлять фамилии. Поэтому гораздо удобнее создать в Конфигураторе 2 константы -- для хранения фамилий директора и главного бухгалтера, ввести эти фамилии в константы один раз, а в многочисленных бланках документов использовать идентификаторы констант для получения их значений. При смене директора или главного бухгалтера достаточно внести изменения только в константы -- ввести и них новые фамилии -- и все изменения автоматически будут отражены в тех местах, где эти константы используются.

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

Следует обговорить, что в Конфигураторе создастся только описание константы как места для хранения какой-либо информации. Но в данном контексте для простоты будет использоваться термин «константа».

Управление списком констант.

Вся работа с объектами метаданных типа «Константа» ведется в окне «Конфигурация -- Метаданные». Для констант отведена отдельная ветвь дерева метаданных, которая начинается у ключевого слова «Константы». Приемы создания, редактирования свойств и удаления констант совпадают с общими приемами управления объектами метаданных, изложенными в главе «Метаданные» на стр. 16.

В этом параграфе будут описаны специфические свойства константы, в дополнение к общим свойствам объектов метаданных, о которых говорилось в п. «Свойства объектов метаданных» на стр. 21.

Свойства константы редактируются при помощи палитры свойств «Свойства Константы». Необходимо обратить внимание, что константа является типизированным объектом метаданных (см. и. «Типизированные и типообразующие объекты метаданных», стр. 16).

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

К периодической константе можно обращаться при помощи встроенного языка системы 1С:Предприятие -- получать и записывать значение константы на указываемую дату. Однако следует иметь в виду, что при получении значения константы на какую-то дату извлекается ее значение на указанную или (если значение константы на указанную дату отсутствует) на ближайшую предыдущую дату, а запись значения периодической константы выполняется всегда на указанную дату.

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

Режим «Конфигуратор»

Система «1С:Предприятие 8» имеет два основных режима запуска - "Конфигуратор" и "1С:Предприятие".

Первый из этих режимов предназначен для создания ИБ (информационной базы), внесения изменений в ее Конфигурацию, а также для выполнения административных функций.

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

Если в режиме "Конфигуратор" с помощью встроенного языка определены соответствующие алгоритмы обработки, то в режиме "1С:Предприятие" пользователь будет вызывать их работу, давая системе соответствующие команды.


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

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

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

Назначение

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


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

Регистры бухгалтерии - это

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

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

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


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

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

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

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


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

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


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

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

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


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

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


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

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

      Таблицы итогов субконто хранят итоги по субконто для счетов в разрезе измерений регистра бухгалтерии. В таблицах хранятся обороты по ресурсам регистра (по дебету и кредиту). Таблицы также содержат поля для механизма разделения итогов.

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


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

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

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

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

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

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

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

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

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


      Константы в 1С используются для хранения условно-постоянной информации. То есть это те значения, которые редко меняются. Например, основная организация, валюта регламентированного учета, дата начала применения какого-нибудь приказа и т.п.

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

      Важно понимать, что в 1С константы это не глобальные переменные, которые нельзя изменить в коде. Это некие значения, которые хранятся в базе данных. Их можно изменить как программно, так и интерактивно в пользовательском режиме.

      В дереве метаданных константы находятся в разделе Константы:

      Константа

      В свойствах константы нужно указать тип. Составной тип тоже можно указать:

      Константа

      Форма констант

      Использовать стандартные команды

      команда для открытия формы константы

      Так выглядит снегерированная платформой форма константы:

      форма константы

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

      Основная форма константы

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

      Форма константы

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

      обработчики формы

      При создании общей формы можно выбрать тип формы Форма констант, тогда будет создана общая форма со всеми константами из конфигурации:

      Форма констант

      Справа есть основной реквизит формы НаборКонстант, откуда можно перетягивать константы мышкой на форму:

      НаборКонстант

      Чтобы доступ к форме констант был в пользовательском режиме нужно в свойствах формы установить галку Использовать стандартные команды:

      Использовать стандартные команды

      Редактирование констант возможно в пользовательском режиме через меню Все функции:

      Все функции

      Как получить и изменить значение константы

      Для получения и изменения значения константы предназначены методы Получить и Установить. Получить и изменить значение константы можно только на сервере. Нельзя получить значение константы на клиенте.

      Читайте также: