Изменить дату проведенного документа #513782


#0 by YHVVH
Задача: по кнопке передвинуть документ, необходимо документ передвинуть в текущую дата. Вроде все хорошо, но когда в базе работает много пользователей желательно оформить это все в транзакцию. Делаем так, попробуем без попыток исключения (хотя чую не в них дело, пробовал с ними и без них) Теперь заходим в 1с под двумя пользователями, 1 пользователь делает блокировку, допустим проводит "большой" документ В этот момент под вторым пользователем, пытаемся передвинуть документ. В результате второй юзер зависает (что логично), но почему он отсается висеть когда первый уже "освободил" базу. Отсюда делаю вывод что конструкция НачатьТранзакцию при выполняющейся блокировки другим юзером, приводит к завису. Вопрос такой. как избежать такого зависа? или другими словами как правильно передвинуть документ на текущую дату?
#1 by YHVVH
правка
#2 by FN
Попробуй время ожидания транзакции в 0 поставить
#3 by YHVVH
не помогает
#4 by ildary
Можно попробовать перед НачатьТранзакцию попытаться ловить блокировку документа.
#5 by darkxxx
а для чего метод Блокировка(<?>); то преднозначен у документов...см методы документов...
#6 by Кириллка
даже если один пользователь, нужно делать это в транзакции. Вывод неверный.
#7 by YHVVH
суть вопроса не меняет при чем здесь этот метод?
#8 by YHVVH
как можно отловить момент блокировки в 1с
#9 by Злой Бобр
Может стоит попробовать попытку-исключение? Проведение и так идет в транзакции.
#10 by Жан Пердежон
+ к да, запиши всё в попытку, а то док может непроведенным оказаться
#11 by Ork
+100. Почитай про коллизии и методы борьбы с ними.
#12 by dk
дык и попробуй, как сказали, обернуть все в блокировку
#13 by YHVVH
пробовал всяко разно
#14 by YHVVH
упс теперь понял как прапвильно, пробовал по другому
#15 by YHVVH
фига не получается
#16 by dk
что именно?
#17 by YHVVH
всегда 1 возвращает, даже если идет в этот момент блокировка 1sjournal
#18 by dk
а что у тебя в Док Надо ссылку на распроводимый документ
#19 by andrewks
вообще-то Блокировка не ловит блокировки 1с, а блокировки объектов пользователями (т.е если юзер щас редактирует элемент то блокировка=1)
#20 by YHVVH
ссылка и есть
#21 by andrewks
#22 by Mikeware
Кстати, попробовал делать прямыми запросами. можно. геморно только.
#23 by Ёпрст
итоги только гемморно, хотя можно и хранимку от 1с вызвать..
#24 by Mikeware
Ну да. Гемор при переходе в другой период итогов.
#25 by YHVVH
а вылетает ведь на методе Найти
#26 by andrewks
так у тебя по-ходу что-то с базой, запусти-ка ТиИ
#27 by YHVVH
вылетает в смысле в попытку исключение
#28 by Злой Бобр
Если база скульная то делай прямым запросом. И быстрей и без нервов. Правда, как уже сказали, если переносишь документ из прошедшего периода итогов то придется еще и поправить итоги. Судя по всему база у тебя нагружена до упору или кривой код.
#29 by andrewks
и че пишет?
#30 by Ёпрст
На вот, старинный дедовский способ:
#31 by andrewks
а это проц не подвесит?
#32 by YHVVH
пишет описание ошибки т.е. транзакция и не виснет, все хорошо
#33 by YHVVH
спасибо
#34 by Ёпрст
можно воткнуть счетчик попыток.
#35 by andrewks
+sleep
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С