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

Добавление записей

Как добавить запись в непериодический независимый регистр сведений?

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

Как добавить запись в периодический независимый регистр сведений?

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

Как добавить записи в регистр сведений, подчиненный регистратору?

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

Удаление записей

Как удалить все записи из независимого регистра сведений?

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

Как удалить выборочные записи из набора записей регистра сведений?

НастройкаОтбора = ПланыВидовХарактеристик.НастройкиПользователей.НайтиПоКоду("00022"); //ОсновнаяОрганизация;НаборЗаписей = РегистрыСведений.НастройкиПользователей.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Настройка.Установить(НастройкаОтбора); НаборЗаписей.Прочитать();Для каждого ТекЗапись Из НаборЗаписей Цикл Если ТекЗапись.Значение = Организация Тогда НаборЗаписей.Удалить(ТекЗапись); КонецЕсли; КонецЦикла; НаборЗаписей.Записать();

Как удалить записи независимого регистра сведений с отбором?

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

Как удалить записи из регистра сведений, подчиненного регистратору?

Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЦеныНоменклатурыКонтрагентов.Регистратор |ИЗ | РегистрСведений.ЦеныНоменклатурыКонтрагентов КАК ЦеныНоменклатурыКонтрагентов"; Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); НаборЗаписей = РегистрыСведений.ЦеныНоменклатурыКонтрагентов.СоздатьНаборЗаписей(); Пока Выборка.Следующий() Цикл НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор); НаборЗаписей.Записать(); КонецЦикла;

Как в периодическом независимом регистре сведений удалить все записи через запрос?

Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | * |ИЗ | РегистрСведений.КурсыВалют КАК КурсыВалют |ГДЕ | (КурсыВалют.Период >= ДАТАВРЕМЯ(2005, 1, 1) | ИЛИ | НЕ(КурсыВалют.Валюта.Наименование ПОДОБНО ""USD"") | И | НЕ(КурсыВалют.Валюта.Наименование ПОДОБНО ""EUR""))"; ТаблицаОставляемыхЗаписей = Запрос.Выполнить().Выгрузить(); НаборЗаписей = РегистрыСведений.КурсыВалют.СоздатьНаборЗаписей(); НаборЗаписей.Загрузить(ТаблицаОставляемыхЗаписей); НаборЗаписей.Записать();

Как перебрать записи непериодического независимого регистра сведений в цикле?

НаборЗаписей = РегистрыСведений.СобственныеКонтрагенты.СоздатьНаборЗаписей(); НаборЗаписей.Прочитать(); // Перебрать записи в цикле… Для Каждого Запись из НаборЗаписей Цикл РегистрКонтрагент = Запись.Контрагент; РегистрВидСвязи = Запись.ВидСвязи; РегистрОбъект = Запись.Объект; КонецЦикла;

Как выгрузить записи непериодического независимого регистра в таблицу значений

НаборЗаписей = РегистрыСведений.СобственныеКонтрагенты.СоздатьНаборЗаписей(); НаборЗаписей.Прочитать(); // … выгрузить записи в таблицу значений. ТаблицаЗаписей = НаборЗаписей.Выгрузить();

Как прочитать (изменить) записи в периодическом независимом регистре сведений?

НаборЗаписей = РегистрыСведений.Валюты.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Период.Установить(ДатаЗаписи); НаборЗаписей.Прочитать(); Для Каждого Запись Из НаборЗаписей Цикл // Чтение и сообщение данных полей записи. Сообщить(Строка(Запись.Период) + " " + Строка(Запись.Валюта) + " " + Строка(Запись.Курс)); // Изменение данных полей записи. Запись.Курс = 0; КонецЦикла; НаборЗаписей.Записать();

Как прочитать данные, актуальные на определенную дату, из регистра сведений "Курсы валют" с отбором по нескольким валютам (отбор по измерениям)?

Запрос = Новый Запрос; МассивВалют = Новый Массив; МассивВалют.Добавить(Валюта1); МассивВалют.Добавить(Валюта2); Запрос.УстановитьПараметр("МассивВалют", МассивВалют); Запрос.УстановитьПараметр("ДатаПолучения", ДатаПолучения); Запрос.Текст = " |ВЫБРАТЬ | ВалютыСрезПоследних.Валюта, | ВалютыСрезПоследних.Курс |ИЗ | РегистрСведений.КурсыВалют.СрезПоследних(&ДатаПолучения, Валюта В (&МассивВалют)) КАК ВалютыСрезПоследних"; ТаблицаКурсов = Запрос.Выполнить().Выгрузить();

Как поменять период у записей периодического независимого регистра, соответствующих ряду условий?

Процедура ЗаменаПериода() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОтветственныеЛицаОрганизации.Период, | ОтветственныеЛицаОрганизации.СтруктурнаяЕдиница, | ОтветственныеЛицаОрганизации.ОтветственноеЛицо |ИЗ | РегистрСведений.ОтветственныеЛицаОрганизации КАК ОтветственныеЛицаОрганизации |ГДЕ | ОтветственныеЛицаОрганизации.Период <= ДАТАВРЕМЯ(2005, 1, 1) | И | ОтветственныеЛицаОрганизации.СтруктурнаяЕдиница.Наименование | ПОДОБНО "Групп-Трейдинг" | И | (ОтветственныеЛицаОрганизации.Должность.Наименование ЕСТЬ NULL | ИЛИ | НЕ(ОтветственныеЛицаОрганизации.Должность.Наименование | ПОДОБНО "Продавец" | ИЛИ | ОтветственныеЛицаОрганизации.Должность.Наименование | ПОДОБНО "Кладовщик"))"; Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Запись = РегистрыСведений.ОтветственныеЛицаОрганизации.СоздатьМенеджерЗаписи(); Пока Выборка.Следующий() Цикл Запись.Период = Выборка.Период; Запись.СтруктурнаяЕдиница = Выборка.СтруктурнаяЕдиница; Запись.ОтветственноеЛицо = Выборка.ОтветственноеЛицо; Запись.Прочитать(); Если Запись.Выбран() Тогда Запись.Период = Дата(2004, 1, 1); Запись.Записать(); КонецЕсли; КонецЦикла; КонецПроцедуры;

Как "сделать периодическим" реквизит уже заполненного справочника?

Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | &ДатаУстановки КАК Период, | Проекты.Ссылка КАК Проект, | Проекты.Ответственный |ИЗ | Справочник.Проекты КАК Проекты |ГДЕ | (НЕ(Проекты.ЭтоГруппа)) И (НЕ(Проекты.Ответственный = &Ответственный))"; Запрос.УстановитьПараметр("Ответственный", Справочники.Пользователи.ПустаяСсылка()); Запрос.УстановитьПараметр("ДатаУстановки", Дата(2000,1,1)); ТаблицаРезультат = Запрос.Выполнить().Выгрузить(); НаборЗаписей = РегистрыСведений.ЗакреплениеПроектов.СоздатьНаборЗаписей(); НаборЗаписей.Загрузить(ТаблицаРезультат); НаборЗаписей.Записать();

Как прочитать (изменить) записи в регистре сведений, подчиненном регистратору?

НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей(); НаборЗаписей.Отбор.Регистратор.Установить(ВыбранныйРегистратор); НаборЗаписей.Прочитать(); Для Каждого Запись Из НаборЗаписей Цикл // Чтение и сообщение данных полей записи. Сообщить(Строка(Запись.Период) + " " + Строка(Запись.ТипЦен) +" "+ Строка(Запись.Номенклатура) + " " + Строка(Запись.Цена) + " " + Строка(Запись.ПроцентСкидкиНаценки)); // Изменение данных полей записи. Запись.ПроцентСкидкиНаценки = 0; КонецЦикла; НаборЗаписей.Записать();

Получить массив типов Регистратора

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