1С регистр сведений как добавить запись - как изменить, получить, сделать, удалить запись
Меню

Регистр сведений в 1С 8.3

Содержание статьи
  1. Характеристики
  2. Запись в регистр сведений 1С
  3. Поиск и чтение в регистре сведений
  4. Изменение и удаление записей

Существует несколько видов регистров в 1С:

  • Накопления, хранящие остатки или обороты в числовом виде;
  • Расчета, хранящие виды расчетов и сами расчеты, обычно используются для расчета зарплаты;
  • Бухгалтерии с данными о бухгалтерских расчетах в виде Дт-Кт;
  • Регистры сведений.

На последних мы остановимся поподробнее, поскольку они позволяют компилировать данные из БД по разрезам измерений. Например, в «Ценыноменклатуры» хранятся данные для конкретной номенклатуры и характеристики по определенному виду цен.

Регистр «Ценыноменклатуры»
Регистр «Ценыноменклатуры»

Характеристики

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

Периодичность и режим записи
Периодичность и режим записи

Если попытаться создать две записи в пределах одного периода, программа выдаст ошибку «Запись с такими ключевыми полями существует!» и не даст произвести запись в базу данных.

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

Режимы записи
Режимы записи

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

Запись в регистр сведений 1С

Строки в регистре с периодом и регистратором, содержащие информацию о ресурсах в разрезе измерений, называются записями.

Чтобы добавить запись в регистр используются или менеджер записей, или набор записей. Если у записей в регистре имеется общий ключ, то необходимо использовать НаборЗаписей. А для записи одной единственной записи, если в регистре все записи уникальны, необходимо использовать МенеджерЗаписи.

Пример записи при использовании объекта РегистрСведенийНаборЗаписей.

Использование менеджера записи:


	НоваяЗапись = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи();
	НоваяЗапись.Валюта =     Справочники.Валюты.НайтиПоНаименованию(«USD»);
	НоваяЗапись.Период = Дата(31,12,2016);
	НоваяЗапись.Курс = 100;
	НоваяЗапись.Кратность = 1;
	НоваяЗапись.Записать();
	

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

Если записать без отбора данные в подчиненны регистр, возникнет ошибка.

Пример записи с использованием набора записей в подчиненный регистратору регистр сведений ЦеныНоменклатуры:


	НовыйНаборЗаписей =     РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей();
	НовыйНаборЗаписей.Отбор.Регистратор.Установить(Ссылка);
	НоваяЗаписьНабора = НовыйНаборЗаписей.Добавить();
	НоваяЗаписьНабора.Период = Ссылка.Дата;
	НоваяЗаписьНабора.Номенклатура = Ссылка.Номенклатура;
	НоваяЗаписьНабора.Цена = Ссылка.Цена;
	НовыйНаборЗаписей.Записать();
	

Пример записи через менеджер записи:


	Запись = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи();
	Запись.Период = Дата;
	Запись.Курс = Курс;
	Запись.Валюта = Валюта;
	Запись.Записать();
	

Поиск и чтение в регистре сведений

Чтобы найти в регистре сведений запись и прочитать ее, нужна помощь запросов. Например, нам надо получить цены, внесенные определенным регистратором:


	ВЫБРАТЬ
              ЦеныНоменклатуры.Номенклатура,
              ЦеныНоменклатуры.Цена
	ИЗ
              РегистрСведений.ЦеныНоменклатуры КАК ЦеныНоменклатуры
	ГДЕ
              ЦеныНоменклатуры.Регистратор = &Регистратор
	

Изменение и удаление записей

Чтобы удалить запись регистра сведений, например, все курсы валюты EUR, воспользуйтесь следующим кодом:


	СтруктураОтбора = новый Структура("Валюта",     Справочники.Валюты.НайтиПоНаименованию("EUR"));
        	Выборка = РегистрыСведений.КурсыВалют.Выбрать(,,СтруктураОтбора);
        	Пока Выборка.Следующий() Цикл
                    	МенеджерЗаписи = Выборка.ПолучитьМенеджерЗаписи();
                    	Выборка.ПолучитьМенеджерЗаписи().Удалить();
        	КонецЦикла;
	

Для быстрой и полной очистки регистра можно использовать следующий код:


	НоваяЗапись = РегистрыСведений.ТестовыйРегистр.СоздатьНаборЗаписей();
	НоваяЗапись.Записать();
	

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

Рассказать друзьям
Предыдущая статья статья
Модуль числа в 1С 8.3
Следующая статья статья
Основные справочники 1С 8.3: создание и изменение элементов
Комментарии