|   |   | 
| 
 | Почему постоянно обработка выдает "не удалось заблокировать таблицу..." | ☑ | ||
|---|---|---|---|---|
| 0
    
        ЕщеОдин Программист 24.05.16✎ 15:20 | 
        Есть файловая КА2.0, в ней около пяти активных пользователей. Запускаю в ней простенькую обработку по передлке и перепроведению накладных, и она отрабатывает максимум штучек пять накладных и вываливается с сообщением "Не удалось заблокировать таблицу", в частности DOCUMENTJOURNAL... или еще какие-нибудь. С сетевыми в восьмерке я еще не много поработал, но на семерке подобная обработка отработала бы без проблем. Почему такая бяка?     | |||
| 1
    
        Nuobu 24.05.16✎ 15:21 | 
        Делаешь через попытку?     | |||
| 2
    
        ЕщеОдин Программист 24.05.16✎ 15:22 | 
        нет, останавливается и выдает сообщение. Откуда столько блокировок? Я ее раз десять запускал, и одна-пять накладных и останавливается.     | |||
| 3
    
        Cyberhawk 24.05.16✎ 15:23 | 
        Так база файловая, вот и блокировки     | |||
| 4
    
        Cyberhawk 24.05.16✎ 15:23 | 
        Файловая не подходит для многопользовательской работы пользователей с одними и теми же видами документов...     | |||
| 5
    
        ЕщеОдин Программист 24.05.16✎ 15:26 | 
        (4) в текущий момент вообще не заводят накладные, т.к. ответственный за это человек отсутствует. Что там делают остальные не знаю, но не накладные.     | |||
| 6
    
        ЕщеОдин Программист 24.05.16✎ 15:28 | 
        у меня эти блокировки пару раз даже на локальной копии вылезли. Откуда? Никаких документов у меня при этом открыто не было.     | |||
| 7
    
        КнОпка 24.05.16✎ 15:33 | 
        (6) используйте обработку  Групповая обработка справочников и документов
 вот такая у вас обработка значит ) | |||
| 8
    
        Cyberhawk 24.05.16✎ 15:35 | 
        (6) Сложно сказать, нужно смотреть на код обработки     | |||
| 9
    
        ЕщеОдин Программист 24.05.16✎ 15:38 | 
        Обработка очень простенькая:
 сп = новый Массив; выб = Документы.ПоступлениеТоваровУслуг.Выбрать(); пока выб.Следующий() Цикл Если выб.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщикаРеглУчет Тогда сп.Добавить(выб.Ссылка); КонецЕсли; КонецЦикла; Для каждого ссы из сп Цикл о = ссы.ПолучитьОбъект(); о.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ЗакупкаУПоставщика; Если о.Проведен Тогда о.Записать(РежимЗаписиДокумента.Проведение); Иначе о.Записать(РежимЗаписиДокумента.Запись); КонецЕсли; КонецЦикла; | |||
| 10
    
        Cyberhawk 24.05.16✎ 15:42 | 
        Картинку с ошибкой в базе с одним пользователем (тобой) в студию. Желательно на демобазе КА воспроизвести.     | |||
| 11
    
        ЕщеОдин Программист 24.05.16✎ 15:51 | 
        (10) если бы я знал, что ты захочешь картинку, я бы обязательно сделал. Но на одном пользователе оно не каждый раз вылазит.     | |||
| 12
    
        КнОпка 24.05.16✎ 15:52 | 
        (9) никогда не используйте синтаксис 7.7 в 8
 Вы же все документы берете для перепроведения, со времен царя Гороха, а так же в закрытом периоде. Потому и вылетает Используйте предложенную типовую обработку | |||
| 13
    
        ЕщеОдин Программист 24.05.16✎ 15:55 | 
        (12) там всего четыре месяца и ни одного закрытого. Попробовал я типовую, она что-то там покрутила, и сказал, что ни одного документа не изменено. Хотя согласно отбору было выбрано 255 доков.     | |||
| 14
    
        Cyberhawk 24.05.16✎ 16:02 | 
        (11) Из ЖР картинка с текстом тоже пойдет, если платформа ее там зафиксировала, конечно...     | |||
| 15
    
        b_ru 24.05.16✎ 16:13 | 
        Я так думаю, блокировка с самим собой возможна, когда это чудо попытается провести один из N - N mod 20 последних документов. Выборка выбирает документы по 20 штук, возможно с этим связано. Ну или все проще и банальнее - регламентные задания.
 (0) Если вкратце, то в 8 никогда не используй выборку из документов или справочников. Только запросы. | |||
| 16
    
        aleks_default 24.05.16✎ 16:18 | 
        "Что там делают остальные не знаю, но не накладные."
 Ну так блокировки-то по регистрам делаются, а не по документам. А у регистра как правило не один Документ-регистратор. Смекаешь? | |||
| 17
    
        ЕщеОдин Программист 24.05.16✎ 16:20 | 
        из анализа журнала регистрации вывел, что здесь замешаны фоновые задания, описание ошибки в ЖР:
 Событие: отражение в регламентированном учете. Комментарий: Не удалось отразить в регл. учете документ "Списание на расходы 0000-000003 от 01.01.2016 12:00:03" по причине: {ОбщийМодуль.РеглУчетПроведениеСервер.Модуль(1488)}: Ошибка при вызове метода контекста (Записать) ОтражениеВРеглУчете.Записать(); по причине: Ошибка при выполнении обработчика - 'ПередЗаписью' по причине: {ОбщийМодуль.ОбновлениеИнформационнойБазыСлужебный.Модуль(3957)}: Ошибка при вызове метода контекста (Получить) СведенияОБлокируемыхОбъектах = Константы.СведенияОБлокируемыхОбъектах.Получить().Получить(); по причине: Конфликт блокировок при выполнении транзакции: | |||
| 18
    
        ЕщеОдин Программист 24.05.16✎ 16:20 | 
        (это было на другой обработке, то же простенькой)     | |||
| 19
    
        КнОпка 24.05.16✎ 16:26 | 
        (13) у вас же КА 2.0, т.е. УФ
 попробуйте в списке документов выделить документы Shift + стрелка вниз либо вверх, и перепровести ) Какой будет результат? | |||
| 20
    
        ЕщеОдин Программист 24.05.16✎ 16:32 | 
        (19) запустилась обработка проведения, периодически поплевываясь на ошибку заполненности данных. Интересное свойство, буду знать, но какое отношение оно имеет к текущему вопросу?     | |||
| 21
    
        КнОпка 24.05.16✎ 16:54 | 
        (20) ну а теперь уберите изменение реквизита в вашей обработке и запустите ее. И какой будет результат?     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |