Имя: Пароль:
1C
1С v8
как ускорить выполнение обработки?
0 cyx7
 
29.01.15
15:57
Снова я=)) добавила в РС.штрихкоды свой ресурс (тип булево), написала обработку которая меняет значение там где это необходимо. как оказалось - маленько коряво)) переделала обработку, но теперь необходимо в этом ресурсе проставить везде ложь, а только потом запускать мою обработку. написала обработку которая это делает, на тестовой базе пробую - очень долго. код прикрепляю, помогите кто знает как ускорить этот процесс. код небольшой)
Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    Штрихкоды.Штрихкод КАК Штрихкод,
    |    Штрихкоды.ИспользоватьДляПечати,
    |    Штрихкоды.Владелец КАК Владелец
    |ИЗ
    |    РегистрСведений.Штрихкоды КАК Штрихкоды";
    
    Рез = Запрос.Выполнить();
    Выборка = Рез.Выбрать();
    Пока Выборка.Следующий() Цикл
        
        НаборЗаписей = РегистрыСведений.Штрихкоды.СоздатьНаборЗаписей();
        НаборЗаписей.Отбор.Штрихкод.Установить(Выборка.Штрихкод);
        НаборЗаписей.Прочитать();
        Для каждого Запись из НаборЗаписей Цикл
            запись.ИспользоватьДляПечати = ложь;
        КонецЦикла;
        НаборЗаписей.Записать();                
        
    КонецЦикла;
1 Кир Пластелинин
 
29.01.15
16:02
гхм. а зачем в данном случае запрос то? ну если нужно во всех записях установить "ложь"
2 cyx7
 
29.01.15
16:03
(1) да во всех, а как, у  меня голова пухнет уже((((
3 Timon1405
 
29.01.15
16:03
проще удалить ресурс в конфигураторе, обновиться, добавить такой же, обновиться. профит
4 cyx7
 
29.01.15
16:04
(3) много народа в базе(( а динамически косяков боюсь
5 break
 
29.01.15
16:05
Прямой запрос в sql
6 Timon1405
 
29.01.15
16:06
(4) а тихонько, ночью, когда никто не видит))
7 cyx7
 
29.01.15
16:06
(6) им нужно это быстрее
8 break
 
29.01.15
16:07
в 1С - распаралелить в несколько потоков в явной транзакции
9 cyx7
 
29.01.15
16:08
(8) сам то понял?
10 DrZombi
 
гуру
29.01.15
16:09
(4) Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    Штрихкоды.Штрихкод КАК Штрихкод
    |ИЗ
    |    РегистрСведений.Штрихкоды КАК Штрихкоды
    |Где Штрихкоды.ИспользоватьДляПечати <> ложь
    |Сгруппировать По Штрихкоды.Штрихкод ";
    
        НаборЗаписей = РегистрыСведений.Штрихкоды.СоздатьНаборЗаписей();

    Рез = Запрос.Выполнить();
    Выборка = Рез.Выбрать();
    Пока Выборка.Следующий() Цикл
        
ЗаписатьНаб = Ложь;
НаборЗаписей.Очистить();        НаборЗаписей.Отбор.Штрихкод.Установить(Выборка.Штрихкод);
        НаборЗаписей.Прочитать();
        Для каждого Запись из НаборЗаписей Цикл
Если запись.ИспользоватьДляПечати <> ложь Тогда
   запись.ИспользоватьДляПечати = ложь ;
ЗаписатьНаб = Истина;
КонецЕсли;
        КонецЦикла;

Если ЗаписатьНаб = Истина тогда
        НаборЗаписей.Записать();                
КонецЕсли;
        
    КонецЦикла;
11 DrZombi
 
гуру
29.01.15
16:09
(9) Код в (0), Гуано код, переписывай... Можешь, как в (10). Я не обижусь :)
12 H A D G E H O G s
 
29.01.15
16:10
(0)        НаборЗаписей = РегистрыСведений.Штрихкоды.СоздатьНаборЗаписей();
                НаборЗаписей.Прочитать();
        Для каждого Запись из НаборЗаписей Цикл
            запись.ИспользоватьДляПечати = ложь;
        КонецЦикла;
НаборЗаписей.ОбменДанными.Загрузка=Истина;
        НаборЗаписей.Записать();
13 cyx7
 
29.01.15
16:12
(11) спасибо большое))) и не такое уж и "гуано")
14 H A D G E H O G s
 
29.01.15
16:14
(13) Его запрос чуть лучше твоего.
15 H A D G E H O G s
 
29.01.15
16:15
НаборЗаписей.ОбменДанными.Загрузка=Истина;

Должен сотворить чудо.
16 cyx7
 
29.01.15
16:18
(15) я не спорю, что у него лучше, я в этой сфере пол года только еще)

"НаборЗаписей.ОбменДанными.Загрузка=Истина;" - а что это будет делать?
17 hhhh
 
29.01.15
16:22
(16) пропускает миллионы процедур ПередЗаписью и ПриЗаписи.
18 karabas11
 
29.01.15
16:25
(9), А чем плохо (8)?
19 cyx7
 
29.01.15
16:28
(17) спасибо) (18) расскажи смысл этого, пожалуйста
20 H A D G E H O G s
 
29.01.15
16:33
(17) Нет :-)

Не делает innerjoin-a с временной таблицей для контроля предыдущей версии на сервере СУБД.
21 cyx7
 
29.01.15
16:34
(20) во
Загрузка (Load)
Использование:

Чтение и запись.
Описание:

Тип: Булево.
Если значение данного свойства Истина, то при выполнении записи или удаления данных будет производиться минимум проверок, так как при этом делается предположение, что производится запись данных, полученных через механизмы обмена данными, и эти данные корректны.
))) нашла таки)
22 karabas11
 
29.01.15
16:53
(19) Ну если надо миллион записей за 10 минут пробежать и записать, то самое оно.
Никакой ОбменДанными.Загрузка = Истина и рядом не стояли.

Кому-то быстрее запустить и подождать, а кому-то подольше программировать и кайфануть от скорости.
А кто-то смелый и делает UPDATE через SQL
23 cyx7
 
29.01.15
16:55
(22) мне этого не понять, пока)