Как выгрузить правила обмена

ddp_knowledge

Суть задачи: иногда возникает необходимость выгрузить данные из, например, 1С:Бухгалтерии предприятия в 1С:Управление торговлей, но не по узлам обмена распределенной информационной базы (РИБ), а через обработку Универсальный обмен данными XML. Это, например, может возникнуть когда Вы создаете новую базу УТ, и хотите импортировать справочник из БП в УТ, не настраивая двусторонний обмен данными или собственные правила обмена, или бухгалтеру привычнее и удобнее выгружать данные за выбранный период, а не по принципу регистрации обмена.

Решение: первое что Вам, возможно, захочется сделать, это просто выгрузить стандартные правила обмена БП-УТ из конфигурации БП, и просто подцепить их в обработку. Но, нажав кнопку «Выгрузить данные», Вы получите огорчающее сообщение:

Ошибка компиляции при вычислении выражения или выполнении фрагмента кода: <(4,52)>: Переменная не определена (УзелДляОбмена)

Вся проблема в том, что при выгрузке через РИБ, в контексте выполнения модулей правил обмена доступен узел обмена, в переменной «УзелДляОбмена», в реквизитах которого содержатся различные настройки. Собственно, пути решения два:

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

2. Дать доступ к вышеуказанной переменной.

Собственно, мы с Вами, коллега, будем рассматривать второй вариант. Для этого нужно следовать следующему рецепту:

1. Выгрузим правила обмена. Для этого, откроем конфигуратор, найдем в ветке ОбщиеМакеты макет, в данном случае, с названием ПравилаОбмена_БП_УТ, откроем его, и через меню «Файл/Сохранить как», сохраним с расширением .xml

2. Сохраним обработку УниверсальныйОбменДаннымиXML в файл. Найдем ее в дереве конфигурации, щелкнем правой кнопкой мыши, выберем «Сохранить как внешнюю обработку/отчет».

3. Откроем данную обработку (из файла), и добавим в нее реквизит УзелДляОбмена, тип данных, в нашем случае, «ПланОбменаСсылка.ОбменУправлениеТорговл ейБухгалтерияКОРП».

4. В версии конфигурации Бухгалтерия предприятия, 2.0.37.12 (возможно, и в более ранних), нужно в модуль объекта данной обработки (в самый конец) вставить две строки, указанные ниже, иначе мы получим еще одно безрадостное сообщение типа «Переменная не определена»:

мИнформацияОПользовательскихПоляхПоискаП риВыгрузкеДанных = Новый Соответствие();

мИнформацияОПользовательскихПоляхПоискаП риЗагрузкеДанных = Новый Соответствие();

5. Сохраняем и открываем обработку в режиме 1С:Предприятие.

6. В реквизите «УзелДляОбмена», который мы добавили, выбираем узел из плана обмена — лучше создать новый, и прописать в нем необходимые условия. К сожалению, в этом месте создается одна небольшая проблема: с этого момента все изменения информационной базы начинают регистрироваться и сохраняться в соответствующих таблицах. В связи с этим, я рекомендую периодически сбрасывать зарегистрированные объекты через Монитор обмена данными (закладка «Дополнительно», кнопка «Подробно», затем «Удалить всю регистрацию»). В прочем, этот процесс можно и автоматизировать, прописав соответствующие действия в обработке обмена, при каждом обмене данными.

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

8. Делаем выгрузку данных.

Соль/сахар по вкусу. Ваши вопросы оставляйте в комментариях.

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

Читайте также:  Как перезапустить айфон через itunes

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

Если это платформа «1С: Предприятие 7.7», то код обработчиков интегрируется в код обработки выгрузки или загрузки. Соответственно, каждый обработчик или алгоритм выделяется в отдельную функцию и доступен для отладки при обмене.

Если выгрузка или загрузка происходят на платформе «1С: Предприятие 8», то код обработчиков не интегрируется в код обработки обмена данными, а выгружается в файл правил обмена. В процессе обмена данными код обработчиков или алгоритмов берется из файла правил и выполняется непосредственно в контексте оператора «Выполнить». Для отладки кода обработчиков и алгоритмов можно воспользоваться обработкой «Универсальный обмен данными XML».

Обработка 1С «Универсальный обмен данными XML» позволяет автоматически сформировать текст модуля отладки с кодом обработчиков и подключить этот модуль при выполнении обмена данными посредством внешней обработки. Для получения отладочного модуля с кодом обработчиков не требуется использование конфигурации «Конвертация данных», а также какое-либо изменение существующих правил обмена или файлов данных выгрузки. При этом необходимо отметить, что при отладке выгрузки данных код обработчиков и алгоритмов берется из файла правил и содержит только те обработчики и алгоритмы, которые используются при выгрузке. Соответственно, при отладке загрузки код обработчиков берется из файла данных и содержит только те обработчики и алгоритмы, которые используются при загрузке.

Настройка отладки обработчиков правил обмена

Для выполнения сеанса отладки откройте обработку «Универсальный обмен данными XML» и перейдите на закладку «Выгрузка» или «Загрузка» (в зависимости от варианта обмена). Установите флажок «Режим отладки обработчиков выгрузки (загрузки)» и откройте окно настройки отладки по кнопке «Настройка отладки выгрузки (загрузки)». Настройка отладки обработчиков и алгоритмов правил обмена выполняется за четыре шага:

Получите 267 видеоуроков по 1С бесплатно:

Шаг 1: Выбор режима отладки алгоритмов

В первую очередь выберите режим отладки алгоритмов:

  • Без отладки алгоритмов.
  • Вызывать алгоритмы как процедуры.
  • Подставлять код алгоритмов по месту вызова.

Режим «Без отладки алгоритмов» удобно использовать, когда мы точно знаем, что ошибка в обработчике не связана с кодом какого-либо алгоритма. В этом режиме код алгоритмов не выгружается в модуль отладки. Алгоритмы выполняются в контексте оператора «Выполнить», и их код недоступен для отладки.

Режим «Вызывать алгоритмы как процедуры» рекомендуется использовать в тех случаях, когда необходимо проводить отладку кода алгоритмов. Алгоритмы выгружаются как отдельные процедуры, а их вызовы вставляются в код обработчиков или других алгоритмов. Для передачи параметров в алгоритмы используется глобальная переменная «Параметры». Этот способ является рекомендуемым. Однако если разработчик использует какой-либо другой способ передачи параметров (например, используются локальные переменные обработчика), то при попытке запуска выгрузки или загрузки в режиме отладки обработчиков программа выдаст ошибку создания внешней обработки. Для отладки таких алгоритмов существует третий режим.

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

Читайте также:  Как поменять текст в фотошопе на картинке

Шаг 2: Формирование модуля отладки

Выполните выгрузку обработчиков по кнопке «Сформировать модуль отладки выгрузки (загрузки)». Сформированные обработчики и алгоритмы выводятся в отдельное окно для просмотра, содержимое которого можно скопировать в буфер обмена по кнопке «Копировать в буфер обмена».

Шаг 3: Создание внешней обработки

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

Шаг 4: Подключение внешней обработки

В заключение укажите имя файла внешней обработки в поле «Имя файла внешней обработки с модулем отладки» и нажмите на кнопку «Готово». При этом программа выполнит проверку по времени создания (обновления) файла обработки. Если обработка имеет более раннюю версию, чем версия файла модуля отладки (обработка не была обновлена данными выгрузки), то будет выведено предупреждение, и форма настройки закрыта не будет.

После выполнения описанной настройки можно запускать выгрузку или загрузку в режиме отладки. При этом в распоряжении разработчика имеется весь функционал Конфигуратора по отладке кода внешней обработки.

Отладка глобального обработчика конвертации «После загрузки правил обмена» не поддерживается.

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

Пример передачи параметров алгоритму

Как уже отмечалось выше, для передачи параметров алгоритму рекомендуется использовать глобальную переменную «Параметры», которая доступна во всех обработчиках конвертации. Передачу параметров алгоритму рассмотрим на примере выгрузки остатков по заданному складу организации.

В глобальном обработчике конвертации «Перед выгрузкой данных» определяем структуру «ПараметрыАлгоритмов»:

В обработчике «Перед обработкой» правила выгрузки данных определяем параметры для передачи в алгоритм «ВыгрузитьОстаткиПоСкладу»:

В теле алгоритма получаем переданные параметры:

Заключение

В этой статье мы узнали о механизме отладки обработчиков событий и алгоритмов правил обмена. Выяснили, что при возникновении ошибок выгрузки или загрузки данных возможно использование обработки «Универсальный обмен данными XML» в режиме отладки обработчиков. Все необходимые тексты для отладки находится в файле правил обмена или в файле данных. Настройка и выполнение обмена данными становятся более удобными для использования и анализа.

Азы настройки обмена данными в 1С с помощью конфигурации «1С Конвертации данных» на примере смотрите в видео:

Если Вы начинаете изучать 1С программирование, рекомендуем наш бесплатный курс (не забудьте подписаться на YouTube — регулярно выходят новые видео):

К сожалению, мы физически не можем проконсультировать бесплатно всех желающих, но наша команда будет рада оказать услуги по внедрению и обслуживанию 1С. Более подробно о наших услугах можно узнать на странице Услуги 1С или просто позвоните по телефону +7 (499) 350 29 00. Мы работаем в Москве и области.

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

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

Если вас интересует обмен данными между конфигурациями, рекомендуем статью — настройка двухстороннего обмена между 1С УТ и БП.

Заускаем 1С Управление торговлей 10.3. Выбираем пункт “Все настройки обмена данными” из меню Сервис => Прочие обмены данными.

Читайте также:  Как отделать кромку столешницы

Выбираем раздел “Все обмены”. Находим в списке ваш обмен данными, щеалкаем правой кнопкой мыши и нажимаем “Изменить”. Если вы будете пытаться изменить настройки обмена из раздела “Обмен данными с 1С: Бухгалтерия 8”,то при попытке изменения будет запускаться помощник настройки обмена данными, который нам не нужен.

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

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

Ни в коем случае не заменяйте их на типовые правила. Еслы вы не уверены в том что у вас типовые конфигурации, на всякий случай сохраните имеющиеся правила кнопкой “Сохранить правила в файл”.

Так как последнее обновление 1С Бухгалтерии вышло гораздо позже чем обновление для Управления торговлей, ищем правила обмена в каталоге шаблонов обновлений 1С для Бухгалтерии. Найти каталог шаблонов обновлений можно следующим образом. Запускаем 1С и нажимаем “Настройка”. В появившемся окне видим путь к каталогу шаблонов конфигураций и обновлений.

Переходим по этому пути. Далее: 1С=>Accounting и выбираем папку с названием последнего установленного релиза Бухгалтерии. В случае если правила нужно взять из обновления конфигурации “1С:Управление торговлей”, папка будет называться Trade. Для конфигурации “1С:Розница” — Retail. В ней находится папка “Обмены данными”.

Далее “Обмен с конфигурацией Управление торговлей, ред. 10.3”. В ней видим ПРАВИЛА КОНВЕРТАЦИИ БП-УТ и ПРАВИЛА КОНВЕРТАЦИИ УТ-БП. Так как нам нужны правила выгрузки из УТ выбираем “ПРАВИЛА КОНВЕРТАЦИИ УТ-БП” и нажимаем открыть. Тоже самое проделываем для правил выгрузки из базы обмена в текущую базу только выбираем файл ПРАВИЛА КОНВЕРТАЦИИ БП-УТ и нажимаем открыть.

В папке “Обмен с конфигурацией Управление торговлей, ред. 10.3” находится файл Совместное использование.htm. Если вы ни разу его не читали то обязательно прочтите. В нем находится следующая полезная информация:

  • Цели совместного использования
  • Общее описание
  • Переход с прошлых версий двустороннего обмена данными
  • Предварительные действия
  • Порядок настройки обмена данными между конфигурациями
  • Синхронизация данных
  • Совместная работа конфигураций “Управление торговлей” и “Бухгалтерия предприятия”
  • Примеры сценариев работы пользователей
  • Таблица соответствия выгружаемых документов УТ — БП (редакция 1.6, редакция 2.0) Таблица соответствия выгружаемых документов БП (редакция 1.6, редакция 2.0) — УТ
  • Особенности выгрузки документов и справочников
  • Таблица соответствия выгружаемых документов БП (редакция 1.6, редакция 2.0) — УТ
  • Перенос документов “Счет на оплату покупателю” и “Заказ покупателя”
  • Перенос себестоимости списания товаров
  • Контроль результатов обмена данными

Проверяем правила кнопками проверить. И нажимаем ОК. Новые правила сохранены. Запускаем обмен данными и проверяем их работу.

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

Adblock
detector