блокировка при попытке создать новый элемент (1C 7.7 + SQL 2008) #554655


#0 by kinno
Подружил 1С 7.7 с SQL 2008 База загрузилась нормально, проводится документы, создаются новые элементы справочников Контрагенты, Номенклатура .. И тут оказывается, что некоторые элементы вспомогательного справочника не получается создать. Пишет "При выполнении транзакции произошла ошибка! Объект заблокирован:..." Смотрю чем отличается справочник от других, например у него длинна кода и наименования 0. Меняю, не помогает.
#1 by ДенисЧ
Плохо подружил, значит.
#4 by Ёпрст
#5 by Ёпрст
>>>Объект заблокирован означает только одно - эту табличку целиком или элемент блокирует кто-то еще.
#6 by Ёпрст
+5 и скуль тут не при чем.
#7 by kinno
Кроме меня в базе нет никого
#8 by kinno
В DBF варианте все нормально работает
#9 by Ёпрст
и чего ты там тогда в транзакции создаешь ?
#10 by kinno
Есть ограничения по транзакции ?
#11 by Ёпрст
Вы таки будете спрашивать или отвечать ?
#12 by kinno
Большое спасибо за подсказку про транзакцию. Этот код писал не я, но нашел очень странный способ создавать новые элементы, вначале открывается форма списка, а в ней уже ПриОткрытии, открывается форма элемента и вроде таким способом создается элемент, больше там код ничего не делает. В DBF варианте это работает. 1) Как варинат, проблему решил почистив основательно этот справочник. Хотя не хотелось бы так. 2) Сейчас подыму снова нерабочую копию и попробую сделать нормальный способ создания нового элемента. По поводу транзакций: есть ограничения, я не могу создавать новые элементы в транзакции ?
#13 by Ёпрст
нам отсюда не видно, как и чего ты делаешь и нафига при этом что-то открывать вообще.
#14 by kinno
При чём здесь транзакции ?
#15 by Ёпрст
см.
#16 by kinno
За подсказку про транзакцию спасибо. Нашел в этой конфигурации то что элемент создавался, в предопределенной процедуре "ПриОткрытии", уберу и проверю. А по поводу транзакции действительно сложно ответить ?  То есть новый элемент я теперь не смогу создавать в транзакции ? Если вам для ответа, что то непонятно спросите.
#17 by Ёпрст
создавай, ничего не мешает. Только вот открывать форму при этом не надо никакую
#18 by Кириллка
чем все закончилось?
#19 by trdm
+1 Оттопырил ухо...
#20 by kinno
Новый элемент стал создавать из меню интерфейса через: вроде все стало нормально.. в копии посмотрел, работает хорошо без этого сообщения.. сегодня вернул пользователей назад на SQL, и снова при попытке сохранить или записать: "При выполнении транзакции произошла ошибка! Объект заблокирован:..."
#21 by Ёпрст
ну и нахрена форму открывать ? Спр.Новый чем не подходит ?
#22 by kinno
Надо чтобы нажав на кнопку "Поручение", пользователю открывался новый элемент справочника, после чего он его редактирует, заполняет реквизиты и комментарий и уже сохраняет. спр.Новый - это просто создание программным способом, без интерактивного заполнения полей
#23 by Ёпрст
и где в этом коде транзакция у тебя ? И нахрена она там упёрлась ?
#24 by kinno
больше ничего нет, просто до этого он создавался в предопределенной процедуре ПриОткрытии. По крайней мере НачатьТранзакцию нигде нет
#25 by kinno
Нашел то-что эти элементы справочника, также автоматически создаются при проведении некоторых документов
#26 by Ёпрст
ну вот и ответ, проведение - это всегда транзакция, при создании элементов справочника будет заблокирована табличка справочника целиком, и пока документ держит табличку в обработке проведения, другие пользователи создать элементы справочника не смогут - будет всегда ошибка транзакции.
#27 by kinno
да но, это происходит и в монопольном режиме, когда никакие документы не проводятся и я ничего кроме этого не делаю. Думаю это возможно глюк установки 1С
#28 by Ёпрст
тогда задавай вопрос автору.. в
#29 by Cthulhu
: что мешает после Спр.Новый; ... Спр.Записать; при(!)надобе(!) сделать ОткрытьФорму(..); для него?..
#30 by kinno
Спасибо!!! Сделал вот так, создаю новые элементы через такую процедуру тогда они потом сохраняются без ошибки транзакции
#31 by AeDen
а раньше как было?
#32 by kinno
это создавался новый элемент, заполняли пользователи реквизиты, а потом сохраняли.. и вот когда перешли на SQL2008, стала при попытке сохранить появляться ошибка "При выполнении транзакции произошла ошибка! Объект заблокирован:..."
#33 by Кириллка
лови трасу профайлером, будем изучать. Так вообще ни о чем разговор.
#34 by Кириллка
+33 Ты можешь описать с кодом ситуацию, в которой это происходит гарантированно?
#35 by Ёпрст
в монопольном режиме, эта ошибка есть ? что еще есть в коде ? Весь код целиком можно увидеть ?
#37 by kinno
Да и в монопольном
#38 by kinno
RowNumber    EventClass    TextData    ApplicationName    NTUserName    LoginName    CPU    Reads    Writes    Duration    ClientProcessID    SPID    StartTime    EndTime    BinaryData 0    65528    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    0xFFFE900209004D006900630072006F0073006F00660074002000530051004C00200053006500720076006500720000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A3240060000000053004500520056004500520000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000FAFBEDFB00FCFF100E000100090006000A000E000B000C00FCFF180F000F00100009000D00110006000A000E0012000B000C00FCFF1011000C000100090006000A000E000B00FCFF1A0A000F0010000900110002000A0012000B000C000D0006000E00FCFF1A0C000F00100001000900110006000A000E0012000B000C000D00FCFF100D000C000100090006000A000E000B00FCFB1C1B0001000A0006000B001200100011000D0009000C000E000F000200 1    65534    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    NULL    2011-06-20 19:23:22.733    NULL    NULL 2    17    -- network protocol: TCP/IP set quoted_identifier on set arithabort off set numeric_roundabort off set ansi_warnings on set ansi_padding on set ansi_nulls on set concat_null_yields_null on set cursor_close_on_commit off set implicit_transactions on set language русский set dateformat dmy set datefirst 1 set transaction isolation level read committed    1CV7    NULL    Login1C    NULL    NULL    NULL    NULL    6700    51    2011-06-20 16:55:11.650    NULL    NULL 3    13    set implicit_transactions on    1CV7    NULL    Login1C    NULL    NULL    NULL    NULL    6700    51    2011-06-20 19:23:29.863    NULL    NULL 4    12    set implicit_transactions on    1CV7    NULL    Login1C    0    0    0    0    6700    51    2011-06-20 19:23:29.863    2011-06-20 19:23:29.863    NULL 5    13    select VERSTAMP from SC39113(NOLOCK) where ROW_ID=1    1CV7    NULL    Login1C    NULL    NULL    NULL    NULL    6700    51    2011-06-20 19:23:29.863    NULL    NULL 6    12    select VERSTAMP from SC39113(NOLOCK) where ROW_ID=1    1CV7    NULL    Login1C    0    3    0    0    6700    51    2011-06-20 19:23:29.863    2011-06-20 19:23:29.863    NULL 7    13    IF @@TRANCOUNT > 0 ROLLBACK TRAN    1CV7    NULL    Login1C    NULL    NULL    NULL    NULL    6700    51    2011-06-20 19:23:29.863    NULL    NULL 8    12    IF @@TRANCOUNT > 0 ROLLBACK TRAN    1CV7    NULL    Login1C    0    0    0    0    6700    51    2011-06-20 19:23:29.863    2011-06-20 19:23:29.863    NULL
#39 by kinno
результат трассировки
#40 by kinno
SC39113 это таблица та самая Справочник.Д_Поручения
#41 by kinno
Происходит в момент нажатия кнопки Записать (#Записать)
#42 by kinno
То есть суть проблемы, для новых элементов, при нажатии на кнопку "Записать" (#Записать) возникает ошибка, "При выполнении транзакции произошла ошибка! Объект заблокирован:..." другие справочники нормально сохраняются
#43 by kinno
когда элемент создается интерактивно
#44 by Кириллка
я смотрю, ссылки на ресурс Доржи порезали :) из трасы видно, что ты пользуешься каким-то другим решением, но не моим.
#45 by Кириллка
+44 выясняй, что у тебя за дружилка и исправляй.
#46 by antistaks
kinno, стукни в аську 435998716 пару вопросов есть!
#47 by m g r
вероятно в табличке есть элементы с одинаковыми ID
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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