Имя: Пароль:
1C
1С v8
Удаление регистрации в плане обмена
0 breezee
 
13.12.17
18:08
Добрый день! Делаю обмен данными на конвертации 2 по веб. сервисам. Запускаю обработку обмена данными по регламенту. Обработка выгружается все зарегистрированные в узлах обмена данные. Файл с данными отправляю по веб-сервису. Далее запускаю обработку обмена данными, указываю временный файл, который прилетел по веб-сервису и загружаю. Все работает, но юзерам крайне важно, чтобы не загруженные данные загрузлись в следующий раз. То есть мне надо отловить все не загруженные данные и все загруженные данные в таблицу значений. Загруженные удалить из узла обмена, а не загруженные не удалять. Вопрос: как понять, что элемент был успешно загружен? В обработке загрузки данных есть такая возможность? Обработка "Exchange_v82". Типовая от конвертации.
И второй вопрос - может мой алгоритм кривой и иожно как-то проще все это сделать?
Подскажите, пожалуйста.
1 breezee
 
13.12.17
18:09
Отловить "успех" загрузки в приемнике, кончено.
2 bodri
 
13.12.17
18:10
от сервиса что за данные прилетают?
3 breezee
 
13.12.17
18:11
(2) Файл с данными, который конвертация данных выгрузила
4 bodri
 
13.12.17
18:14
спрошу по другому: <Обработка выгружается все зарегистрированные в узлах обмена данные. Файл с данными отправляю по веб-сервису. Далее запускаю обработку обмена данными, указываю временный файл, который прилетел по веб-сервису и загружаю> это из базы А в базу Б, а из Б в А что нибудь приходит, типа ответа или нет?
5 breezee
 
13.12.17
18:18
(4) Пока ни чего. В этом и проблема)
Из Б в А должны прилетать ссылки на все данные, которые были обработаны и признак "Успешно"
То есть примерно так хочу:
ГуидНоменклатуры1 Истина
ГуидНоменклатуры2 Ложь
ГуидДокументаПоступления Истина
...
Откдуда эти данные взять - не знаю
6 bolobol
 
13.12.17
18:18
(1) Или заведомо считать, что на том конце успех, потрачено.
7 bodri
 
13.12.17
18:19
можно в ответ просто номер сообщения слать и всё, при получении из Б в А удалять только те у кого номер сообщения соответствует, примерно так работает стандартный механизм обмена
8 breezee
 
13.12.17
18:19
(6) Так сейчас и делаем по всем обменам другим, но тут мне дали ясно понять, что так нельзя
9 breezee
 
13.12.17
18:22
(7) Тоже вариант, а номер в узле брать? Мне не надо регистрировать изменения в приемнике, можно и так, но если нужно
10 bolobol
 
13.12.17
18:24
(8) (5) Тогда - удалять из регистрации ГУИД, где Успешно пришло. Выгружать - всё что до сих пор зарегистрировано. Всем ГУИД-ам, что выгружаются - устанавливается номер очередного сообщения, если обнулился номер, значит до получения ответа изменился объект в источнике, т.е. с номером сообщения 0 - не удалять из регистрации, даже когда загрузка ГУИД-а пришла с Успешно.
11 breezee
 
13.12.17
18:28
(10) Так блин, на основной вопрос у меня еще нет ответа - как мне получить ГУИД и признак успешности? Вопрос в том, как посмотреть, что элемент был загружен или не загружен?
12 Дык ё
 
13.12.17
18:34
(11) если загружен не весь пакет - нарушена целостность данных. поэтому см. (6)
13 breezee
 
13.12.17
18:36
(12) То есть если что-то не выгрузилось - считать что не выгрузилось все? И ну удалять вообще все данные?
14 bolobol
 
13.12.17
18:37
(11) У вас отправляемые данные как пули об мишень разбиваются?, не опознать? Тогда и разговор ни о чём - нет ответа, нет возможности запроса - нет обратной связи.
15 bodri
 
13.12.17
18:45
(13) <То есть если что-то не выгрузилось - считать что не выгрузилось все? > Да
16 breezee
 
13.12.17
18:45
Так в этом же и вопрос, как этот ответ получить? Я это и спрашиваю. Как понять что данные не были загружены? Во всех исключениях в обаботке загрузки запоминать ГУИД исходных данных? Наверное так и сделаю)
17 bodri
 
13.12.17
18:46
база Б это 1С?
18 breezee
 
13.12.17
18:48
(17) да
19 bodri
 
13.12.17
18:51
База А отправляет номер сообщения, база Б читает файл успешно, в ответ отсылает только номер сообщения, если не успешно тогда не чего не отсылает, база А получив сообщение видит номер и удаляет регистрацию только с этим номером
20 breezee
 
13.12.17
18:53
(19) Ладно, спасибо, покурю завтра по номерам, пока не знаю, как устанавливать номера для каждого объекта базы данных, зарегистрированного в узлах
21 bodri
 
13.12.17
18:55
(20) При отправке сообщения из базы А присваиваешь номер, который равен номеру предыдущего +1