Для задачи обмена между различными конфигурациями 1С или обмена между конфигурацией 1С и сторонним сервисом, часто используется так называемый обмен через универсальный формат (EnterpriseData). Это наиболее популярный типовой формат обмена, если не существует более специфичного (например, УТ – БП). И в связи с особенностями учета может возникнуть задача обмена нетиповыми реквизитами между корреспондентами.
Когда разработчик впервые сталкивается с универсальным обменом, первое решение которое приходит в голову, это объявить в формате (XDTO – пакете) свой реквизит, описать правило конвертации свойства и доработать правило отправки ( _ПриОтправкеДанных). Но первое действие сразу же требует снятия с поддержки объекта – пакета XDTO, да к тому же теряется «универсальность» обмена, ведь описание определенной версии XDTO пакета одинаково во всех конфигурациях, что может повлечь за собой правку и в других конфигурациях. Однако есть способ обойтись расширением и доработкой одной процедуры _ПриОтправкеДанных.
Метод строится на том, что каждый основной тип, описанный в XDTO пакете EnterpriseData наследует базовый тип Object, рисунок 1. А этот тип допускает наличия поля AdditionalInfo, который может принимать любой тип, рисунок 2. Этим мы и воспользуемся, листинг 1. Для примера доработаем отправку данных для Номенклатуры. Для этого:
1. Сначала в ПКО (Правило конвертации объекта) найдем как называется наша процедура ПриОтправкеДанных (обычно с таким же суффиксом и имя процедуры), в нашем примере - «ПКО_Справочник_Номенклатура_Отправка_ПриОтправкеДанных».
2. Заимствовать процедуру в расширение с аннотацией «После».
3. В структуру AdditionalInfo добавить наши поля, но необходимо добавить проверку на наличие такого поля в переменной ДанныеXDTO, данное поле используется далеко не во всех типовых процедурах конвертации
4. Проверить выгрузку, рисунок 3.
Рис. 1. Описание справочника Номенклатура в XDTO пакете
Рис. 2. Наличие AdditionalInfo в объекте Object
|
Листинг 1. Доработка в расширении процедуры _ПриОтправкеДанных.
Рис. 3. Результат доработки
В результате мы должны увидеть наши теги в самом начале дорабатываемого объекта. Так как эта информация необязательная, мы можем дорабатывать только того корреспондента приемника, который нам нужен, и такая доработка не поломает обмен с другими приемниками. И все это удалось довольно простой и быстрой доработкой в расширении.
В данной статье рассматривался метод доработки типового универсального обмена в формате EnterpriseData без снятия с поддержки и минимальными трудозатратами.
Нужна помощь с 1С?
Мы можем взять на себя ваш бухгалтерский учет. Вам не нужно будет думать о расчете налогов и сдаче отчетности. Мы будем вести финансовую ответственность за ошибки. Мы - команда профессионалов, а не один бухгалтер, мы не заболеем, не пропадем и не уйдем внезапно в отпуск. Сосредоточьтесь на управлении. А учет и отчетность мы возьмем на себя. Чтобы получить бесплатную консультацию по автоматизации своего бизнеса Вы можете пообщаться с нашими специалистами в офисе компании или позвонив по телефону: 8-800-707-01-02.
Сопровождение 1СНаш специалист

Чем мы можем быть вам полезны?

Продаем ПО: на базе 1С и не только.

Автоматизация бизнеса: продаем и устанавливаем оборудование для торговли.

Обслуживаем онлайн-кассы: продаем и ремонтируем Эвотор и АТОЛ.
- Комментарии
- Вконтакте
- Разное278
- 1С-Просто5
- 1С: Бухгалтерия (1С:БП)18
- 1С: Комплексная автоматизация (1С:КА)11
- 1С: Управление нашей фирмой (1С:УНФ)25
- 1С: Управление торговлей (1С:УТ)14
- Зарплата (1С:ЗУП, Камин)27
- Маркетплейсы113
- Маркировка32
- Мероприятия9
- Новости111
- Обзоры26
- Отчеты в 1С8
- Переносы3
- Розница и онлайн-кассы77
- Российский софт7
- Удаленная работа7
- Экспресс-аудит 1С2