Как загрузить таблицу значений в регистр сведений
Есть таблица в которой заполнены данные. Их надо загрузить в регистр сведений, он периодический (период день), не подчиненный регистратору. Не загружаются данные в регистр сведений. Есть обработка, она содержит Таблицу с колонками Номенклатура-ТекущаяЦена-НоваяЦена.
В шапке обработки указывается дата для заполнения текущих цен и кнопка Заполнить. По нажатию кнопки Заполнить в Таблицу загружается вся номенклатура информационной базы (не помеченная на удаление), в колонку Текущая цена - срез последних цен из регистра на дату в шапке. В подвале обработки указываем вторую дату, по нажатию в подвале кнопки Установить - в РС на вторую дату создаются записи по заполненным Новым ценам номенклатуры.
Установка новых цен:
Заполнение цен:
В шапке обработки указывается дата для заполнения текущих цен и кнопка Заполнить. По нажатию кнопки Заполнить в Таблицу загружается вся номенклатура информационной базы (не помеченная на удаление), в колонку Текущая цена - срез последних цен из регистра на дату в шапке. В подвале обработки указываем вторую дату, по нажатию в подвале кнопки Установить - в РС на вторую дату создаются записи по заполненным Новым ценам номенклатуры.
Установка новых цен:
Для каждого Строка Из Объект.ЦеныНоменклатуры Цикл
МенеджерЗаписи = РегистрыСведений.ЦеныНоменклатуры.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Номенклатура = Строка.Номенклатура;
МенеджерЗаписи.Цена = Строка.ЦенаНовая;
Попытка
МенеджерЗаписи.Записать();
Исключение
Сообщить("Цена для " + Строка.Номенклатура + " не записана");
КонецПопытки;
КонецЦикла;
ПоказатьЗаполнение цен:
запрос = Новый запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЦеныНоменклатурыСрезПоследних.Номенклатура,
| ЦеныНоменклатурыСрезПоследних.Цена
|ИЗ
| РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ) КАК ЦеныНоменклатурыСрезПоследних
|ГДЕ
| НЕ ЦеныНоменклатурыСрезПоследних.Номенклатура.ПометкаУдаления";
Запрос.УстановитьПараметр("Дата", Объект.Дата);
ЦеныНоменклатуры = Запрос.Выполнить().Выгрузить();
Для Каждого СтрВыборка из ЦеныНоменклатуры Цикл
СтрТЧ = Объект.ЦеныНоменклатуры.Добавить();
СтрТЧ.Номенклатура = СтрВыборка.Номенклатура;
СтрТЧ.ТекущаяЦена = СтрВыборка.Цена;
КонецЦикла;
ПоказатьПо теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
У регистра сведений есть метод СоздатьНаборЗаписей, у которого, в свою очередь, есть метод Загрузить, в параметр которого передается таблица значений.
Пример:
Синтаксис:
Загрузить(<ТаблицаЗначений>)
Параметры:
<ТаблицаЗначений> (обязательный)
Тип: ТаблицаЗначений.
Таблица значений, по которой производится заполнение набора записей.
Описание:
Загружает набор записей значениями из переданной таблицы значений. При этом все прежние записи набора удаляются. Заполняются значения доступных для записи свойств записей регистра сведений, имена которых совпали c именами колонок таблицы значений.
ПоказатьЗагрузить(<ТаблицаЗначений>)
Параметры:
<ТаблицаЗначений> (обязательный)
Тип: ТаблицаЗначений.
Таблица значений, по которой производится заполнение набора записей.
Описание:
Загружает набор записей значениями из переданной таблицы значений. При этом все прежние записи набора удаляются. Заполняются значения доступных для записи свойств записей регистра сведений, имена которых совпали c именами колонок таблицы значений.
Пример:
Рег = РегистрыСведений.КурсыВалют;
НаборКурсов = Рег.СоздатьНаборЗаписей();
Таб = Новый ТаблицаЗначений;
// формирование таблицы значений
// ...
НаборКурсов.Загрузить(Таб);
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот