Переключение на Главную Страницу Страницы: 1 ... 10 11 [12] 13 14 ... 19 ОтправитьПечать
Очень популярная тема (более 25 ответов) Движения одного документа у другого (число прочтений - 65955 )
noxxx
Full Member
***
Отсутствует


1c++ rocks 8)

Сообщений: 239
Местоположение: Москва
Зарегистрирован: 24. Августа 2007
Пол: Мужской
Re: Движения одного документа у другого
Ответ #165 - 25. Ноября 2009 :: 14:44
Печать  
А как насчет НачатьТранзакцию()?
  
Наверх
ICQ  
IP записан
 
noxxx
Full Member
***
Отсутствует


1c++ rocks 8)

Сообщений: 239
Местоположение: Москва
Зарегистрирован: 24. Августа 2007
Пол: Мужской
Re: Движения одного документа у другого
Ответ #166 - 25. Ноября 2009 :: 14:45
Печать  
select @@trancount в модуле проведения первого документа возвращает 0, в модуле второго (внутреннего) возвращает 1
  
Наверх
ICQ  
IP записан
 
Noy
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 07. Ноября 2009
Re: Движения одного документа у другого
Ответ #167 - 25. Ноября 2009 :: 14:49
Печать  
noxxx писал(а) 25. Ноября 2009 :: 14:44:
А как насчет НачатьТранзакцию()?

тут ты вряд ли такую проблему поймаешь
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Движения одного документа у другого
Ответ #168 - 25. Ноября 2009 :: 14:51
Печать  
Noy писал(а) 25. Ноября 2009 :: 14:41:
Ладно, считаю что копать дальше не имеет смысла. Буду избавляться от таких конструкций. noxxx, рекомендую тебе тоже избавится от "двойного проведения", а через месяц отписаться сюда по результатам - я тоже "засвечусь".
Z1, спасибо за участие!

не за что.
(Noy)Вывод Вы по любому правильный сделали.
ну лучше сделайте Вам же пару строк написать что вернет select :
2 или 1 может кто нибудь еще наступит на эти грабли тогда надо будет разбираться сначала а так будет законченый результат всей картины.пока все в голове ( в кеше  Улыбка ) рссписать все очень легко.

Вывод
Также можно снова сказать что v77 - "неглючная"  Очень довольный
применение некоторых глючных пограничных возможностей не в счет.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Движения одного документа у другого
Ответ #169 - 25. Ноября 2009 :: 14:54
Печать  
noxxx писал(а) 25. Ноября 2009 :: 14:45:
select @@trancount в модуле проведения первого документа возвращает 0, в модуле второго (внутреннего) возвращает 1

непонятно почему первого 0 (может стоят флаги очистки движений)
а попробуйте тот же тест только этот select поставить после любого ВыполнитьДвижение...
  
Наверх
 
IP записан
 
noxxx
Full Member
***
Отсутствует


1c++ rocks 8)

Сообщений: 239
Местоположение: Москва
Зарегистрирован: 24. Августа 2007
Пол: Мужской
Re: Движения одного документа у другого
Ответ #170 - 25. Ноября 2009 :: 15:00
Печать  
Если первый документ проведен и он перепроводится, то выводится 1. Если он не проведен, то выводится 0.
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Движения одного документа у другого
Ответ #171 - 25. Ноября 2009 :: 15:37
Печать  
Итак получается что нет никаких внутренних транзакций.
все происодит в одной транзакции
два случая ( в каждом два подслучия )
1.Внутренний документ успешно проводиться
завершается commit
В этом случае сразу же освобождаются все блокировки (таблица журналов,
таблица макс. номеров, таблицы шапок и многострч. частей видов документов
таблицы ra и rg затронутых регистров внутреним и внешним ( потому что он уже
движения откатил) документов.
т.е. очередной iddoc если внешний документ был новый подвисает в воздухе
если до окончания проведения внешнего документа кто-то займет очередной iddoc.
Далее если кто-то станет проводить документ затргивающий движения первого документа
то если этот-кто то не столкнеться на блокировке индекса
то вполне получим рассогласование таблиц ra и rg при этом в другую переф базу
все передадим правильно т.к. передаются только движения ra а они то правильные.
Также на отрезке до окончания первого проведения возможны взаимоблокировки по таблицам rg
 Далее внешний документ все таки провелся все ок.
 Внешний документ не провелся то в самом документе будем иметь ситуацию как будто
 документ провелся а самих движений не будет.При этом по любому у Вас ra
 и rg рассогласованы потому что при начали проведения мы все откатили.


2.Внутренний документ проводиться и проведение терпит неудачу rallback
 Внешний документ не запишется. Внутренний тоже.Все блокировки сеимаются.
 Далее будет зависеть как это обработает 1склиент.
 Если 1с выдаст прерывание по ошибке и остановит проведение внешнего документа то все хорошо.
 Если же 1с все равно будет и далее выполнять модуль проведения то получим
 откроется новая неявная транзакция все блокировки сняты и проблемы что могут из-за этого возникнуть смотри выше.
 Если внешняя проведение закончиться неудачей то все хорошо.
 Если внешнее проведение закончится хорошо то будем иметь
 внешний документ вид как будто нет движений в _1sjourn будут движения
 в ra движения будут одназначно получим рассогласование ra и rg потому
 что автосброс движений мы сначала учли а потом откатили.
При этом все в другую переф. базу передасться правильно.


(off) кто это прочитал тот молодец  Улыбка
  
Наверх
 
IP записан
 
noxxx
Full Member
***
Отсутствует


1c++ rocks 8)

Сообщений: 239
Местоположение: Москва
Зарегистрирован: 24. Августа 2007
Пол: Мужской
Re: Движения одного документа у другого
Ответ #172 - 25. Ноября 2009 :: 17:09
Печать  
Z1 писал(а) 25. Ноября 2009 :: 15:37:
Итак получается что нет никаких внутренних транзакций.
все происодит в одной транзакции
два случая ( в каждом два подслучия )
...
(off) кто это прочитал тот молодец  Улыбка


Попытаюсь осмыслить  Очень довольный
  
Наверх
ICQ  
IP записан
 
Noy
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 07. Ноября 2009
Re: Движения одного документа у другого
Ответ #173 - 25. Ноября 2009 :: 17:34
Печать  
Z1 писал(а) 25. Ноября 2009 :: 15:37:
...то вполне получим рассогласование таблиц ra и rg при этом в другую переф базу все передадим правильно ...

даже не только ra и rg, но и как в последнем глюке у автора топика - рассогласования dh,dt,_1sjorn

Примерно это я и имел ввиду с самого начала, не хватало только выявить причину/фактор... вот и выявили.

Z1 писал(а) 25. Ноября 2009 :: 15:37:
(off) кто это прочитал тот молодец   Улыбка

ЗЫ я прочитал!  Очень довольный


Вообще зачетная тема, я с этим глюком уже давно смирился и бросил искать корни... а оказывается зря.
  
Наверх
 
IP записан
 
Noy
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 41
Зарегистрирован: 07. Ноября 2009
Re: Движения одного документа у другого
Ответ #174 - 25. Ноября 2009 :: 17:37
Печать  
Z1 писал(а) 25. Ноября 2009 :: 15:37:
2.Внутренний документ проводиться и проведение терпит неудачу rallback...
 Если 1с выдаст прерывание по ошибке и остановит проведение внешнего документа то все хорошо.
 Если же 1с все равно будет и далее выполнять модуль проведения то получим
 откроется новая неявная транзакция все блокировки сняты и проблемы что могут из-за этого возникнуть смотри выше.


Тут точно могу сказать (проверено), что если внутренний док не проведется, то внешний тоже не проведется - тут 1С на высоте.
  
Наверх
 
IP записан
 
noxxx
Full Member
***
Отсутствует


1c++ rocks 8)

Сообщений: 239
Местоположение: Москва
Зарегистрирован: 24. Августа 2007
Пол: Мужской
Re: Движения одного документа у другого
Ответ #175 - 26. Ноября 2009 :: 06:35
Печать  
Мне кажется, что глюк с переходом из журнала в псевдодокумент - это глюк журнала. Сделал выгрузку/загрузку - все равно из журнала переходит в псевдодокумент.  Печаль
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Движения одного документа у другого
Ответ #176 - 26. Ноября 2009 :: 07:05
Печать  
noxxx писал(а) 26. Ноября 2009 :: 06:35:
Мне кажется, что глюк с переходом из журнала в псевдодокумент - это глюк журнала. Сделал выгрузку/загрузку - все равно из журнала переходит в псевдодокумент.  Печаль

чем вам загрузка выгрузка поможет. если в таблицах ошибки ?
Загрузка выгрузка помогает если есть ошибки в индексах( я лично на sql c таким ни разу не сталкивался) уберет нулевые итоги в rg ну может быть чуть исправит таблицу перекресных ссылок.
Что такое пседводокумент я не совсем понимаю ?
  
Наверх
 
IP записан
 
noxxx
Full Member
***
Отсутствует


1c++ rocks 8)

Сообщений: 239
Местоположение: Москва
Зарегистрирован: 24. Августа 2007
Пол: Мужской
Re: Движения одного документа у другого
Ответ #177 - 26. Ноября 2009 :: 07:24
Печать  
Z1 писал(а) 26. Ноября 2009 :: 07:05:
Что такое пседводокумент я не совсем понимаю ?


Сорри за мазюльки, так положено у нас.

В журнале регистрации есть строка:

http://img406.imageshack.us/i/regjournalrow.png/

При щелчке по строке открывается такое вот:

http://img134.imageshack.us/i/pseudodoc1.png/

Данные из вот такого настоящего документа:

http://img109.imageshack.us/i/realdoc.png/
  
Наверх
ICQ  
IP записан
 
noxxx
Full Member
***
Отсутствует


1c++ rocks 8)

Сообщений: 239
Местоположение: Москва
Зарегистрирован: 24. Августа 2007
Пол: Мужской
Re: Движения одного документа у другого
Ответ #178 - 26. Ноября 2009 :: 09:42
Печать  
Z1, ну не молчите, как избавиться от этого "документа"? Кроме как через журнал регистрации в него попасть нельзя.
  
Наверх
ICQ  
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Движения одного документа у другого
Ответ #179 - 26. Ноября 2009 :: 09:51
Печать  
noxxx писал(а) 26. Ноября 2009 :: 09:42:
Z1, ну не молчите, как избавиться от этого "документа"? Кроме как через журнал регистрации в него попасть нельзя.

А что Вы от меня хотите услышать.
У Вас в базе нет целостности данных.

Почему это произошло мы общими усилиями выяснили ( железо не виновато).
Как Вы будете искать и исправлять все ошибке в Вашей базе я не знаю. Это Ваша задача.
Далее какие выводы сделали  и как Вы исправите ( и будете ли это вообще) алгоритмы 1с я тоже не знаю.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1 ... 10 11 [12] 13 14 ... 19
ОтправитьПечать