Обработка ручного одностороннего переноса документов из УТ 10.2 в БП 2.0 через Com-соединение без использования правил обмена

Обработка переносит документы вида: "Реализация товаров и услуг", "Возврат товаров от покупателя", "Счет-фактура выданный", "Счет-фактура полученный", "Поступление товаров и услуг", "Возврат товаров поставщику", "Платежное поручение входящее", "Платежное поручение исходящее", "Приходный кассовый ордер", "Расходный кассовый ордер" за указанный период из УТ в БП, попутно "тащит", зависимые справочники. Синхронизация объектов может производиться по внутреннему идентификатору (возможно по коду, Наименованию, или любому другому реквизиту шапки), соответствие объектов сохраняется в стандартном регистре сведений базы данных БП 2.0 "СоответствиеОбъектовДляОбмена". Список документов может быть легко дополнен другими видами документов. Умеет отдельно переносить справочники. Имеет гибкие настройки.

Обработка запускается на стороне БП2.0 и подключается к УТ, и в общих словах действует так:

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

 Настройка обработки:

Настройка

Здесь настраиваются «Параметры подключения к УБ» (имеется ввиду база УТ),

«Параметры загрузки в приёмник«, по типу(виду) объектов, назначения колонок настройки:

Тип, Вид — понятно.

Не Искать по ИД — при загрузке не производить предварительный поиск объекта по идентификатору через регистр сведений «СоответствиеОбъектовДляОбмена»

Добавлять, если не существует— понятно,

Переписывать, если существует — понятно,

Значение по умолчанию — использовать данное значение реквизита указанного типа, если оно не загружено и не найдено в базе приёмнике

Использовать значение по умолчанию даже если объект существует — понятно,

Поиск По — если не найден по идентификатору, то искать по данным полям (содержит строку, например «ИНН,КПП,ЭтоГруппа,»)

Поиск По1 — Если не найден по ИД, и по ПоискПо, то искать по данным полям

Доп. Параметр — пока используется только в Реализации товаров и услуг, и позволяет настраивать поведение при загрузке.

«Параметры загрузки из источника» — список организаций, по которым осуществляется перенос.


Собственно перенос документов:

Док

Здесь нужно установить период и отобрать нужные виды документов (список легко расширить, но для этого уже потребуется программирование), и нажать на «Прочитать заголовки«: произойдет подключение к базе источнику и основная таблица вкладки заполнится списком документов, если будет обнаружено, что документ уже грузился или существует (по настройке синхронизации), то эта информация так же отобразится в окне.

Далее нужно отметить те документы, которые хочется загрузить, и нажать «Перенос данных«: документы перенесутся в приёмник (процесс переноса можно прервать). Внизу, полосой прогресса отображается процент загруженных документов.


Аналогично осуществляется перенос элементов справочников:

Спр

Выбираем Вид справочника, нажимаем «Прочитать заголовки«, отмечаем нужные, и нажимаем «Перенос данных«

Обработка в общем-то узконаправленная и заточена на небольшое количество документов и справочников, но этот список легко дополнить, также легко изменить поведение при синхронизации и загрузке. Обработка была сделана как замена для автоматического обмена по правилам обмена.

По сравнению с автоматическим обменом имеет ряд преимуществ:

— полный контроль над загружаемыми объектами

— рекурсивная загрузка зависимых объектов

— наглядность исполнения обмена

— наглядность и гибкость настроек загрузки и синхронизации

— простота программирования и отладки при самостоятельной доработке.

Ну и недостатки, куда же без них Smile:

— требуется участие пользователя, для осуществления обмена

— нет возможности использования правил регистрации изменения объектов

17 Comments

  1. compil7

    За обработку и идею спасибо. Буду изучать, когда скачаю.

    Reply ↓
  2. Ibrogim

    А на пару месяцев раньше нельзя было сделать? Ищу ищу… ничего нету, только напишу, вы выкладываете аналог ) (это уже не первый раз)

    Правда я сделал через КД, о чём немного жалею. За долгие годы эпизодической работы с КД (причём временами достаточно тяжёлые обмены), она так и не стала для меня родной. После очередной НЕХ думаю : Плюнуть на всё и переписать через ОЛЕ, и вот теперь то уже точно видимо возьмёт верх на до мной ОЛЕНь (раз есть от вас подспорье)

    UPD… Думал для УТ11. Видимо ослеп.

    Reply ↓
  3. mxm2

    (2) Ibrogim, все же чаще использую автообмены через КД с правилами обмена, но вот было специфическое требование заказчика, и оказалось намного проще (не в смысле быстрее, т.к. КД — в основном приходится изменять готовые правила, а в смысле понятийном) т.е. все понятно откуда и что берется, проще отлаживать, и если, что, проще изменять… КД — это всетаки лишняя абстракция, пусть и суперуниверсальная…

    Reply ↓
  4. omut

    А чем не устраивает использование правил обмена? В том числе и готовых?

    Reply ↓
  5. mxm2

    (4) omut, таки в конце статьи расписаны плюсы-минусы данного подхода.

    Reply ↓
  6. stas1kbob

    К файловой не подключается? Или как правильно подключать?

    Reply ↓
  7. mxm2

    (6) stas1kbob, к файловой подключается копированием пути из маленького начального окошка выбора базы,

    например так File=»F:БазыБП20″; вставить путь следует полностью со сторокой «File=»

    Reply ↓
  8. stas1kbob

    спасибо, подключилось. теперь просит сконвертировать базу 8.0

    Reply ↓
  9. mxm2

    (8) stas1kbob, это не проблема, в модуле объекта в строке 133 достаточно изменить строку

    Коннект = Новый COMОбъект(«V82.COMConnector»);

    на

    Коннект = Новый COMОбъект(«V81.COMConnector»);

    или

    Коннект = Новый COMОбъект(«V8.COMConnector»);

    Должно сработать без конвертации.

    Reply ↓
  10. sevipa

    Согласен со вторым автором, почему не месяцем раньше…

    Reply ↓
  11. sevipa

    выдает ошибку {ВнешняяОбработка.ПереносДокументовИзУТВБП20.МодульОбъекта(574)}: Поле объекта не обнаружено (КонтактныеЛицаКонтрагентов)

    прошу сильно не пинать , я не программист

    Reply ↓
  12. sevipa

    при синхронизации справочника Контрагенты

    Reply ↓
  13. sevipa

    Хотя вполне возможно это ошибка из-за необновленной базы УТ (переписана и не обновлялась уже год

    Reply ↓
  14. sevipa

    Синхронизация Номенклатуры сработала странно, были помечены на удаление элементы с кодами меньшей длины чем в базе источнике, причем даже если они не были найдены… документы не переносятся, программа выдает ошибку… Можно уточнить номера релизов на которых тестировалась обработка? Спасибо заранее

    Reply ↓
  15. VetaSent

    Здравствуйте, подскажите плиз, данная обработка будет работать если УТ дописана и уже год не обновлялась?

    Reply ↓
  16. mxm2

    (15) VetaSent, Гарантировать не могу. Но вроде были люди использующие её на УТ10.3, хотя изначально она написана под УТ10.2, которая официально не поддерживается с лета 2007-го года. По адаптации к платформе обратите внимание на комментарий №9.

    Обработка ТОЧНО не будет работать в УТ11, т.к. там совсем другие названия объектов метаданных документов.

    Reply ↓
  17. mxm2

    (14) sevipa, 10.2.12.2 сильно измененая, но вроде, обработка не затрагивает этих изменений.

    Reply ↓

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *