|
Веб-сервис не может создать элемент справочника | ☑ | ||
---|---|---|---|---|
0
Aradel3d
29.08.17
✎
18:06
|
Добрый вечер,
Есть две sql базы, разные конфигурации, в базе источнике запускают обращение к веб-сервису приемника и передают строковые данные. В приемнике нужно создавать элементы справочников. Все просто и безобидно. Но на строке НовМат = Справочники.Материалы.СоздатьЭлемент(); Происходит закрытие ws соединения и прекращение работы алгоритма, без сообщения о каких-либо ошибках. 1) Все алгоритмы заключены в попытку-исключение, исключение не вызывается. 2) Алгоритмы исполняются под полными правами, дело не в правах. Права проверил, пользователя проверил, админ, полные права. 3) Алгоритмы отрабатывают без ошибки если их запускать обработкой в пользовательском режиме. 4) Никаких подписок нет. 5) Никакой иной код не исполняется. 6) В режиме WS соединения в других видах справочников новый элемент создается как обычно. 7) Если в режиме отладки вычислить Справочники.Материалы.СоздатьЭлемент() или Справочники.Материалы.СоздатьГруппу() то зависает конфигуратор. В базе запускалась обработка Тестирования и исправления, не помогло. Очень странно, по идее даже если что-то пошло не так должно было бы отрабатывать Исключение и функция что-то бы возвращала. Но после прохождения строки Справочники.Материалы.СоздатьЭлемент() соединение просто рвется без ошибок. Ситуацию на месте поглядел еще один, отнюдь не глупый человек, тоже в первый раз такое видит. Может кто сталкивался с такими приколами? Единственное, что приходит на ум - база приемник поврежденная. Потому что кроме того что это ws соединение никаких иных отличий нет. И даже еслиб это влияло, почему же другие справочники адекватно обрабатывают СоздатьЭлемент() |
|||
1
lodger
29.08.17
✎
18:08
|
либо менеджер справочника не может породиться, т.к. модуль для WS-соединения не скомпилирован, либо хз шо там как...
|
|||
2
Господин ПЖ
29.08.17
✎
18:12
|
курочить справочник можно?
закоменить все существующие функции в менеджере и объекте попробовать вызвать |
|||
3
palsergeich
29.08.17
✎
18:14
|
Смотрите подписки на события и события объекта, скорее всего где то там чудо.
Если быть точнее, то WS соединение исполняется в контексте "Внешнее Соединение", вероятнее всего в модуле обработчика одной из подписок на событие данный контекст компиляции отключен. |
|||
4
Господин ПЖ
29.08.17
✎
18:14
|
журнал регистрации, тж - молчат?
|
|||
5
rudnitskij
29.08.17
✎
18:14
|
может в обработке заполнения чего-то странное...и свойства справочника этого посмотрите
|
|||
6
palsergeich
29.08.17
✎
18:14
|
2 варианта решения или у этого модуля ставить флаг "Вызов сервера" или "внешнее соединение"
|
|||
7
Господин ПЖ
29.08.17
✎
18:16
|
проверка модулей для внешнего соединения - делалась?
|
|||
8
Happy Bear
29.08.17
✎
18:17
|
Может РЛС какой срабатывает и попробовать создание перекинуть в привелегированный модуль?
|
|||
9
palsergeich
29.08.17
✎
18:17
|
Как показала практика ставится вызов сервера на эти модули (обработчики подписок на события) и все ок
|
|||
10
breezee
29.08.17
✎
19:30
|
(0) Так отладка в руки, поставьте отладку для веб-сервисов в приемнике и смотрите, что там происходит
|
|||
11
Aradel3d
29.08.17
✎
20:05
|
(10) Дело в том, что я как раз через отладку и гляжу как развиваются события. Все работает до момента .СоздатьЭлемент(), далее ничего не происходит, просто закрывается соединение.
(8) Нет, там простая древняя база, ничего такого нет. (4) В журнале регистрации только соединение, аутентификация и отключение. (3) в этой маленькой базе всего одна подписка на событие)) и она касается постороннего документа т.е. не влияет. (2) Можно, завтра попробую. Но я отслеживал, что происходит при выполнении обработки из пользовательского режима, алгоритм в модуль справочника не заходит, там процедура при установке нового кода и все. |
|||
12
breezee
29.08.17
✎
20:46
|
(11) А в попытке создание эелемента? А если точки останова в модуле объекта "перез записью поставить"?
|
|||
13
roman52
29.08.17
✎
21:06
|
похоже, что модуль справочника не может скомпилироваться во внешнем соединении, (7) должно показать проблемные места
так же может валиться если есть обращения к каким-то доступным на клиенте глобальным переменным (выскочит при проверке модуля для сервера) |
|||
14
Aradel3d
30.08.17
✎
09:10
|
(13) Я закомментировал все внутри модуля справочника, не помогло. А что вкладывается в понятие "проверка модулей для внешнего соединения"? Посмотреть галку "Внешнее соединение"? При исполнении алгоритма задействуются модули с непосредственно его кодом и простановкой текущего пользователя, далее только справочник.
|
|||
15
Timon1405
30.08.17
✎
09:16
|
(14) сервис- параметры- модули -проверка - соотв. галка
|
|||
16
Aradel3d
30.08.17
✎
09:28
|
Разобрался, да дело было действительно в модуле справочника. Хоть алгоритм туда и не заходит, но после того как я сделал синтаксическую проверку модуля для внешнего соединения и убрал там строку с состоянием все заработало.
Спасибо за советы! |
|||
17
Aradel3d
30.08.17
✎
09:32
|
Оказалось не важно идет ли непосредственно обращение к процедуре или функции, а просто наличие клиентской функции в модуле.
|
|||
18
MM
30.08.17
✎
09:59
|
(16) Он не мог туда зайти, чтобы войти в модуль его надо скомпилировать, а в веб-сервис соединении это не удавалось сделать.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |