Имя: Пароль:
1C
1С v8
Проблема обмена по расписанию
,
0 БВГ1951
 
21.07.16
09:51
У нас налажен двусторонний обмен между базами по расписанию, но ИНОГДА на базу-приемник приходят не все объекты (вот недавно отправлено 5, а получено 2)  и при этом на базе-источнике ВСЕ отправленные объекты "слетают" с регистрации. Не так сложно, конечно, зарегистрировать повторно (и тогда всё приходит), но нельзя же непрерывно контролировать. Что может быть причиной такого поведения?

Расписание для БазыА (источника в указанном случае): каждый  день; с 8:00:00 по 22:00:00 каждые 600 сек., повторять после завершения через 300 сек.

Расписание для БазыБ (приемника в указанном случае): каждый  день; с 8:05:00 по 22:05:00 каждые 600 сек., повторять после завершения через 300 сек.

Одно время грешили на то, что регламентные задания слишком близко начинали выполняться по времени, разносили (через 5 минут). (Тогда еще " повторять после завершения через 300 сек" не было выставлено). Вроде начинало всё работать. Потом опять случался прокол. Потом я выставил "повторять после завершения через 300 сек.". Думал, что это решит проблему. Но вот указанный выше случай произошел при нормально разнесенных по времени регламентных заданиях

Не думаю, что это важно, но сообщаю, что обмен идет между Управление холдингом, редакция 1.0  (1.0.7.26) (БазаА) и Бухгалтерия предприятия КОРП, редакция 3.0 (3.0.43.52) (БазаБ). Платформа 1С:Предприятие 8.3 (8.3.8.1652)
1 aleks_default
 
21.07.16
09:58
Конфликт блокировок например.
2 PaulBC
 
21.07.16
10:01
(0) Посмотри в предупреждениях синхронизации в БП
3 Cyberhawk
 
21.07.16
10:05
"на базу-приемник приходят не все объекты" // Так и должно быть. В чем вопрос-то?
4 RomanYS
 
21.07.16
10:06
(0) Как разруливаются коллизии? Возможно в приемники эти объекты тоже изменены и внешние изменения не принимаются.
5 БВГ1951
 
21.07.16
10:11
(4) В приемнике запрещены изменения (указанных в рассматриваемом случае объектов)
6 БВГ1951
 
21.07.16
10:12
(2) Нет никаких сообщений, на данную дату
7 БВГ1951
 
21.07.16
10:14
(3) Не понял недоумения. Под объектами я подразумевал (в данном контексте) выгруженные элементы справочника Договоры. Т.е. из 5-ти договоров пришли 2
8 RomanYS
 
21.07.16
10:16
Баз-копий приемника нет, а то может они забирают часть файликов
9 Optan
 
21.07.16
10:18
Аналогичная проблема была) Обмен по регламентным заданиям? На сервере? Может при записи где то директивы "&НаКлиенте"?

Возможно где-то срабатывает отказ=Истина в правилах обмена?
Я добавлял логи в технологический журнал - так вычислял...
10 БВГ1951
 
21.07.16
10:19
(8) идея интересная. Можно посмотреть, проверить. Только из ОДНОЙ выгрузки 2 из 5-ти то пришло :)
11 RomanYS
 
21.07.16
10:20
(9) тогда по идее загрузка должна завершаться ошибкой, а источник не должен снимать регистрацию
12 БВГ1951
 
21.07.16
10:21
(1) Пока это наиболее "рабочее" предположение. Вопрос: а как это проконтролировать?
13 RomanYS
 
21.07.16
10:21
(10) эти 2 могли прийти раньше/позже
14 БВГ1951
 
21.07.16
10:21
(11) Вот, вот. И я о том же :)
15 БВГ1951
 
21.07.16
10:41
(9) Да, на сервере, регламентными. А вот это:
"Может при записи где то директивы "&НаКлиенте"?"
поясните, пожалуйста.
ГДЕ именно?

И по-прежнему остается вопрос: ПОЧЕМУ слетает регистрация? Как у Вас было?
16 aleks_default
 
21.07.16
10:59
ПОЧЕМУ слетает регистрация?

Она не слетает, она обнуляется. Видимо у вас загрузка в базу-приемник выполняется не в транзакции, или в транзакции не обрабатываются ошибки загрузки.  
Соответственно даже если ошибки загрузки происходят, обратно все равно отправляется обменник с подтверждением удачной загрузки, который и обнуляет регистрацию в базе-источнике.
17 БВГ1951
 
21.07.16
11:15
(16) Спасибо за ценную мысль. Но если из-за одного объекта отказывать в удачном переносе для ВСЕХ остальных было бы неправильным. так можно вообще остановить обмен. А интересно, существует ли механизм, который позволяет снимать с регистрации (да, пусть обнулять :)) ОТДЕЛЬНЫЕ объекты
18 RomanYS
 
21.07.16
11:19
(17) в типовых как правило есть обработка "регистрация изменений для обмена"
19 aleks_default
 
21.07.16
11:26
(17) Нет. Стандартной типовой процедурой обмена нет.
Каждый обменный файл (условно назовем его пакет) имеет свой номер. Так вот, ответный обменный файл с подтверждением удачной загрузки не содержит информацию об объектах(загруженных или нет), он тупо очищает таблицу регистрации изменений по номеру отправленого пакета.
20 БВГ1951
 
21.07.16
11:27
(19) Увы! Это я тоже знаю :(
21 БВГ1951
 
21.07.16
11:30
Только вот как сделать, чтобы при неудачной загрузке в базе-приемнике ОДНОГО объекта, регистрация ИМЕННО ДЛЯ него не слетала?
Кстати, для (18). Я неудачно сформулировал в прошлый раз вопрос, поэтому и получил Ваш ответ. :) Очевидно, что для моего случая эта обработка не поможет
22 aleks_default
 
21.07.16
11:37
(21) Может начать с выяснения причин незагрузки?
23 БВГ1951
 
21.07.16
11:43
:) Хороший совет. :) Только "поймать" я эту причину не могу никак. В один из прошлых раз ее причиной было массовое перепроведение документов в приемнике (и как результат, очередной сеанс в базе-источнике не "успевал" за выгрузкой из базы-приемника; обмен то двусторонний). Но, я полагал, что добавлением "повторять после завершения через 300 сек.", я эту проблему решил. Оказывается нет
24 БВГ1951
 
21.07.16
11:44
Точнее я, полагаю, решил причину "не успевал". А вот проблему незагруки - нет :(
25 mistеr
 
21.07.16
11:47
(21) Такие "проблемные" объекты, которые могут не загрузиться, рекомендуется передавать через отдельный план обмена.
26 БВГ1951
 
21.07.16
12:21
(21) ключевым здесь "проблемные". Не совсем понятно, что к ним отнести. Пока у нас обмен массово идет только по справочникам (Договора, Контрагенты, Счета к/а). И по статистике (% незагруженных ОЧЕНЬ мал) другие объекты и не проявляются. А вот когда пойдет обмен документов, есть вероятность, что и они "посыпятся"
27 Cyberhawk
 
21.07.16
12:21
(7) Еще раз: в чем вопрос-то?
28 БВГ1951
 
21.07.16
14:02
(27) Суть проблемы: в базе-источнике зарегистрировано к обмену 5 объектов, все 5 отправлены, загрузилось в базе-приемнике 2, при получении квитанции в базе-источнике ВСЕ 5 объектов снялись с регистрации
29 mistеr
 
21.07.16
14:08
(28) Дебажь загрузку.
30 БВГ1951
 
28.07.16
10:20
(28) Как отлаживать загрузку в on-line? В обработке "Универсальный обмен..." -  всё ясно. При попытке отладить даже если ставлю на точку останова проверяет является ли режимом отладки обработчиков загрузки и запускается Выполнить(ТекстАлгоритма). Вот это место:
Если ОтладкаОбработчиковЗагрузки Тогда
    ВыполнитьОбработчик_Конвертация_ПослеЗагрузкиПараметров(ФайлОбмена, Отказ, ПричинаОтказа);
            
Иначе         
     Выполнить(ТекстАлгоритма);
КонецЕсли;

Как установить режим отладки обработчиков загрузки?
31 lodger
 
28.07.16
10:26
обмен типовой? нет варианта перенастроить его на прямое подключение?
(30) подключите отладку фоновых заданий.
32 БВГ1951
 
28.07.16
10:41
(31) Обмен по оригинальному плану обмена. Понятно, что по БСП, но правила оригинальные. Отладка фоновых подключена (+ еще и внешние на всякий случай подключил; может не надо?).
33 lera01
 
28.07.16
10:47
(32) А в этих оригинальных правилах в обработчиках может что-то через Попытку-Исключение делается?
34 БВГ1951
 
28.07.16
10:54
Кстати, ЭТУ ошибку удалось побороть (точнее устранить причину): не переносился параметр из выгрузки в загрузку, ну и на пустой объект так реагировала система. Оказывается ТЕПЕРЬ нельзя параметры ставить в Конвертации (на закладке). Если ставишь "Выгружать в загрузку" автоматически предполагается, что параметр надо вводить в диалоге. А у меня программно заполняется. Убрал из закладки, вставил найденную в интернете процедуру ПередатьОдинПараметрВПриемник(Имя, Значение).

Но после этого появилась ошибка
'Ошибка формата сообщения обмена.'

Ошибка возникает при проверке
ФайлОбмена.ЛокальноеИмя <> "ДанныеПоОбмену",
т.к. в файле  
ФайлОбмена.ЛокальноеИмя = "ИнформацияОТипахДанных"

Не знаете, в чем дело?
35 БВГ1951
 
28.07.16
11:15
(32) А в этих оригинальных правилах в обработчиках может что-то через Попытку-Исключение делается?

А на что это влияет? Правила сложные, писаны моим предшественником. Но ЭТА ошибка (как я указал в (34)) возникает из-за пустого параметра. Меня В ПРИНЦИПЕ интересовало на будущее: как поставить в Истину параметр ОтладкаОбработчиковЗагрузки? В настройке узла я вижу новые возможности запуска отладки загрузки, только непонятно как ими пользоваться. В Универсальном обмене всё было по-другому
36 БВГ1951
 
28.07.16
11:17
(31) Вариант перенастроить на прямое подключение отпадает. Мне досталось "дорабатывать" обмен на этапе запуска проекта, а сам проект выполнял другой человек
37 Cyberhawk
 
28.07.16
14:33
(28) Я вроде бы уже ранее ответил, что так и должно быть, т.е. это не проблема. Вопрос-то будет?
38 тарам пам пам
 
28.07.16
17:10
(11) Если было не исключение, а явное указание Отказ=Истина где-то в ПВД или ПКО, то загрузка проходит все равно успешно и высылается квитанция о доставке; так что кури правила обмена.
AdBlock убивает бесплатный контент. 1Сергей