gls писал(а) 01. Октября 2009 :: 14:40:berezdetsky писал(а) 01. Октября 2009 :: 12:45:gls писал(а) 01. Октября 2009 :: 11:40:доку присваивается тот же айдишник, что и у открытой у пользователя №1 формы.
Этому горю не сложно помочь - нужно блокировать строку в _1sp__1SUIDCTL_GetMaxID. 1С этого не делает при штатных блокировках за ненадобностью. Но лучше
trad писал(а) 01. Октября 2009 :: 11:44:верни блокировки на свое законное место
trad дурного не посоветует.
смотрю профайлер:
set implicit_transactions on --режим неявных транзакций
exec _1sp__1SJOURN_TLockX --ничего не происходит
declare @P1 char(9)
set @P1=' 1TFV '
exec _1sp__1SUIDCTL_GetMaxID 0, @P1 output --начинается транзакция, т.к. в хп есть select
select @P1
текст _1sp__1SUIDCTL_GetMaxID:
CREATE procedure _1sp__1SUIDCTL_GetMaxID(@tid INTEGER, @id CHAR(9) OUTPUT) AS
select @id=MAXID from _1SUIDCTL(UPDLOCK) where TYPEID=@tid
if @id is null select @id=' '
какая блокировка требуется, на Ваш взгляд?
смотри профайлер полностью до конца до окончания транзакции
сделай тоже самое под хорошей уч записью.
Что должно выполняться при правильной работе для нового документа есть в ветке где лежит моя обработка.
Если _1sp__1SUIDCTL_GetMaxID возвращает @id=' ' только для одной учетной записи то это означает что под этой учетной записью нет доступа к таблице _1SUIDCTL или на эту таблицу может какая view есть.
@id=' ' это означает что в базе вообще нет ни обного документа чего быть не может.
Т.е. у тебя в базе что-то переопределяется для этой учетной записи.
Сделай в md новый документ "Тест" только номер дата нумерация без уникальности док без движений и проводок.
в глоб модуле поставь
Процедура ПриНачалеРаботыСистемы()
// тестирует простейший документ
ОткрытьФорму.("Документ.Тест",,);
return;
.....
КонецПроцедуры
и создавай документ для хорошей и плохой учетной записи.
скажи результат здесь.