Запись большого количества записей в регистр сведений #810448


#0 by vasko
Имеется ТЧ в которой около 10000 штрихкодов, нужно их записать в регистр сведений розницы. Если делать это в лоб через менеджер записи загрузка занимает около часа. Как можно оптимизировать загрузку? Можно ли передать в параметры отбора набора записей список номенклатуры для которой будут записываться штрихкоды?
#1 by Dmitry1c
записать не через менеджер записи, а через набор записей
#2 by vasko
Можно ли передать в параметры отбора набора записей список номенклатуры для которой будут записываться штрихкоды?
#3 by h-sp
вообще без отбора фигачь.
#4 by vasko
:) и затереть 60000 загруженных ранее записей
#5 by nordbox
>>Имеется ТЧ в которой около 10000 Хочу тебе сказать что у меня РС ШК выгрузка-15 сек и загрузка-<15 сек между разными базами
#6 by nordbox
+5 правда базу для этого подготовить надо что бы в ней номенклатура была, характеристики ну и т.д.
#7 by MrCoffin
Да.
#8 by jsmith82
Да ничего не выйдет
#9 by runoff_runoff
цикл и отбор по каждой номенклатуре в наборе записей..
#10 by vasko
а разница с циклом и менеджером записи
#11 by H A D G E H O G s
Нужно просто взять и придумать обьединяющий элемент для всех 10000 и писать с его отбором. Например, это будет справочник Группы штрих-кодов, идентифицируемый по sha1 хэшу суммы 10000 шк
#12 by jsmith82
#13 by ЛЮС
Вариант: создать набор без отборов, прочитать, добавить в него загружаемые данные, записать. Может быть и даст прирост в скорости, тут много "но", думать надо.
#14 by DomovoiAtakue
У Записи есть параметр не затирать.
#15 by jsmith82
Ждём результаты тестов от ТС
#16 by vasko
проблема в том что в загружаемой ТЧ могут быть повторяющиеся штрихкоды, я думаю в этом случае будет ошибка что запись не уникальна, и даже если такой штрих код запишется то потом при сканировании могут возникнуть проблемы.
#17 by vasko
думаю попробовать запихнуть запись в транзакцию, но тогда при любой ошибке все придется заново повторять. Подскажите возможно ли поместить отлов исключений в транзакцию, и могут ли при этом быть какие-то скрытые проблемы?
#18 by jsmith82
Нет, нельзя
#19 by jsmith82
Можно отменить транзакцию в попытке
#20 by jsmith82
Ну или делай без транзакции, а в попытке формируй список проблемных ШК Либо вычисли их предварительно в запросе
#21 by h-sp
10000 записей - это ни о чем, детский размер для регистра сведений. Поэтому вам в другую сторону копать надо. У вас похоже код какой то выполняется, в при записи или перед записью в модуле регистра или в подписках.
#22 by vasko
вполне возможно. Розница стандартная ред. 2.2, что там может выполняться при записи штрихкода?
#23 by jsmith82
Сделай замер, чо
#24 by h-sp
вот если стандартная у вас розница ,  то там по любому в при записи миллион всякого кода - это сто процентов.
#25 by vasko
как с этим бороться? посмотрел в модулях там есть проверка дублирования кодов, и наверняка в подписках где-то задействовано.
#26 by Фрэнки
по идее, должен быть готовый параметр ПриОбмене - в типовой Рознице не смотрел, но можно проверить, что много много кода при получении данных игнорят... точнее не помню, не напишу т.к. сейчас не за рабочим компом и подсмотреть в конфигурации возможности нет.
#27 by h-sp
писать обмен данными.загрузка=истина
#28 by jsmith82
Значит, через набор записей
#29 by Фрэнки
а запись такая всегда идет через набор, даже если явным образом это не пишут, то вызывается ПриЗаписи из менеджера набора записей, хоть для одной, хоть для множества записей в наборе.
#30 by jsmith82
У менеджера не нашёл свойство в СП :)
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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