Постер обмен с 1с бухгалтерией

Обновлено: 07.07.2024

Механизмы интеграции

Конфигурация "1С:Документооборот" редакции КОРП содержит несколько встроенных планов обмена с другими типовыми конфигурациями на платформе "1С:Предприятие".

Редакции ПРОФ и ДГУ не содержат таких планов обмена. Тем не менее, все редакции поддерживают обмен данными с помощью встроенной обработки УниверсальныйОбменДаннымиXML , использующей внешние правила обмена, загружаемые из файла. Собственные планы обмена можно добавить в любую из редакций.

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

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

Встроенные планы обмена используют подсистему Обмен данными "Библиотеки стандартных подсистем" (далее БСП) редакции 2. Это значит, что в составе каждого плана обмена есть макет с правилами регистрации, а также макеты правил обмена и правил обмена конфигурации-корреспондента:

  • Правила регистрации используются в "1С:Документообороте" для определения необходимости регистрации записываемого объекта к выгрузке в конфигурацию-корреспондент.
    • Типовые правила регистрации тривиальны (содержат только перечень регистрируемых объектов без дополнительных условий).
    • Автоматическая регистрация изменений в планах обмена выключена, для регистрации используется стандартная механика БСП, анализирующая изменения в выгружаемых полях перед регистрацией.

    При необходимости комплект правил может быть загружен из файла. Как правило, это делают:

    • после обновления конфигурации-корреспондента. В этом случае свежий комплект правил находится в составе дистрибутива обновления, в папке "Синхронизация данных";
    • во время отладки правил обмена, разрабатываемых на основе типовых правил, если они требуют доработки на конкретном внедрении.

    После отладки доработанных правил обмена рекомендуется включить их в состав конфигурации, сняв с поддержки макеты, чтобы:

    • получить возможность сравнивать доработанные правила с типовыми при обновлении конфигурации;
    • избежать проблем, связанных с проверкой правил при обновлении информационной базы после изменения структуры метаданных.

    Обратите внимание:
    Правила, загруженные из файла и переставшие соответствовать новой структуре метаданных, не дадут довести до конца штатное обновление информационной базы.

    Правила обмена разрабатываются с помощью конфигурации "Конвертация данных" редакции 2.1. Конфигурация бесплатна и доступна по линии ИТС. Рекомендуется использовать типовые правила как основу для разработки, сохранив их в файлы и загрузив в информационную базу "Конвертации данных".

    "1С:Документооборот" не поддерживает обмен данными в формате EnterpriseData. Соответственно, для разработки правил обмена не следует использовать конфигурацию "Конвертация данных" редакции 3.

    Расширение плана обмена

    При включении новых объектов в существующий план обмена следует:

    Добавление плана обмена

    При разработке собственных планов обмена следует:

    1. Создать новый план обмена на стороне обеих конфигураций. Имя плана обмена должно быть одинаковым в обеих конфигурациях. Состав обязательных процедур модуля менеджера плана обмена приведен в документации к подсистеме Обмен данными "Библиотеки стандартных подсистем" соответствующей версии.
    2. Включить в состав планов обмена объекты, участвующие в обмене, а также регистр сведений СоответствиеОбъектовИнформационныхБаз , запретив авторегистрацию изменений. Использование собственного механизма регистрации БСП позволит избежать выгрузки объектов, изменившихся только в части не участвующих в обмене реквизитов.
    3. Создать подписки на события, аналогичные описанным выше, и обработчики для них. Лучше создать для этого отдельный общий модуль, не снимая с поддержки общий модуль ОбменДаннымиСобытияДокументооборот .
    4. Включить новый план обмена в тип параметра общих команд подсистемы Обмен данными . Проще всего найти нужные команды, выполнив в Конфигураторе поиск ссылок на типовой план обмена.
    5. Включить новый план обмена в код процедуры ПолучитьПланыОбмена общего модуля ОбменДаннымиПереопределяемый .
    6. При необходимости создать формы настройки плана обмена (см. документацию к "Библиотеке стандартных подсистем", а также примеры в планах обмена с конфигурациями "1С:Бухгалтерия" предприятия и "1С:Управление производственным предприятием").
    7. Сохранить описания обновленных конфигураций в файлы с помощью обработки MD8<NNN>Exp.epf , входящей в состав дистрибутива конфигурации "Конвертация данных".
    8. Загрузить описания конфигураций в информационную базу "Конвертации данных".
    9. Разработать два набора правил обмена и два набора правил регистрации для каждой из сторон обмена.
    10. Добавить оба набора правил обмена и по одному набору правил регистрации в каждую конфигурацию в качестве макетов плана обмена.
    11. Настроить синхронизацию данных и отладить ее.

    Обратите внимание:
    Правила обмена, зачитанные из макетов в составе конфигурации, кэшируются в регистре сведений ПравилаДляОбменаДанными . При отладке рекомендуется использовать загрузку правил обмена из файла. Для обновления правил из макета следует изменить номер версии конфигурации или выполнить загрузку вручную по команде Загрузить правила… , выбрав вариант Из конфигурации .

    Веб-сервисы

    Типовая конфигурация "1С:Документооборот" содержит набор веб-сервисов.

    Некоторые из них специализированы и служат, например, для обмена с мобильными устройствами или для синхронизации данных с другими информационными базами, разработанными с применением "Библиотеки стандартных подсистем".

    Два веб-сервиса, однако, предназначены для интеграции с произвольными внешними программами, как разработанными на платформе "1С:Предприятие", так и любыми другими, способными обращаться к веб-сервисам. Речь идет о веб-сервисах:

    • Files – простой сервис, поддерживающий работу с файлами и папками "1С:Документооборота" извне.
    • DMService – поддерживает работу с основными объектами и функциями "1С:Документооборота". Перекрывает функционал веб-сервиса Files . Используется "Библиотекой интеграции 1С:Документооборота".

    Данные веб-сервисы включены во все редакции "1С:Документооборота".

    Работа с веб-сервисами из прикладных решений на платформе "1С:Предприятие", как правило, строится следующим образом:

    1. Определяется способ хранения и редактирования настроек подключения к веб-сервису. Настройки состоят из:
      • Адреса веб-сервиса;
      • Имени пользователя и пароля (в текущих версиях платформы поддерживается только аутентификация "1С:Предприятия", поэтому следует либо предоставить пользователям интегрируемого прикладного решения возможность ввести имя пользователя и пароль, либо использовать для доступа служебную учетную запись, для которой запрещен интерактивный вход);
      • Таймаута при обращении к сервису (при низком качестве соединения, а также при первом обращении к сервису задержки могут быть значительными).
    2. Определяется способ получения WSПрокси для обращения к веб-сервису. Операции создания WSОпределений и WSПрокси достаточно затратны, поэтому рекомендуется выносить получение реквизитов, в отдельный общий модуль с повторно возвращаемыми значениями.
    3. Создаются процедуры и функции, являющиеся обертками для функционала веб-сервиса на стороне прикладного решения. Непосредственную работу с объектами XDTO рекомендуется инкапсулировать в них, чтобы облегчить доработки при изменении функционала сервиса.

    Примеры использования веб-сервисов можно увидеть в "Библиотеке интеграции 1С:Документооборота", поставляемой в составе дистрибутива "1С:Документооборота".

    Веб-сервис Files

    Веб-сервис использует всего четыре типа объектов:

    • File – файл в папке.
    • Folder – папка файлов.
    • ShortFileInfo – сведения о файле, возвращаемые сервисом после его создания.
    • FileList – список файлов, отобранных по условиям.
    • GetFileList – получает список файлов в указанной папке.
    • GetFile – получает файл по указанному коду файла.
    • AddFile – добавляет файл в указанную папку.
    • DeleteFile – помечает файл на удаление.
    • FindFolder – находит папку по наименованию в указанной родительской папке.
    • AddFolder – создает новую папку в указанной родительской папке.

    Все действия, выполняемые этим веб-сервисом, можно выполнить с помощью веб-сервиса DMService. Работа с файлами документов поддерживается только DMService.

    Веб-сервис DMService

    Сервис использует XDTO-пакет DM. Пакет содержит несколько десятков прикладных объектов, являющихся представлениями таких объектов "1С:Документооборота", как файлы, документы, процессы, задачи и так далее. Все они - потомки абстрактного DMObject и имеют общие свойства objectId и externalObject .

    Свойство objectId представляет собой ссылку на объект "1С:Документооборота" и содержит его представление, идентификатор и тип.

    Свойство externalObject представляет собой ссылку на объект интегрируемой программы и так же содержит его представление, идентификатор и тип. Свойство заполняется сервисом автоматически, если объект "1С:Документооборота" был ранее связан с объектом интегрируемой конфигурации, например, при создании или записи с заполненным свойством externalObject .

    Сервис поддерживает всего одну операцию, execute . В качестве параметра передается объект-потомок DMRequest . Требуемая операция и ее параметры определяются типом переданного объекта и его свойствами. Например, запрос DMGetObjectListRequest получает список объектов типа, указанного в свойстве type по условиям, указанным в свойстве query .

    Результат операции возвращается в объекте-потомке DMResponse . В простейших случаях это объект DMOK . В случае ошибки возвращается DMError , содержащий краткое ( subject ) и полное ( description ) описание ошибки.

    Для большинства запросов существуют парные им объекты-ответы, содержащие результат выполненной операции. Например, список объектов, полученный вызовом DMGetObjectListRequest , возвращается в объекте DMGetObjectListResponse .

    Приведем простейший пример работы с веб-сервисом на встроенном языке платформы "1С:Предприятие". Начнем с получения определений и прокси веб-сервиса (подразумевается, что адрес публикации, имя пользователя и пароль уже получены):

    Cоздадим запрос на получение списка внутренних документов:

    Определим условие запроса (поиск по наименованию):

    Выполним запрос, проверив результат на предмет ошибки:

    Разберем ответ, заполнив таблицу названиями и идентификаторами найденных документов:

    Подробное описание объектов и операций сервиса дается в составе дистрибутива "1С:Документооборота" (файл "Описание веб-сервисов.html" в каталоге шаблонов). Это описание доступно также из интерфейса демонстрационной конфигурации "Библиотека интеграции с 1С:Документооборотом", которая содержит также более сложные и полезные примеры использования сервиса.

    При выпуске новых версий "1С:Документооборота" сервис расширяется и дополняется новыми объектами и свойствами так, чтобы не затронуть работу клиентских приложений, не знающих об этих изменениях. Этого же принципа следует придерживаться при самостоятельном изменении функционала сервиса: например, добавляя новые свойства, устанавливать минимальное количество в 0.

    Обработка запросов к сервису сосредоточена в общих модулях:

    • ОбработкаЗапросовXDTO – общий вход для всех вызовов
    • ОбработкаЗапросовXDTOБизнесПроцессыИЗадачи
    • ОбработкаЗапросовXDTOДокументы
    • ОбработкаЗапросовXDTOФайлы

    Присутствуют только в редакции КОРП:

    • ОбработкаЗапросовXDTOКорп
    • ОбработкаЗапросовXDTOОбмен
    • ОбработкаЗапросовXDTOПочта
    • ОбработкаЗапросовXDTOУчетВремени

    Перед использованием сервиса следует получать его версию и редакцию запросом DMGetVersionRequest и не пользоваться возможностями, которые не поддерживает сервис. Попытка использовать отсутствующие возможности, например, попытка создать исходящее письмо в редакции ПРОФ, приведет к ошибке (возврату DMError ).

    Доработки рекомендуется вносить в модуль ОбработкаЗапросовXDTO Переопределяемый . Его процедуры и функции позволяют провести дополнительное изменение объектов XDTO при их создании по объектам "1С:Документооборота" и наоборот.

    Библиотека интеграции 1С:Документооборота

    "Библиотека интеграции 1С:Документооборота" (далее БИД) не является самостоятельным прикладным решением, хотя и содержит некоторые демонстрационные объекты, и предназначена для встраивания в прикладные решения на платформе "1С:Предприятие".

    БИД может использоваться с любыми версиями "1С:Документооборота", начиная с редакции 1.2.

    БИД публикуется в составе дистрибутива "1С:Документооборота" и предназначена для работы с "Библиотекой стандартных подсистем" версии, последней на момент публикации. Однако адаптация БИД к конфигурациям, содержащим более ранние версии БСП, не составляет большого труда, поскольку БИД использует функционал БСП в небольшом объеме.

    Более подробное описание "Библиотеки интеграции 1С:Документооборота" и порядка ее встраивания содержится в документации, поставляемой в составе дистрибутива (папка DocDMIL ).

    Как было сказано, эта статья логическое продолжение первой, вот ссылка на нее:

    Начальные шаги из первой статьи актуальны и для базы приемника, а именно:

    1. доработка непосредственно пакета XDTO
    2. Доработка плана обмена
    3. доработка общего модуля "ОбменДаннымиXDTOСервер"
    4. доработка общего модуля "ОбменДаннымиПереопределяемый"
    5. доработка модуля "МенеджерОбменаЧерезУниверсальныйФормат13" (единственное что менеджер в УНФ называется МенеджерОбменаЧерезУниверсальныйФормат18)

    А теперь отличия

    Как известно объекты добавленные в расширение не попадают в тип "ТипВсеСсылки", в связи с этим при тестировании обмена вываливалась ошибка, для устранения был доработан следующий код:

    Общий модуль "ОбщегоНазначения"

    этой доработкой мы делаем возможность вернуть менеджер объекта нашего нового документа.

    Здесь доработка похожей функции модуля которая возвращает вид объекта.

    Еще один нюанс на который хотелось бы сделать акцент.

    В УНФ (как и в любой другой базе на БСП) есть регистр сведений "Настройки обмена данными XDTO"

    В данном регистре хранится информация по версиям формата, для каждого объекта включенного в план обмена.


    В связи с этим я попробовал добавить следующий код в процедуру общего модуля "обменДаннымиXDTОсервер"

    Но в итоге эта доработка не понадобилась, она нужна только в момент первой отправки пакета (чтоб он успешно ушел) дальше уже система его получит и на основе его дозаполнит регистр информацией по новому формату, как показано для примера на скрине, по документу содержится информация по новому формату (1.11). Этот вывод я сделал уже по факту, когда увидел заполненный регистр.

    В итоге файл успешно получен и обработан и мы видим наш скромный документ в базе приемнике.


    Спасибо за внимание и за интерес к первой статье, который побудил меня поставить логическую точку в данном вопросе и написать эту статью).

    1. Имеется своя отраслевая конфигурация, версия БСП которой позволяет использовать обмен через универсальный формат "Enterprise Data".

    * Версия БСП поддерживает данный механизм с версии 2.3.1.62

    2. Имеется типовая Бухгалтерия 3.0, которую запрещено снимать с поддержки (инициатива руководства)

    3. Необходимо настроить выгрузку нескольких справочников из Отраслевой конфигурации в Бухгалтерию, но при загрузке добавить определенную логику при обработке загружаемых данных.

    Решение

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

    В Отраслевой конфигурации (не планируется обмениваться ни с чем кроме бухгалтерии, поэтому меняем прямо в плане)

    1. В плане обмена "Синхронизация через универсальный формат" установили состав (нужные нам справочники) и правила регистрации объектов.

    2. В Конвертации данных 3.0 создали правила обмена с универсальным форматом, загрузили правила в модуль "Менеджер обмена через универсальный формат"

    3. В режиме 1С Предприятия создали синхронизацию, настроили, выполнили выгрузку.

    В Бухгалтерии 3.0

    1. В режиме 1С Предприятие создали синхронизацию, на основе настроек из отраслевой конфигурации.

    2. В конвертации данных 2.0 создали правила регистрации для плана "Синхронизация данных через универсальный формат", и подгрузили их в синхронизации (на картинке ниже).


    3. В Конвертации данных 3.0 создали правила обмена.

    И теперь вопрос куда эти правила загружать, если модуль "Менеджер обмена через универсальный формат" закрыт поддержкой?

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

    Получается добавим 4 пункт: Создать внешнюю обработку, в модуль объекта которой загрузим правила обмена, созданные в пункте 3.

    Далее, включим видимость вкладки "Служебная информация":

    1. Открываем форму синхронизации. Нажмем "Еще" - "Изменить форму". (на картинке ниже)


    2. Включаем видимость вкладки "Служебная информация". (на картинке ниже)


    3. Открываем вкладку "Служебная информация". В поле "Путь менеджера обмена" добавляем путь ка нашей обработке с правилами конвертации из КД3.


    Подитожим:

    Что мы сделали ( в Бухгалтерии):

    1. Использовав стандартный план и КД 2, создали синхронизацию с регистрацией к обмену только нужных нам справочников.
    2. Использовав КД 3 создали внешнюю обработку в которой содержаться правила обмена.
    3. Включили видимость вкладки "Служебная информация", подключили свою обработку, теперь при выполнении обмена синхронизация будет происходить по правилам из обработки.

    Читайте также: