![]() |
|
Как проставить номер сообщения в план обмена? | ☑ | ||
---|---|---|---|---|
0
Полотенчик
15.04.17
✎
00:02
|
Если в плане обмена выбираешь измененные объекты методом ВыбратьИзменения(), то у него вторым параметром как раз указывается номер сообщения, который будет проставлен у выбранных данных. Но я хочу получить измененные данные с помощью запроса к таблице изменений, т.к. помимо самих данных в запросе надо получить еще дополнительные сведения. Как в таком случае проставить у измененных данных номер сообщения чтобы потом, после подтверждения загрузки данных, я мог убрать из плана обмена данный с этим номером сообщения?
|
|||
1
Полотенчик
15.04.17
✎
12:27
|
Ап. Неужели никто с обменами не работал?
|
|||
2
Фрэнки
15.04.17
✎
12:31
|
в самой таблице изменений не должно быть номера сообщения обмена. Там есть просто изменения, которые сами себя перезатирают, когда изменения происходят вновь
|
|||
3
Фрэнки
15.04.17
✎
12:32
|
узел обмена есть. А номера сообщения не должно быть
|
|||
4
Полотенчик
15.04.17
✎
13:54
|
(2) Как это не должны быть? А как тогда понять что уже было отправлено чтобы после подтверждения удалить?
Вот таблица изменений до отправления, номер сообщения: https://yadi.sk/i/H2XC4bdy3GzdnF Вот выбрал изменения с помощью метода ВыбратьИзменения(), присвоил номер сообщения 1 (для примера. мне надо проставлять номер сообщения без метода ВыбратьИзменения()): https://yadi.sk/i/H2XC4bdy3GzdnF Далее когда удаленный сервер пришлет подтверждение, что сообщение номер 1 успешно загружено, я удалю все изменения с номером 1, и они передаваться не будут. |
|||
5
Полотенчик
15.04.17
✎
13:55
|
Зачем вообще тогда запросы к таблицам изменений, если проставлять номера сообщений можно только выборкой методом ВыбратьИзменения()?
|
|||
6
Полотенчик
15.04.17
✎
13:57
|
(4) вторая ссылка: https://vk.cc/6w0B1t
|
|||
7
Мимохожий Однако
15.04.17
✎
14:23
|
(5) зачем тебе этот несчастный номер?
|
|||
8
Полотенчик
15.04.17
✎
16:22
|
(7) затем, чтобы сначала пометить то, что было отправлено в другое место, а затем, при получении подтверждения успешной загрузки, то, что отправлено убрать из списка изменений
именно таким же образом работают планы обмена.. |
|||
9
Beuenj
15.04.17
✎
16:37
|
>> Но я хочу получить измененные данные с помощью запроса к таблице изменений, т.к. помимо самих данных в запросе надо получить еще дополнительные сведения
Извини глупый вопрос, но непонятно, что тебе надо. Нужны дополнительные данные? Ну получи их отдельным запросом? |
|||
10
Полотенчик
15.04.17
✎
17:03
|
(9) Пример: есть контрагент, есть его адреса, контакты, хранящиеся в регистрах. В 1С добавляют нового контрагента или меняют адрес или еще что-то - надо передать этим данные в другое место (левая база, не 1С; формирую xml в нужном формате, и его отдаю через веб-сервис).
Для этого регистрирую в плане обмена изменение контрагента, затем когда сторонняя база делает запрос на веб-сервис "ДайНовыхКонтрагентов()" я в 1С делаю запрос: "ВЫБРАТЬ | КонтрагентыИзменения.Ссылка, | КонтрагентыИзменения.Ссылка.Наименование КАК Наименование, | КонтрагентыИзменения.Ссылка.ИНН КАК ИНН, | КонтрагентыИзменения.Ссылка.ОсновнойБанковскийСчет.Банк.Нименование КАК БанкНаименование, | КонтрагентыИзменения.Ссылка.ОсновнойБанковскийСчет.НомерСчета КАК НомерСчета, |КонтактнаяИнформация.Представление КАК Адрес |ИЗ | Справочник.Контрагенты.Изменения КАК КонтрагентыИзменения | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация | ПО КонтрагентыИзменения.Ссылка = КонтактнаяИнформация.Объект"; В результате у меня есть и измененные элементы, и все доп. данные, которые необходимы. Осталось перебрать результат запроса, сформировать xml и сказать плану обмена: установи у такого-то узла у элемента Выборка.Ссылка номер сообщения "1". Но такого, видимо, нет... Надо отдельно делать выборку изменений: ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(МойУзел, МойУзел.НомерОтправленного + 1); Пока ВыборкаИзменений.Следующий() Цикл .... КонецЦикла; Но здесь же в цикле я не буду получать доп. данные, т.к. запросы в цикле - бред.. Получается единственный вариант - выгрузить результат предыдущего запроса в таблицу значений, а в этом цикле искать строку с измененными данными в этой таблице, и уже тогда формировать xml, которую передавать на сторонний сервер. Но зачем делать две выборки изменений когда в запросе уже все получено? Понятно? |
|||
11
Полотенчик
15.04.17
✎
17:07
|
Зачем вообще нужен запрос к таблице изменений, если потом это никак нельзя состыковать с регистрацией изменений и отправкой сообщений в удаленную базу?
|
|||
12
Фрэнки
15.04.17
✎
19:34
|
(11) возьми старую версию какого-нибудь Бит-Финанс (для примера) и увидишь там весь этот ужас, который тебе сейчас покоя не дает. Если сравнишь это с текущей версией, то там это видно через регистры сведений с префиксом Удалить...
А подробно обсуждать лень. Но я бы с такой трактовкой обмена не заморачивался. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |