Проблема с автообменом РИБ 1С 8.1 #694261


#0 by sanjasamara
Проблема при автообмене РИБ, 1С работает в клиент серверном режиме, настроен стандартный обмен по расписанию, но при выполнении обмена вылетают ошибки, при получении изменений у объектов не ставится признак ОбменДанными.Загрузка и при их записи в базу проводятся проверки как в при обычной записи, в результате чего идет вылет на процедурах Предупреждение, потому как на сервере такой процедуры нет. Если обмен запускать вручную - то все проходит без ошибок, при приеме обмена признак ОбменДанными.Загрузка автоматом выставляется в ИСТИНУ и обмен проходит. Весь код обмена излазил, так и не нашел как этот признак поднимается.
#1 by mistеr
Что-то недоговариваешь. Раньше работало? Более вероятно, что просто модуль документа не запускается на сервере, потому что не компилируется с проверками сервера.
#2 by sanjasamara
Раньше база работала в файловом режиме и автообмен был настроен по событиям, файл появился - меняется, сейчас база перенесена на сервер 1С и я пытаюсь настроить обмен по расписанию чтоб он планировщиком серверным делался. Если делать обмен вручную - все проходит, а вот при работе планировщика - косяк.
#3 by Ranger_83
Предупреждение выводить только на клиенте
#4 by mistеr
Ясно, я угадал. Не хочется расстраивать, но у тебя впереди переписывание модулей. Весь интерактив переноси в модули формы, а просто ругань меняй на ОбщегоНазначения.СообщитьОбОшибке, как в типовых.
#5 by mistеr
Оффтопик, а как было настроено "по событиям"?
#6 by sanjasamara
На закладке Доп настройки автообмена в блоке параметров Обмен по событиям стояла галка При появлении файла и путь к файлу обмена прописан был, так же был указан пользоваель под сеансом которого это должно работать. Если этот пользователь входил в 1С, то мониторился файл, как приходил - запускался обмен.
#7 by sanjasamara
Так почему обмен лезет в ту часть кода, куда ему не надо, при обмене в ручную он туда не лезет, т.к признак ОбменДанными.Загрузка=истина, а при фоновом обмене этот признак почему-то не поднимается. В какой момент происходит поднятие этого признака и при каких условиях? В коде процедуры обмена он нигде не прописывается.
#8 by mistеr
Понятно, всетаки событие - это вход пользователя. Я думал что-то оригинальное. :)
#9 by mistеr
>почему обмен лезет в ту часть кода, куда ему не надо Он не лезет. Просто не доходит до этого. И признак выставляется как положено. Ошибка происходит еще на этапе компиляции модуля документа. А компиляция происходит при первом использовании, то есть при вызове из рег. задания во время обмена. На сервере модуль компилируется в другом режиме, чем на клиенте, и всякие Предупреждение и т.д. вызывают ошибки. В файловой все работает всегда в клиентском режиме. На всякий случай приведи полный текст ошибки. Но я уверен на 99%.
#10 by sanjasamara
Решил проблему автообмена топорным способом, сделал батник, который стартует 1С и запускает внешнюю обработку, а эта обработка деалет обмен по все узлам базы и потом закрывает подключение.
#11 by St17
согласен. Сам столкнулся с подобной ошибкой , функция не доступна на сервере. В каждой процедуре написано где она доступна. Код который не должен быть виден на сервере фильтруем. Пример:     #Если Клиент Тогда     Предупреждение("Доступность: Тонкий клиент, веб-клиент,толстый клиент. "); #КонецЕсли
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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