Имя: Пароль:
1C
1С v8
Запись большого количества записей в регистр сведений
0 vasko
 
17.12.17
12:27
Имеется ТЧ в которой около 10000 штрихкодов, нужно их записать в регистр сведений розницы. Если делать это в лоб через менеджер записи загрузка занимает около часа. Как можно оптимизировать загрузку? Можно ли передать в параметры отбора набора записей список номенклатуры для которой будут записываться штрихкоды?
1 Dmitry1c
 
17.12.17
12:31
(0) записать не через менеджер записи, а через набор записей
2 vasko
 
17.12.17
12:33
(1) Можно ли передать в параметры отбора набора записей список номенклатуры для которой будут записываться штрихкоды?
3 h-sp
 
17.12.17
12:38
(2) вообще без отбора фигачь.
4 vasko
 
17.12.17
12:40
(3) :) и затереть 60000 загруженных ранее записей
5 nordbox
 
17.12.17
12:46
(0) >>Имеется ТЧ в которой около 10000
Хочу тебе сказать что у меня РС ШК выгрузка-15 сек и загрузка-<15 сек между разными базами
6 nordbox
 
17.12.17
12:48
+5 правда базу для этого подготовить надо
что бы в ней номенклатура была, характеристики ну и т.д.
7 MrCoffin
 
17.12.17
12:58
(2) Да.
8 jsmith82
 
17.12.17
12:59
Да ничего не выйдет
9 runoff_runoff
 
17.12.17
13:00
цикл и отбор по каждой номенклатуре в наборе записей..
10 vasko
 
17.12.17
13:05
(9) а разница с циклом и менеджером записи
11 H A D G E H O G s
 
17.12.17
13:12
Нужно просто взять и придумать обьединяющий элемент для всех 10000 и писать с его отбором.

Например, это будет справочник Группы штрих-кодов, идентифицируемый по sha1 хэшу суммы 10000 шк
12 jsmith82
 
17.12.17
13:15
13 ЛЮС
 
17.12.17
13:20
Вариант: создать набор без отборов, прочитать, добавить в него загружаемые данные, записать. Может быть и даст прирост в скорости, тут много "но", думать надо.
14 DomovoiAtakue
 
17.12.17
13:21
(4)У Записи есть параметр не затирать.
15 jsmith82
 
17.12.17
13:23
Ждём результаты тестов от ТС
16 vasko
 
17.12.17
13:36
(14) проблема в том что в загружаемой ТЧ могут быть повторяющиеся штрихкоды, я думаю в этом случае будет ошибка что запись не уникальна, и даже если такой штрих код запишется то потом при сканировании могут возникнуть проблемы.
17 vasko
 
17.12.17
13:39
думаю попробовать запихнуть запись в транзакцию, но тогда при любой ошибке все придется заново повторять. Подскажите возможно ли поместить отлов исключений в транзакцию, и могут ли при этом быть какие-то скрытые проблемы?
18 jsmith82
 
17.12.17
13:41
(17) Нет, нельзя
19 jsmith82
 
17.12.17
13:41
Можно отменить транзакцию в попытке
20 jsmith82
 
17.12.17
13:42
Ну или делай без транзакции, а в попытке формируй список проблемных ШК
Либо вычисли их предварительно в запросе
21 h-sp
 
17.12.17
13:46
(17) 10000 записей - это ни о чем, детский размер для регистра сведений. Поэтому вам в другую сторону копать надо. У вас похоже код какой то выполняется, в при записи или перед записью в модуле регистра или в подписках.
22 vasko
 
17.12.17
13:51
(21) вполне возможно. Розница стандартная ред. 2.2, что там может выполняться при записи штрихкода?
23 jsmith82
 
17.12.17
13:51
Сделай замер, чо
24 h-sp
 
17.12.17
13:57
(22) вот если стандартная у вас розница
,  то там по любому в при записи миллион всякого кода - это сто процентов.
25 vasko
 
17.12.17
14:14
(24) как с этим бороться? посмотрел в модулях там есть проверка дублирования кодов, и наверняка в подписках где-то задействовано.
26 Фрэнки
 
17.12.17
14:21
(25) по идее, должен быть готовый параметр ПриОбмене - в типовой Рознице не смотрел, но можно проверить, что много много кода при получении данных игнорят...

точнее не помню, не напишу т.к. сейчас не за рабочим компом и подсмотреть в конфигурации возможности нет.
27 h-sp
 
17.12.17
14:22
(25) писать обмен данными.загрузка=истина
28 jsmith82
 
17.12.17
14:24
(27) Значит, через набор записей
29 Фрэнки
 
17.12.17
14:31
(28) а запись такая всегда идет через набор, даже если явным образом это не пишут, то вызывается ПриЗаписи из менеджера набора записей, хоть для одной, хоть для множества записей в наборе.
30 jsmith82
 
17.12.17
14:34
(29) У менеджера не нашёл свойство в СП :)