Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Одновременное проведение взаимоисключающих документов (число прочтений - 4777 )
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Одновременное проведение взаимоисключающих документов
10. Августа 2011 :: 09:24
Печать  
Возникла следующая ситуация: 2 юзера в параллельных сеансах одновременно провели 2 документа, которые невозможно провести одновременно согласно логике обработки проведения.
Вопрос: как этого избежать?
Если попытаться их перепровести, то срабатывает запрет, но в тот момент почему-то не сработал ... видимо, сыграло роль то, что они работать в разных транзакциях ...

Поясню: оба дока меняют состояние объекта, т.е. после проведения состояние изменилось, но провендение любого из них невозможно при измененном состоянии этого объекта...
  
Наверх
 
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: Одновременное проведение взаимоисключающих документов
Ответ #1 - 10. Августа 2011 :: 11:17
Печать  
Какой "Режим управления блокировкой данных"? Управляемый?
  
Наверх
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Одновременное проведение взаимоисключающих документов
Ответ #2 - 11. Августа 2011 :: 01:52
Печать  
simply писал(а) 10. Августа 2011 :: 11:17:
Какой "Режим управления блокировкой данных"? Управляемый?
именно так. а какой надо?
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Одновременное проведение взаимоисключающих документов
Ответ #3 - 11. Августа 2011 :: 04:28
Печать  
Если управляемый, то ты сам должен позаботиться о блокировке записи таблицы используя объект "БлокировкаДанных"
  
Наверх
 
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: Одновременное проведение взаимоисключающих документов
Ответ #4 - 11. Августа 2011 :: 06:38
Печать  
JohnyDeath писал(а) 11. Августа 2011 :: 04:28:
Если управляемый, то ты сам должен позаботиться о блокировке записи таблицы используя объект "БлокировкаДанных"
+1

Управляемый режим устанавливается по умолчанию во всех вновь созданных базах.
Если пользователей мало (ИМХО, до 10-ти), то можно установить Автоматический. Иначе - самому контролировать, как сказал JohnyDeath.
В "Руководстве разработчика", глава 9. Работа с данными. 1-491 - можно оттолкнутся.
  
Наверх
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: Одновременное проведение взаимоисключающих документов
Ответ #5 - 11. Августа 2011 :: 10:12
Печать  
Еще можно посмотреть в сторону свойства регистра накопления "Разрешить разделение итогов". Подозреваю, что оно включено.
  
Наверх
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Одновременное проведение взаимоисключающих документов
Ответ #6 - 12. Августа 2011 :: 01:54
Печать  
[quote author=simply link=1312968277/0#5 date=1313057567]Еще можно посмотреть в сторону свойства регистра накопления "Разрешить разделение итогов". Подозреваю, что оно включено./quote]Есть такая галка. Уберу. Ибо чревато...
  
Наверх
 
IP записан
 
simply
God Member
*****
Отсутствует


Мечта: избавиться от 1С

Сообщений: 573
Местоположение: Киев
Зарегистрирован: 31. Декабря 2008
Пол: Мужской
Re: Одновременное проведение взаимоисключающих документов
Ответ #7 - 12. Августа 2011 :: 06:09
Печать  
Dmitry The Wing писал(а) 12. Августа 2011 :: 01:54:
Есть такая галка. Уберу. Ибо чревато...
Сколько пользователей? База файловая?
  
Наверх
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Одновременное проведение взаимоисключающих документов
Ответ #8 - 12. Августа 2011 :: 06:14
Печать  
Dmitry The Wing писал(а) 12. Августа 2011 :: 01:54:
simply писал(а) 11. Августа 2011 :: 10:12:
Еще можно посмотреть в сторону свойства регистра накопления "Разрешить разделение итогов". Подозреваю, что оно включено.
Есть такая галка. Уберу. Ибо чревато...

Чем опасна эта галочка ?
вроде никаких косяков на эту тему не видел Печаль
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Одновременное проведение взаимоисключающих документов
Ответ #9 - 12. Августа 2011 :: 06:25
Печать  
artbear писал(а) 12. Августа 2011 :: 06:14:
Чем опасна эта галочка ?
вроде никаких косяков на эту тему не видел Печаль
В справке написано, что движения пишутся параллельно, т.е. как раз моя ситуация...
  
Наверх
 
IP записан
 
artbear
1c++ developer
1c++ moderator
Отсутствует


Эх, дайте что-нибудь новенькое
да полезное потести

Сообщений: 6303
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Одновременное проведение взаимоисключающих документов
Ответ #10 - 12. Августа 2011 :: 06:59
Печать  
Dmitry The Wing писал(а) 12. Августа 2011 :: 06:25:
artbear писал(а) 12. Августа 2011 :: 06:14:
Чем опасна эта галочка ?
вроде никаких косяков на эту тему не видел Печаль
В справке написано, что движения пишутся параллельно, т.е. как раз моя ситуация...

Да, похоже.
Лично я бы просто сделал что-то типа обычного семафора - блокирую какой-нибудь спец. элемент/ресурс, если удалось заблокировать, провожу, если нет, значит, проводит кто-то другой, запрещаю или жду освобождения ресурса.
  

OpenConf developer :: http://openconf.1cpp.ru&&FormEx developer :: http://formex.dorex.ru&&1C++ active developer && tester :: www.1cpp.ru
Наверх
GTalkSkype/VoIPICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Одновременное проведение взаимоисключающих документов
Ответ #11 - 12. Августа 2011 :: 10:54
Печать  
Для этого и созданы управляемые блокировки. Не надо никаких семафоров.
  
Наверх
 
IP записан
 
nicolas
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 148
Зарегистрирован: 24. Мая 2006
Re: Одновременное проведение взаимоисключающих документов
Ответ #12 - 18. Августа 2011 :: 06:51
Печать  
На сколько я помню из учебы, "разделение итогов" предназначено для того что б не было захвата таблицы при проведении.
Т.е если один проводит, и затрагивает результаты , то у второго создается еще одна запись. При получении отчетов, обе записи суммируются. В основном было предназначено для тяжелых регистров: бух и расчета. Появилась в 8.1 Рекомендовано было нам при большом количестве пользователей ставить.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать