1CLenta.ru  

Добавление, изменение, удаление записей регистра сведений

Программирование системы     05.07.2016 17:03     108106

Регистр сведений в 1С Предприятии, предназначен для хранения периодической или не периодической информации в разрезе измерений. Данные в другие типы регистров могут быть записаны только с использованием "Документа регистратора". А в Регистр сведений данные могут быть записаны как с "Регистратором" так и без него.

Выбрать записи из регистра сведений


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

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

Пока Выборка.Следующий() Цикл

МенеджерЗаписи = Выборка.ПолучитьМенеджерЗаписи();
МенеджерЗаписи.Прочитать();

//Изменить существующую запись
МенеджерЗаписи.Валюта = Валюта;
МенеджерЗаписи.Период = ТекущаяДата();
МенеджерЗаписи.Курс = 10.00;
МенеджерЗаписи.Записать();

//Удалить существующую запись
МенеджерЗаписи.Удалить();

КонецЦикла;


Добавить, изменить, удалить запись


Менеджер записи позволяет добавлять, изменять, удалять запись регистра сведений не подчиненного регистратору.

МенеджерЗаписи = РегистрыСведений.КурсыВалют.СоздатьМенеджерЗаписи();
Валюта = Справочники.Валюты.НайтиПоНаименованию("EUR");
МенеджерЗаписи.Валюта = Валюта;
МенеджерЗаписи.Период = ТекущаяДата();
МенеджерЗаписи.Прочитать();

Если НЕ МенеджерЗаписи.Выбран() Тогда

//Добавить новую запись
МенеджерЗаписи.Валюта = Валюта;
МенеджерЗаписи.Период = ТекущаяДата();
МенеджерЗаписи.Курс = 10.00;

Иначе

//Изменить существующую запись
МенеджерЗаписи.Валюта = Валюта;
МенеджерЗаписи.Период = ТекущаяДата();
МенеджерЗаписи.Курс = 10.00;

КонецЕсли;

//После добавления или изменения записи
//необходимо вызвать метод Записать
МенеджерЗаписи.Записать();

//Удалить существующую запись
МенеджерЗаписи.Удалить();


Добавить, изменить, удалить набор записей


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

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

Если НаборЗаписей.Количество() = 0 Тогда

//Добавление новой записи
НоваяЗапсиь = НаборЗаписей.Добавить();
НоваяЗапсиь.Валюта = Валюта;
НоваяЗапсиь.Период = ТекущаяДата();
НоваяЗапсиь.Курс = 10.00;

Иначе

//Изменение существующей записи
НаборЗаписей[0].Валюта = Валюта;
НаборЗаписей[0].Период = ТекущаяДата();
НаборЗаписей[0].Курс = 10.00;

КонецЕсли;

//Удалить существующую запись
НаборЗаписей.Удалить(НаборЗаписей[0]);

//После добавления, изменения, удаления записей
//необходимо вызвать метод Записать
НаборЗаписей.Записать();


Очистить регистр сведений


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

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

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

Комментарии (0)