Запись таблицы значений в регистр сведений #679111


#0 by vhl
Есть задача регулярно записывать данные из таблицы значений в регистр сведений. Названия реквизитов совпадают с названиями колонок. Регистр периодический. 1 измерение, остальное - ресурсы. Количество записей в ТЗ 2-3тысячи. Может доходить до 100тысяч, но редко. Во всех строках значение измерения может быть разным. Пока делаю через создание менеджера записей для каждой строки. Но получается медленно. Есть идеи как можно записывать полностью таблицу?
#1 by бомболюк
А наборами записей не пробовал?
#2 by butterbean
дык набор записей с отбором по измерению
#3 by butterbean
+ и периоду
#4 by Starhan
РегистрСведенийНаборЗаписей.<Имя регистра сведений> (InformationRegisterRecordSet.<Имя регистра сведений>) Загрузить (Load) Синтаксис: Загрузить(<ТаблицаЗначений>) Параметры: Тип: ТаблицаЗначений. Таблица значений, по которой производится заполнение набора записей. Описание: Загружает набор записей значениями из переданной таблицы значений. При этом все прежние записи набора удаляются. Заполняются значения доступных для записи свойств записей регистра сведений, имена которых совпали c именами колонок таблицы значений. Доступность: Сервер, толстый клиент, внешнее соединение. Пример:
#5 by Maxus43
затрёт старые дык по одному периоду и одному измерению тока одна запись, равносильно , запись менеджером каждой хаписи
#6 by Maxus43
Записать(Ложь) если юзать - может прокатит. Т.е. создаём набор без отборов, как в ... проверять надо
#7 by vhl
На каждую строку создавать набор? RLY?
#8 by бомболюк
можно попробовать сначала все записи прибить разом, а потом писать наборами в режиме Записать(Ложь).
#9 by butterbean
все зависит загружаемых от данных если там все записи за период, то можно только отбор по периоду и не страшно что сотрет все старое
#10 by vhl
Есть второй раз попробовать загрузить те же данные будет выдавать ошибку, что данные уже есть. А иногда нужно будет перезаписывать.
#11 by Enders
Если у каждой записи свой период, тогда только менеджером. Если период одинаковый и раньше такого периода не было, тогда набор записей и отбор по периоду, а дальше загрузить. Можно конечно изменить РС. Добавить измерение "Дата загрузки", и в ТЗ добавить эту колонку. Отбор ставить по нему, дальше грузить.
#12 by Starhan
Затирает данные в наборе записей заполняя их заново  ТЗ, набору записей можно отдельно установить отбор. В данном случае только по периоду.
#13 by Starhan
Тогда затрет только записи с этим периодом.
#14 by Starhan
при записи набора записей >_<
#15 by Maxus43
что то мне подсказывает что там периодов много, и итог будет почти как в . Хотя если там разных периодов немного то да, будет лучше
#16 by vhl
В этом регистре несколько миллионов записей. Это не вариант.
#17 by Starhan
. Как я понял периода в ТЗ нет. какая структура у ТЗ?
#18 by vhl
Период есть. Поля все совпадают с полями регистра. Но в каждой записи свой период :(
#19 by butterbean
с набором все равно должно быть быстрее т.к. для записи через менеджер создается 2 набора — один для удаления, другой для записи нового
#20 by Maxus43
вот это плохо. Тут наверняка только менеджер записи использовать. отбор как поставишь?
#21 by Maxus43
таки Доп измерение если добавить - число например, НомерПачки, по нему отбор ставить и записывать набор весь
#22 by butterbean
на каждую пару период/измерение конечно свой отбор
#23 by Maxus43
тоже самое что будет, как менеджер. Прирост будет имхо минимален
#24 by Starhan
А зачем регистр периодический?
#25 by Maxus43
сколько грузится по времени щас кстати?
#26 by Starhan
Потом используется где-то срез последних?
#27 by vhl
Это было бы хорошо, если бы не пришлось переписывать все отчеты, которые привязаны к данному регистру :(
#28 by vhl
конечно
#29 by Фокусник
Зачем? Это измерение будет "служебное" в отчетах оно не нужно :)
#30 by vhl
Короче сделал так:     КонецЦикла; В среднем в 3 раза быстрее. Всем спасибо.
#31 by vhl
Ты неправильный срез последних будешь получать так
#32 by Starhan
попробуй так или даже так если даст Набор.Загрузить(ТабДляЗаписи.Скопировать(НайдСтр))
#33 by vhl
Да, так пожалуй будет лучше, спасибо!
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С