Имя: Пароль:
1C
1С v8
Обмен данными. ВыборкаИзменений.Получить()
0 neVteme
 
01.02.17
11:11
Делается обмен (регламентная задача ночью) между двумя конфигурациями - изначально типовыми - через ПланОбмена с узлами и автоегистрацией. По некоторым узлам обмен проходит отлично, а по некоторым нет. Остановка происходит в этом месте (типовая обработка Универсальный обмен данными в XML):
...
Пока ВыборкаИзменений.Следующий() Цикл
   ЗаписатьВПротоколВыполнения("Метка 1";                    
   Данные = ВыборкаИзменений.Получить();
   ЗаписатьВПротоколВыполнения("Метка 2";
...
Остановка происходит на строке "Данные = ВыборкаИзменений.Получить()". Никаких ошибок и сообщений нет. Обмен просто останавливается! Причем в логе есть запись "Метка 1", а записи "Метка 2" нет. Первое, что попробовал, это "завернул" в Попытку - результат тот же, исключение не вызывается.

Получается, что в цикл заходит, т.е. объект выборки есть, а получить его не может... Такое ощущение, что у обработки нет прав на этот объект. Добавил УстановитьПривилегированныйРежим(Истина) - не помогло.

Может кто сталкивался, подскажите, в каком направлении рыть окопы?
1 neVteme
 
01.02.17
11:56
Забыл добавить. Эта проблема только в ночном (регламентированном) запуске. В ручном режиме все работает.
2 Ёпрст
 
01.02.17
12:02
(0) зачем Получить() ? да еще и без указания индекса, когда и так есть уже .Следующий()
Че за Брэд (не Пит) ?
3 Windyhead
 
01.02.17
12:06
(0)Может кто-то параллельно читает или записывает (устанавливается блокировка) сообщения по указанному узлу?
4 Windyhead
 
01.02.17
12:08
(2) У элемента выборки как раз метод Получить() без всяких индексов. Так что без питов бредов
5 neVteme
 
01.02.17
12:10
(3) Думали в этом направлении. Но из десятков попыток, хотя бы раз должно было сработать. Плюс ночь опять же...
6 Ёпрст
 
01.02.17
12:20
(4)Это у какого объекта ?
7 neVteme
 
01.02.17
12:21
(6) ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(ЗаписьСообщения.Получатель, ЗаписьСообщения.НомерСообщения, МассивВыгружаемыхМетаданных);
8 Windyhead
 
01.02.17
12:26
(6)
ВыборкаДанных (DataSelection)
Методы:

Получить (Get)
Сбросить (Reset)
Следующий (Next)

Описание:

Содержит ссылки на данные, представленные в базе данных. Объект позволяет обойти данные, попавшие в выборку и прочитать их.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер).
См. также:

ПланыОбменаМенеджер, метод ВыбратьИзменения
9 Ёпрст
 
01.02.17
12:28
(7) у тя файловая что ле ?
10 neVteme
 
01.02.17
12:33
(9) Нет, SQL.
11 Windyhead
 
01.02.17
12:39
(10) В Другое время тоже самое?
Если да то попробовать написать обработку которой получать измения по элементно массива МассивВыгружаемыхМетаданных. Чтобы хоть как то локализовать.
12 Windyhead
 
01.02.17
12:41
хоть поймешь на каких метаданных спотыкается, ну и через типовую обработку регистрации изменений посмотришь что же там такого зарегистрировано по этому типу метаданных.
13 neVteme
 
01.02.17
12:54
(12) Проделал такое. Пришел к конкретному виду - документ ПриходнаяНакладная косячит. Обработка регистрации изменений показывает список документов (сейчас 27) - просмотрел каждый - обычные документы. Выгружаю только их - остальные узлы отключил. Встает на первом же документе.
14 Windyhead
 
01.02.17
13:44
(13) Попробуй таблицу изменений Приходных накладных прочитать обычным запросом, погляди что там будет
15 Windyhead
 
01.02.17
13:46
Я бы попробовал отменить их регистрацию и зарегистрировать заново.
16 Cyberhawk
 
01.02.17
13:47
"Обмен просто останавливается!" // После цикла код отрабатывает?
17 Windyhead
 
01.02.17
16:10
(16) Видимо узнаем завтра ))
18 neVteme
 
02.02.17
05:18
(15) Что проделано. Удалил всю регистрацию. Провел один документ - он автоматом зарегистрировался. Запустил обмен - результат такой же. Накидал отчет по таблицам изменений, показывает один документ, ничего лишнего нет.
19 neVteme
 
02.02.17
05:21
(16) Обмен просто останавливается - процесс висит, пока его не скинешь или сам сервер через сутки сбросит. Код не отрабатывает, записей в лог не делается.
20 neVteme
 
02.02.17
05:24
(15) Удалил регистрацию у другого документа. Один провел и сделал выгрузку. Все прошло отлично, есть записи в логе о начале и окончании выгрузке, количестве, конвертации и пр.
21 Ёпрст
 
02.02.17
09:27
(19) А в каком плане обмена торчит твой документ, там хоть ком-то права назначены ?
22 Windyhead
 
02.02.17
09:27
что то не понятна разница между (18) и (20) Делалось все с одним типом документов?
Из (20) можно предположить что есть один(несколько) проблемных документов одного типа?
Может попробовать ТИ ?
Если база не большая выгрузить в DT, попробовать тож самое на файловой. Вообще конечно интересно с чем может быть такое связано.
23 neVteme
 
02.02.17
10:17
(21) На план обмена даны все права - чтение, редактирование и пр.
24 neVteme
 
02.02.17
10:20
(22) В одном узле обмена есть два вида документа - ПриходнаяНакладнаия и ПриходДенег. Там их больше, но я проверял на этих двух. (18) - проделал с Приходной накладной, а (20) с Приходом денег.
25 Windyhead
 
02.02.17
10:32
(24)Т.е. Затык именно с ПриходнаяНакладная и не важно какой именно документ зарегистрирован?
26 neVteme
 
02.02.17
10:33
(25) Да, получается только с Приходной накладной.
27 Cyberhawk
 
03.02.17
14:02
Зайти в ОС под пользователем ОС службы агента, добавить инфобазу в список баз этого пользователя ОС, запустить инфобазу 1С
28 neVteme
 
07.02.17
11:22
Проблема решена.
Если кому будет интересно, то следующим образом.
Стандартная ВыборкаИзменений была заменена на обычный запрос к таблицам изменений и все заработало.
Плохо, что причина так и не была установлена, но это пережить можно ))).
29 Ёпрст
 
07.02.17
11:34
(28) релиз поменяй на другой, для начала