Имя: Пароль:
1C
1С v8
Большая разница в скорости записи номенклатуры в файловом и клиент-серверном
,
0 siriusd
 
22.02.16
09:18
Добрый день!

1С:Предприятие 8.3 (8.3.6.2100)
Управление торговлей, редакция 11.1 (11.1.10.195)

Помогите решить проблему. С какого-то времени стали очень долго загружаться прайсы через самописную обработку. В прайсе 30 тыс позиций. Раньше это занимало минут 15-20 по времени, а теперь сутками.

Сделал тест, который тупо перезаписывает 1000 позиций номенклатуры. В файловом варианте это занимает секунды, а в клиент-серверном почти 40 минут. Причем если смотреть отладчиком, то и в клиент-серверном достаточно быстро перезаписывает, но совершенно рандомно на некоторых номенклатурах зависает, а потом дальше идет и снова подвисает.

В чем может быть проблема?
1 zak555
 
22.02.16
09:24
не видя код - только гадать
2 Cyberhawk
 
22.02.16
09:31
Ожидание блокировки...
Поставь в свойствах ИБ 5 секунд ждать - вылезет, возможно, на какой таблице ожидание.
Если не вылезет - еще уменьши.
3 siriusd
 
22.02.16
09:33
&НаСервере
Функция ПерезаписатьНоменклатуруНаСервере()
            
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ ПЕРВЫЕ 1000
        |    Номенклатура.Ссылка
        |ИЗ
        |    Справочник.Номенклатура КАК Номенклатура
        |ГДЕ
        |    НЕ Номенклатура.ЭтоГруппа";
    
    РезультатЗапроса = Запрос.Выполнить();    
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
        
    пока ВыборкаДетальныеЗаписи.Следующий() цикл
            
         ОН = ВыборкаДетальныеЗаписи.Ссылка;
         ОбъектС = ОН.ПолучитьОбъект();     
         ОбъектС.ЦенаПоставщика = 777;
         ОбъектС.ОбменДанными.Загрузка = Истина;
         ОбъектС.Записать();
        
    КонецЦикла;
    
КонецФункции

ОбъектС.ЦенаПоставщика - это добавленный реквизит
4 hhhh
 
22.02.16
10:01
Все подписки ПередЗаписью ПриЗаписи смотрите к справочника Номенклатура. Наверняка какой-нибудь быдлокод туда вставили.
5 siriusd
 
22.02.16
10:03
(4) Взял типовую конфу. ДОбавил только 1 реквизит - цена поставщика.

Все остальное типовое.
6 mistеr
 
22.02.16
10:11
(5) А надо было подумать сначала. Цены нужно в регистр. И что-то мне подсказывает, что в УТ такой регистр уже есть.

Уже до 8.4 дожили, а семерочный подход живее всех живых.
7 siriusd
 
22.02.16
10:14
(6) Согласен. Прекрасно понимаю, но работаю с тем что уже есть и было сделано. Пока нужно понять причины вышеописанной проблемы.

Вместо этого реквизита можно любой другой записывать, сомневаюсь, что ситуация изменится.
8 zak555
 
22.02.16
10:20
(3)) пиши в транзакции + добавь ОбъектС.ОбменДанными.Загрузка = Истина;
9 zak555
 
22.02.16
10:20
только я не пойму -- зачем добавили этот реквизит ?
10 hhhh
 
22.02.16
10:21
регламентные задания отключи
11 siriusd
 
22.02.16
10:30
(10) Блокировка регламентных включена
12 siriusd
 
22.02.16
10:32
(9) да не важно. Решу проблему, дальше избавлюсь от всех ненужных реквизитов и к типовым механизмам по максимуму сведу.
13 mistеr
 
22.02.16
10:33
(7) Путаетесь в показаниях, товарищ!

По сабжу - позвать скульного админа, чтобы блокировки отследил.
14 siriusd
 
22.02.16
10:38
(13) нет такового. Надо самому разобраться
15 shuhard
 
22.02.16
10:53
(14)[Надо самому разобраться]
путём трёпа на мисте это ещё ни кому не удавалось
16 siriusd
 
22.02.16
11:00
(8) в транзакции попробовал. 40 сек. Спасибо.
(15) Спасибо за совет. Приму к сведению.
AdBlock убивает бесплатный контент. 1Сергей