gifts2017

Обмен через COM-Соединение

Опубликовал Андрей Шишков (oks-nt) в раздел Обмен - Перенос данных из 1C8 в 1C8

Конфигурация предназначена для организации обмена данными между различными конфигурациями 1С. Конфигурации не обязательно могут быть идентичными. Допускаются варианты встречного обмена данных и всевозможные варианты связи объектов как «один-к-одному», так и «много-к-одному», и «один-ко-многим» как на уровне Справочников, так и на уровне Документов. Технология обмена выстроена с использованием ПланаОбмена для регистрации изменений. Обмен осуществляется посредством COM-Соединения. Очень значительное количество вариантов обмена выполняется путём настройки.

Конфигурация ориентирована не на конечного пользователя, но на сотрудника, обладающего необходимыми понятиями в структуре данных, обмениваемых конфигураций, и не обязательно обладающего значительными навыками программирования 1С.

Для понимания порядка настройки и использования конфигурации рекомендую скачать инструкцию по настройке, находится в разделе "Файлы".

 

  • Возможности:
  • Настройка обменов Приёмника с одним или несколькими Источниками
  • Настройка соответствия объектов Источника и приёмника в интерфейсе настройки
  • Сохранение соответствий объектов Источника и Приёмника обеспечивается вне зависимости от структуры конкретного Источника. Соответствие обеспечивается не через одинаковое значение реквизита объекта (код, наименование или UUID), а через регистр СоответствиеОбъектов. И есть возможность обеспечения синхронизации данных не только между парой баз Источник-Приёмник, но и в гораздо более широких вариантах.
  • Большинство вариантов настройки достигается путём простого указания правил соответствия. Но есть возможность управлять процессом заполнения объектов программными алгоритмами. Для некоторых типовых операций предлагаются шаблоны процедур.
  • Предоставлена информация по структуре данных Источника и Приёмника
    Предоставлен дополнительный набор инструментов для управления передаваемыми изменениями – возможность зарегистрировать или отменить регистрацию изменений, просмотр состава текущих изменений.
  • Предоставлены инструменты для синхронизации уже имеющихся данных в Приёмнике и Источнике как по соответствию реквизитов или UUID, так и в «ручном» режиме
  • Есть возможность организовать одновременный встречный обмен данных между Источником и Приёмником, с последовательным редактированием одних и тех же данных
  • Важной особенностью конфигурации является то, что программная обработка обмена выполняется со стороны Приёмника. Со стороны Источника необходимо только наличие УзлаОбмена с необходимым набором метаданных, можно использовать любой существующий. Фактически можно организовать обмен любого уровня сложности с минимальным написанием программного кода с управлением данными не только Приёмника, но и Источника. Для не типовых конфигураций необходимо корректное программирование, предусматривающее получение объектов данных в режиме COMСоединения. Типовые конфигурации изначально написаны с соблюдением этого условия.
  • Конфигурация оформлена в виде подсистемы, не зависит от конкретного набора метаданных, не содержит скрытых фрагментов кода и поставляется с полностью открытым кодом.
  • Демонстрационная конфигурация поставляется без исходных текстов и позволяет настраивать обмен не более трёх объектов метаданных.

Скачать файлы

Наименование Файл Версия Размер Кол. Скачив.
Демо-версия конфигурации
.zip 162,94Kb
17.12.09
522
.zip 162,94Kb 522 Скачать
Инструкция по установке и обновлению
.zip 278,03Kb
17.12.09
76
.zip 278,03Kb 76 Скачать
Инструкция по настройке обмена
.zip 1,52Mb
21.12.09
95
.zip 1,52Mb 95 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Ярослав Радкевич (WKBAPKA) 18.12.09 11:06
я у себя в итого тоже начал использовать регистр сведений для регистрации объектов импорта ;)
2. Андрей Шишков (oks-nt) 18.12.09 11:23
Конечно, особенно в ситуациях, когда в Источнике один документ, а в Приёмник надо загрузить двумя-тремя документами, или вообще контролировать надо ли передавать документ, если, например, склад имеет соответствие, через регистр подобные ситуации гораздо легче делаются. И в типовом обмене в Бух тоже используют регистр..правильное решение..
3. Алексей Захаров (almas) 21.12.09 09:28
На картинках смотреть можно- а на деле нифига. Включи в роль "oksОператорОбмена" использование интерфейса!!!
4. Андрей Шишков (oks-nt) 21.12.09 14:55
Спасибо за замечание, конечно это надо было поправить, недосмотрел. Но думаю больше Вам поможет инструкция по настройке. Добавил инструкцию в файлы, скачайте. Наверное вопрос не только в не подключенном интерфейсе. Обмен вообще необходимо выполнять под полными правами, иначе вряд ли получится. По идеологии обмена загружаются документы, справочники и регистры сведений без регистраторов. Регистры с регистраторами формируются при проведении документов. Соответственно прав должно хватать на Проведение. Предполагаются полные права.
5. marmyshev 24.12.09 01:49
А чем особенно отличается в принципе действия эта конфа от типовой 1С? она судя по всему делает тоже самое - только через правила (а прицип один). Так?
Если я ошибаюсь - может стоит сделать раздел - "Отличия от типовой 1С-Обмен"? (чтобы не искать в чем именно оно различается..)
6. Андрей Шишков (oks-nt) 24.12.09 12:01
Если можно, то я воздержусь от прямого сравнения. Потому что есть наверное как сторонники, так и не очень сторонники типового решения в 1С.

Отличия конечно же в каких-то деталях. В целом мысль разработчиков вполне может двигаться в сходных направлениях. Мы принципиально выбрали направление работать ТОЛЬКО через план обмена.

А некоторые детали могу описать, которые нам не давали жить спокойно. Например та же ситуация, по которому есть Ваше решение - передача сверх больших объемов. Может понадобиться управлять очерёдностью загрузки данных. Когда в одной огромной выгрузке идут вперемежку и документы и справочники, а обычно нужно ПРЯМО СЕЙЧАС новый введённый договор, было бы не плохо прогружать сперва справочники, документы могут и подождать, это не так оперативно важно. Вообще для работы с обменами может оказаться интересным работать не с одним большим пакетом выгрузки, а с единичной записью изменений. На некоторые вопросы руки как-то сразу развязываются. На практике же при обменах одих тех же баз бывают периоды, когда напряжённость обмена не высокая, а потом как перепроведут полгода..и XML обмен весь этот объём прогружает сутки.

Иногда мы реализуем алгоритмы обмена, когда при начале работы каких-то регламентых обработок разводим обработку и обмен. Некоторые из них работают в автомате и надо либо прервать обработку, когда обмен идёт, либо прервать обмен, если идёт обработка. Прерывание обмена можно сделать безбоязненно, если работаешь с единичной записью, а не с пакетом данных.

Работая с единичной записью можно адекватно проанализировать изменения реально прогрузились они или нет, если "вдруг" транзакция, не уникальный номер или заблокированная запись, то не прерывать ВЕСЬ обмен, а просто пропустить одну запись, изменения не отбиваем и они останутся..или прогрузятся позже.

Опять же..простая настройка..время на модификацию настройки..отладка обменов..тестирование..технология поиска ошибок..дополнительные инструменты по синхронизированию..выборочные обмены по нужному набору данных..это всё здесь "в одном флаконе".

Это конечно всё можно считать нашим "особым мнением". Я лично очень рад, если людей устраивает функционал типовых решений. Но когда проблемы накапливаются и разгребая их выявляются какие-то причины, которые типовое решение никак не обойдёт..то..как-то приходится отходить от типового решения.

А если рассматривать совсем не типовые варианты обмена..может я плохо знаю "матчасть" типовых решений, но например для выгрузки в филиал документов с движениями по товарам, например Перемещение, в зависимости от склада надо загружать либо Перемещением, либо Оприходованием, либо Списанием, чтобы в периферийной базе соблюдать не только товарные остатки, но и обеспечивать одновременный обмен в обе стороны документов..м.м.м..не знаю..мне честно сказать, не приходило в голову попробовать это сделать через типовой обмен.

Если иметь ввиду не простую связку Торговля-Бухгалтерия, а разные УПП-Бухгалтерия-Торговля-Автотранспорт-Логистика-Розница-Много_чего_еще, то можно конечно под каждую такую связку иметь свой собственный инструмент. Но как-то надоело метаться между ними и в какой-то степени унифицировали весь свой инструментарий в таком вот виде. Вообще стараемся решить задачу повышения производительности труда программиста при поддержке самых разных форм обмена. Поддерживать обмен, разбираться с коллизиями вообще как-то превращается в карму того, кто настроил обмен..груз этот со временем начинает давить не по детски. Обменов никогда меньше не становится, а разнообразие и объёмы обменов, разнообразие операций в программах обычно только возрастают со временем. Типовые варианты перестают устраивать.

Пока в конфигурацию внесли не все свои наработки..работаем дальше..
7. marmyshev 24.12.09 15:27
(6) спасибо за пояснения! Я лишь имел ввиду что в описании вашего решения стоило бы выделить "особенности" (ака "отличия от типовой") вашего решения!
Но еще раз спасибо! Попробуем разобраться как мы сможем применить вашу идею! :)
8. grigory пкш (dryms) 01.11.11 15:23
CF для 80 чтоли? просьба выложить для 82!
9. Алексей Б (windsurf) 04.12.12 18:40
Интересно, а эта обработка может помочь обойти проблему стандартного обмена:
например есть 2 БД - УТ и БП. изменяем документ в прошлом в УТ, стандартный обмен его загоняет в БП - сбиваем последовательность. Можно ли запретить ей перенос в зависимости от "закрытости периода"?
10. Андрей Шишков (oks-nt) 19.12.12 16:19
(9) windsurf, Можно. Если анализировать ПередЗагрузкой. Такое часто делаю, например разные варианты загрузки в зависимости от даты документа или что-нибудь подобное. В некоторых случаях даже письмо пишу с обовещение или задачу формирую пользователю. Это уже на что фантазии хватит.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа