Путь к менеджеру обмена 1с
Механизмы интеграции
Конфигурация "1С:Документооборот" редакции КОРП содержит несколько встроенных планов обмена с другими типовыми конфигурациями на платформе "1С:Предприятие".
Редакции ПРОФ и ДГУ не содержат таких планов обмена. Тем не менее, все редакции поддерживают обмен данными с помощью встроенной обработки УниверсальныйОбменДаннымиXML , использующей внешние правила обмена, загружаемые из файла. Собственные планы обмена можно добавить в любую из редакций.
Встроенные планы обмена предназначены для автоматической синхронизации данных в ходе совместного использования разных прикладных решений, но могут использоваться и для первоначального наполнения информационной базы.
Внешние правила обмена, поставляемые в составе дистрибутива, предназначены скорее для первоначального наполнения информационной базы, но могут использоваться и для последующей синхронизации данных. В последнем случае обмен нужно будет запускать регулярно вручную.
Встроенные планы обмена используют подсистему Обмен данными "Библиотеки стандартных подсистем" (далее БСП) редакции 2. Это значит, что в составе каждого плана обмена есть макет с правилами регистрации, а также макеты правил обмена и правил обмена конфигурации-корреспондента:
- Правила регистрации используются в "1С:Документообороте" для определения необходимости регистрации записываемого объекта к выгрузке в конфигурацию-корреспондент.
- Типовые правила регистрации тривиальны (содержат только перечень регистрируемых объектов без дополнительных условий).
- Автоматическая регистрация изменений в планах обмена выключена, для регистрации используется стандартная механика БСП, анализирующая изменения в выгружаемых полях перед регистрацией.
При необходимости комплект правил может быть загружен из файла. Как правило, это делают:
- после обновления конфигурации-корреспондента. В этом случае свежий комплект правил находится в составе дистрибутива обновления, в папке "Синхронизация данных";
- во время отладки правил обмена, разрабатываемых на основе типовых правил, если они требуют доработки на конкретном внедрении.
После отладки доработанных правил обмена рекомендуется включить их в состав конфигурации, сняв с поддержки макеты, чтобы:
- получить возможность сравнивать доработанные правила с типовыми при обновлении конфигурации;
- избежать проблем, связанных с проверкой правил при обновлении информационной базы после изменения структуры метаданных.
Обратите внимание:
Правила, загруженные из файла и переставшие соответствовать новой структуре метаданных, не дадут довести до конца штатное обновление информационной базы.Правила обмена разрабатываются с помощью конфигурации "Конвертация данных" редакции 2.1. Конфигурация бесплатна и доступна по линии ИТС. Рекомендуется использовать типовые правила как основу для разработки, сохранив их в файлы и загрузив в информационную базу "Конвертации данных".
"1С:Документооборот" не поддерживает обмен данными в формате EnterpriseData. Соответственно, для разработки правил обмена не следует использовать конфигурацию "Конвертация данных" редакции 3.
Расширение плана обмена
При включении новых объектов в существующий план обмена следует:
Добавление плана обмена
При разработке собственных планов обмена следует:
- Создать новый план обмена на стороне обеих конфигураций. Имя плана обмена должно быть одинаковым в обеих конфигурациях. Состав обязательных процедур модуля менеджера плана обмена приведен в документации к подсистеме Обмен данными "Библиотеки стандартных подсистем" соответствующей версии.
- Включить в состав планов обмена объекты, участвующие в обмене, а также регистр сведений СоответствиеОбъектовИнформационныхБаз , запретив авторегистрацию изменений. Использование собственного механизма регистрации БСП позволит избежать выгрузки объектов, изменившихся только в части не участвующих в обмене реквизитов.
- Создать подписки на события, аналогичные описанным выше, и обработчики для них. Лучше создать для этого отдельный общий модуль, не снимая с поддержки общий модуль ОбменДаннымиСобытияДокументооборот .
- Включить новый план обмена в тип параметра общих команд подсистемы Обмен данными . Проще всего найти нужные команды, выполнив в Конфигураторе поиск ссылок на типовой план обмена.
- Включить новый план обмена в код процедуры ПолучитьПланыОбмена общего модуля ОбменДаннымиПереопределяемый .
- При необходимости создать формы настройки плана обмена (см. документацию к "Библиотеке стандартных подсистем", а также примеры в планах обмена с конфигурациями "1С:Бухгалтерия" предприятия и "1С:Управление производственным предприятием").
- Сохранить описания обновленных конфигураций в файлы с помощью обработки MD8<NNN>Exp.epf , входящей в состав дистрибутива конфигурации "Конвертация данных".
- Загрузить описания конфигураций в информационную базу "Конвертации данных".
- Разработать два набора правил обмена и два набора правил регистрации для каждой из сторон обмена.
- Добавить оба набора правил обмена и по одному набору правил регистрации в каждую конфигурацию в качестве макетов плана обмена.
- Настроить синхронизацию данных и отладить ее.
Обратите внимание:
Правила обмена, зачитанные из макетов в составе конфигурации, кэшируются в регистре сведений ПравилаДляОбменаДанными . При отладке рекомендуется использовать загрузку правил обмена из файла. Для обновления правил из макета следует изменить номер версии конфигурации или выполнить загрузку вручную по команде Загрузить правила… , выбрав вариант Из конфигурации .Веб-сервисы
Типовая конфигурация "1С:Документооборот" содержит набор веб-сервисов.
Некоторые из них специализированы и служат, например, для обмена с мобильными устройствами или для синхронизации данных с другими информационными базами, разработанными с применением "Библиотеки стандартных подсистем".
Два веб-сервиса, однако, предназначены для интеграции с произвольными внешними программами, как разработанными на платформе "1С:Предприятие", так и любыми другими, способными обращаться к веб-сервисам. Речь идет о веб-сервисах:
- Files – простой сервис, поддерживающий работу с файлами и папками "1С:Документооборота" извне.
- DMService – поддерживает работу с основными объектами и функциями "1С:Документооборота". Перекрывает функционал веб-сервиса Files . Используется "Библиотекой интеграции 1С:Документооборота".
Данные веб-сервисы включены во все редакции "1С:Документооборота".
Работа с веб-сервисами из прикладных решений на платформе "1С:Предприятие", как правило, строится следующим образом:
- Определяется способ хранения и редактирования настроек подключения к веб-сервису. Настройки состоят из:
- Адреса веб-сервиса;
- Имени пользователя и пароля (в текущих версиях платформы поддерживается только аутентификация "1С:Предприятия", поэтому следует либо предоставить пользователям интегрируемого прикладного решения возможность ввести имя пользователя и пароль, либо использовать для доступа служебную учетную запись, для которой запрещен интерактивный вход);
- Таймаута при обращении к сервису (при низком качестве соединения, а также при первом обращении к сервису задержки могут быть значительными).
- Определяется способ получения WSПрокси для обращения к веб-сервису. Операции создания WSОпределений и WSПрокси достаточно затратны, поэтому рекомендуется выносить получение реквизитов, в отдельный общий модуль с повторно возвращаемыми значениями.
- Создаются процедуры и функции, являющиеся обертками для функционала веб-сервиса на стороне прикладного решения. Непосредственную работу с объектами 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. Имеется своя отраслевая конфигурация, версия БСП которой позволяет использовать обмен через универсальный формат "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. Включили видимость вкладки "Служебная информация", подключили свою обработку, теперь при выполнении обмена синхронизация будет происходить по правилам из обработки."Менеджер обмена данными" не сложный, а гибкий инструмент. Если использовать "Менеджер обмена данными" в режиме а-ля УРБД (одинаковые базы данных, обмен по топологии звезда, настройка выгрузки только для видов объектов, нельзя фильтровать объекты), то установка и настройка занимает 10-20 минут (включая прочтение раздела документации в 10 страниц, посвященному такому обмену). Настройка правил в рамках "а-ля УРБД" осуществляется быстрее, т.к. присутствуют механизмы для групповой настройки правил миграции для однотипных объектов и для одного объекта со всеми базами, с которыми мы обмениваемся.
Для сложных обменов, когда требуется фильтрация, преобразование, синхронизация по ключевым полям, произвольная топология, настройка приоритетности МОД редоставляет различные средства настройки (от "только мышка" до кодирования).
По каким критериям МОД сравнивать с другими решениями для обмена?
Критерий МОД Цена Лицензируется на каждую БД участвующую в обмене, цена от 600 до 1350 рублей за базу Установка (для обмена между 2мя базами) 5 мин
Топология обмена
Произвольная ("звезда","кольцо","дерево" и т.д. и т.п.)
Транспорт
Любой (встроенный обмен через FTP и e-mail (собственный почтовый клиент))
Автообмен
Средствами 1С или внешнего шедулера
Обмен в немонопольном режиме
Да. Если при загрузке встречается объект, который редактирует другой пользователь, то ожидается разблокировка объекта, либо по команде пользователя объект пропускается или загрузка отменяется
Приоритетность баз
Настраивается в каждой паре баз (источник и приемник)
Настройка миграции
Вплоть до реквизита объекта метаданных (тип, вид, реквизит). Инструмент для групповых операций с настройкой
Передача изменений конфигурации
Разрешение/запрет. Изменения конфигурации отслеживаются, передаются, но автоматически не загружаются. Существуют нештатные разработки, которые автоматизируют загрузку конфигурации
Перенос правил миграции при установке нового релиза конфигурации
Правила сохраняет, есть возможность автоматического добавления в настройку миграции новых объектов
Варианты обмена
Изменения, выборочно, за период,списком
Просмотр файла пакета
Штатный механизм
Размер пакет
В пакете информация занимает меньше места, чем в БД (dbf, SQL). Уменьшение размера за счет отключения выгрузки ненужных реквизитов. Уменьшение размера при выгрузке шапки реквизитов отдельным файлом. Архивация arj, rar.
Скорость выгрузки/загрузки (примерно, зависит от конфигурации компьютера,объема и состава данных)
210'000 объектов/час / 40'000 объектов/час
Фильтрация данных
Гибкая
Преобразование данных
Гибкое
Обмен между разными конфигурациями
Да. Структуры конфигураций сопоставляются с помощью гибких механизмов правил обмена
Коллизии номеров
Присваивается новый номер
Движения документов
Переносятся вместе с документом или документ проводится на месте
Поле синхронизации
ID объекта (по терминологии МОД - IDD) + опционально по любому реквизиту с признаком "Сортировка" или "Отбор"Как работает связка МОД+УРБД?
Два продукта можно использовать вместе, но надо иметь в виду следующие нюансы:
Как настроить автообмен через МОД?
1) Для вызова обмена в заданное время нужно настроить с помощью «Назначенных заданий» («Shedule Task») Windows вызов нужной базы 1С:Предприятия с пользователем «Автообмен» (пример «С:\program files\1cv7\BIN\1cv7.exe» enterprise /DC:\Base\office /NАвтообмен /PПароль ) .
В Глобальный модуль в предопределенную процедуру вставить следующий код:
В заданное время будет запускаться для обмена 1С. После обмена 1С автоматически закроется.2) Для вызова обмена через заданные промежутки времени надо в глобальный модуль в предопределенную процедуру вставить следующий код:
И добавить процедуру
С заданной частотой будет запускаться в фоновом режиме обмен данными.
Как лицензируется МОД?
МОД лицензируется на каждую базу участвующую в обмене вне зависимости от физического расположения баз и направлений обмена. Под базой подразумевается физическая база 1С:Предприятия.
1) У Вас есть центральный офис, в котором стоит 1 база 1С, которая обменивается с такими же базами в 4 филиалах. Вам надо приобрести 5 лицензий.
2) У Вас есть центральный офис, в котором стоят 2 базы (например, Бухгалтерия и Торговля) и в филиалах тоже стоит по 2 базы. Вам надо приобрести 10 лицензий.
3) В Вашем офисе в пределах локальной сети или на одном компьютере находятся 3 базы Бухгалтерии, между которыми надо настроить обмен. Вам нужно приобрести 3 лицензии.Что входит в комплект поставки?
1) Пластиковая регистрационная карточка с уникальным идентификатором и паролем. Эти данные требуются при установки МОДа и для его работоспособности.
2) Печатное руководство пользователя (включает Руководство 0 (для быстрой установки и использования МОД в простых обменах) и Руководство)
3) CD-диск (дистрибутив, Руководство администратора (для сложных обменов), шаблоны правил обмена между типовыми конфигурациями)
4) КоробкаКак посмотреть?
Где используется?
По какой причине «задваиваются» объекты (справочники, документы)?
МОД для однозначной идентификации объекта использует свой внутренний идентификатор (дополнительный реквизит IDD добавляемый к справочникам и к общим реквизитам документов). Данный идентификатор заполняется автоматически у существующих объектов в момент установки МОДа или при записи нового объекта. Идентификатор однозначно характеризует объект и не меняется при распространении и редактировании объекта в других базах. Таким образом для правильной работы МОДа в разных базах у одного и того же объекта должен быть один и тот же идентификатор.
Главной причиной возникновения задваивания является неправильная установка МОДа на существующие базы:
1) Если у Вас существовала одна база и Вы хотите сделать ее полные или неполные копии и настроить обмен, то последовательность установки МОДа такая:- устанавливаете МОД в соответствии с инструкцией
- инициализируете МОД
- только после этого делать копии этой базы встроенной процедурой отпочкования или файловым копированием с заменой идентификаторов баз и паролейНе правильно:
- делать копии базы до установки МОД и отдельно устанавливать МОД на кажду копию
- делать принудительную установку новых идентификаторов объектов в скопированных базах2) Если у Вас уже существовали базы, в которых информация вводилась независимо, но часть данных пересекается, то Вы должны установить МОД на каждую базу и воспользоваться возможностью МОДа по синхронизации объектов по дополнительным полям. Например, в двух базах существует контрагент "Иванов". В одной базе ему присвоился идентификатор 10000010001234567, в другой - 10000020007654321. Для МОДа - это два разных объекта. Для того чтобы "объяснить" МОДу, что это один и тот же объект, надо в правилах загрузки указать, что для данного вида справочника объекты надо синхронизировать по реквизиту "Наименование".
Как настроить передачу через МОД измененной конфигурации?
МОД может отслеживать изменения файла конфигурации, отправлять и принимать его, но не может автоматически загрузить обновление. Обновление надо загружать вручную или воспользоваться сторонними разработками, которые автоматически загружают конфигурацию.
Почему документы загружаются с признаком проведения, но движения пустые?
МОД может обрабатывать перенос движений документов двумя способами (за это отвечает галочка в колонке "Движения"):
1) передавать движения в базу-приемник один в один, как в базе-источнике. За содержание передаваемых движений отвечают настройки правил по Регистрам, Операциям и Журналам расчетов
2) не передавать движения, а при загрузке проводить документ по алгоритмам базы-приемникаЕсли у загруженного документа с признаком проведения пустые движения, то это значит, что стоит загрузка движений, но отключены либо выгрузка движений, либо выгрузка/загрузка конкретных регистров, операций и журналов расчетов.
Для однотипных баз, содержание которых не должно различаться, рекомендуется использовать выгрузку/загрузку движений. Этот режим работает быстрее, чем проведение.
Для разнотипных баз или баз, у которых содержание различается, рекомендуется не загружать движения, т.к. могут различаться алгоритмы проведения в базах, а также могут получаться другие результаты на данном наборе данных (например, по-другому списываться партии).
Пример выгрузки объектов списком значений
Если Вам не подходят стандартные режимы выгрузки (изменения, выборочно, за период), то Вы можете самостоятельно подготовить для выгрузки список объектов.
Сильно ли МОД правит конфигурацию?
МОД автоматически добавляет: несколько констант, справочников, обработок, дополнительный реквизит IDD в каждом справочнике и общих реквизитах документов, дополнительный интерфейс.
МОД автоматически заменяет вызовы методов, изменяющих содержание базы данных (операции записи, проведения/распроведения, пометки/снятия пометки удаления, переноса в другую группу и т.д.), на методы, которые делают аналогичные действия и регистрируют эти действия в журнале изменений МОДа. Все замены кода МОД комментирует, что позволяет делать автоматическую деинсталляцию.
Как обновить типовую конфигурацию с установленным МОДом?
1) Установить обновление из дистрибутива
2) Проинсталлировать на обновление «Менеджер обмена данными
3) Обновление с МОДом установить на рабочую базу данныхКак можно деинсталлировать (удалить из конфигурации) МОД?
Для деинсталляции «Менеджера обмена данными» надо в инсталляторе нажать кнопку «Удалить». Получившийся файл 1cv7new.md загрузить в конфигурацию.
1С с МОДом "вываливается" под SQL
Из-за ошибки движка 1С для SQL-баз надо, чтобы все общие реквизиты документов типа строка неограниченной длины находились в конце списка. При установке МОД добавляет дополнительный общий реквизит IDD в список. Перенесите необходимые реквизиты (в типовых конфигурациях – это «Комментарий») ниже реквизита IDD.
Синхронизация данных по ключевым полям
Базовым полем синхронизации объектов в базах является IDD, который однозначно идентифицирует объект вне зависимости от того, в какой базе находится объект, и от содержания объекта. У одного и того же объекта в разных базах должен быть одинаковый IDD.
Для первоначальной синхронизации баз, данные в которых заводились до установки МОДа, и для задач синхронизации одновременно введенных пользователями одинаковых данных в разных базах, «Менеджер обмена данными» позволяет использовать дополнительное поле синхронизации. Дополнительным полем синхронизации может быть любой реквизит, у которого включено свойство «Сортировка». По выбранному полю синхронизация проходит только после неудачной попытки синхронизировать по IDD.
Все ссылки объектов друг на друга передаются в виде IDD. Поэтому при использовании дополнительных полей синхронизации надо тщательно продумать потоки данных, чтобы во всех базах объекты синхронизировались одновременно.
1) В трех базах одновременно ввели нового контрагента «Иванов И.И.»
В первой базе ему присвоился IDD 10000010000000123 .
Во второй – 10000020000000345 .
В третьей – 10000030000000789 .2) Из третьей базы во вторую загрузили этого контрагента и он синхронизировался по полю «Наименование».
После этого обмена содержание IDD стало таким:
В первой – 10000010000000123 .
Во второй – 10000030000000789 .
В третьей – 10000030000000789 .3) Из первой базы во вторую загрузили этого контрагента и он синхронизировался по полю «Наименование».
После этого обмена содержание IDD стало таким:
В первой – 10000010000000123 .
Во второй – 10000010000000123 .
В третьей – 10000030000000789 .4) Из третьей базы выгрузили Расходную накладную этого контрагента (ссылка на IDD 10000030000000789 ). Во второй базе в этот момент уже не было объекта с такой ссылкой и поле Контрагент в Расходной накладной оказалось пустым.
Для избегания такой ситуации надо было в шаге 3) обеспечить выгрузку из второй в первую базу. В этом случае содержание IDD стало бы таким:
В первой – 10000030000000789 .
Во второй – 10000030000000789 .
В третьей – 10000030000000789 .В МОДе нельзя производить синхронизацию объектов одновременно по нескольким реквизитам, например, наименование и артикул. Но это и не нужно, потому что решить эту проблему можно так: в конфигурации загружаемой базы завести реквизит ПолноеНаименование с признаком сортировка. Создать обработку для первичного заполнения этого реквизита в базе приемнике. В правилах загрузки поставить по нему синхронизацию объекта, а в выгружаемой базе в правилах выгрузки добавить реквизит с таким же названием и формулой @Спр.Наименование+« »+Спр.Артикул.
Простые фильтры
С помощью правил выгрузки-загрузки МОД позволяет настраивать фильтры (условия обмена) для любых объектов по одному или нескольким его реквизитам (например, фильтр по фирме в документе). Для каждого реквизита можно устанавливать в качестве условия только одно значение. Объект будет выгружен, только если выполняются условия для всех заданных реквизитов.
Сложные фильтры
Для задания более сложных условий обмена можно использовать возможности МОДа по выполнению конструкций встроенного языка 1С для вычисления значений выгружаемых реквизитов.
Если фирма равна одной из двух заданных, то возвращается значение 1, при котором разрешена выгрузка.
Интерфейсы для пользовательского кода
При обмене МОД вызывает предопределенные функции Глобального модуля (ПриВыгрузкеДокумента, ПриВыгрузкеСправочника, ПриЗаписиДокумента и т.п), в которые пользователь может вставить своими алгоритмы для фильтрации и преобразования данных.
Задача: требуется настроить обмен данными через файл из 1С: Управление торговлей 11 (далее УТ) в 1С: Бухгалтерия 3.0 (далее Бухгалтерия).
- платформа 1С: Предприятие 8.3 (8.3.13.1690),
- конфигурация Управление торговлей, редакция 11 (11.4.7.150),
- конфигурация Бухгалтерия предприятия (базовая), редакция 3.0 (3.0.72.72)
- режим Файловый (без сжатия).
- настроить параметры подключения,
- настроить правила отправки и получения данных,
- выполнить начальную выгрузку данных.
- настроить правила отправки и получения данных,
- выполнить сопоставление и загрузку данных,
- выполнить начальную выгрузку данных.
ШАГ 1. Настройка в УТ
Переходим в раздел «НСИ и администрирование» и выбираем пункт «Синхронизация данных». Обязательно должен быть указан префикс информационной базы. В нашем случае это «ЦБ».
Устанавливаем флаг «Синхронизация данных» и переходим по ссылке «Настройки синхронизации данных». Нажимаем кнопку «Новая синхронизация данных». В открывшемся окне выбираем конфигурацию, с которой будем настраивать обмен. В нашем случае это «Бухгалтерия предприятия, редакция 3.0».
Откроется окно настройки синхронизации. Выберем пункт «Настроить параметры подключения».
Так как обмен будет настраивать через файл, то выбираем пункт «синхронизация данных через файл, без подключения к другой программе».
Далее укажем каталог и настроим архивацию файлов.
Далее укажем префикс базы бухгалтерии и название файла с настройками синхронизации.
Обратите внимание: если указать префикс, по которому уже есть обмен, то будет ошибка, программа предложит указать уникальный код. Нажимаем «Далее» и на этом заканчивается первый шаг настройки.
В результате у нас появится два файла в указанной папке: файл с данными (Message_ЦБ_БП.zip) и файл с настройками обмена (Синхронизация данных через универсальный формат.xml). Обратите внимание: если в УТ попробовать перейти к этапу «Настроить правила отправки и получения данных», то будет ошибка.
ШАГ 2. Настройка в Бухгалтерии
Перед настройкой синхронизации в Бухгалтерии нам понадобятся два файла, созданных на предыдущем шаге. Разместим файлы Message_ЦБ_БП.zip и Синхронизация данных через универсальный формат.xml в любую папку на компьютере с базой Бухгалтерии. Внимание: если Бухгалтерия находится на одном компьютере с УТ, то ничего переносить не нужно. Будем использовать ту же папку, что и для УТ.
Сначала перейдем в раздел «Администрирование» и выберем пункт «Синхронизация данных». В открывшемся окне проверим, чтобы префикс указанной базы совпадал с префиксом, который мы указали на первом шаге.
Устанавливаем флаг «Синхронизация данных» и переходим по ссылке «Настройки синхронизации данных». Нажимаем кнопку «Новая синхронизация данных». В открывшемся окне выбираем конфигурацию, с которой будет настроен обмен. В нашем случае это «1С: Управление торговлей, редакция 11».
Откроется окно настройки синхронизации. Выберем пункт «Настроить параметры подключения».
Так как обмен настраиваем через файл, то выбираем пункт «синхронизация данных через файл, без подключения к другой программе». На Шаге 1 мы уже создали файл с настройками обмена Синхронизация данных через универсальный формат.xml, поэтому выберем его. Если был создан другой каталог и туда скопировали файл с настройками обмена, то выбираем его.
Далее укажем каталог и настроим архивацию файлов. В данном случае каталог может быть тот же самый или тот, в который перенесли два файла.
Далее проверяем настройки префиксов и на этом настройка параметров подключения в Бухгалтерии завершена.
Далее переходим к следующему этапу «Настройка правил отправки и получения данных».
Так как задачи выгрузки из Бухгалтерии у нас нет, то в настройках отправки данных укажем «не отправлять».
В настройках получения данных укажем типовые настройки. При необходимости можно указать свои настройки.
Нажимаем «Записать и закрыть». Далее переходим к следующему этапу «Выполнить начальную выгрузку данных».
После выполнения операции будет создан в каталоге обмена файл с данными Message_БП_ЦБ.zip. На этом этап настройка обмена в Бухгалтерии закончена.
ШАГ 3. Окончание настройки в УТ
Вернемся в УТ. Если использовался другой каталог, то в папку обмена УТ перенесем файл, созданный на прошлом шаге Message_БП_ЦБ.zip.
Продолжим настройку синхронизации в УТ с этапа «Настроить правила отправки и получения данных».
В настройках обратим внимание на два поля.
1.Отправлять только используемую в документах нормативно-справочную информацию.
2.Отправлять все, начиная с даты. Это поле полезно, так как бывает, что нужно начать синхронизацию с определенного времени. Например, учет в УТ уже был настроен ранее, а в
Бухгалтерии только начинаем вести учет. Тогда нет необходимости переносить все документы из УТ в Бухгалтерию. Или второй случай: нужно поменять настройки обмена, но чтобы они действовали только для документов с определенной даты.Все остальные поля заполняем в зависимости от учета.
В нашем случае настройка получения данных не требуется. Оставляем ее без изменений.
Нажимаем «Записать и закрыть». Переходим к следующему этапу «Выполнить сопоставление и загрузку данных».
В нашем случае программа ничего загружать не будет и перейдет к следующему этапу.
На последнем этапе «Выполнить начальную выгрузку данных» программа выгрузит данные из УТ в файл Message_ЦБ_БП.zip.
Обратите внимание (для случая с двумя каталогами): полученный файл Message_ЦБ_БП.zip копируем в каталог обмена Бухгалтерии. В Бухгалтерии выполняем синхронизацию. При этом Бухгалтерия сначала загрузит данные из присланного файла Message_ЦБ_БП.zip, потом обновит свой файл выгрузки Message_БП_ЦБ.zip Этот файл выгрузки Message_БП_ЦБ.zip нужно скопировать обратно в каталог обмена УТ и в УТ выполнить синхронизацию. При этом УТ сначала загрузит данные (если они там есть) из файла Message _БП_ЦБ.zip, а потом обновит свой файл выгрузки Message _ЦБ_БП.zip и т.д.
Добавили:
texnic79 (1.00 $m), Alex Y (1.00 $m), pavel_pss (1.00 $m), antonius888 (0.10 $m) А что делать если в УПП 1.3 "Выгрузка правил синхронизации.epf" не открывается, так как она на управляемых видимо написана? (194) Нужно УПП запустить в режиме тонкого клиента, управляемых форм. (195)Спасибо! .. но
: Значение не является значением объектного типа (Получить)
КомпонентыОбмена.МенеджерОбмена = ВерсииФормата.Получить(Объект.НомерВерсииФормата);
(196)
Так запускали?
В обработку "Выгрузка правил синхронизации.epf" внесены изменения как в статье указано? нет, режим запуска менял, тип клиента в конфе не менял понятно. (198) А обработку какую использовали? УПП какой версии?
Проверял у себя, всё работает. в последних БП 3.0 варианта с загрузкой своего менеджера обмена через настройку формы уже нет, хотя в реквизитах плана обмена есть путь к менеджеру обмена. (200) Код из расширения для восстановления использования внешней обработки с правилами для БП 3.0.66.х
Общий модуль ОбменДаннымиXDTOСервер
(201) интересно, с какой целью была отключена эта возможность, должно же быть какое-то объяснение. Ну перевели БП на формат менеджера версии 2, и что ?(202) Это наверное можно понять, т.к. при работе на сервере пользователь забывает о правах доступа к обработке и обмен нарушается. Или после изменения обработки срабатывает защита от опасных действий и обмен завершается с ошибкой.
Непонятно зачем сделали и сами же запретили использовать обработки с правилами для обработки "Выгрузка загрузка EnterpriseData".
Могли бы сделать в узле ссылку на доп обработки, которые подключаются штатно в предприятии. Тогда сервер сам бы правильно разрулил права.
о, там оказывается еще и свой менеджер выгрузки можно подключать в режиме разработчика, крутоСпасибо за статью. Есть вопрос.
У меня 2 базы Бух 3.0 и 1 база УТ 11.4(две организации). Соответственно в УТ две синхронизации.
Версия формата: 1.3. Правила типовые с небольшими доработками.Нужно сделать в УТ условие, в МенеджерОбменаЧерезУниверсальныйФормат, чтобы доработка работала только для обмена с Бух №1, а для Бух №2 не выполнялась.
Каким образом можно реализовать или куда смотреть?
(207) В параметры конвертации передать значение, связанное с узлом и в правилах проверять параметр.
Например есть строковый реквизит на узле ВариантНастройки
Чтобы не ломать типовые механизмы можно например доп сведение попробовать добавить к узлу. Жесть! Мне нужно просто убрать все банковские документы, для этого столько нужно сделать и получилось только с 5 раза. Спасибо разработчикам конечно, но правда не понятно зачем это делать, использование внешних обработок заблокировано, общий модуль даче через расширение дорабатывать просто ад - каждую процедуру.
В КД 2.0 - выгрузил правила отключил обработку выгрузки, загрузил обратно и все как надо работает. регистрации и запретил регистрацию ненужных объектов. (210) можно по подробнее куда их загрузить? В КД 3 не могу найти куда загрузить правила регистрации. (211) Правила регистрации редактируются в КД 2. Правила обмена - в КД3. Автор, подскажи пожалуйста, в бп 3.0.60 нет поля выбора модуля обмена, его убрали совсем или как то все же можно его подключить?(214) Есть подозрение, что убрали совсем, но т.к. сам реквизит ещё присутствует, то из предыдущих БП можно взять код для выбора файла для формы, из комментариев выше или скоро в статье будет - код для БП 3.0 для подключения обработки с правилами.
ps.
Давно в планах мысль поделиться расширениями для разных конфигураций для подобных целей и для КД3. Может кто аватарку нарисует? Для " Полезные инструменты. EnterpriseData (универсальный формат обмена) ", а то их уже много одинаковых на разные публикации.Делал как описано выше в статье.
Выгружал из базы Розница, редакция 2.2 (2.2.9.20). Загрузил в конвертацию данных 3.0.5.3, сделал как описано в статье.
В КД выгрузил модуль менеджера обмена, как описано в разделе "Проверка корректности загрузки правил".У меня отличие в отсутствии одной процедуры "ПКО_ПКО_АТТ_ОтчетОРозничныхПродажах_ПриОтправкеДанных"
Решил проделать тоже самое, только с базой УТ. У меня там еще больше больше отличий. Не пойму что не так?
(219) Как писал выше, расхождения возможны из-за того, что не загружены правила какой-нибудь версии формата.
Нужно смотреть в исходнике какой используется объект формата и есть ли он у Вас в КД3. Дополнил статью.
Искать текст "использование расширения с правилами обмена в универсальном формате".
Приведен пример кода для расширения чтобы подменить общий модуль с типовыми правилами на свой. Доброго всем дня! Подскажите, есть ли штатная возможность выгружать только проведенные документы и дополнить каждый документ доп.реквизитами "ПометкаУдаления" и "Проведен". Или же без AdditionalInfoВставить никак? (222) Добрый день!
Штатно и так выгружаются проведённые. За это отвечают правила регистрации. Вроде так было.
И если выгружается проведённый документ, то и так ясно, что он не помечен на удаление и проведён ;)
Чтобы дополнить этими реквизитами, без AdditionalInfo не обойтись. (223) Перед запуском обмена при начальной синхронизации выгружаются все документы. И потом в базе-приемнике становятся проведенными, включая те, которые в базе-отправителе были просто записанными. Поэтому пришлось доп. условие добавить. Попробую правила взять из более свежего релиза, может просто баг. Спасибо! Еще одну проблему нашел или не до конца разобрался.
УТ 11.4.6.174. Выгрузил конфиг, правила синхронизации. Загрузил в КД 3.0. Из КД 3.0 выгрузил во внешнюю обработку ("Сохранить модуль менеджера обмена"). Стандартные из общего модуля УТ тоже выгрузил во внешнюю. Сравниваю их, а они - не равны. (226) За это отдельное "спасибо" разработчикам типовых, которые, видимо, пользуются своим отдельным инструментом, либо же дописанной КД3. Стандартные правила Бухгалтерии и Торговли типовой КД3 корректно не разбираются. Соль там в синтаксическом разборе текста модуля, который четко заточен на конкретные сочетания префиксов и постфиксов в именах функций и процедур. Все, что этим сочетаниям не соответствует - просто не загружается в КД3. Грёбаная сыромятина! Вот даже просто следуя этому мануалу получаем на Этапе 2 "Поле объекта не обнаружено" и "Правила обработки данных загружены. Обработано: 165, создано новых 0" И вроде бы намерения благие, да только дорожка то непонятно куда! (228) Может быть что-то в конфигурации не исправлено, что в статье описано. Например при загрузке ПКО для отправки конфигурация пытается получить параметры этого ПКО для получения. (229) Ваша правда! Без снятия с поддержки и доработки (или ещё как) ничего не получится! Уже прорвался далее до, собственно, редактирования. БП 3.0.67 Перестал нормально работать обмен, с использованием внешних обработок в качестве менеджеров обмена. Выгрузка проходит, но при этом объекты выгружаются по типовым правилам. До этого релиза использовали внешние обработки очень давно, естественно каждый раз допиливали возможность указания пути к файлу внешней обработки и добавляли расширение с подменой функции ВерсииФорматаОбмена - как указано в статье, спасибо автору.
Разбираясь заметил интересную деталь, если запускать предприятие с ключом РежимОтладки то выгрузка проходит корректно. Оказалось, что неверно заполняется Значение в соответствии ВерсииФормата(см. картинку) в функции ПоддерживаемыеОбъектыФормата. В итоге в расширение пришлось добавить еще одну функцию
Понять почему неверно заполняется значение в соответствии ВерсииФормата не получилось (( (233) В последней БП 3.0.69 делал, вроде работает, но для постоянного использования рекомендуется расширение, а внешняя обработка только для отладки. Так даже в 1С отвечали. Подскажите, по какому принципу встают на регистрацию объекты, если в настройке синхронизации в правилах отправки выбран способ "Отправлять только используемую в документах"?
Добавил в табличную часть документа новый реквизит (справочникСсылка) не могу зарегистрировать элементы этого справочника на обмен. ни разу не пользовался поделием КД3.0, все что надо корректирую непосредственно в модуле Подскажите, какой план действий для добавления своего документа в планы обмена через униф. формат? (239) если он есть в 2 конфигурациях как не типовой, то пилить схему, затем пилить правила как для типовых. Инфы в нете достаточно для понимания. Это вопрос или утверждение? )
Для чтения файлов с правилами нужна эта доработка. При сохранении правил в буфер обмена, не помню, вроде ошибки не возникает. (241) я правила уже загрузил, так что это больше вопрос к обсуждению.
Для чего именно такой вариант допила делали? На момент доработки этот вариант показался самым логичным. Вроде бы работает. Можно было конечно поставить везде попытку исключение, где возникает ошибка, но это самый некрасивый вариант. (244) я к тому что после такой загрузки реквизит "ВариантИдентификации" не заполнен. А он обязательный при записи ПКО, что не дает отредактировать правило и нужно лишние действия делать.
А вот с таким кодом этот реквизит будет всегда заполнен и проблем с редактированием элементов не возникнет.
Хотя возможно проблема возникла еще раньше, когда заполнялась структура "СтруктураАтрибутов"?
Посмотрел по коду, действительно проблема возникла еще раньше. Когда мы выгрузили файлы "PKO.xml" в частности, то там много где указан текстПоэтому и ошибку выбивало. Надо смотреть почему так вышло.
Посмотрел.
В модуле "МенеджерОбменаЧерезУниверсальныйФормат" есть процедура "ЗаполнитьПравилаКонвертацииОбъектов" и там где НаправлениеОбмена = "Отправка" тихий ужас.
И у всех наверно процедур нет заполнения реквизита "ВариантИдентификации" в структуре "ПравилоКонвертации". Что по итогу и дает проблему.
Посмотрел в конфигураторе Значение заполнения = "ПоУникальномуИдентификатору".
Выходит, если вручную создавать ПКО, то этот реквизит будет заполнен, но похоже разработчики 1С все это генерировали программно и забыли про него.Как итог предложенный код будет решением проблемы.
(245) Посмотрел у себя, в модуле объекта справочника ПравилаКонвертацииОбъектов
Может кто решал задачу перенос картинок номенклатуры через EnterpriseData или другой справочник(как пример) Поделитесь опытом Сам несколько раз заморачивался с конвертированием данных, эта статья довольно информативна. Для выгрузки и загрузки правил конвертации следует воспользоваться приложенными обработками.
увидел такую доработку:
Они решают проблемы, озвученные в п.1 и 2, без необходимости модификации конфигурации Конвертация данных и менеджеров обмена типовых конфигураций.Доброго времени суток!
Подскажите, пожалуйста, кто сталкивался:
У нас в плане обменов ED имеется узел, для которого изменены правила регистрации. Теперь появилась необходимость формирования нового узла и редактирования, для него, типовых правил регистрации по иной логике. Но когда пытаюсь менять правила регистрации для одного узла, они автоматически изменяются и у второго, т.е. настройка правил регистрации для одного узла применяется как бы для всех узлов, входящих в план обмена ED.Не могу сообразить, корректна ли логика, или я что-то не то делаю.
И если логика корректна, может у кого есть готовый велосипед? Буду признателен)
Всем доброго дня!
В ПОД (модуль "При отправке") в типовых правилах активно используются следующие методы (алгоритмы) для отключения выгрузки/загрузки объектов:
Не могу сообразить, в чем принципиальное различие подходов, если в обоих случаях результат аналогичен? Подскажите, пожалуйста.
(255) Добрый день!
Если использование ПКО установить в ложь, то в обмен могут выгружаться команды УдалениеОбъекта по этим ПКО.
Если очистить, то ПКО как бы и не было. Ничего не происходит.
А если в текущем формате не поддерживается какое-либо ПКО, то его нужно удалить, иначе может возникнуть ошибка.Я думал, что для того, чтобы в базе приёмника удаления объекта не происходило, нужно всегда значение параметра правила обработки ""ОчисткаДанных", при отправке, устанавливать в Ложь.
Нам потребовалось ограничить состав объектов для обмена между базами, при этом корректировка правил регистраций явилась невозможной, т.к. правила подвязываются к плану обмена, а в базах имеются и иные узлы, для которых выборочное отключение регистрации не требуется.
Правильно ведь я понимаю, что в моём случае ошибок возникнуть не должно, т.к. за основу использовались типовые правила? Или всё же лучше переписать отключение на Очищение используемых ПКО
Было принято решение отключать выгрузку/загрузку объектов непосредственно в ПОД. И я везде использовал методОшибок не должно быть в Вашем случае. Удаление объекта если и будет, отправлено то не удалит ничего. А если ранее было отправлено лишнее, а потом правила поправили, то пометит на удаление лишнее.
В ПОД в КД3 есть флаг "Выгружать очистку по неиспользуемым ПКО". Если он не выбран, то удаление не должно выгружаться. Эта опция не работала в старых версиях БСП, несмотря на наличие флажка.
Максим, доброго дня!
Случайно сейчас выявил неприятную особенность.
Имею два узла в плане обмена ED, один работает по типовым правилам и обменивается УТ<=>БУХ, а по второму (УТ<=>КА) на основании типовых правил с использованием КД 3.0 написал обработку и указал её в узле в поле "Путь к менеджеру обмена".
После тестирования, решил я модуль из обработки перенести в расширение и подключить к обмену для единственного узла. Однако в процессе анализа кода выявилось, что обработка установленная в одном узле начинает работать для всех узлов, входящих в состав плана обмена ED и работающих по той же самой версии формата. И плевать обмену, что в этих узлах внешние обработки не подключены))
Подскажите, пожалуйста, сталкивались ли Вы с этой особенностью? Просто, если не иметь ввиду данного нюанса и на рабочей базе подключить внешнюю обработку к единственному узлу - есть риск наделать делов при обмене по другим узлам того же плана, если таковые имеются и работают в типовом режиме.И ещё хотел поинтересоваться, не подключали ли Вы ранее собственный модуль правил к конкретному узлу, а не к версии формата?
(260) Вроде бы победил. Может кому пригодится, делюсь решением. Сразу отмечу, что изменения вносил исключительно под требуемую логику, и если у кого-то уже дописано переопределение общего модуля "МенеджерОбменаЧерезУниверсальныйФормат" на собственный в процедуре "ОбменДаннымиУТ.ДоступныеВерсииУниверсальногоФормата", то данное решение будет игнорировать Ваши изменения.
В расширение добавил:
1. Общий модуль "ED_МенеджерОбменаЧерезУниверсальныйФормат" с переписанными типовыми правилами;
2. Добавил регистр сведений "ОбщиеНастройкиУзловИнформационныхБаз" - для получения на стороне расширения префикса узла;
3. Для общего модуля "ОбменДаннымиXDTOСервер" были изменены/добавлены следующие процедуры/функции:Читайте также: