|   |   | 
| 
 | v7: Ошибка: объект заблокирован при проведении | ☑ | ||
|---|---|---|---|---|
| 0
    
        1snik_d 19.05.15✎ 14:31 | 
        Всем доброго времени суток. ТиС SQL, монополно сижу в базе, перепровожу документы обработкой, команда Провести(). 1С ругается Ошибка: объект заблокирован при проведении документов с определенного периода. Интерактивно провожу документ, все проводится без ошибок. Как такое может быть? Как это можно исправить?     | |||
| 1
    
        Ёпрст гуру 19.05.15✎ 14:33 | 
        и скуль поди - 2000 ?     | |||
| 2
    
        1snik_d 19.05.15✎ 14:35 | 
        (1) скуль 2008, 1с - "секретный" релиз.     | |||
| 3
    
        Ёпрст гуру 19.05.15✎ 14:37 | 
        покажи скрин ошибки     | |||
| 4
    
        1snik_d 19.05.15✎ 14:40 | 
        (3) куда картинку лучше постить?     | |||
| 5
    
        Ёпрст гуру 19.05.15✎ 14:42 | 
        да пофик, хоть сюда
 http://pics.rsh.ru/ | |||
| 6
    
        1snik_d 19.05.15✎ 14:54 | ||||
| 7
    
        Ёпрст гуру 19.05.15✎ 14:55 | 
        и это, в коде нет явных установленных ручонками транзакций или проведения других документов из модуля проведения (с открытием формы) ?     | |||
| 8
    
        1snik_d 19.05.15✎ 14:56 | 
        Вот код
 // Переносим ТА на конкретный документ Если МонопольныйРежим() = 1 Тогда УстановитьТАНА(Объект); КонецЕсли; ЕстьОшибкиПроведения = 0; // Пробуем провести в транзакции, потом откатим НачатьТранзакцию(); Попытка Если Объект.Провести() = 0 Тогда ТекстовыйФайл.ДобавитьСтроку("Не удалось провести документ " + Строка(Объект)); ТекстовыйФайл.Записать(КаталогИБ() + "Error.txt"); ЕстьОшибкиПроведения = 1; КонецЕсли; Исключение глСообщениеПроведения("Не удалось провести документ " + Строка(Объект) + " Ошибка: " + ОписаниеОшибки(), Объект.ТекущийДокумент(),,,1); ТекстовыйФайл.ДобавитьСтроку("Не удалось провести документ " + Строка(Объект) + " Ошибка: " + ОписаниеОшибки()); ТекстовыйФайл.Записать(КаталогИБ() + "Error.txt"); ЕстьОшибкиПроведения = 1; КонецПопытки; Если ЕстьОшибкиПроведения = 1 Тогда ОтменитьТранзакцию(); Продолжить; КонецЕсли; ЗафиксироватьТранзакцию(); | |||
| 9
    
        Ёпрст гуру 19.05.15✎ 14:56 | 
        (6) очень хорошо. Теперь осталось открыть код и посмотреть, кто пишет такую ошибку в обработке и при каком событии.
 ЗЫ: а так - тупо фиксация ошибки в попытке-исключении и... никакой блокировки там нет, просто док не проводится по какой-либо причине и фсё. | |||
| 10
    
        1snik_d 19.05.15✎ 14:59 | 
        (9) но интерактивно же он проводится и без ошибок.     | |||
| 11
    
        1snik_d 19.05.15✎ 15:00 | 
        (11) документы перепроводились с 2011 года и проблемы не было, проблемы начались в июле 2014.     | |||
| 12
    
        Ёпрст гуру 19.05.15✎ 15:02 | 
        (11) проводи через операции - проведение документов, там это будет в потоке  и не придётся пользоваться самодельными поделками перепроведения, которые еще и в одной большой транзакции всё делают.     | |||
| 13
    
        1snik_d 19.05.15✎ 15:06 | 
        (12) у меня урбд, поэтому приходится сторонними поделками проводить.
 Для периферийных бах нужен правильный регистр партий, поэтому делаю так: 1. Пробую провести документ в транзакции. 2. Сравниваю движения до и после проведения, если движения одинаковые (ничего не изменилось), откатываю транзакцию, иначе фиксирую. | |||
| 14
    
        1snik_d 19.05.15✎ 15:10 | 
        (13) Если все скопом перепроводить, периферийки колом встанут при обмене.
 А по сабжу, что еще можно посмотреть? | |||
| 15
    
        Ёпрст гуру 19.05.15✎ 15:10 | 
        (13) забавная логика, в которой транзакция и не нужна вовсе.     | |||
| 16
    
        Ёпрст гуру 19.05.15✎ 15:11 | 
        (14) ну, это же не весь код в (8).
 Ошибка только в коде. | |||
| 17
    
        1snik_d 19.05.15✎ 15:13 | 
        (15) а как без транзакции штатными средствами 1С обойтись?     | |||
| 18
    
        Nirvana 19.05.15✎ 20:38 | 
        (0) Документ - Реализация?     | |||
| 19
    
        1snik_d 19.05.15✎ 21:33 | 
        (18) Разные документы. И приходные и расходные. Я причину нашел. Оказывается, отмена транзакции в некоторых случаях не освобождает объект, в этой транзакции использующийся. Закономерности не заметил, но, сделав принудительный сброс блокировки, я решил проблему.     | |||
| 20
    
        1snik_d 19.05.15✎ 21:34 | 
        (19) причем нигде в документации про это не написано     | |||
| 21
    
        Garykom гуру 19.05.15✎ 21:43 | 
        а может просто с вложенными транзакциями какие то...     | |||
| 22
    
        Z1 20.05.15✎ 10:31 | 
        (19) Все правильно блокировка документа это файловая блокировка
 и отмена транзакции на нее ( на блокировку документа ) никак не может влиять. | |||
| 23
    
        Z1 20.05.15✎ 10:39 | 
        (19) очень похоже что из одного документа ты проводишь другой документ. Если это так  - ну это в принципе сам себе кладешь грабли     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |