В программах 1С Предприятие 8.3 все данные накапливаются в регистрах. Регистры в 1С 8.3 – это объекты конфигурации, представляющие собой таблицы, в которых хранятся записи, формируемые при проведении документов. На основании их записей строятся различные отчеты
Регистры сведений
Платформа формирует виртуальные таблицы только для периодических регистров сведений. Доступны следиющие их типы
- СрезПервых
- СрезПоследних
Выборка из регистра сведений
Выборку из непериодического независимого регистра сведений можно получить с помощью метода Выбрать. Первым параметром можно передать структуру с отбором, но только по одному измерению или реквизиту, и это измерение или реквизит должны быть проиндексированы.
ВыборкаЦен= РегистрыСведений.ЦеныНаТовары.Выбрать(); Пока ВыборкаЦен.Следующий()Цикл Сообщить(ВыборкаЦен.Товар); Сообщить(ВыборкаЦен.Цена); КонецЦикла; //с отбором ОтборТипЦен= Новый Структура; ОтборТипЦен.Вставить(“ТипЦен”,СсылкаНаТипЦен); ВыборкаЦен= РегистрыСведений.ЦеныНаТовары.Выбрать(ОтборТипЦен); Пока ВыборкаЦен.Следующий()Цикл Сообщить(ВыборкаЦен.Товар); Сообщить(ВыборкаЦен.Цена); КонецЦикла; |
Для периодического независимого регистра сведений первыми двумя параметрами указывается отбор по периоду:
//выборка за апрель НачалоАпреля= Дата(2021,4,1); КонецАпреля= Дата(2021,4,30,23,59,59); ВыборкаЦен= РегистрыСведений.ЦеныНаТовары.Выбрать(НачалоАпреля,КонецАпреля); Пока ВыборкаЦен.Следующий()Цикл Сообщить(ВыборкаЦен.Товар); Сообщить(ВыборкаЦен.Цена); КонецЦикла; |
Для выборки из подчиненного регистра сведений используется метод ВыбратьПоРегистратору. Параметром передается ссылка на регистратор:
ВыборкаЦен= РегистрыСведений.ЦеныНаТовары.ВыбратьПоРегистратору(СсылкаНаДок); Пока ВыборкаЦен.Следующий()Цикл Сообщить(ВыборкаЦен.Товар); Сообщить(ВыборкаЦен.Цена); КонецЦикла; |
Но как правило выборка получается запросом, где можно использовать различные отборы и сортировку:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
ЗапросЦен= Новый Запрос; ЗапросЦен.Текст= “ВЫБРАТЬ | ЦеныНаТовары.Товар КАК Товар, | ЦеныНаТовары.Цена КАК Цена |ИЗ | РегистрСведений.ЦеныНаТовары КАК ЦеныНаТовары |ГДЕ | ЦеныНаТовары.ТипЦен = &ТипЦен | |УПОРЯДОЧИТЬ ПО | Цена УБЫВ”; ЗапросЦен.УстановитьПараметр(“ТипЦен”,СсылкаНаТипЦен); ВыборкаЦен= ЗапросЦен.Выполнить().Выбрать(); Пока ВыборкаЦен.Следующий()Цикл Сообщить(ВыборкаЦен.Товар); Сообщить(ВыборкаЦен.Цена); КонецЦикла; |
Преимущество метода Выбрать только в том, что если в регистре сведений много записей, то через данный метод выборка будет получаться порциями. А выборка запроса сразу загрузит все данные в оперативную память.
Обязательные реквизиты регистров бухучета
Согласно ч. 1 ст. 9 Закона 402-ФЗ каждый факт хозяйственной жизни необходимо оформлять первичными учетными документами, а в свою очередь данные первичных учетных документов подлежат своевременной регистрации и накоплению в регистрах бухгалтерского учета. В учетной политике каждая организация самостоятельно указывает периодичность составления регистров бухгалтерского учета.
Необходимыми реквизитами регистров бухгалтерского учета являются, согласно ч. 4 ст. 10 Закона № 402-ФЗ – наименование регистра, наименование экономического субъекта, составившего регистр, дата начала и окончания ведения регистра и (или) период составления регистра, хронологическая и (или) систематическая группировка объектов бухгалтерского учета, величина денежного измерения объектов бухгалтерского учета с указанием единицы измерения, наименование должностей лиц, ответственных за ведение регистра, ФИО и подписи лиц, ответственных за ведение регистра.
Дано:
Документы прихода и расхода
Вкладка «Подсистемы»
На вкладке «Подсистемы» указываются подсистемы в которые может быть включен регистр сведений.
Данные регистров накопления
Измерения
Под измерениями регистров накопления подразумеваются некие разрезы, в которых в дальнейшем вы сможете получить информацию. В нашем случае в качестве измерений регистра «ВыпускПродукции» являются: организация, заказ, спецификация, подразделение и другие.
В любой момент мы сможем получить остатки, например, по всей организации в целом, по конкретному заказу.
Свойства измерений
У каждого измерения есть свой набор свойств, который может значительно повлиять на работу регистра в целом. Похожие свойства так же присутствуют и у ресурсов с реквизитами.
В том случае, если вы планируете в дальнейшем устанавливать отбор по какому-либо измерению достаточно часто. В нашем случае для организации индексирование мы применять не будем.
Так же здесь можно указать, является ли измерение обязательным для заполнения, должен ли использоваться полнотекстовый поиск и другие настройки.
Ресурсы
В качестве ресурсов выступают числовые данные, которые и хранят некую информацию. Именно ее в дальнейшем мы будем получать в различных разрезах. Например, в регистре накопления «Выпуск продукции» ресурсом будет выступать только количество. В таком случае мы сможем получить количество выпущенной продукции на какой-то определенный момент времени, например, по определенному подразделению.
Еще один простой пример. Предположим, что все операции по кассе мы проводим по регистру накопления. В качестве ресурсов будет выступать сумма денежных средств, которая либо поступила (приход), либо выдана (расход) из кассы. В качестве измерения может быть, например, контрагент/подотчетное лицо. В итоге мы сможем получить данные по остаткам и оборотам как кассы в целом, так и по отдельным контрагентам.
Реквизиты
В отличие от измерений и ресурсов реквизиты используются не так часто. В них хранятся те данные, которые нужны для информативного дополнения регистра (примечание). Данные будут использованы в качестве реквизитов, если они не являются ни ресурсом, ни измерением.
Стандартные реквизиты
Кроме обычных реквизитов, которые разработчик может добавить самостоятельно, существуют так же и стандартные реквизиты. Удалить и добавить новые в этот список нельзя. Перейти к стандартным реквизитам вы моете по одноименной кнопке на вкладке «Данные».
Агрегаты
Агрегаты доступны только в регистрах накопления с видом «Обороты». Перейти к ним можно с вкладки «Данные». Агрегаты применяются в базах с большим количеством данных для ускорения формирования отчетов. Мы не будем рассматривать этот механизм подробно, так как это достаточно обширная тема.
Вкладка «Формы»
На данной вкладке можно создать «Форму записи» и «Форму списка» регистра. Создавать формы не обязательно, т.к. если форма не указана, но в режиме 1С.Предприятие открыть регистр, то программа самостоятельно сформирует для него стандартную форму.
Регистры бухгалтерии
Самым большим набором виртуальных таблиц обладают регистры бухгалтерии
- Остатки
- Обороты
- ОборотыДтКт
- ОстаткиИОбороты
- Субконто
- ДвиженияССубконто
Но скорость обращения к регистрам бухгалтерии самая низкая. Поэтому если есть возможность получить те же остатки или обороты с использованием регистров накопления, то их и надо использовать.
Уникальность записей
Система обеспечивает контроль уникальности записей, хранящихся в регистре расчета. Поэтому в регистре расчета не может находиться двух записей, относящихся к одной и той же строке одного и того же документа.
Функциональные возможности регистра расчета
Основными функциональными возможностями, которые предоставляет регистр расчета разработчику, являются:
- выбор записей в заданном интервале по заданным критериям;
- выбор записей по регистратору;
- получение значения базы для записей регистра, удовлетворяющих заданному отбору;
- получение данных графика для записей регистра, удовлетворяющих заданному отбору;
- получение данных о записях, подлежащих перерасчету;
- чтение, изменение и запись набора записей в регистр.