|   |   | 
| 
 | Веб-сервис не может создать элемент справочника | ☑ | ||
|---|---|---|---|---|
| 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) Он не мог туда зайти, чтобы войти в модуль его надо скомпилировать, а в веб-сервис соединении это не удавалось сделать.     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |