Цитата:Что имеется ввиду, не уже ли "Переносчик работает вне контекстов 1С соединяемых баз, а является самостоятельным приложением"?
Угу. примерно так. Есть такая мысль, и я ее думаю. Причем лучше даже не приложением, а системным сервисом. А задача 1С - только оповещать этот сервис об изменениях объектов. Нафига? Да очень просто:
1. Вынести всю логику обмена куда-нибудь подальше из 1С. Это позволит при меньших затратах получить доступ ко всему многообразию методов и компонент репликации данных, которые сегодня уже есть.
2. 1С будет заниматься чем ей и положено - обработкой бизнес-объектов.
3. Такое решение позволит раздельно менять бизнес-логику и логику обмена.
4. Если решение окажется удачным, его можно будет использовать на других системах с минимальными доработками - только на участках уведомления об изменениях объектов и загрузки объектов.
Дальше начинается мое имхо.
Все системы обмена для 1С грешат одним и тем же концептуальным пороком - ну нет в них, не проглядывается нормальный клиент - сервер. База, которая должна отдавать данные, является сервером. И должна быть готова отдать данные в любое время, а не тогда, когда после длительных раздумий выгружен "пакет данных", он же файл переноса данных, он же... Который становится устаревшим через пол-секунды после формирования. И начинается песня:
- Алло, Вася, ты мне какой последний пакет направил?
- 105-й.
- А у меня 104 только загрузился.
- Не знаю, смотри почту.
- Да смотрел я, ничего нет
... наконец, нашли пакет, и опять:
- А почему в нем нет документа №xxxx? (марья ивановна сказала, что отгрузила на нас товар...)
А в это время система находится в середине списка из 69 баз. И прерывать обмен сейчас - просто глупо ради какого-то Пети Пупкина с его е...м документом. Только разобрались, и Петя понял, куда он должен вставить себе документ марьи ивановны, - второй звонок, третий, четвертый...
Я никогда не думал что выучусь так многоколенно материться.
После трех дней подряд подобного "обмена" хочется собрать пользователей всех периферийных баз в одной комнате, усадить поплотнее, и кинуть туда пару гранат... Потом застрелиться самому.
Именно поэтому я и говорю - желательно оформить сервисом. Если пользователю позарез нужен документ и абсолютно нехрен кроме этого делать - пусть сидит и дыргает кнопочку "Обмен". Сервис, если нет для него данных будет стабильно возвращать ответ "А нету, родной, для тебя ничего..." А как только появятся - начнет отрабатывать передачу. Но! это будет только
по запросу клиента, а не "по расписанию"
Теперь представим, что одновременно хотя бы двум пользователям вставило именно сейчас получить данные. А это сразу же - параллельная обработка, то есть - диспетчеры запросов, очереди, потоки... То есть то, что на 1С, даже с применением 1С++ (простите, разработчики, не гневайтесь на правду...) нормально не сделаешь.
Поэтому и "внешнее приложение", точнее, сервис...
Цитата:А чем не устраивает УРБД + резать самому
( уменьшать число записей ) в _1DWNLDS перед выгрузкой ???
А можешь подсказать как в УРБД реализовать следующее: документ "Реализация (комиссия)" должен в периферийной БД стать "Поступлением ТМЦ (комисиия)", и создать для себя партии, а не хватать те, которые пришли по обмену?