|
|||
Адинэснег
12.12.13 — 09:26 |
В какой типовой есть сабж? |
||
Поpyчик-4
1 — 12.12.13 — 09:27 |
В поиске. |
||
Адинэснег
2 — 12.12.13 — 09:27 |
нужна обработка под УФ. Тот же функционал, что в обычных формах. |
||
Поpyчик-4
3 — 12.12.13 — 09:29 |
Кнопка Я в правом верхнем углу |
||
Адинэснег
4 — 12.12.13 — 09:30 |
да жал я эту кнопку, с ИСа не охото, типовую бы |
||
Ranger_83
5 — 12.12.13 — 09:31 |
(0)открой свою конфу в режиме обычного приложения и пользуйся стандратной универсальной обоработкой |
||
Адинэснег
6 — 12.12.13 — 09:32 |
а во какаято есть V8Exchan82.epf |
||
Ranger_83
7 — 12.12.13 — 09:34 |
http://its.1c.ru/db/files/1CIts/Exe/EXTREPS/UNIREPS83/UploadToXML/UploadToXML.zip |
||
Ranger_83
8 — 12.12.13 — 09:36 |
ааа..это немного не та обработка |
||
Адинэснег
9 — 12.12.13 — 09:39 |
{Форма.Форма.Форма(224,30)}: Тип не определен (ОписаниеОповещения) |
||
Адинэснег
10 — 12.12.13 — 09:40 |
Выгрузка и загрузка данных XML.epf |
||
Адинэснег
11 — 12.12.13 — 09:40 |
под 8.3 |
||
Адинэснег
12 — 12.12.13 — 09:41 |
запускаю в (8.2.19.68) |
||
Адинэснег
13 — 12.12.13 — 09:47 |
хотя выгрузка/загрузка это для идентичных конф вроде… |
||
Адинэснег
14 — 12.12.13 — 09:48 |
а с правилами обмена надо универсальный обмен… |
||
Tempest
15 — 12.12.13 — 09:53 |
Есть на ИТС. Недавно клиенту отправлял для 11 УТ со своими правилами. |
||
banco
16 — 12.12.13 — 09:53 |
(0) ИТС, конфигурация конвертация данных, там есть и для 8.2 и 8.3 |
||
Tempest
17 — 12.12.13 — 09:58 |
А вот универсального подбора и обработки объектов под УФ на ИТС нет |
||
banco
18 — 12.12.13 — 10:00 |
(17) зато в БСП есть |
||
Tempest
19 — 12.12.13 — 10:01 |
(18) Там при открытии она ругается, что не для человеков она. |
||
kosts
20 — 12.12.13 — 10:06 |
(19) Так может ей нужно передать правильные параметры. |
||
Tempest
21 — 12.12.13 — 10:07 |
(20) У меня ее человек заказал. Хотел чтобы как в неуправляемых было. Можно конечно свою обработку вызова универсальной обработки написать, но других задач хватает. |
||
Aleksey
22 — 12.12.13 — 10:19 |
В КД есть, но она на 8.3 |
||
Поpyчик-4
23 — 12.12.13 — 10:28 |
(22) Мужики-то хоть знают? http://savepic.su/3958088.png |
||
Адинэснег 24 — 12.12.13 — 10:33 |
о нашлась и запустилась |
TurboConf — расширение возможностей Конфигуратора 1С
Оглавление
- Введение
- Возникновение нового подхода к обмену в типовых решениях 1С
- Пример настройки синхронизации между типовыми решениями «1С:Управление предприятием общепита» и «1С:Бухгалтерия предприятия 3.0»
- Обзор концепта «1С:Конвертация данных 3»
- Двухтактный обмен
- Устройство форматов ED
- Устройство регистрации объектов при обмене в формате XDTO
- Практический пример обмена «1С:Фастфуд 2.3» с «1С:Фастфуд 3.0»
- Постановка задачи
- Способы решения задачи расширения формата
- Принцип работы с решением «Конвертация данных 3»
- Загрузка структуры конфигурации
- Загрузка модулей менеджера
- Создание ПРО с помощью КД3
- Реализация задачи расширения
- Создание расширяющего XDTO пакета
- Наполнение XDTO-пакета свойствами
- Создание конвертации для расширяющего формата и наполнение ее правилами
- Выгрузка модуля менеджера из КД3 и загрузка в конфигурацию
- Доработки конфигурации для обеспечения работы с механизмом расширений
- Доработка правил регистрации
- Примеры выгруженных объектов расширенного формата
- Заключение
Введение
В данной статье мы делимся своим опытом работы с конфигурацией «Конвертация данных, редакция 3.0» и практическими аспектами.
Глоссарий принятых сокращений размещён в конце статьи. Перейти к нему для ознакомления можно по ссылке.
Возникновение нового подхода к обмену в типовых решениях 1С
Начнем с небольшой исторической вводной и некоторых рассуждений в части концепта применения двух конвертаций существующих на данных момент от фирмы «1С». В апреле 2015 года фирма «1С» выпустила новый программный продукт «Конвертация данных 3.0», а также представила новую технологию обменов между типовыми решениями 1С. Эту же технологию можно применять для обмена между приложениями в режиме сервиса, если используются разные сервисы, а также для обмена со сторонними приложениями.
Примечание. Для двустороннего обмена данными между сторонним приложением и конфигурацией на стороне информационной базы должен быть сделан ряд настроек. Стороннее приложение должно быть зарегистрировано в ИБ, для него должен быть определен канал обмена (через файловый или FTP-каталог) и т. п. Но для случаев простой интеграции, когда обратной передачи данных из информационной базы в стороннее приложение не требуется (например, интеграция онлайн-магазина, передающего информацию о продажах в «1С:Бухгалтерию»), есть упрощенный вариант работы через веб-сервис.
При этом уже знакомые нам технологии обмена, такие как обмены по правилам КД2 (1С:Конвертация данных 2.x), обмены между идентичными конфигурациями (выгрузка-загрузка данных XML, РИБ), не ушли в прошлое, а продолжают использоваться для своих задач.
Однако, с развитием программных продуктов 1С возникали новые задачи, для которых ранее известные нам технологии обмена требовали усовершенствования. Немалое значение имел также тот факт, что в результате развития программных продуктов одноприродные (такие как документы закупки, списания, документы движения денег, справочники структуры организации, номенклатуры и т. п.) по смыслу объекты в различных решениях со временем приобретали все более схожую структуру, которую можно было описать с помощью единого формата для этих типов объектов.
Поэтому для новой технологии был разработан формат данных, созданный на основе таких стандартизованных объектов. И конфигурации в формате КД3 (1С:Конвертация данных 3.x) обмениваются между собой именно с помощью этого промежуточного звена — формата Enterprise Data (ED). Это позволяет использовать технологию обмена не только между конфигурациями на платформе «1С:Предприятие», а между базой 1С и любой программой, которая может работать с форматом ED, считывать и загружать данные в нужном формате.
Кроме того, важным преимуществом формата КД3 является то, что при изменении одной из конфигураций в обменной схеме потребуется изменить лишь формат ED, а не каждый xml файл правил на вход/выход для каждой конфигурации по соседству как было бы с измененной в цепи обмена посредством КД2.
Главной особенностью КД3 является концепция конвертации данных. Источник — its.1c.ru/db/metod8dev/content/5846/hdoc
На рисунке выше видно, что основное отличие КД3 от КД2 — наличие промежуточного звена обмена данными, а именно формата EnterpriseData. Данные, подлежащие выгрузке представляются в виде формата XDTO, и база-приемник работает уже с данными, сконвертированными в объект формата.
На стороне конфигуратора 1С формат ED представлен следующими основными объектами:
- Несколькими XDTO-пакетами:
- Общим модулем «МенеджерОбменаЧерезУниверсальныйФормат», в котором содержатся правила конвертации и обработки объектов в/из объекты формата.
- Планом обмена «СинхронизацияДанныхЧерезУниверсальныйФормат».
- Общими модулями «ОбменДаннымиXDTOСервер», «ОбменДаннымиПереопределяемый», «ОбменДаннымиСобытия».
- Обработкой «КонвертацияОбъектовXDTO».
- А также подписками на события, регистром сведений «НастройкиОбменаДаннымиXDTO».
Формат ED включают в себя описание бизнес-сущностей из различных областей хозяйственно-экономической деятельности предприятия и является расширяемым. С каждой версией формата ED фирма «1С» добавляет в него описание новых сущностей и расширяет существующие новыми полями.
Номера версий формата ED состоят из X.Y.Z, где X.Y. — это Major версия, Z — это Minor версия.
Как видно, для описания объектов формата уже существует несколько пакетов XDTO под различные версии. Изменение Minor версии не приводит к потери совместимости с предыдущими minor весиями. Major версии не имеют обратной совместимости.
Фирма «1С» гарантирует 1 год поддержки с момента выхода major-версии. По ссылке its.1c.ru/db/metod8dev#content:5934:hdoc можно увидеть все версии и сроки их поддержки детально.
Сейчас типовые конфигурации 1С массово используют новый подход с применением универсального формата ED. Рассмотрим, как выполнить обмен посредством XDTO на примере конфигураций «1С:Управление предприятием общепита» (далее — УПО) и «1С:Бухгалтерия предприятия 3.0» (далее — БП).
Пример настройки синхронизации между типовыми решениями «1С:Управление предприятием общепита» и «1С:Бухгалтерия предприятия 3.0»
Первое,что нужно сделать — перейти в подсистему «Администрирование» → «Синхронизация данных» в БП (1С:Бухгалтерия предприятия) и в открывшейся форме установить флаг «Синхронизация данных».
Аналогичные действия необходимо произвести во второй базе — УПО (1С:Управление предприятием общепита). В этой же форме для обеих баз нам понадобится задать их префиксы (см. рисунок выше), они пригодятся нам при настройке обмена для идентификации узла.
Настройка обмена посредством формата КД3 происходит последовательно:
- Сначала настраивается обмен в первой конфигурации (в нашем случае начнем настраивать из УПО), в результате будет сформирован файл настроек для второй конфигурации.
- Затем во второй конфигурации анализируется данный файл настроек, выгружается встречный, а также осуществляется первоначальная выгрузка данных.
- И наконец приходит черед первой конфигурации, она принимает на вход встречный файл настроек, читает пришедшие данные выгрузки и выгружает свою первоначальную выгрузку. Рассмотрим этот процесс детально.
В первую очередь необходимо задать настройки обмена. Для этого перейдем по гиперссылке «Настройки синхронизации данных». Здесь отображается список настроенных обменов с каждой из баз. По кнопке «Создать» откроется форма настройки нового обмена.
Стоит отметить, что помимо возможности создать настройку обмена с типовой конфигурацией 1С из предложенного списка, пользователь может воспользоваться настройкой «Другая программа» для возможности обмена с любой другой конфигурацией или программой, использующей формат ED.
Мы настраиваем в нашем случае обмен между УПО и БП, поэтому выберем пункт «1С:Бухгалтерия предприятия, ред. 3.0». Открывается помощник настройки обмена, который подсказывает пользователю последовательность действий для осуществления корректной настройки обмена:
Сперва необходимо настроить параметры подключения баз друг к другу: можно выбрать прямое подключение, подключение к базе посредством интернета, если база опубликована на веб-сервере, а также подключение посредством файла. Рассмотрим третий вариант — флаг «Загрузить параметры подключения из файла» не устанавливаем, т. к. они пока отсутствуют:
На следующей странице выбираем один из вариантов, посредством которого будем обмениваться файлами. В нашем примере выберем каталог:
На следующем шаге задаем имя файла настроек подключения, который выгрузится из УПО по окончанию работы этого шага, а позже будет считан на стороне БП. Также указываем префикс узла второй программы, мы ранее задали его на стороне базы «1С:Бухгалтерия предприятия 3.0» как БП. Префикс в настройке на стороне УПО и в базе БП должны совпадать и не дублироваться в других синхронизациях. Нажимаем «Далее», и ждем завершения формирования файла настроек.
Следующий этап помощника — чтение файла выгрузки из БП, об этом программа нас предупредит:
Теперь необходимо переключиться на сторону БП и проделать там аналогичные шаги.
Создаем новую настройку синхронизации, теперь выберем пункт «Управление нашей фирмой», поскольку конфигурация УПО разработана на базе УНФ:
Настроим параметры подключения, но теперь укажем файл настроек, который мы заранее сформировали на стороне УПО:
Немного слов о файлах, которые уже сформировал УПО.
Первый файл — ФайлНастроекПодключения.xml — содержит в себе информацию об обменивающихся конфигурациях, префиксах (кодах узлов) и способе обмена:
Второй файл — Message_<код узла>_<код узла>.xml:
Второй файл — это по сути инструкция из УПО для БП о том, с какими объектами «умеет» работать УПО (тег AviableObjectTypes), а также с какими версиями формата ED для загрузки и выгрузки каждого такого объекта (теги Sending, Receiving). «*» — означает любой формат.
Так например, объекты Справочник.Контрагенты, Справочник.ЛицензииПоставщиковАлкогольнойПродукции, Справочник.Номенклатура УПО может как отправлять, так и загружать в любом формате ED, объект Справочник.КонтрагентыГруппа — не загружает, а только отправляет в любом формате, а вот объект Справочник.МаркировкаУпаковки может загрузить или выгрузить только в 7, 8 и 10 формате ED.
После загрузки файла с настройками подключения в БП появится возможность использовать гиперссылку помощника «Настроить правила отправки и получения данных». Эти настройки в уже созданной настройке конвертации мы сможем менять позже, так что настройки отправки НСИ и Документов принимаются на усмотрение пользователя. Мы настраиваем тестовый обмен, поэтому первоначальная выгрузка данных из БП нам не нужна для экономии времени. На вкладке «Служебная информация» указано, что по умолчанию предложена опция обмена в 10-м формате ED.
Записываем настройку и в помощнике переходим по гиперссылке «Начальная выгрузка данных». Поскольку в настройках мы убрали возможность выгрузки НСИ и документов, то в файл никакие объекты выгрузки не попадут:
Настройка на стороне конфигурации БП завершена. Мы можем убедиться, что в папке появился файл выгрузки из БП — Message_БП_УР.xml, который также содержит информацию по возможным объектам и их форматам для обмена:
Если бы мы выгружали НСИ или документы, то они бы находились в теге Body. Атрибутом тега Body, как видим, является пространство имен того формата ED, который был задействован для выгрузки объектов из базы:
Для каждой синхронизации эти настройки хранятся в регистре сведений «Настройки обмена данными XDTO» (рисунок ниже). На основе этих настроек программа принимает решение, отправлять ей какой-то объект конфигурации, в каком формате и какому узлу:
Теперь мы можем вернуться в УПО и завершить настройку:
По нажатию на гиперссылку откроется форма настроек выгрузки и загрузки данных:
Настройки правил можно будет изменить позже в уже созданной синхронизации. Далее выполняем сопоставление и загрузку данных (тех самых данных первоначальной выгрузки из БП):
И в свою очередь выгружаем первоначальные данные в БП. На этом настройка синхронизации завершена и в окне «Настройки синхронизации данных» появилась соответствующая новому обмену строка.
В шапке формы нам доступна кнопка «Изменить настройки», с помощью которой мы можем изменить состав первоначальных настроек для последующих итераций обмена. Выполнение синхронизации можно настроить как по расписанию, так и вручную инициировать обмен нажатием кнопки «Синхронизировать».
Обзор концепта «1С:Конвертация данных 3»
Двухтактный обмен
В отличие от КД2 обмен с применением технологии КД3 не использует файлов правил, все алгоритмы конвертации и обработки объектов, как выгружаемых, так и загружаемых, располагаются в общем модуле МенеджерОбменаЧерезУниверсальныйФормат. При этом в модуле нет информации об объектах базы, с которой мы будем осуществлять обмен. Мы лишь подготавливаем данные в промежуточный объект XDTO, имеющий фиксированную структуру.
Напомним, что благодаря унифицированности объектов в решениях 1С структура формата максимально близка к структуре бизнес-объектов и достаточна для загрузки и выгрузки основной информации по этому объекту. За подготовку текста модуля МенеджерОбменаЧерезУниверсальныйФормат отвечает программный продукт от компании «1С» — «1С:Конвертация данных 3».
В основе реализованной в БСП («1С:Библиотека стандартных подсистем») механики конвертации данных через формат данных EnterpriseData, лежит модель, включающая в себя следующие элементы (функциональные компоненты конвертации):
- Конвертация.
- Правила обработки данных (ПОД).
- Правила конвертации объектов (ПКО), частью которых являются правила конвертации свойств (ПКС).
- Правила конвертации предопределенных данных (ПКПД).
- Алгоритмы.
В совокупности все эти компоненты реализуют функциональность, связанную с обработкой данных в процессе их получения, либо отправки.
Устройство форматов ED
Для реализации обмена посредством КД3 в конфигурации помимо общего модуля присутствуют XDTO пакеты ExchangeMessage, и EnterpriseData_<версия формата>:
С развитием программных решений 1С состав формата расширяется и совершенствуется. Поэтому в дереве конфигурации мы видим несколько XDTO пакетов, описывающих формат ED.
К примеру, для передачи данных в формате 1.10 будет задействован пакет EnterpriseData_1_10_8, 1.8 — EnterpriseData_1_8_6 и т. п. На текущий момент в большинстве решений 1С по умолчанию устанавливается 10 формат передачи данных, как актуальный, поэтому далее будем рассматривать именно его.
Рассмотрим, что представляет собой объект формата ED на примере документа «Поступление товаров и услуг». Для описания документа в формате XDTO используется 3 сущности — тип значения, тип объекта и тип ключевых свойств объекта.
1. Для описания документа в пакете XDTO определен в первую очередь Тип значения ДокументСсылка.ПоступлениеТовароыИУслуг. Он имеет базовый тип Ref, определенный в пакете ExchangeMessage:
2. Также для объекта формата описываются его Ключевые свойства — набор свойств, определяющих его уникальность. Например, для документа «Поступление товаров и услуг» это свойства Ссылка, Дата, Номер, Организация, ДанныеВходящегоДокумента и Контрагент:
Если в описании объекта присутствует свойство ссылочного типа, то оно должно иметь тип КлючевыеСвойства<объект>. Как видим, в качестве типа свойства «Контрагент» указаны ключевые свойства типа объекта Контрагент — КлючевыеСвойстваКонтрагент. Как правило, Ключевые свойства всегда содержат свойство «Ссылка», в которое записывается ГУИД объекта.
3. И наконец третья сущность, с помощью которой документ «Поступление товаров и услуг» представлен в XDTO-формате — это тип объекта — Документ.ПоступлениеТоваровУслуг. Базовый тип для него — Object из пространства имен (1c.ru/SSL/Exchange/Message):
В типе объекта содержатся свойства, соответствующие реквизитам в метаданных объекта, а также табличным частям (ТЧ). Для каждой табличной части объекта создан отдельный тип (как, например, Документ.ПоступлениеТоваровУслуг.Товары, Документ.ПоступлениеТоваровУслуг.Услуги) со свойством строка. Каждая строка табличной части в свою очередь также определяется отдельным типом: Документ.ПоступлениеТоваровУслуг.Товары.Строка, Документ.ПоступлениеТоваровУслуг.Услуги.Строка.
Именно в типе <ИмяОбъекта>.<ТияТЧОбъекта>.Строка описываются реквизиты табличной части объекта, а тип <ИмяОбъекта>.<ТияТЧОбъекта> содержит только строку, на которую ссылается, и из которых состоит.
При выгрузке объекта «Поступление товаров и услуг» в формате XDTO он сериализуется в следующем виде:
В секциях-реквизитах шапки «Организация» и «Контрагент» представлены ключевые свойства этих объектов, в секции «Услуги» — описания каждой строки табличной части. Аналогично и табличная часть «Товары» содержит секции «Строка», которые в свою очередь наполнены развернутой информацией по реквизитам строки ТЧ:
Устройство регистрации объектов при обмене в формате XDTO
Поскольку обмен в формате XDTO предполагает использование плана обмена «СинхронизацияДанныхЧерезУниверсальныйФормат», то объекты, участвующие в обмене должны входить в состав плана обмена:
По умолчанию авторегистрация объектов состава запрещена. Если бы стояла автоматическая регистрация, то управлять условиями регистрации объекта было бы невозможно, он бы всегда регистрировался безусловно.
При запрещенной авторегистрации необходимо прописывать логику принудительной регистрации объектов, обычно такая логика сосредоточена в подписках на события. В типовых решениях это подписки на события «СинхронизацияДанныхЧерезУниверсальныйФормат…», которые вызызвают процедуру ОбменДаннымиСобытия.МеханизмРегистрацииОбъектовПередЗаписью().
В качестве фильтра, определяющего необходимость отправки объекта, существуют правила регистрации объекта (ПРО), которые хранятся в макете плана обмена и представлены в виде xml-текста:
Настройку правил регистрации объектов удобно производить с помощью программного продукта «Конвертация данных 3», ниже в статье будет приведен пример работы с ПРО в КД3.
Практический пример обмена «1С:Фастфуд 2.3» с «1С:Фастфуд 3.0»
Постановка задачи
Необходимо обеспечить обмен по технологии КД3 между решениями 1С:ФФ 2.3 («1С:Фастфуд. Фронт-офис, ред. 2.3») и 1С:ФФ 3.0 («1С:Фастфуд. Фронт-офис, ред. 3.0») нетиповых для формата ED объектов. Поскольку конфигурации ФФ 2.3 и ФФ 3.0 созданы на базе типовых продуктов 1С, они включают в себя подсистему обмена в формате ED и все обновления/дополнения/изменения схем соответствуют «базовым» решениям. Необходимо обеспечить миграцию общих по структуре, но отраслевых объектов и свойств, описание которых отсутствует в форматах ED типовых решений.
Рассмотрим несколько объектов, которые требуется передавать в формате XDTO.
Во-первых, это объекты, отсутствующие в формате ED. Если изучить структуру передаваемых в формате ED объектов, то близких по структуре мы найти не сможем. Так, например, из ФФ 2.3 справочник «рестМеню» должен попасть в аналогичный справочник в конфигурации ФФ 3.0:
Во-вторых, требуется расширить список передаваемых свойств объектов, которые уже присутствуют в формате ED в типовых решениях 1С. В решениях «1С:Фастфуд» справочник «Номенклатура» был в значительной мере дополнен отраслевыми реквизитами и табличными частями. Свойств объекта «Номенклатура» в типовом формате ED явно будет недостаточно для передачи всей этой информации:
Способы решения задачи расширения формата
Когда список всех дополнительных объектов к переносу определен, встает вопрос, какими же способами можно решать данную задачу:
- Во-первых, можно доработать сам пакет XDTO EnterpriseData_1_10. Только его, т. к. на данный момент это актуальная версия. Минусы этого подхода очевидны — для его реализации придется снимать с поддержки сам объект и в случае внесения в него каких-либо изменений со стороны вендора поддерживать корректное обновление, учитывая наши доработки. В случае обновления версии обмена, каждый раз переносить все доработки XDTO из предыдущего пакета в пакет новейшей версии. Это поддерживать довольно проблематично. К такому подходу мы ни разу не прибегали и не рекомендуем.
-
Вторым вариантом может стать использование свойства AdditionalInfo. Поскольку каждый объект в схеме (пример в Документ.ПоступлениеТоваровУслуг рассмотрен выше) определен как тип Object из пространства имен 1c.ru/SSL/Exchange/Message, то можно заметить, что в базовой схеме у типа Object предопределено свойство AdditionalInfo с типом AnyType. Это означает, что мы можем в поле AdditionalInfo указать любую структуру, дополняющую объект.
Но в случае значительных доработок объекта (как в справочнике «Номенклатура»), придется в AnyType записать как все дополнительные реквизиты шапки, так и все строки ТЧ, которые еще должны идентифицировать каждую строку и ее реквизиты. И получится конструкция-монстр, логику считывания и обработки которой будет описывать непросто, но вполне реализуемо:
Однако этот вариант все же не решает задачу передачи новых типов объектов, ранее не определенных в ED.
- Также можно вовсе отказаться от использования КД3, и решить задачу файлами обмена с применением технологии КД2. Однако в таком случае придется полностью писать правила загрузки и выгрузки объектов.
-
К счастью, есть возможность избежать реализации с использованием вышеописанных способов и обратиться к более прогрессивному решению. Так, начиная с БСП версии 3.1.3 появилась возможность расширения состава данных при обмене в универсальном формате ED. Теперь базовую схему формата можно расширять отсутствующими объектами и их свойствами, включить в обмен дополнительные данные.
1С поддерживает вариант расширения форматов обмена ED путем добавления отдельного пакета XDTO, который дополнит уже существующий пакет EnterpriseData_<версия>. Это не означает решения задачи с помощью расширений в понимании патча. Нет, расширение формата обмена — это само название технологии, позволяющей неограниченно расширять существующие форматы ED.
Для решения нашей задачи мы обратились как раз к этому методу. Рассмотрим его более детально. Основным инструментом для настройки и доработок обмена в формате ED является конфигурация «Конвертация данных 3.1», поэтому рассмотрим подробнее основные принципы работы с ней.
Принцип работы с решением «Конвертация данных 3»
Рассмотрим детальнее продукт «1С:Конвертация данных 3.1». Он помогает облегчить труд с изменением общего модуля «МенеджерОбменаЧерезУниверсальныйФормат», отвечающего за обмен в формате XDTO, а также упрощает подготовку XDTO-пакета расширений. На момент написания статьи актуальная версия КД3 — 3.1.2.24, поэтому рассмотрим её возможности.
1. Загрузка структуры конфигурации
В первую очередь в КД3 необходимо загрузить структуру каждой из конфигураций, для которых будем настраивать обмен. Поскольку конфигурации отличаются составом объектов, составом реквизитов объектов, то и правила обработки и конвертации объектов универсального формата ED могут отличаться. Загрузить структуру конфигурации можно двумя способами:
1.1 С помощью внешней обработки выгрузки структуры конфигурации (по аналогии с КД2) — из поставки решения КД3 берем обработку MD83Exp.epf.
Выполняем следующие действия:
- Открываем информационную базу в режиме «Предприятие».
- Открываем внешнюю обработку MD83Exp.epf (Меню Файл — Открыть).
- Задаем имя файла, в который следует сохранить структуру информационной базы.
- Проверяем настройки в форме обработки (все флаги должны быть сняты).
- Нажимаем кнопку Выгрузить.
Далее необходимо подготовленный таким образом xml файл загрузить в КД3. Делается это следующим образом — в подсистеме «Конфигурации» переходим в список «Конфигурации», и создаем новый элемент справочника. Если этого не сделать, то последующая загрузка структуры произойдет в предопределенный элемент «Неизвестная конфигурация». Это не страшно, но лучше создать конфигурацию предварительно, чтобы потом поддерживать релизы и структурировать работу с КД3. Затем необходимо открыть обработку загрузки структуры:
Затем выбрать вариант загрузки — в существующую версию конфигурации (т. е. перегружаем в существующий релиз), либо в новую.
1.2. Второй способ не предполагает использования обработки MD83Exp.epf для выгрузки. В КД3 переходим в «Конфигурации» → «Сервис» → «Загрузка структуры конфигурации из файлов XML/EDT». Открывается форма с возможностью загрузки из файлов xml или EDT:
Мы можем выгрузить структуру из Конфигуратора, либо указав каталог проекта EDT. В случае, если конфигурация разрабатывается при помощи EDT, удобно загружать по настройке «Файлы EDT». В этом случае для загрузки структуры конфигурации будут прочитаны файлы *.mdo в папке src проекта.
Поскольку разработка ФФ ведется в Конфигураторе, выберем загрузку из файлов xml.
Структуру предварительно выгрузим из Конфигуратора. Для этого перейдем в подменю «Конфигурация» → «Выгрузить конфигурацию в файлы»:
В КД3 выбираем подготовленный каталог с выгруженными из конфигуратора файлами и нажимаем «Загрузить». В результате загрузки появится заполненный элемент справочника Релизы:
Аналогичные действия проделываем и для второй конфигурации. После того как обе конфигурации загружены в КД3, нам необходимо загрузить модули менеджера обмена этих конфигураций. Поскольку именно модуль мененджера содержит в себе все правила, по которым объекты будут сконвертированы для выгрузки или загрузки и как они должны быть обработаны.
2. Загрузка модулей менеджера
Создаем элемент справочника «Конвертации» — мы настраиваем обмен в формате XDTO, поэтому создадим конфигурацию в этой группе:
Указываем наименование конвертации, версии формата ED, под который настраиваем конвертацию и записываем.
Далее необходимо загрузить новую версию формата (или обновить существующую). Для этого переходим в подсистему «Формат данных» → «Версии формата» → «Загрузка структуры формата»:
Предварительно нужно эту версию экспортировать из Конфигуратора — в контекстном меню для XDTO-пакета ED выбрать «Экспорт XML-схемы». Эту же процедуру проделываем с родительским пакетом ExchangeMessage:
Теперь можем загрузить модуль менеджера для созданной конвертации — в подсистеме «Конвертации» выбираем команду «Загрузка модуля менеджера»:
Для загрузки указываем ранее созданную конвертацию, состав загружаемых данных и способ загрузки. Грузить можно из буфера обмена, поэтому перейдем в конфигуратор базы и скопируем Ctrl+C текст общего модуля. После этого возвращаемся в КД и нажимаем «Загрузить». Результат загрузки модуля мы сможем увидеть, перейдя в «Конвертации» → «Настройка правил конвертации».
Перед нами откроется форма настроек правил обмена:
Эта форма отображает ровно то, что написано в модуле МенеджерОбменаЧерезУниверсальныйФормат, и представляет собой инструмент для удобной корректировки и доработки правил обмена. На форме вкладками разделены правила обработки данных (далее — ПОД), правила конвертации объектов (далее — ПКО), правила конвертации предопределенных данных (далее — ПКПО), а также вспомогательные алгоритмы, вызываемые из правил.
После работы с правилами обмена есть возможность их проверить по некоторым параметрам:
Обработку проверки можно вызвать как из самой формы настроек обмена, так и из подсистемы «Конвертации» → «Сервис» → «Проверка конвертации».
После корректировки правил из формы необходимо сохранить модуль менеджера обмена. Сохранится он в каталог, настроенный в карточке «Конвертации» ранее либо в буфер обмена (если в «Конвертации» не определен путь сохранения):
Создавать конвертацию и загружать правила из модуля менеджера необходимо для каждой конфигурации, участвующей в обменной схеме. Поэтому те же действия проделаем для второй конфигурации. Пример настройки правил обмена для конвертации с помощью КД3 описан ниже.
3. Создание ПРО с помощью КД3
Настроить правила регистрации можно в КД3 в подсистеме «Регистрации». Для настройки ПРО через КД3 их необходимо создать или загрузить из макета в справочник «Регистрации», используя обработку «Загрузка регистрации»:
Далее перейдя в «Регистрации» — «Правила регистрации объектов», попадаем в форму настройки правил. Как видим, после загрузки регистрации из макета, список ПРО заполняется автоматически. Мы можем как создать новое правило, так и внести коррективы в существующие:
Для элемента настройки есть возможность задать отборы плана обмена, чтобы определить, по каким условиям будут определены узлы обмена, для которых объект зарегистрируется, а также отборы по свойствам самого объекта. К примеру, можно выгружать только объекты определенной организации или не помеченные на удаление:
На следующей вкладке «Обработчики событий» можно определить тексты обработчиков, которые позволяют задать ограничения, которые не поддерживаются функционалом отборов по свойствам объекта либо по свойствам плана обмена:
После завершения работы с правилами, их можно выгрузить из КД3:
Выгруженный файл загружается в макет плана обмена «Правила регистрации объектов», однако с версии БСП 3.6.1 добавилась возможность отладить ПРО без загрузки в Конфигуратор. В форме настройки синхронизации в подменю «Параметры синхронизации данных» можно выбрать подменю «Загрузить правила регистрации объектов»:
Данный инструмент позволяет переключиться с использования типовых правил на правила регистрации, описанные в файле xml, ранее выгруженном из КД3:
Помимо программной регистрации существует возможность принудительной регистрации объекта в режиме «Предприятия» в списке «Настройки синхронизации данных»:
Вручную можно зарегистрировать как одиночный объект, так и несколько объектов разных типов, а также снять регистрацию с выбранных объектов.
Реализация задачи расширения
Теперь рассмотрим реализацию задачи по расширению формата обмена. Процесс реализации будет состоять из нескольких шагов:
- Подготовительные действия — создание расширяющего XDTO пакета.
- Наполнение расширяющего XDTO пакета свойствами согласно постановке задачи (2 способа решения задачи).
- Создание конвертации под расширяющий формат и наполнение ее правилами.
- Выгрузка модуля менеджера обмена через универсальный формат из КД3 в конфигурацию.
- Доработка модулей конфигурации для обеспечения работы с механизмом расширений.
- Доработка правил регистрации (ПРО).
1. Создание расширяющего XDTO пакета
Основой механизма расширений является дополнительный, т. н. «расширяющий» XDTO-пакет, который дополняет уже существующий. В нашем примере будем расширять 10-ю версию ED, а значит пакет EnterpriseData_1_10_3.
Унифицированный глобальный идентификатор (URI) пространства имен пакета (v8.1c.ru/edi/edi_stnd/EnterpriseData/1.10) — это пространство имен, а также пространство имен второго базового пакета для формата обмена ED (http://www.1c.ru/SSL/Exchange/Message) необходимо прописать в директивах импорта создаваемого пакета-расширения. А для самого XDTO-пакета URI пространства имен должно выглядеть следующим образом:
http://v8.1c.ru/edi/edi_stnd/<уникальное_наиименование_расширенияформата>/<номер_версии_расширения>
Рассмотрим основные особенности расширяющего пакета:
1.1. Для нового объекта, отсутствующего в базовом пакете ED, например, справочника «рестМодификаторы», необходимо добавить тип значения СправочникСсылка.<имя_объекта> с базовым типом Ref:
Также необходимо описать тип объекта Ключевые свойства с рядом определяющих свойств, в данном случае Ссылка должна иметь тип, который мы только что определили в типах — СправочникСсылка.рестМодификаторы:
И наконец тип объекта Справочник.рестМодификаторы с базовым типом Object, и с обязательным свойством КлючевыеСвойства, которые мы ранее для него определили — КлючевыеСвойстарестМодификаторы:
1.2. Если в объекте присутствует свойство, тип которого уже определен в родительском формате ED, то дублировать его в XDTO-пакете расширении нет необходимости. Указываем тип из базового пространства имен.
Например, в новом объекте расширенного формата Справочник.рестМодификаторы мы добавляем свойство ЕдиницаИзмеренияМодификатора. В базовом пакете 10 формата уже присутствует описание типа КлючевыеСвойстваЕдиницаИзмерения, поэтому в качестве типа укажем тип объекта родительского формата, переопределять в расширенном пакете КлючевыеСвойстваЕдиницаИзмерения нет необходимости, если мы не планируем их изменять:
1.3. Для расширения объекта типа, который уже присутствовал в базовом XDTO-пакете, например, справочника «Номенклатура», не нужно добавлять в расширяющий пакет тип и ключевые свойства. Добавляется только тип объекта Справочник.Номенклатура, у которого заполнен базовый тип из пакета ED 10 формата:
1.4. Если есть необходимость передавать в формате обмена не только элементы справочника, но и его группы, чтобы передавать всю многоуровневую структуру, то для них должны быть определены отдельные типы объектов и типы объектов для ключевых свойств. Например, для справочника «рестМеню» создаем 2 типа объектов Ключевых свойств и 2 типа объекта под сами объекты элементов и групп:
Особенно внимательно следует указывать тип Ключевых свойств, и проставлять соответствующие для элемента КлючевыеСвойстварестМеню, для группы КлючевыеСвойстварестМенюГруппа:
1.5. Для расширения состава передаваемых реквизитов табличной части следует в расширенном пакете связать тип объекта (для которого расширяем ТЧ) с типом объекта базового пакета ED.
Например, мы хотим передавать табличную часть Товары документа ПоступлениеТоваровИУслуг вместе с дополнительным реквизитом «рестЭтоБлюдо». В таком случае в пакете-расширении должен быть определен тип значений ДокументСсылка.ПоступлениеТоваровУслуг с базовым типом ДокументСсылка.ПоступлениеТоваровУслуг (v8.1c.ru/edi/edi_stnd/EnterpriseData/1.10) из родительского пакета «1.10».
Кроме того, необходимо «подтянуть» в расширенный пакет не только тип объекта «Документ.ПоступлениеТоваровУслуг.Товары.Строка», но и все вышестоящие типы:
- КлючевыеСвойстваПоступлениеТоваровУслуг. Базовый тип здесь не указываем, свойство Ссылка имеет тип расширенного пакета — ДокументСсылка.ПоступлениеТоваровУслуг (v8.1c.ru/edi/edi_stnd/ED_Ext_rarus/1.10).
- Документ.ПоступлениеТоваровУслуг, базовы тип не определяем, свойство КлючевыеСвойства с типом КлючевыеСвойстваПоступлениеТоваровУслуг (v8.1c.ru/edi/edi_stnd/ED_Ext_rarus/1.10).
- Документ.ПоступлениеТоваровУслуг.Товары, также без базового типа, свойство Строка имеет внутренний тип Документ.ПоступлениеТоваровУслуг.Товары.Строка (v8.1c.ru/edi/edi_stnd/ED_Ext_rarus/1.10).
- И наконец тип для самой строки Документ.ПоступлениеТоваровУслуг.Товары.Строка (базовый тип не заполняем), который наполняем необходимыми расширенными реквизитами:
6. XDTO-пакет должен быть одинаковым во всех решениях, которые участвуют в обменной схеме с расширениями. Таким образом, не забываем импортировать этот же пакет во вторую конфигурацию, и в случае каких-либо правок в пакете, обновлять все пакеты, чтобы они повторяли друг друга.
Готовый XDTO-пакет экспортируем в КД3 (процедура экспорта описана ранее).
2. Наполнение XDTO-пакета свойствами
После создания XDTO-пакета его следует наполнить, определив в нем свойства объектов и типы объектов. Сделать это можно средствами конфигуратора (вручную добавить каждый новый тип объекта, тип значения для него и ключевые свойства, затем добавить свойства объектов), а затем выгрузить расширяемый пакет в КД3 для дальнейшей настройки обмена.
Однако программный продукт КД3 может упростить процесс редактирования и наполнения созданного пакета, рассмотрим как именно.
Для этого выгрузим расширяющий пакет в КД3: в конфигураторе экспортируем пакет ExchangeMessage, оригинальный пакет EnterpriseData_1_10_3 и только что созданный расширяющий XDTO-пакет в каталог на ПК для дальнейшей загрузки их в КД3.
Переходим в КД3, в справочник «Версии формата»:
Стандартные версии ED располагаются в предопределенной группе Enterprise data, версии расширений хранятся в отдельной группе справочника. Отдельную группу создавать вручную нет необходимости, она будет создана автоматически при импорте пакетов. В списке справочника «Версии формата» нажимаем кнопку «Загрузка структуры формата». В форме выбора выбираем сразу все 3 пакета, которые ранее экспортировали из конфигурации, и нажимаем «Загрузить»:
Программа создаст новый элемент справочника версии с признаком «Расширение», а также новый каталог с признаком «Расширение» и заполненным шаблоном пространства имен (версия ED в шаблоне не указывается):
Ничего править не нужно, убедимся лишь в корректности загрузки. Далее перейдем в регистр сведений «Взаимосвязи версий форматов и расширений» и добавим запись для того, чтобы КД3 могла распознать, какой версии ED какое расширение соответствует:
На основании записи в этом регистре КД3 сможет дополнять типовой формат 1.10 расширяющими свойствами и объектами из пакета-расширения.
Теперь переходим к наполнению самого расширяющего формата свойствами и объектами, для этого воспользуемся обработкой «Дерево объектов формата» («Формат данных» → «Сервис» → «Дерево объектов формата»):
Выбираем в поле «Версия формата» расширяющую версию, а в подменю «Еще» → «Редактировать структуру формата». Теперь с деревом структуры появляется возможность работать. Однако, наше дерево пустое и со строкой «Общее» никаких действий произвести не получается. Если же мы посмотрим на структуру 10 версии ED, то увидим, что она содержит и перечисления, и описания типов, общих ТЧ, справочников и документов:
Есть небольшая хитрость, к которой мы и прибегнем, чтобы наполнить наше дерево минимальной структурой. Вернемся в конфигуратор, и добавим в расширяющий пакет 1 тестовый тип, 1 тестовый тип под перечисление (базовый тип у него String, атомарный) и 2 тестовых типа объектов (Справочник.<любое наименование> и Документ.<любое наименование>).
Затем вновь экспортируем пакет и загрузим для уже существующей версии-расширения с отметкой, что грузить будем только дополнительные свойства:
И хоть в подсказке написано, что следует выбрать 2 файла, выберем все 3 вместе с оригинальным пакетом, иначе невозможно будет произвести корректный импорт. Вновь вернемся к обработке «Дерево объектов формата» и увидим уже каркас, с которым появляется возможность работать:
Рассмотрим пример добавления справочника — разрешаем редактирование объектов дерева (подменю «Еще») и выделим строку «Справочники», нажимаем «Добавить», открывается форма создания нового объекта формата:
Как видим, есть вариант указать, что мы создаем «Общую табличную часть», «Общие свойства», либо «Ключевые свойства». Для нового справочника оставляем переключатель в положении «Объект не является общим».
Наименование уже содержит подсказку того, как оно должно быть заполнено — начинается со «Справочник.». Допишем только название нашего справочника, например, рестГруппыМодификаторов, нажимаем «Записать и закрыть», Обновляем дерево в форме и видим, что КД3 автоматически создала новый ссылочный тип для нашего справочника и подчиненную строку КлючевыеСвойства (свойство объекта формата):
Посмотрим, как выглядит описание Ключевых свойств на стороне КД3:
Пока Ключевые свойства пустые. Добавим в них свойство Ссылка («Добавить строку» в дереве объектов формата) и попробуем загрузить такой пакет обратно в 1С — для этого перейдем «Формат данных» → «Сервис» → «Выгрузка объектов формата», сохраним пакет в xsd файл, а на стороне 1С импортируем его в наш пакет-расширение:
Мы можем увидеть, что корректно создались тип значений СправочникСсылка.рестГруппыМодификаторов, типы объектов КлючевыеСвойстварестГруппыМодификаторов и Справочник.рестГруппыМодификаторов с необходимыми созависимостями.
Единственное, стоит обратить внимание на то, что, в типе объекта Справочник.рестГруппыМодификаторов не проставлен базовый тип, он должен быть Object, сделаем это вручную:
Также у типа значений не проставился (сбился) базовый тип Ref — дополним его:
Если посмотреть на выгруженный xsd , то базовые типы в нем были определены:
Также как и директива импорта с базовым пространством имен:
Но при импорте базовые типы слетают, и этот важный момент следует учитывать и не забывать сразу указывать корректные базовые типы. Также неприятный момент заключается в том, что КД3 выгружает пакет без директивы импорта с URI базового формата ED, так что на стороне конфигуратора ее придется добавить заново:
Несмотря на это, КД3 все же облегчает и ускоряет процесс наполнения структуры пакета, т.к. объекты визуально представлены в удобном формате дерева. Кроме того, создание XDTO-пакета в КД3 позволяет избежать лишних действий по созданию типов объектов и типов значений для сложных объектов (справочники и документы).
3. Создание конвертации для расширяющего формата и наполнение ее правилами
Следующая задача — доработать правила конвертации для работы с расширениями, поэтому доработаем модуль МенеджерОбменаЧерезУниверсальныйФормат с помощью КД3. Поскольку структуру конфигураций ФФ 2.3 и ФФ 3.0 мы загружали в КД3 ранее, эти действия не повторяем. Создаем новую конвертацию:
В табличной части «Версии формата» обязательно указываем 10-й формат обмена. Затем загружаем модуль менеджера для созданной конвертации:
Теперь можем перейти в его настройку: «Конвертации» → «Настройка правил конвертации». На форме обработки настроек правил конвертации видим, что текущие правила загружены и представлены по вкладкам ПОД, ПКО и ПКПД:
Удобнее всего начинать доработку правил именно с ПКПД, поскольку далее они будут использованы в ПКО, а ПКО в свою очередь — в ПОД. Поэтому следуем такой последовательности:
3.1. Добавление ПКПД
Рассмотрим на примере перечисления рестТипыНоменклатуры:
В расширении формата ему соответствует тип с добавленными элементами перечислений:
В КД3 на вкладке ПКДП создаем новый элемент и заполняем его в следующей последовательности:
- Выбираем объект формата:
В списке выбора он появился благодаря тому, что в самой конвертации указана версия формата 1.10, а в РС «Взаимосвязи версий и форматов расширений» указана связь с расширяющим форматом:
- Выбираем объект конфигурации, который при обмене будет сконвертирован в/из объект формата:
- Выбираем область применения правила: только для отправки, только для получения или для обоих случаев. В нашем случае с перечислением оно будет сконвертировано в обе стороны одинаково, поэтому выберем «для отправки и получения»:
- И только после предыдущий этапов заполним поле «Идентификатор» по кнопке «Заполнить». В таком случае идентификатор заполнится автоматически по шалблону:
- Осталось настроить сопоставление элементов перечисления элементам перечисления формата. Если наименования повторяют друг друга, можно воспользоваться кнопкой «Сопоставить автоматически»:
Также можно добавлять/изменять соответствия вручную. Для каждого значения перечисления необходимо обязательно задать сопоставление, как и для каждого значения формата. Это нужно для избежания ошибок при выгрузке/загрузке перечисления согласно правилу.
3.2. Добавление ПКО
Следующий этап — создание правил конвертаций объектов для таких типов объектов как справочники и документы. Для этого перейдем на вкладку настроек ПКО.
Пример: в ПКО для справочника «рестВидыМеню» для свойств Бренд, ВидЦены и Родитель необходимо указать, по какому правилу будут сконвертированы данные свойства при отправке.
Рассмотрим доработки ПКО для новых объектов формата и уже существующих. Для новых объектов формата ПКО пока не созданы, поэтому добавляем новое правило.
Добавление нового правила
Рассмотрим пример создания правил ПКО для загрузки и выгрузки справочника рестМодификаторы (будем обмениваться полной иерархией). Нам потребуется создать 2 правила «Для отправки» (ПКО для элемента и ПКО для группы справочника), а также 2 правила «Для получения» (также элемента и группы). Начнем с создания правил для группы — рестМодификаторы:
Заполняем ПКО в следующей последовательности: «Объект формата», «Объект конфигурации», «Область применения», затем генерируем «Идентификатор».
Записываем и переходим на вкладку «Правила конвертации свойств». Здесь настроим правила обмена реквизитами и табличными частями. Если не требуется обрабатывать свойства в обработчике «При отправке», то можно создать правила автоматически, воспользовавшись кнопкой «Настройка ПКС»:
Перед нами откроется форма настроек правил конвертации:
Для автоматического создания ПКС нажмем сперва «Автоматическое сопоставление», а затем «Создать правила конвертации свойств».
В релизе КД3 форма автоматического сопоставления свойств к сожалению не подхватила свойства расширения формата, а они нам очень нужны, поэтому пока не вышел релиз с исправлениями, снимем с поддержки Обработку настройки ПКС и исправим запрос в процедуре ЗаполнитьТаблицуНеСопоставленныхСвойствXDTO() так, чтобы он учитывал наше расширение:
А также строку 160:
Перезапустим базу КД3 и убедимся, что в форме автоматического сопоставления представлены свойства расширения формата.
Для группы справочника мы определяли в формате только ключевые свойства, которые заполнились автоматически:
Далее создаем ПКО для отправки элемента справочника:
Заполним его в той же последовательности, что и правило для Группы. Затем на вкладке ПКС настроим конвертацию свойств — откроем форму «Настройка ПКС» и нажмем кнопку «Автоматическое сопоставление». После нажимаем «Создать правила конвертации» и видим, что реквизиты конфигурации сопоставлены со свойствами формата автоматически, кроме того, для ссылочных реквизитов автоматически подставилось правило конвертации:
Рассмотрим редактирование свойства на примере свойства «ЕдиницаИзмеренияКлассификатора»:
При необходимости в форме редактирования строки можно выбрать другое подходящее ПКО для конвертации ссылочного свойства объекта. Его можно выбрать из списка, если такое ПКО уже определено, или заполнить вручную идентификатор, который будет определен позже.
Конечно, удобнее не заботиться о правильности написания идентификатора, а создать такое ПКО заранее. Поэтому сперва мы определили ПКО для группы, а после для элемента справочника. И теперь, как видим, для свойства формата «Родитель» ПКО автоматически заполнилось:
В том случае, когда какие-то свойства объекта должны быть обработаны определенным образом до помещения в пакет XDTO (при отправке) или при чтении из XDTO в базу (при получении), вариант автоматической настройки ПКС для этих свойств не подходит. В таком случае в ПКС устанавливается флаг «Используется алгоритм конвертации», а в обработчике ПриОтправке (в случае ПКО для отправки объекта) прописывается алгоритм обработки реквизита и помещения его в структуру XDTO:
При этом возможен комбинированный подход, т. е. часть свойств можно конвертировать «автоматически» (сработает логика БСП), а остальные помещать в XDTO «самостоятельно» в алгоритме ПКО:
Для разработчиков обменов в КД3 напротив каждого обработчика есть подробная справка по нажатию на знак «?»:
Рассмотрим еще одну задачу, для решения которой используем обработчик ПКО «При отправке».
Допустим, при выгрузке требуется выгружать не только текущий объект, для которого вызывается ПКО, но и его владельца (да и любой другой объект в полном виде, даже не зависящий никаким образом от текущего объекта ИБ). В таком случае нам нужно принудительно выгрузить объект ИБ в текущей итерации обмена. Для этого вызовем метод общего модуля ОбменДаннымиXDTOСервер.ВыгрузкаОбъектаВыборки():
Изменение существующего правила типового объекта
Рассмотрим расширение формата типового справочника «Номенклатура». Объект XDTO мы дополнили отраслевыми свойствами для справочника «Номенклатура»:
В списке ПКО найдем правило, определенное для объекта конфигурации «СправочникСсылка.Номенклатура»:
Как видим, таких правил 2 — для элемента справочника для отправки и для получения (флаги «Отправка» и «Получение» в таблице).
Рассмотрим корректировку правила для получения. Перейдем на вкладку ПКС и убедимся, что пока созданы ПКС только для типовых свойств. Затем как и в случае с настройкой в отраслевом объекте нажимаем «Настройка ПКС» → «Автоматическое сопоставление». Существующие ПКС при этом не пропадут, а будут только дополнены новыми ПКС для отраслевых свойств объекта. В завершении обработки автоматического создания ПКС создались как реквизиты «шапки»:
Так и ПКС для табличной части рестГастрономическиеТеги:
В обработчики ПКО также можно вносить коррективы. Но для нашей задачи доработки не понадобятся:
Отключение правила типового и замена на доработанное правило
Такой вариант также имеет место быть. Для того, чтобы правило не удалять из КД3, а использовать, допустим, в качестве примера для вновь созданного правила можно установить флаг «Отключить»:
В таком случае правило не будет сохранено в измененный модуль менеджера обмена, выгружаемого из КД3, но в самом КД3 останется. В дальнейшем можно его будет обратно включить, отключив альтернативное при необходимости.
3.3. Создание ПОД для новых объектов формата
Здесь также важна последовательность заполнения. В первую очередь указываем «Область применения», «Объект выборки» и только после этого автоматически заполняем «Идентификатор правила».
Рассмотрим настройку ПОД для иерархического справочника «рестСклады». Для этого справочника мы определили 2 ПКО на отправку — Правило для группы и Правило для элемента. Поэтому в переключателе «Количество правил конвертации» выберем «Несколько» и укажем все определенные для объекта ПКО. Для того чтобы при выгрузке объекта БД система поняла, какое правило следует использовать для какого объекта, пропишем дополнительную логику определения ПКО. Выполняется это на вкладке «Обработчики событий»:
В данном случае в структуру ИспользованиеПКО мы записали значения ключей (они соответствуют именам ПКО, определенным на первой вкладке ПОД) . Значение ключа Истина будет означать, что выгрузка будет произведена по ПКО, указанному в ключе структуры.
Обработчик ПОД «Выборка данных» предназначен для реализации произвольной выборки данных из базы и должен на выходе формировать массив для выгрузки данных. Элементами массива могут быть как ссылки на объекты БД, так и структура с данными для выгрузки. В случае регулярного обмена с использованием планов обмена алгоритм БСП в процедуру «Выборка данных» не заходит, а выбирает к выгрузке только зарегистрированные в узле обмена данные.
Для того, чтобы появилась возможность использовать обработчик «Выборка данных», необходимо доработать структуру «КомпонентыОбмена». Она содержит такие компоненты для осуществления обмена, как правила и параметры обмена. Инициализируется данная структура в общем модуле «ОбменДаннымиXDTOСервер».
Для реализации нетипового механизма выборки данных следует изменить значение свойства структуры «ЭтоОбменЧерезПланОбмена» на «Ложь», а также задать свойство «СценарийВыгрузки». СценарийВыгрузки должен быть определен как таблица значений (либо массив структур) с колонкой «ИмяПОД». В строках необходимо указать имена ПОД, которые будут обрабатываться при выгрузке.
Следует отметить, что параметр «ЭтоОбменЧерезПланОбмена» влияет на много показателей, и его нужно держать всегда либо включенным, либо выключенным.
4. Выгрузка модуля менеджера из КД3 и загрузка в конфигурацию
Когда настройка правил конвертации завершена, необходимо выгрузить модуль менеджера. Выгрузку можно произвести по кнопке «Сохранить модуль менеджера обмена» в форме настройки правил конвертации:
Ранее мы определили путь сохранения модуля менеджера в карточке «Конвертации»:
В указанный для конвертации каталог будет выгружен модуль, сформированный КД3:
Скопируем текст модуля из файла и перенесем в конфигурацию 1С, для которой создавалась конвертация:
Мы выгрузили модуль менеджера конвертации для ФФ 2.3. Аналогичные действия по настройке правил конвертации, сохранению модуля и загрузке модуля в конфигурацию необходимо будет проделать и для второй конфигурации, участвующей в обмене.
Что касается загрузки модуля менеджера в конфигурацию, то возможны следующие варианты — определить новый общий модуль менеджера, либо откорректировать существующий. В случае с добавлением нового модуля, необходимо будет заменить использование типового модуля «МенеджерОбменаЧерезУниверсальныйФормат» в соответствии ВерсииФормата. Например:
ВерсииФормата.Вставить("1.10", МенеджерОбменаЧерезУниверсальныйФормат_Расш);
Однако модуль, на базе которого мы дорабатывали правила обмена, часто изменяется и дорабатывается фирмой «1С». Для корректного обмена изменения придется каждый раз отслеживать и переносить в добавленный модуль менеджера обмена. Поэтому решение использовать дополнительный модуль или вносить правки в существующий взвешивается и остается за разработчиком. Поскольку в нашем примере объем изменений не велик, то мы будем дорабатывать типовой модуль менеджера.
5. Доработки конфигурации для обеспечения работы с механизмом расширений
Доработки силами 1С разработчика
Для включения возможности работы с расширенным форматом ED разработчику потребуется изменить процедуру «ПриПолученииДоступныхРасширенийФормата» общего модуля ОбменДаннымиПереопределяемый . В процедуре следует определить соответствие РасширенияФормата — указать Ключ = URI пространству имен расширяющего пакета, а значение — номер расширяемой версии формата:
Доработки модуля менеджера, полученные из КД3 (автоматически сформированные)
Рассмотрим, как изменился МенеджерОбменаЧерезУниверсальныйФормат, сформированный автоматически из КД3 после доработки правил обмена расширенных объектов и свойств формата.
Во-первых, в ПКО расширяемых объектов формата добавился вызов процедуры ОбменДаннымиXDTOСервер.ИнициализироватьРасширениеПравилаКонвертацииОбъекта:
Во-вторых, в ПКО расширяемых объектов для свойств, которые характерны для расширенного формата, определен шестой параметр с пространством имен расширенного пакета «v8.1c.ru/edi/edi_stnd/ED_Ext_rarus/1.10»:
Кроме того, дополнен текст процедуры ЗаполнитьПравилаОбработкиДанных вызовами инициализации ПОД для расширенного формата, как, например, ДобавитьПОД_Справочник_рестМеню_Отправка(ПравилаОбработкиДанных);
Аналогично дополнены тексты процедур ЗаполнитьПравилаКонвертацииОбъектов, ЗаполнитьПравилаКонвертацииПредопределенныхДанных. Если мы определяли в правилах обработчики ВыборкаДанных, ПриОбработке, ПриОтправкеДанных, ПриКонвертацииДанныхXDTO и т. д., то условия их вызова добавятся в процедуры ВыполнитьПроцедуруМодуляМенеджера и ВыполнитьФункциюМодуляМенеджера. И, конечно, модуль менеджера будет содержать все процедуры ПКО и ПОД для новых объектов расширенного формата.
6. Доработка правил регистрации
Поскольку обмен в формате ED выполняется с помощью плана обмена, то для того чтобы можно было зарегистрировать новые объекты формата для узла, нам необходимо доработать состав плана обмена СинхронизацияДанныхЧерезУниверсальныйФормат:
Правила регистрации объектов на узле находятся в макете ПравилаРегистрации. Сперва загрузим в КД3 те правила, которые уже определены в конфигурации для типовых объектов:
В результате создастся элемент справочника «Регистрации». В элементе есть возможность выгрузить правила регистрации, а также есть выбор, куда производить выгрузку — в файл xml или в общий модуль:
Перейдем в «Регистрации» → «Правила регистрации объектов» и добавим правила для новых объектов расширенного формата. При необходимости в ПРО пропишем условия отбора для выгрузки:
После выгрузки правила перенесем в макет плана обмена СинхронизацияДанныхЧерезУниверсальныйФормат.
Посмотрим, как будет выглядеть выше созданное правило для справочика рестВидыМеню:
И, конечно, для регистрации нужно не забыть добавить новые объекты в источники подписок на события, например, СинхронизацияДанныхЧерезУниверсальныйФорматРегистрация.
Примеры выгруженных объектов расширенного формата
Рассмотрим несколько отличительных особенностей объектов расширенного формата в файле выгрузки.
Во-первых, в <msg:AvailableObjectTypes> мы увидим добавленные в расширенном пакете типы объектов наряду с объектами базового 10 формата:
Во-вторых, в тэге Body добавится атрибут с расширенным пространством имен:
Типовой объект ED с расширенными свойствами будет выглядеть по своей структуре следующим образом: свойства типового объекта Справочник.Номенклатура не будут ничем отличаться от классической выгрузки в универсальном формате; свойства же расширенного формата будут дополнены «ext1»:
Если посмотреть на новый объект формата (рассмотрим Справочник.рестСтолы), добавленный в XDTO-пакет-расширирение, то мы увидим, что теги как всех свойств объекта, так и сам объект, содержат конструкцию «ext1».
Заключение
Прежде всего следует отметить, что описанная технология расширения формата ED решила самое большое ограничение в применении этого замечательного подхода, а именно, что же делать, если среди объектов формата нет подходящего для нашего случая.
Знания в части конвертации данных могут сильно повысить вашу профессиональную стоимость и, конечно, помогут решить огромное число задач по взаимодействию программ самого разного класса: от доработки типовых решений 1С до взаимодействия со сторонними программными продуктами.
Мы хотели, но не сумели вместить в материалы экспертной статьи сравнительный анализ производительности обменов с применением расширений, а также ряд деталей по демонстрации приемов обмена с использованием событийной модели конвертации. Попытаемся для этого организовать отдельную публикацию.
Обратную связь по нашим экспертным статьям читатель может дать в чате нашего Telegram-канала.
Глоссарий принятых сокращений
ИБ — информационная база.
ТЧ — табличная часть.
КД2 — программный продукт «1С:Конвертация данных 2.x».
КД3 — программный продукт «1С:Конвертация данных 3.x».
Выгрузка-загрузка данных XML — обработка для полной или частичной выгрузки и загрузки данных информационной базы в файл в формате XML. Обработка может использоваться только в тех случаях, когда информационная база, в которой осуществлялась выгрузка данных, и та, в которой данные загружаются, являются однородными (конфигурации идентичны, данные могут различаться), либо все выгружаемые объекты практически полностью идентичны по составу и типам реквизитов и табличных частей, свойствам «ведущего» объекта метаданных и т. д. Внешняя обработка Выгрузка и загрузка данных XML.epf для запуска в «1С:Предприятии» версии 8.3 находится в каталоге EXE/EXTREPS/UNIREPS83/UploadToXML.
ED — формат обмена данными Enterprise Data. Это формат, позволяющий описать объект информационной базы (контрагента, накладную и т. п.) или сообщить о факте удаления этого объекта.Формат ED включают в себя описание бизнес-сущностей из различных областей хозяйственно-экономической деятельности предприятия и является расширяемым.
УПО — программный продукт «1С:Управление предприятием общепита» , разработан на базе «1С:Управление нашей фирмой 3.0».
БП — программный продукт «1С:Бухгалтерия предприятия».
Обмен данными ED — это обмен с помощью «Конвертации данных 3.x». Эту технологию называют по-разному — «Обмен через XDTO», «Обмен в формате EnterpriseData», «Обмен с помощью Конвертации данных 3.0», «Обмен через Универсальный формат», каждый из вариантов правильный.
ФФ2.3 — программный продукт от компании «1С-Рарус» «1С:Фастфуд. Фронт-офис, ред. 2.3». Создан на базе типового решения «1С:Розница, ред. 2.3».
ФФ3.0 — программный продукт от компании «1С-Рарус» «1С:Фастфуд. Фронт-офис, ред. 3.0 ». Создан на базе типового продукта «1С:Розница, ред. 3.0». На момент выхода статьи находится на этапе разработки.
ПОД — правила обработки данных.
ПКО — правила конвертации объектов.
ПКПД — правила конвертации предопределенных данных.
ПКС — правила конвертации свойств.
ПРО — правила регистрации объектов.
БСП — программный продукт «1С:Библиотека стандартных подсистем».
Перейти к началу статьи »
Автор статьи
С помощью внешней обработки «Выгрузка и загрузка данных XML» можно выполнить полную или частичную выгрузку данных информационной базы в файл в формате XML. А затем с помощью этой же обработки загрузить выгруженные данные в другую информационную базу. Обработка универсальная и работает в любых конфигурациях, разработанных для платформы 1С Предприятие 8.3. Интерфейс обработки показан на следующем рисунке:
При использовании данной обработки следует учитывать, что выгружаемые и загружаемые данные (или конфигурации – при выгрузке всех данных базы в XML) должны соответствовать друг другу по составу и типам реквизитов, табличных частей и т.д. В противном случае это может привести к ошибкам.
Как открыть внешнюю обработку «Выгрузка и загрузка данных в XML»?
Для запуска внешней обработки просто распакуйте (перетащите мышкой) вложенный в архив файл с расширением epf на рабочий стол. После этого из вашей конфигурации, запущенной в режиме 1С Предприятие, с помощью меню «Файл->Открыть» запустите данную обработку.
Скачать внешнюю обработку «Выгрузка и загрузка данных в XML»
Количество просмотров: 110006
Внешняя обработка «Редактирование изменений для обмена» позволяет редактировать регистрацию изменений объектов обмена данными в режиме управляемого приложения. Обработка предназначена для разработчиков обмена данными, администраторов данных. Обработка позволяет выполнить следующие действия:
По выбранному узлу обмена:
- Просмотр списка метаданных, участвующих в обмене.
- Просмотр списка объектов, для которых зарегистрированы изменения.
- Удаление и регистрация изменений для объектов:
- изменение регистрации для объектов по одному.
- изменение регистрации для списка объектов как результата отбора.
- использование запросов для выбора данных для регистрации.
- изменение регистрация объектов указанием их типа с учетом флага авторегистрации.
По выбранному объекту:
- Редактирование текущей регистрации на различных узлах.
- Изменение номеров принятых, отправленных сообщений
В конфигурациях с интегрированной БСП возможна регистрация обработки в подсистеме дополнительных отчетов и обработок. При этом функционал обработки доступен через команды создания связных объектов.
Обработка РегистрацияИзмененийДляОбмена.epf для запуска в «1С:Предприятии» версии 8.2 находится в каталоге:
EXE/EXTREPS/UNIREPS82/RegistrationChangeForDataExchangeManaged
Внешняя обработка РегистрацияИзмененийДляОбмена .epf для запуска в «1С:Предприятии» версии 8.3 находится в каталоге EXE/EXTREPS/UNIREPS83/RegistrationChangeForDataExchangeManaged
Если в конфигурации используется Библиотека стандартных подсистем, то эти операции можно выполнить в подсистеме «Обмен данными».
В этой статье мы рассмотрим, как пользоваться обработкой Регистрация изменений для обмена, которая присутствует в большинстве типовых конфигураций и значительно упрощает устранение различных ошибок, связанных с обменом данных в 1С.
Для начала скажем пару слов о том, как происходит обмен данными в 1С.
Для описания процедуры обмена в конфигурации существует объект ПланОбмена. Для каждого варианта обмена данными создается свой план. Например, план обмена между конфигурациями Бухгалтерия предприятия и Управление торговлей.
Каждый план обмена данными содержит элементы (узлы). В этих узлах регистрируются объекты, которые должны быть переданы при следующем обмене данными. Передавать при каждом обмене все объекты (справочники, документы) нецелесообразно, т.к., во-первых, их может быть слишком много, и обмен затянется на сутки, а во-вторых, не все объекты изменялись пользователями, поэтому большинство из них уже есть в базе-приемнике в нужном виде.
Кроме того, узлы плана обмена имеют два специальных реквизита: Номер отправленного сообщения и Номер принятого сообщения. Каждый раз, когда выгружается пакет данных для обмена, ему присваивается порядковый номер. Он записывается в реквизит Номер отправленного сообщения. Аналогично, когда загружается пакет данных из другой информационной базы, он тоже имеет порядковый номер. В случае успешной загрузки данных этот номер записывается в реквизит Номер принятого сообщения.
Номера нужны для того, чтобы не возникло путаницы в передаваемых пакетах данных. Если в базу приходит пакет с номером, например, 152, а в базе уже зарегистрирован Номер принятого сообщения 169, то такой пакет будет проигнорирован. При этом будет показана ошибка:
Номер сообщения меньше либо равен ранее принятому
А если придет пакет с номером 170 или больше, то он будет загружен в базу и реквизиту Номер принятого сообщения будет присвоен его номер.
В ходе работы с обменом данными в 1С могут возникать и другие нестандартные ситуации, требующие работы с номерами сообщений, регистрацией или отменой регистрации объектов в узлах и т.д.
Итак, обработка Регистрация изменений для обмена позволяет вносить изменения в узлы обмена, т.е. принудительно регистрировать объекты и снимать их регистрацию, изменять номера принятых и отправленных сообщений, просматривать зарегистрированные объекты.
Примеры случаев, когда это может понадобиться:
- Сбилась нумерация сообщений обмена. Это может случиться, например, когда одну из баз восстановили из резервной копии.
- Необходимо заново передать уже переданные объекты. Например, если изменились правила обмена.
- Нужно отменить передачу отдельных объектов и т.д.
Порядок использования обработки Регистрация изменений для обмена:
- В верхнем поле выбрать узел обмена, для которого будут производиться действия. При этом большое поле внизу будет заполнено объектами, включенными в План обмена. В колонке Авторегистрация показано состояние авторегистрации изменений и количество зарегистрированных в данный момент объектов.
- Кнопка Зарегистрировать все… включает все предусмотренные планом обмена объекты в узел. Внимание! Действие необратимо.
- Кнопка Удалить всю регистрацию… очищает регистрацию узла плана обмена. Внимание! Действие необратимо.
- Кнопка Зарегистрировать поодному… удаляет всю существующую регистрацию и региструет по одному объекту каждого типа. Внимание! Действие необратимо.
- Кнопка Изменить номера сообщений… позволяет установить произвольные значения реквизитов Номер отправленного сообщения и Номер принятого сообщения.
- Кнопка с крестом позволяет удалить регистрацию произвольного объекта информационной базы. При этом можно составить запрос и удалить регистрацию всех объектов, полученных в результате его выполнения.
- Кнопка с плюсом позволяет добавить регистрацию произвольного объекта информационной базы. При этом можно составить запрос и добавить регистрацию всех объектов, полученных в результате его выполнения.
- Кнопка Показать изменения, зарегистрированные для данного типа показывает объекты информационной базы, зарегистрированные в узле обмена. Перед нажатием кнопки нужно выделить интересующий тип объектов.
- Кнопка Результат стандартной выгрузки показывает, как будет выглядеть объект информационной базы при выгрузке для обмена в формате XML. Перед нажатием нужно выделить интересующий объект.
Подробнее о механизме регистрации изменений для обмена читайте в отдельной статье.
Если у Вас возникли проблемы с обменом между информационными базами 1С и решить ее своими силами не получается, наши специалисты с радостью и в кратчайшие сроки помогут Вам в этом.
В этой статье поговорим о планах обмена. Зачем они нужны? И если нужны, то можно ли сделать свой, не копируя типовую реализацию? Статья предназначена в основном для разработчиков, но будет полезна всем, кто интересуется подобной темой.
Итак, какие причины могут заставить задуматься о создании собственного плана обмена? План обмена помогает регистрировать изменения объектов. После чего получить список этих объектов, и выгрузить их в необходимый формат или обработать нужным образом. После обработки объектов 1С их можно пометить, как отправленные. Это не снятие с регистрации, а лишь пометка о том, что объекты уже были обработаны. Такой механизм удобен, когда необходимо контролировать прием получателем выгруженной информации. Когда информационная система-приемник получит пакет обмена и успешно его обработает, она может отправить подтверждение о приеме. После чего в нашем плане обмена можно снять с регистрации отправленные объекты.
Также в плане обмена есть несколько стандартных реквизитов. Например, «Номер принятого» и «Номер отправленного». Эти реквизиты удобно использовать для того, чтобы принимать только актуальную информацию, которая не была ранее принята. А теперь обо всем этом подробней и с примерами. Хоть планы обмена кому-то и кажутся чем-то страшным и необъяснимым, после прочтения статьи, думаю, все станет просто и понятно.
1. Создание и регистрация, узлы плана обмена.
Приведем пример, когда нам нужно выгружать измененные номенклатуры (для ТСД, мобильного устройства, промежуточной базы или пр.).
Ищем в дереве конфигурации ветку «Общие» — «Планы обмена». Добавляем новый план обмена.
Назовем его «ОбменНоменклатурой_Тест». Включаем в состав нужные объекты. В этом примере справочник «Номенклатура».
Авторегистрацию устанавливаем в значение «Разрешить». Смысл авторегистрации в том, что если объект был изменен, он будет автоматически зарегистрирован к обмену, и никаких дополнительных манипуляций для регистрации делать больше не нужно.
Если же выбрать значение для авторегистрации «Запретить», тогда придется вручную регистрировать объекты к обмену. Это нужно, когда есть необходимость в дополнительных отборах; когда, например, у каждого узла плана обмена (приемника) будет свой набор номенклатуры, и разделятся он будет в настройках плана обмена, где каждому узлу будет закреплен свой список номенклатуры.
Чтобы зарегистрировать вручную объект к обмену, можно создать подписку на событие «При записи» справочника. И в обработчике после наложенных отборов указать следующее:
Процедура РегистрацияИзмененийДляВыгрузки(Источник,Отказ) Экспорт
//Здесь налаживаем отборы
//и сам код регистрации
Узел = ПланыОбмена.ОбменНоменклатурой_Тест.НайтиПоКоду(«Тест»);
ПланыОбмена.ЗарегистрироватьИзменения(Узел, Источник);
Сохраним изменения и откроем конфигурацию в режиме предприятия.
Так как конфигурация в данном случае пустая, дополнительно будут использоваться две обработки «РегистрацияИзмененийДляОбмена82 (управляемое приложение).epf» (its.1c.ru/db/metod8dev/content/5013/hdoc) и консоль запросов (its.1c.ru/db/metod8dev/content/4500/hdoc). Обе обработки доступны для свободного скачивания.
В режиме предприятия создадим новый узел плана обмена. Это, по сути, элемент плана обмена, который будет использоваться только для одного приемника. Хотя, если не требуется подтверждение о приеме данных, то с одного узла можно рассылать данные всем, но здесь мы такой вариант не рассматриваем, так как он намного проще и будет понятен по ходу статьи.
Переходим через все «Все функции» в наш план обмена, добавляем новый узел плана обмена. Имя назначим «Тест», а код 1. Код в дальнейшем будет очень важен, если требуется идентификация. То есть в сообщение обмена можно вкладывать код отправителя и код получателя. Тогда получатель всегда будет знать, что пакет обмена предназначен именно ему, и от кого он пришел.
Для предопределенного узла можно задать код «ЦБ», так как это наша база.
Откроем обработку «Регистрация изменений для обмена», выберем наш узел «Тест». И видим, что пока не зарегистрировано ни одного объекта.
Создадим новый элемент в справочнике «Номенклатура» в 1С. Переходим снова в обработку, нажимаем кнопку «Обновить» и видим, что у нас этот объект зарегистрировался автоматически.
2. 1С Выгрузка планов обмена.
Здесь мы рассматриваем именно планы обмена, поэтому метод передачи данных нам неважен. Будь то прямое подключение к базе-приемнику, формирование файла или текста, который будет передан в двоичном виде через 1С http сервисы, выборка изменений при этом будет идти одинаково.
Например, создадим кнопку в списке плана обмена и назначим на нее обработчик на сервере.
Есть возможность выбирать изменения объектной моделью, вот так:
Пока ВыборкаИзменений.Следующий() Цикл
КонецЦикла;
«НомерСообщения» – это стандартный реквизит плана обмена «НомерОтправленного». Его необходимо прочитать из узла и самостоятельно увеличить после отправки данных.
Также есть возможность выбора изменений запросом:
В процедуре на сервере давайте откроем конструктор запроса с обработкой результата и посмотрим, как выбрать изменения. В конструкторе есть кнопка «Отображать таблицы изменений». После нажатия на эту кнопку мы увидим таблицы, в которых хранятся наши изменения.
Накладывая отбор на узел, мы можем получить изменения только по определенному приемнику, а в ссылке хранится объект, то есть ссылка на номенклатуру. Но при выборе запросом, выгруженные изменения придется помечать вручную.
В итоге процедура будет выглядеть так:
После того как мы воспользуемся кнопкой в обработке регистрации изменений для обмена данными, мы увидим, что данные помечены, как выгруженные. И в колонке «Номер отправленного» мы видим номер пакета, в котором была произведена 1С выгрузка объекта.
3. Порядок снятия с регистрации.
После того как объект будет получен приемником, он может отправить нам подтверждение получения. Опять-таки, это может быть сделано любым удобным способом, например, через файл. Мы его читаем, и теперь пришло время узнать порядок снятия с регистрации. Если от приемника мы получим объекты (гуиды, например), которые успешно были приняты, мы можем снять с регистрации только их. А если мы условились, что принимаем весь пакет, то можем снять с регистрации пакет по номеру. В коде это выглядит так:
После этого, регистрация изменений будет снята.
Если приемник не получил данные, то при следующей выборке все данные, для которых не снята регистрация будут выгружены повторно.
План обмена служит для хранения информации о данных, которые должны быть переданы в другую систему. Для каждого узла плана обмена (приемника) такая информация хранится отдельно, то есть можно четко разделить — кому, что и при каких условиях отправлять. Регистрацию изменений можно делать автоматически (все для всех) или вручную (сами решаем, кому, что отправить). Контроль того, что приемник получил данные осуществляется при помощи стандартного реквизита «НомерОтправленного». Когда узел плана обмена, получивший данные, обработает их, он может сообщить номер пакета, который успешно получен. По нему мы снимем регистрацию с объектов плана обмена.
В общем, повторюсь, план обмена помогает организовать обмен данными со сторонними системами. И в этой статье мы разобрали, как на самом деле просто с ним работать.
Как выгрузить документ из Эдо
Для того, чтобы выгрузить документ в электронном формате для электронного документооборота, зайдите в нужный документ, кнопка Еще — ЭДО — Выгрузить документ в файл. Выбираете куда на диск сохраниться файл в формате XML.
Как экспортировать документ в формате XML для электронного документооборота:
- Зайдите в нужный документ и нажмите кнопку «Еще».
- Выберите «ЭДО» и «Выгрузить документ в файл».
- Сохраните файл в формате XML на жесткий диск.
Как сохранить данные XML в файл:
- Нажмите Ctrl+S, чтобы сохранить файл.
- Нажмите «Сохранитькак» и укажите место сохранения файла.
- Введите имя файла данных XML в поле «Имя файла».
- Выберите тип файла «Данные XML» и нажмите кнопку «Сохранить».
Как получить электронные документы по ЭДО:
- Выполните команду «Отправить и получить» в разделе «Текущие дела ЭДО».
- Откройте список документов в разделе «Продажи» или «Покупки».
Как сохранить электронный документ из 1С Эдо:
- Перейдите в документ, раскройте группу команд «Печать» и выберите нужную форму печати.
- Нажмите кнопку «ЭДО».
- Файл PDF с печатной формой документа будет автоматически прикреплен как вложение в произвольный документ.
Как экспортировать счет-фактуру в 1С в формате XML:
- Используйте обработку «Выгрузка и загрузка данных XML» в каталоге EXE/EXTREPS/UNIREPS83/UploadToXML.
- Установите период выгрузки и нажмите кнопку «Выгрузить».
Как сохранить XML в PDF:
- Откройте XML файл в браузере и выберите Wondershare PDFelement в качестве принтера для печати.
- Нажмите «Сохранить как» и сохраните файл в формате PDF.
Как импортировать данные из файла XML:
- Откройте вкладку Разработчик и нажмите кнопку Импорт.
- Выберите файл данных XML и нажмите кнопку Импорт.
Как распечатать документ из Эдо:
- Откройте документ в Архиве ЭДО.
- Нажмите «Ещё» и выберите «Печать».
- Печатайте две печатные формы, включая электронный документ с отображением электронной подписи.
Как загрузить документы Эдо в 1С:
- В главном меню выберите «Текущие дела ЭДО».
- Нажмите «Отправить и получить» для загрузки документов с оператора связи.
- Как выгрузить документ в формате XML
- Как получить документы по Эдо
- Как сохранить в файл произвольный электронный документ из 1с Эдо
- Как выгрузить счет фактуру в 1С в формате XML
- Как сохранить XML в PDF
- Как загрузить данные из файла XML
- Как распечатать документ из Эдо
- Как загрузить документы Эдо в 1С
- Нужно ли распечатывать документы при электронном документообороте
- Как получить документ по Эдо в 1С
- Как отправить документ через учёт Эдо
- Как отправить документ Эдо
- Где в 1С Выгрузка и загрузка данных XML
- Как Загрузить XML документ в 1С
- Что такое XML файл
- Как перевести из XML в XLS
- Можно ли КОНВЕРТИРОВАТЬ XML в XLS
- Что такое выгрузить в XML
- В каком формате отправляются документы по Эдо
- Как пользоваться электронным документооборотом
- Как открыть Эдо
- Как открыть Эдо в 1С
- Как сохранить документ в 1С
- Как выгрузить УПД из 1С в Сбис
- Как сделать выгрузку данных из 1С
- Как преобразовать файл в формат XML
- Как сохранить Эсф в формате XML
- Как перевести документ в файл XML
- Как сделать файл в формате XML
- Как сделать документ в формате XML
- Как преобразовать текстовый файл в XML
Как выгрузить документ в формате XML
Сохранение данных XML в сопоставленных ячейках в файле данных XML:
- Нажмите клавиши CTRL+S, чтобы сохранить файл.
- Нажмите кнопку > «Сохранитькак» и выберите расположение для сохранения файла.
- В поле Имя файла введите имя файла данных XML.
- В списке Тип файла выберите тип Данные XML и нажмите кнопку Сохранить.
Как получить документы по Эдо
Получение электронных документов производится при выполнении команды Отправить и получить из формы списка документов «Текущие дела ЭДО», открываемого по гиперссылке панели команд Текущие дела ЭДО (раздел Продажи — подраздел Сервис или раздел Покупки — подраздел Сервис) (рис. 1).
Как сохранить в файл произвольный электронный документ из 1с Эдо
Для этого следует перейти в документ учётной системы, раскрыть группу команд «Печать» и выбрать необходимый вид печатной формы. В открывшемся окне требуется нажать кнопку «ЭДО». Файл печатной формы документа в формате PDF будет автоматически прикреплен как вложение в произвольный документ.
Как выгрузить счет фактуру в 1С в формате XML
Выгрузить счет-фактуру из 1С в формате xml можно при помощи специальной обработки «Выгрузка и загрузка данных XML», которая расположена в 1С: Предприятии версии 8.3 и находится в каталоге EXE/EXTREPS/UNIREPS83/UploadToXML. Так же ее можно скачать здесь. В окне обработки во вкладке Выгрузка указываем: Период выгрузки
Как сохранить XML в PDF
Откройте XML файл в браузере, нажмите кнопку «Печать» и выберите Wondershare PDFelement в качестве принтера для печати. Файл откроется в PDFelement автоматически, нажмите кнопку «Файл» > «Сохранить как», чтобы сохранить его как документ PDF на компьютере.
Как загрузить данные из файла XML
Импорт файла данных XML в качестве XML-таблицы
На вкладке Разработчик нажмите кнопку Импорт. Если вкладка Разработчик не отображается, см. раздел Отображение вкладки «Разработчик». В диалоговом окне Импорт XML найдите и выберите файл данных XML (XML-файл), который вы хотите импортировать, и нажмите кнопку Импорт.
Как распечатать документ из Эдо
В Архиве ЭДО необходимо открыть соответствующий документ, нажать Ещё — Печать. В открывшемся окне предварительного просмотра будет видно, что осуществляется печать двух печатных форм: 1. Электронный документ — печатная форма, которая передает содержание электронного документа с отображением электронной подписи.
Как загрузить документы Эдо в 1С
В главном меню выберите пункт «Главное». В открывшемся окне выберите пункт «Текущие дела ЭДО». В окне «Текущие дела ЭДО» нажмите на кнопку «Отправить и получить» для загрузки документов с оператора связи.
Нужно ли распечатывать документы при электронном документообороте
Распечатывать не обязательно. Единственное условие — такие документы должны быть заверены по всем правилам электронной подписью.
Как получить документ по Эдо в 1С
Получение электронных документов производится при выполнении команды Отправить и получить из формы списка документов «Текущие дела ЭДО», открываемого по гиперссылке панели команд Текущие дела ЭДО (раздел Продажи — подраздел Сервис или раздел Покупки — подраздел Сервис) (рис. 1).
Как отправить документ через учёт Эдо
Отправьте электронный документ В окне открытой реализации на верхней панели нажмите на кнопку «ЭДО». После нажатия кнопки, откроется контекстное меню, в котором нужно выбрать пункт «Отправить электронный документ».
Как отправить документ Эдо
Есть три способа передать электронные документы:
- в таблице списка «Реализация (акты, накладные)» через верхнее меню «ЭДО» ― «Отправка электронного документа»;
- в карточке документа через кнопку «Подписать и отправить»;
- в списке «Текущие дела» кнопкой «Подписать и отправить».
Где в 1С Выгрузка и загрузка данных XML
Выгрузить счет из 1С в формате xml можно при помощи специальной обработки «Выгрузка и загрузка данных XML», которая расположена в 1С: Предприятии версии 8.3 и находится в каталоге EXE/EXTREPS/UNIREPS83/UploadToXML.
Как Загрузить XML документ в 1С
Загрузите данные XML в 1С 8.3
В окне обработки зайдите во вкладку «Загрузка» (1) и нажмите кнопку «Загрузить данные» (2). Откроется окно для выбора файла. В открывшемся окне выберете файл с данными xml (3) и нажмите кнопку «Открыть» (4). Данные будут загружены в новую базу.
Что такое XML файл
Файл расширяемого языка разметки (XML) — это текстовый документ, который можно сохранить с расширением. xml. Можно писать XML аналогично другим текстовым файлам. Для создания или редактирования XML-файла можно использовать любое из указанных ниже действий.
Как перевести из XML в XLS
Как конвертировать XML в Excel:
- Откройте вебстраницу XML и выберите приложение Конвертер.
- Кликните в области FileDrop для выбора XML файлов или drag & drop XML файлы.
- Вы можете одновременно отправить максимум 10 файлов.
- Нажмите кнопку КОНВЕРТИРОВАТЬ.
Можно ли КОНВЕРТИРОВАТЬ XML в XLS
Как конвертировать XML в XLS
Откройте наш бесплатный веб-сайт конвертера XML в XLS. Щелкните внутри области размещения файла, чтобы загрузить XML файл, или перетащите файл XML. Нажмите кнопку «Конвертировать». Ваши файлы XML будут загружены и преобразованы в формат XLS.
Что такое выгрузить в XML
«Загрузка и выгрузка данных XML» — это универсальная обработка, при помощи которой можно выполнять частичную или полную выгрузку данных из информационной базы в файл с расширением XML. В дальнейшем данный файл можно выгружать также в информационную базу, используя эту же обработку.
В каком формате отправляются документы по Эдо
В каком формате выгружать и отправлять документы для ЭДО? При отправке документов через оператора ЭДО необходимо сохранить файл в формате xml, который составлен по требованиям приказов ФНС России. Такие документы принимают в налоговой и судах, их не нужно распечатывать на бумаге.
Как пользоваться электронным документооборотом
Сотрудник одной из компаний формирует документ, например заявление или официальное письмо. Затем подписывает его электронной подписью и посылает через систему ЭДО адресату. Работник компании-получателя прочитывает документ, а затем также проставляет свою электронную подпись.
Как открыть Эдо
Как перейти на ЭДО:
- Измените учётную политику. Пропишите в документах компании, что вы можете использовать электронные документы.
- Изучите движение документов в компании.
- Выберите систему ЭДО.
- Купите электронную подпись.
- Выберите оператора ЭДО.
- Подключите контрагентов.
Как открыть Эдо в 1С
Для этого в разделе «Администрирование» откройте «Обмен электронными документами» и нажмите на «Настройка ЭДО». Откроется форма, в который вы сможете ознакомиться с существующими соглашениями и узнать статус каждого из них. Чтобы добавить и осуществить настройку ЭДО для обмена данными из 1С, нажмите кнопку «Создать».
Как сохранить документ в 1С
Зайдем в пункт меню Файл — Сохранить (или Сохранить как). Вызвать команду Сохранить можно используя горячие клавиши — Ctrl+S.
Как выгрузить УПД из 1С в Сбис
Чтобы загрузить исходящие документы через браузер, настройте соединение с 1С и выберите тип документов:
- В разделе «Документы/Исходящие» нажмите. Наведите курсор на «Из информационной системы» и выберите тип документов, например «Реализация товаров и услуг».
- Отметьте флагом документы и нажмите «Загрузить».
Как сделать выгрузку данных из 1С
Чтобы произвести выгрузку документов для отправки из 1С 8.3 Бухгалтерия, необходимо выбрать меню «Список документов» и кликнуть по кнопке «Отправить в банк». Задав необходимый период, выберите документы, которые хотите выгрузить и после этого кликните в нижней части экрана по кнопке «Файл для выгрузки в банк».
Как преобразовать файл в формат XML
Выберите меню «Файл» > «Экспорт». В поле «Тип файла» (Windows) или «Формат» (Mac OS) диалогового окна Сохранить как выберите «XML». Введите название и выберите местоположение XML-файла, затем нажмите кнопку «Сохранить».
Как сохранить Эсф в формате XML
Для этого необходимо выделить нужные ЭСФ (комбинация клавиш Ctrl+A — для выделения всех ЭСФ в списке, либо Ctrl и нажимая на требуемые ЭСФ левой кнопкой мыши), затем нажать на кнопку «Выгрузить в XML».
Как перевести документ в файл XML
Выберите меню «Файл» > «Экспорт». В поле «Тип файла» (Windows) или «Формат» (Mac OS) диалогового окна Сохранить как выберите «XML». Введите название и выберите местоположение XML-файла, затем нажмите кнопку «Сохранить». В диалоговом окне «Экспорт XML» выберите необходимую кодировку: UTF-8 или UTF-16.
Как сделать файл в формате XML
В рабочей среде выберите команду меню Файл > Создать > Прочие, а затем XML > XML. Нажмите кнопку Далее. Выберите проект или папку, которая будет содержать файл XML. Выберите переключатель Создать файл XML из шаблона XML и нажмите Далее.
Как сделать документ в формате XML
Простой блокнот Windows способен мгновенно открывать файлы XML. Как это сделать? Просто щелкните правой кнопкой мыши по рассматриваемому файлу и в контекстном меню, которое будет показано, выберите пункты Открыть с помощью → Блокнот. И, вуаля!
Как преобразовать текстовый файл в XML
Как конвертировать Text в XML:
- Откройте вебстраницу Text и выберите приложение Конвертер.
- Кликните в области FileDrop для выбора Text файлов или drag & drop Text файлы.
- Вы можете одновременно отправить максимум 10 файлов.
- Нажмите кнопку КОНВЕРТИРОВАТЬ.
Оставить отзыв (1)