Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Функция ПустоеЗначение(Объект) (число прочтений - 4368 )
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Функция ПустоеЗначение(Объект)
07. Июня 2012 :: 11:11
Печать  
Это чтож получается?
Эта функция вызавает Транзакцию?
Если ПустоеЗначение(Что)=1 Тогда
{Глобальный модуль(24840)}: SQL State: 40001 Native: 1205 Message: [Microsoft][ODBC SQL Server Driver][SQL Server]Транзакция (идентификатор процесса 62) вызвала взаимоблокировку ресурсов блокировка с другим процессом и стала жертвой взаимоблокировки. Запустите транзакцию повторно.

Это вы глобальнике  в функции
Код
Выбрать все
Процедура глВыбранЛи(Что,Стр,НомСтр = 0) Экспорт
	ВСтроке = ?(НомСтр=0,""," в строке "+НомСтр);
	Если ПустоеЗначение(Что)=1 Тогда
		глТрассировка("Не заполнен реквизит "+Стр+ВСтроке+"!",0);
		глВсеВыбрано = 0;
	КонецЕсли;
КонецПроцедуры //глВыбранЛи
 



Которая вызывается в модуле проведения.
Может можно якось обойти?
Выдает когда проводяться одновременно несколько документов с разных мест.
В моем случае я восстанавливаю последовательность и в текущий момент проведения другой пользователь запускает проведение своего документа.
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Функция ПустоеЗначение(Объект)
Ответ #1 - 07. Июня 2012 :: 11:49
Печать  
>>>>>Которая вызывается в модуле проведения.><<<<<


дык там всегда транзакция, одна такая, большая
Улыбка
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Функция ПустоеЗначение(Объект)
Ответ #2 - 07. Июня 2012 :: 11:53
Печать  
varelchik писал(а) 07. Июня 2012 :: 11:11:
Выдает когда проводяться одновременно несколько документов с разных мест.

Верни штатные блокировки, сделай полный пересчёт итогов и больше так не делай.  Улыбка
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: Функция ПустоеЗначение(Объект)
Ответ #3 - 07. Июня 2012 :: 11:58
Печать  
berezdetsky писал(а) 07. Июня 2012 :: 11:53:
varelchik писал(а) 07. Июня 2012 :: 11:11:
Выдает когда проводяться одновременно несколько документов с разных мест.

Верни штатные блокировки, сделай полный пересчёт итогов и больше так не делай.  Улыбка


Тю так это штатними средствами.
ТИС.
Никаких у меня блокировок нету.
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Функция ПустоеЗначение(Объект)
Ответ #4 - 07. Июня 2012 :: 12:07
Печать  
varelchik писал(а) 07. Июня 2012 :: 11:58:
  • Тю так это штатними средствами.
  • Никаких у меня блокировок нету.

Взаимоисключающие пункты.  Круглые глаза

+ штатно восстановление последовательности выполняется монопольно.
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Функция ПустоеЗначение(Объект)
Ответ #5 - 07. Июня 2012 :: 12:25
Печать  
Анти-оффтопик: а так, если Что - это объект, 1С его прочитает с хинтом NOLOCK и закеширует на время работы модуля.
  

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


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Функция ПустоеЗначение(Объект)
Ответ #6 - 07. Июня 2012 :: 12:56
Печать  
berezdetsky писал(а) 07. Июня 2012 :: 12:25:
Анти-оффтопик: а так, если Что - это объект, 1С его прочитает с хинтом NOLOCK и закеширует на время работы модуля.


может ошибаюсь но пустоезначение не лезет в базу ( речь об sql версии) а проверяет просто с 0

т.е если мы дадим ссылку на несуществующий объект
то пустоезначение(Рекв) вернет 0
а Рекв.Выбран() вернет тоже 0.

ps что происходит в 0  не осилил
  
Наверх
 
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: Функция ПустоеЗначение(Объект)
Ответ #7 - 08. Июня 2012 :: 04:56
Печать  
Z1 писал(а) 07. Июня 2012 :: 12:56:
может ошибаюсь но пустоезначение не лезет в базу ( речь об sql версии) а проверяет просто с 0


Так и есть.
ПустоеЗначение() смотрит в кеш, Выбран() и ТекущийДокумент()/ТекущийЭлемент() вызывают чтение из базы.
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Функция ПустоеЗначение(Объект)
Ответ #8 - 08. Июня 2012 :: 05:17
Печать  
Я кажется понял как получается 0
Другая сессия блокирует объект(может файл) операционной
системы в котором нуждается
глТрассировка("Не заполнен реквизит "+Стр+ВСтроке+"!",0);

модуль проведения "зависает" на глТрассировка
и получаем subj
  
Наверх
 
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: Функция ПустоеЗначение(Объект)
Ответ #9 - 08. Июня 2012 :: 05:25
Печать  
Z1 писал(а) 08. Июня 2012 :: 05:17:
Я кажется понял как получается 0
Другая сессия блокирует объект(может файл) операционной
системы в котором нуждается
глТрассировка("Не заполнен реквизит "+Стр+ВСтроке+"!",0);

модуль проведения "зависает" на глТрассировка
и получаем subj


Читай 0
Я написал где взаимоблокировка.
там до глТрассировка()
дело еще не дошло.
Вылет на пустоезначение(Что)
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Функция ПустоеЗначение(Объект)
Ответ #10 - 08. Июня 2012 :: 05:28
Печать  
varelchik писал(а) 08. Июня 2012 :: 05:25:
Z1 писал(а) 08. Июня 2012 :: 05:17:
Я кажется понял как получается 0
Другая сессия блокирует объект(может файл) операционной
системы в котором нуждается
глТрассировка("Не заполнен реквизит "+Стр+ВСтроке+"!",0);

модуль проведения "зависает" на глТрассировка
и получаем subj


Читай 0
Я написал где взаимоблокировка.
там до глТрассировка()
дело еще не дошло.
Вылет на пустоезначение(Что)

эта ситуация повторяемая или ошибка плавающая ?
и какое значение предолагаетсяв Что
  
Наверх
 
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: Функция ПустоеЗначение(Объект)
Ответ #11 - 08. Июня 2012 :: 06:03
Печать  
Так в том то и дело что "ЧТО" типа неопределено
Строка,Число,Справочник,Перечисление,Счет,Документ
  
Наверх
 
IP записан
 
Z1
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 2906
Местоположение: Москва
Зарегистрирован: 26. Мая 2006
Пол: Мужской
Re: Функция ПустоеЗначение(Объект)
Ответ #12 - 08. Июня 2012 :: 06:38
Печать  
(11) написал тест
Код
Выбрать все
Процедура Тест()
	Перем Знач_Х;

	Если ПустоеЗначение(Знач_Х) = 1 Тогда
		Сообщить("ПустоеЗНачение = 1");
	КонецЕсли;
	Сообщить("Тест завершен !!!");
КонецПроцедуры	 


на неопределеном значении все работает
результат теста :
ПустоеЗНачение = 1
Тест завершен !!!
  
Наверх
 
IP записан
 
varelchik
God Member
*****
Отсутствует


I Love YaBB 2!

Сообщений: 788
Зарегистрирован: 22. Мая 2006
Re: Функция ПустоеЗначение(Объект)
Ответ #13 - 08. Июня 2012 :: 07:37
Печать  
Ты вообще внимательно смотре чего я тему поднял?
Взаимоблокировка.
Как обойти?
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать