Содержание:
1. Свойства регистров сведений, влияющие на указание их ключа при записи в режиме конфигурации 1С
2. Объект встроенного языка программирования 1С для записи регистров сведений в 1С 8.3
1. Свойства регистров сведений, влияющие на указание их ключа при записи в режиме конфигурации 1С
Регистры сведений – удобный механизм хранения различной информации (ресурсов) в сопоставлении с какими-то наборами 1С ключевых полей (измерений – или «ключами записей»). Одному (уникальному) набору ключа может соответствовать только один набор ресурсов, что отличает их, например, от справочников, которые в принципе могут иметь одинаковые значения ключевых полей (код, наименование и т.д.). Если в 1С 8 регистр сведений периодический, то уникальность набора измерений расширяется еще и в разрезе периода – т.е. ключ записи регистра составляет уникальный набор измерений плюс значение периода записи. Кроме того, регистры сведений, в отличие от тех же справочников, обладают большими возможностями по параллельной работе с СУБД (операции записи/чтения), т.к. архитектура их таблиц в СУБД позволяет производить более тонкие блокировки.
Рассмотрим, какие бывают особенности записи регистров сведений 1С 8.3 программно.
К таковым относятся:
· Режим записи 1С
- Независимый
- Подчинение регистратору
· Периодичность
- Непериодический
- Периодический: в переделах секунды, дня, месяца, квартала или года; если регистр сведений подчиненный регистратору, то к вариантам периодичности добавляется еще и «по позиции регистратора»
Таким образом, существует четыре разновидности свойств регистров сведений, каждой из которых соответствует своя полнота указания в 1С ключевых полей при записи.
Самый простой механизм записи имеет независимый, непериодический регистр сведений: для его записи достаточно указать значения обязательных к заполнению измерений (но не менее одного).
Если регистр «подчинен регистратору», то среди ключевых полей появляется обязательное для заполнения поле «Регистратор». Запись таки регистров ведется, как правило, в процедурах обработки проведения документов – но это не обязательно – важно, чтобы было заполнено поле «Регистратор». Интересно, что в качестве регистратора может выступать не только ссылка на проводимый документ, но и ссылка на любой другой документ допустимого типа – т.е. текущий проводимый документ может формировать по регистру сведений движения для другого документа.
Если регистр периодический, то среди 1С ключевых полей появляется обязательное для заполнения поле «Период». При передаче значения в этой поле оно (значение) всегда преобразуется к «началу периода» выбранного для регистра варианта периодичности: например, если периодичность регистра «В пределах месяца», а мы отправляем в поле «Период» значение 09.10.2022 19:29:35, то в этом поле «Период» будет зафиксировано значение 01.10.2022 0:00:00 – и именно оно будет участвовать в запросах. Для вариантов периодичности «По позиции регистратора» и «В пределах секунды» эти преобразования не столь очевидны, но, тем не менее, о разнице между «позицией» и «секундой» помнить нужно.
Для периодического регистра 1С подчиненного регистратору требуется самая полная форма заполнения ключа: помимо обязательных измерений следует заполнять и «Период» и «Регистратор».
2. Объект встроенного языка программирования 1С для записи регистров сведений в 1С 8.3
В 1С 8 регистр сведений можно заполнять (записывать) с помощью двух объектов:
· РегистрСведенийМенеджерЗаписи
· РегистрСведенийНаборЗаписей
С точки зрения производительности важно понимать, что когда мы используем менеджер записи 1С, то каждая запись отправляется в СУБД отдельным запросом (например, в цикле), в то время, как в 1С набор записей регистра сведений за одно обращение к СУБД можно записать сразу много записей.
Также следует помнить, что в 1С 8 регистр сведений по одному ключу может хранить только один набор ресурсов, и если вы попытаетесь добавить запись с уже существующим набором 1С ключевых полей, то в общем случае получите ошибку «запись с такими ключевыми полями уже существует». Для управления такой ситуацией в команде «Записать» есть параметр «Замещать» (как у менеджера записи, так и у набора записей). При «Замещать» = Истина мы перепишем значения существующих ключей и уникальность будет сохранена.
Еще одна особенность наборов записей: он предоставляет разработчику возможность работы с «событиями», такими как «ОбработкаЗаполнения», «ПередЗаписью», «ПриЗаписи» и другими (см. описание встроенного языка), что может быть полезно при решении многих задач.
Мы рассмотрели особенности регистров, которые влияет на их запись. Конкретные пр
имеры программного кода 1С по записи регистров можно легко найти в документации и на просторах интернета.
Специалист компании "Кодерлайн"
Игорь Борисенко