|
Проблема с автообменом РИБ 1С 8.1 | ☑ | ||
---|---|---|---|---|
0
sanjasamara
12.01.14
✎
12:56
|
Проблема при автообмене РИБ, 1С работает в клиент серверном режиме, настроен стандартный обмен по расписанию, но при выполнении обмена вылетают ошибки, при получении изменений у объектов не ставится признак ОбменДанными.Загрузка и при их записи в базу проводятся проверки как в при обычной записи, в результате чего идет вылет на процедурах Предупреждение, потому как на сервере такой процедуры нет.
Если обмен запускать вручную - то все проходит без ошибок, при приеме обмена признак ОбменДанными.Загрузка автоматом выставляется в ИСТИНУ и обмен проходит. Весь код обмена излазил, так и не нашел как этот признак поднимается. |
|||
1
mistеr
12.01.14
✎
13:06
|
Что-то недоговариваешь. Раньше работало?
Более вероятно, что просто модуль документа не запускается на сервере, потому что не компилируется с проверками сервера. |
|||
2
sanjasamara
12.01.14
✎
13:12
|
Раньше база работала в файловом режиме и автообмен был настроен по событиям, файл появился - меняется, сейчас база перенесена на сервер 1С и я пытаюсь настроить обмен по расписанию чтоб он планировщиком серверным делался.
Если делать обмен вручную - все проходит, а вот при работе планировщика - косяк. |
|||
3
Ranger_83
12.01.14
✎
13:22
|
(0) Предупреждение выводить только на клиенте
|
|||
4
mistеr
12.01.14
✎
13:34
|
(2) Ясно, я угадал. Не хочется расстраивать, но у тебя впереди переписывание модулей. Весь интерактив переноси в модули формы, а просто ругань меняй на ОбщегоНазначения.СообщитьОбОшибке(), как в типовых.
|
|||
5
mistеr
12.01.14
✎
13:35
|
(2) Оффтопик, а как было настроено "по событиям"?
|
|||
6
sanjasamara
12.01.14
✎
15:23
|
На закладке Доп настройки автообмена в блоке параметров Обмен по событиям стояла галка При появлении файла и путь к файлу обмена прописан был, так же был указан пользоваель под сеансом которого это должно работать.
Если этот пользователь входил в 1С, то мониторился файл, как приходил - запускался обмен. |
|||
7
sanjasamara
12.01.14
✎
15:26
|
(4) Так почему обмен лезет в ту часть кода, куда ему не надо, при обмене в ручную он туда не лезет, т.к признак ОбменДанными.Загрузка=истина, а при фоновом обмене этот признак почему-то не поднимается.
В какой момент происходит поднятие этого признака и при каких условиях? В коде процедуры обмена он нигде не прописывается. |
|||
8
mistеr
12.01.14
✎
15:31
|
(6) Понятно, всетаки событие - это вход пользователя. Я думал что-то оригинальное. :)
|
|||
9
mistеr
12.01.14
✎
15:38
|
(7) >почему обмен лезет в ту часть кода, куда ему не надо
Он не лезет. Просто не доходит до этого. И признак выставляется как положено. Ошибка происходит еще на этапе компиляции модуля документа. А компиляция происходит при первом использовании, то есть при вызове из рег. задания во время обмена. На сервере модуль компилируется в другом режиме, чем на клиенте, и всякие Предупреждение() и т.д. вызывают ошибки. В файловой все работает всегда в клиентском режиме. На всякий случай приведи полный текст ошибки. Но я уверен на 99%. |
|||
10
sanjasamara
14.01.14
✎
13:17
|
Решил проблему автообмена топорным способом, сделал батник, который стартует 1С и запускает внешнюю обработку, а эта обработка деалет обмен по все узлам базы и потом закрывает подключение.
|
|||
11
St17
30.01.14
✎
11:29
|
(9) согласен. Сам столкнулся с подобной ошибкой , функция не доступна на сервере.
В каждой процедуре написано где она доступна. Код который не должен быть виден на сервере фильтруем. Пример: #Если Клиент Тогда Предупреждение("Доступность: Тонкий клиент, веб-клиент,толстый клиент. "); #КонецЕсли |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |