|
Выбор протокола синхронизации | ☑ | ||
---|---|---|---|---|
0
PaulSeiziger
09.07.19
✎
16:15
|
Привет!
Подскажите, самое оптимальное решение для моей ситуации: Имеем несколько 1С, с которыми должна взаимодействовать наша программа (на Java). Программа должна добавлять, изменять и удалять контрагентов в этих базах, а также уметь выводить списки этих контрагентов и выставлять счета (с возможностью отправки на печать и сохранения в PDF). Какой протокол взаимодействия для этого лучше использовать? В данный момент использую odata. Мне не нравится то, что приходится выгружать всё, что есть в каждой из баз, чтобы узнать, были ли изменения. Также в данный момент я не понимаю, как мне проверять удаление элемента на стороне 1С (есть DeletionMark, но я банально могу не успеть отследить его изменение, если будет вызвана процедура очиски помеченных на удаление элементов). Я думаю заменить odata http-сервисом. Удачное ли это решение? Какие подводные камни могут быть? Или вообще синхронизироваться как-то иначе? |
|||
1
Лефмихалыч
09.07.19
✎
16:17
|
http-сервис на стороне 1С поднять
страданий с удалением не понял. Расскажи подробности. |
|||
2
PaulSeiziger
09.07.19
✎
16:41
|
(1) Я думаю, что поле DeletionMark в Odata - это, по сути, пометка на удаление. Сканирование обновлений я выполняю раз в 15 минут, при этом запрашивая все сущности (возможно, есть способ составить условие, чтобы этого не делать?). Если в моей базе уже присутсвует эта сущность, то я заменяю ее данными из 1С. Что, если в этом 15-минутном интервале произойдет пометка на удаление и вызов процедуры очистки помеченных на удление элементов? Я в таком случае просто не получу никакой информации об этой сущности и, соответсвенно, не применю изменений к своей базе.
|
|||
3
Dotoshin
09.07.19
✎
17:03
|
(2) Если суть задачи в синхронизации данных между 1С и вашей программой, то есть смысл использовать планы обмена. В плане обмена регистрируются все произошедшие изменения. Вам нужно каким то образом получать эту информацию из плана обмена и синхронизировать данные в своей программе. Далее в плане обмена нужно удалить синхронизированные элементы.
Это можно сделать разными способами. Все зависит от конкретной ситуации. |
|||
4
Вафель
09.07.19
✎
17:03
|
может стоит рассмотреть 2х сторонний обмен?
когда 1с сама инициализирует обмен с вашей прогой? |
|||
5
Dotoshin
09.07.19
✎
17:07
|
(4) Тут вопрос в том как его программа будет давать ответ.
|
|||
6
Вафель
09.07.19
✎
17:10
|
(5) как нужно будет так и будет давать.
сами же пишут |
|||
7
Garykom
гуру
09.07.19
✎
17:13
|
(0) Имхо лучшее решение в вашей ситуации это нанять хорошего программиста 1С.
Потому что задачу которую вы пытаетесь решить через одно место, легко и просто решается о стороны 1С. |
|||
8
Лефмихалыч
09.07.19
✎
17:22
|
(2) а на какой пень ты к себе складируешь эти данные? Чтобы половчей потом позатрахиваться с удалениями вот этими или под этим есть какое-то еще логическое обоснование?
|
|||
9
PaulSeiziger
09.07.19
✎
17:31
|
(8) Потому что не все сущности, создаваемые через эту программу, должны синхронизироваться с 1С. Некоторые должны быть доступны только для локального использования.
|
|||
10
PaulSeiziger
09.07.19
✎
17:36
|
(3) Спасибо, постараюсь поискать в этом направлении. Посоветуете какой-нибудь ресурс?
|
|||
11
LLeonidov
09.07.19
✎
17:36
|
(2) какое же похвальное стремление.
Все что нужно сделать это на стороне 1с использовать план обмена и после успешной записи объектов в "программе" сбрасывать признак изменения этих объектов в 1с. Если объект окончательно удалят из базы. То со стороны 1с в таблице изменений все равно есть УИД этих удаленных объектов. Лично мне для целей обмена нравятся http сервисы, но это не важно. |
|||
12
Dotoshin
09.07.19
✎
17:37
|
(9) Тогда тем более не понятно.
|
|||
13
LLeonidov
09.07.19
✎
17:37
|
(10) первая же ссылка в поисковике :) отличная статья. http://catalog.mista.ru/public/899200/
|
|||
14
LLeonidov
09.07.19
✎
17:37
|
+(13) http://catalog.mista.ru/public/899200/ извиняюсь не та ссылка
|
|||
15
Dotoshin
09.07.19
✎
17:42
|
(10) вот для примера https://programmist1s.ru/planyi-obmena-1s/
В общем гугли план обмена 1с. Статей полно |
|||
16
Garykom
гуру
09.07.19
✎
17:43
|
(14) Кроме планов обмена, можно просто подписку в 1С на нужные объекты.
Боюсь от планов обмена у программера на Java будет завихрение кое чего. |
|||
17
Dotoshin
09.07.19
✎
17:46
|
(16) Можно позвать на помощь программиста 1С,чтобы не было завихрений. Базы 1С кто-то обслуживает же....
|
|||
18
bolero
09.07.19
✎
17:57
|
(2) Плюсую за план обмена.
У меня стоит задача некоторого обмена информацией между совершенно разнородными базами (это никоим разом не синхронизация), пришел к выводу, что проще всего завести узлы обмена. Жаба пусть приходит, забирает XML с сообщением, оттуда дергает только то, что ей нужно, а в ответ пустую XML "сообщение принято". На мой взгляд, завихрений будет значительно меньше, чем с подписками. |
|||
19
Garykom
гуру
09.07.19
✎
18:05
|
(18) думаешь так просто на java создать пустую xml по формату 1С?
|
|||
20
Лефмихалыч
09.07.19
✎
18:42
|
||||
21
bolero
10.07.19
✎
10:16
|
(19) иногда люди пытаются решить задачу академическим методом вместо прагматического. У тебя в голове уже наверняка завертелись всякие Factory, Builder, XSI, namespaces, а достаточно текстового шаблона, куда только номера сообщений подставлять.
Разбор XML на жаве - не сложнее, чем на любом другом языке кроме 1С и лиспов всяких, для жавы XML - родненький формат. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |