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

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

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

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

Последние изменение: 01.09.2015

Выберите уточнение:

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

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

Режим работы

Обработка имеет два режима работы:

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

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

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

Выгрузка данных

Порядок выгрузки данных:

  1. выбираем правила обмена - указываем файл XML правил обмена, для каждой конфигурации 1С свои правила (постепенно будут добавляться в сборку Клеверенс: Учет имущества);
  2. читаем правила обмена;
  3. после прочтения заполнятся выгружаемые данные, можно указать, какие объекты будут выгружаться;
  4. выбираем файл XML (можно создать пустой файл - указываем название файла и он создастся автоматически), в который загрузятся данные или информационную базу приемник;
  5. выгружаем данные.

Выгрузка в файл обмена.

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

Подключение и выгрузка данных в ИБ приемник.

Выбираем тип информационной базы:

  • На данном компьютере или на компьютере в локальной сети;
  • На сервере 1С:Предприятие.

Выбираем платформу 1С и каталог информационной базы для подключения.

На закладке «Выгружаемые данные» можно выбрать те типы объектов, которые должны выгружаться, настроить отборы для выборки объектов, либо указать узел обмена данными, для которого нужно выгружать данные.

На закладке «Параметры выгрузки» можно указать дополнительные параметры выгрузки данных.

На закладке «Комментарий» можно написать произвольный текст-комментарий, включаемый в файл обмена.

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

  • «Использовать транзакции» - возможность настроить загрузку данных в транзакции (транзакция - логически связанная, неделимая последовательность действий). Для этого необходимо установить флажок «Использовать транзакции» и указать количество элементов в одной транзакции при загрузке.
  • «Загружать данные в режиме обмена» (ОбменДанными.Загрузка = Истина) – если флаг установлен, то загрузка объектов будет выполняться с установленным признаком загрузки. Это означает, что при записи объектов в базу данных будут отключены все платформенные и прикладные проверки. Исключение составляют документы, которые записываются в режиме проведения или отмены проведения. Проведение и отмена проведения документа выполняется всегда без установки режима загрузки, т.е. проверки будут выполняться.
  • «Записывать в информационную базу только измененные объекты» – если флаг установлен, то производится запись только измененных объектов в информационную базу. Если объект изменен не был, то при загрузке из файла обмена он не будет перезаписан.
  • «Объекты по ссылке загружать без пометки удаления».
  • «Оптимизированная запись объектов» – если флаг установлен, то включается режим, который позволяет резко сократить количество обращений в информационной базе для записи объектов.
  • «Записывать регистры наборами записей» – если флаг установлен, то включается режим, который позволяет записывать изменения в регистрах наборами записей, а не менеджерами записей.
  • «Обрезать строки справа» – если флаг установлен, то при загрузке строк обрезаются пробелы справа.
  • «Настройка автоматической загрузки данных» - позволяет настроить использование автоматической загрузки (использовать, не использовать, задать вопрос перед выполнением операции).
«Режим отладки обработчиков загрузки» рекомендуется использовать только разработчикам !

Дополнительные настройки

Закладка служит для детальной настройки выгрузки и загрузки данных.

  • «Режим отладки» – флаг для задания режима отладки обмена. Если этот флаг установлен, то процесс обмена данными не будет остановлен при возникновении какой-либо ошибки. Обмен завершится до конца с выводом отладочных сообщений в файл протокола обмена. Этот режим рекомендуется использовать при отладке правил обмена.
  • «Вывод информационных сообщений в окно сообщений» – если флаг установлен, то в окно сообщений будет выводиться протокол процесса обмена данными.
  • «Количество обработанных объектов для обновления статуса» – параметр служит для определения количества обработанных элементов перед изменением строки состояние загрузки/выгрузки
  • «Настройки выгрузки данных» – позволяют определить количество элементов обрабатываемых в одной транзакции при выгрузке данных, выгружать и обрабатывать только те объекты, на которые есть права доступа, настроить тип изменения регистрации для выгруженных объектов через планы обмена.
  • «Использовать оптимизированный формат для обмена данными (V8 - V8, версия обработки не ниже 2.0.18)» – оптимизированный формат сообщения обмена предполагает наличие узла «ИнформацияОТипахДанных» в заголовке сообщения, в который выгружается информация о типах данных. Это позволяет ускорить процесс загрузки данных.
  • «Использовать транзакции при выгрузке для планов обмена» – флаг определяет режим использования транзакций (транзакция - логически связанная, неделимая последовательность действий) при выгрузке данных при выборке изменений на узлах планов обмена. Если флаг установлен, то выгрузка данных будет выполняться в транзакции.
  • «Количество элементов в транзакции» – определяет максимальное число элементов данных, которые помещаются в сообщение в рамках одной транзакции базы данных. Если значение параметра равно 0 (значение по умолчанию), то все данные помещаются в рамках одной транзакции. Такой режим является рекомендуемым, так как гарантирует согласованность данных, помещаемых в сообщение. Но при создании сообщения в многопользовательском режиме могут быть конфликты блокировок между транзакцией, в которой данные помещаются в сообщение, и транзакциями, выполняемыми другими пользователями. Для снижения вероятности возникновения таких конфликтов можно задать значение этого параметра, отличное от значения по умолчанию. Чем меньше значение параметра, тем меньше вероятность конфликта блокировок, но выше вероятность помещения в сообщение несогласованных данных.
  • «Выгружать объекты на которые есть права доступа» – если флаг установлен, то выборка объектов информационной базы будет выполняться с учетом прав доступа текущего пользователя программы. Это предполагает использование литерала «РАЗРЕШЕННЫЕ» в тексте запроса для выборки данных.
  • «Автоматически удалять недопустимые символы из строк для записи в XML» – если флаг установлен, то при записи данных в сообщение обмена недопустимые символы будут удалены. Символы проверяются на соответствие рекомендации XML 1.0.
  • «Изменения регистрации для узлов обмена после выгрузки» – поле определяет режим работы с регистрацией изменений данных после завершения выгрузки данных.
    Возможные значения:
    Не удалять регистрацию – после выгрузки данных регистрация изменений на узле удалена не будет.
    Полностью удалить регистрацию для узла обмена – после выгрузки данных регистрация изменений на узле будет полностью удалена.
    Удалить регистрацию только для выгруженных метаданных – после выгрузки данных регистрация изменений на узле будет удалена только для объектов метаданных, которые были указаны к выгрузке.
  • «Протокол обмена» – позволяет настроить вывод информационных сообщений в окно сообщений, ведение и запись в отдельный файл протокола обмена.
  • «Имя файла, протокола обмена» – имя файла для вывода протокола процесса обмена данными.
  • «Протокол загрузки (для COM - соединения)» – имя файла для вывода протокола процесса обмена данными в базе-приемнике при обмене через COM-соединение. Важно: путь к файлу должен быть доступен с компьютера, на котором установлена база-приемник.
  • «Дописывать данные в протокол обмена» – если флаг установлен, то содержимое файла протокола обмена сохраняется, если файл протокола уже существует.
  • «Вывод в протокол информационных сообщений» – если флаг установлен, то в протокол обмена будут выводиться сообщения информативного характера, помимо сообщений об ошибках обмена.
  • «Открывать файлы протоколов обмена после выполнения операций» – если флаг установлен, то после выполнения обмена данными файлы протоколов обмена будут автоматически открыты для просмотра.

Удаление данных

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

2018-11-15T19:32:35+00:00

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

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

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

Обработка поддерживает выгрузку данных с возможностью задания отбора по периоду. Также реализована проверка объектов на наличие недопустимых символов при обмене через XML.

С уважением, (преподаватель и разработчик ).

Что необходимо для автоматического обмена данными, без внесения изменений в конфигурацию:
1) Обработка "Универсальный обмен данными в формате XML" , которая входит в состав большинства типовых конфигураций. Если её там не оказалось, то её легко найти на диске ИТС или на просторах интернета. В конфигурации она обзывается "УниверсальныйОбменДаннымиXML"
2) Правила обмена данными. Создаются с помощью "Конвертации данных". Работу с которой вам придётся освоить. Есть и видеокурсы и учебные пособия. Например: http://programmist1s.ru/wp-content/uploads/2013/06/Konvertatsiya_dannyih._Metodika_rabotyi_i_primeryi.pdf
3) Внешняя обработка , содержащая процедуры загрузки/выгрузки. Займемся её созданием:
Создаётся внешняя обработка в модуле объекта которой будет нижеприведённый текст (подставляете свои данные по базам и пользователям). Желательно создать отдельного пользователя с полными правами для обмена данными. Назовём обработку, к примеру, "ОбменДанными.epf".

Если ПараметрЗапуска = "Выгрузка" Тогда Обработка=Обработки.УниверсальныйОбменДаннымиXML.Создать(); //Задаём необходимые для выгрузки параметры (необязательные для редактирования) Обработка.РежимОбмена="Выгрузка"; Обработка.ЗагружатьДанныеВРежимеОбмена=Истина; Обработка.ЗаписыватьРегистрыНаборамиЗаписей=Истина; Обработка.ЗапоминатьЗагруженныеОбъекты=Истина; Обработка.ИспользоватьОтборПоДатеДляВсехОбъектов=Истина; Обработка.ВыгружатьТолькоРазрешенные=Истина; //!Задали необходимые параметры для выгрузки //Данные параметры необходимо перезаполнить ОБЯЗАТЕЛЬНО //Устанавливаем ограничения на выгрузку по датам объектов Обработка.ДатаНачала = ТекущаяДата() - 60*60*24*2; Обработка.ДатаОкончания = "00010101"; //Если хотим выгружать данные в файл - ставим Ложь, Если Истина - будет произведена выгрузка в базу-приёмник Обработка.НепосредственноеЧтениеВИБПриемнике=Истина; //Если база-приёмник выгружаемых данных является серверной, то Ложь. Если файловая - Истина Обработка.ТипИнформационнойБазыДляПодключения=Истина; //!Обязательные параметры перезаполнили //Если выгружаем данные в файл Если Не Обработка.НепосредственноеЧтениеВИБПриемнике Тогда Обработка.ИмяФайлаОбмена = "C:\Inbox\ОлегА\Конвертация\выгрузка.xml"; //Если выгружаем даннные в базу Иначе Обработка.ПарольИнформационнойБазыДляПодключения="Админ"; Обработка.ПользовательИнформационнойБазыДляПодключения="суперкрутой"; Обработка.АутентификацияWindowsИнформационнойБазыДляПодключения=Ложь; //Если приёмник данных - серверная база Если Обработка.ТипИнформационнойБазыДляПодключения = Ложь Тогда Обработка.ИмяСервераИнформационнойБазыДляПодключения="MainServ"; Обработка.ИмяИнформационнойБазыНаСервереДляПодключения="Buhia"; //Если приёмник данных - файловая база Иначе Обработка.ВерсияПлатформыИнформационнойБазыДляПодключения="V82"; Обработка.КаталогИнформационнойБазыДляПодключения ="C:\Inbox\ОлегА\Клиенты\Зевс БП20\Зевс БП20"; КонецЕсли; КонецЕсли; //Действия над регистрацией при выгрузке по планам обмена Обработка.ТипУдаленияРегистрацииИзмененийДляУзловОбменаПослеВыгрузки=0; // 0 - не снимать регистрацию, // 1 - снимать регистрацию Обработка.ЗагрузитьПравилаОбмена(); //ЕСЛИ НУЖНО ВЫГРУЖАТЬ ПО ПЛАНАМ ОБМЕНА, ТО ВКЛЮЧАЕМ ЭТОТ БЛОК И ПОДСТАВЛЯЕМ СВОЙ УЗЕЛ ПЛАНА ОБМЕНА //Для Каждого Стр Из Обработка.ТаблицаПравилВыгрузки.Строки Цикл // Стр.Включить=1; // Для Каждого Стр1 Из Стр.Строки Цикл // Стр1.Включить=1; // Стр1.СсылкаНаУзелОбмена=ПланыОбмена.Полный.НайтиПоКоду("БП20"); // КонецЦикла; //КонецЦикла; Обработка.ВыполнитьВыгрузку(); ЗавершитьРаботуСистемы(Ложь); ИначеЕсли ПараметрЗапуска = "Загрузка" Тогда ОбработкаОбмена = Обработки.УниверсальныйОбменДаннымиXML.Создать(); ОбработкаОбмена.ИмяФайлаОбмена = "C:\Inbox\ОлегА\Выгрузка.xml"; ОбработкаОбмена.РежимОбмена = "Загрузка"; ОбработкаОбмена.ОткрытьФайлЗагрузки(Истина); ОбработкаОбмена.АрхивироватьФайл = Ложь; ОбработкаОбмена.ВыполнитьЗагрузку(); ОбработкаОбмена = Неопределено; ЗавершитьРаботуСистемы(Ложь); КонецЕсли;

4) Bat файл выгрузки , который будет запускать 1с и внешнюю обработку с параметром запуска под пользователем, который предназначен для обмен данными. Файл необходимо создать к примеру в notepad++ с кодировкой OEM(MS-Dos), иначе работать не будет. Файл назовём, например "BatVygruz.bat". Текст будет следующим:

Если база файловая:
"C:\Program Files (x86)\1cv82\common\1cestart.exe" ENTERPRISE /F"C:\Inbox\КБФ\1Cv8_Base_8.1\Зевс 83 БП3\Зевс 83 БП3" /N"РоботОбменаДанными" /P"pass" /DisableStartupMessages /RunModeManagedApplication /Execute"C:\Inbox\ОлегА\ОбменДанными.epf" /C"Выгрузка"
Пояснения:

б) C:\Inbox\КБФ\1Cv8_Base_8.1\Зевс 83 БП3\Зевс 83 БП3 - ваш путь к файловой базе, из которой будем выгружать данные
в) РоботОбменаДанными - Имя пользователя, под которым запускам 1С для обмена данными
г) pass - пароль пользователя
д) /DisableStartupMessages - закрываем всплывающие окна при старте 1С
е) /RunModeOrdinaryApplication - запуск в обычном режиме толстый клиент
ж) C:\Inbox\ОлегА\ОбменДанными.epf - путь к нашей обработке, которая запустится при старте
з) Выгрузка - передаём параметр запуска 1С, сообщает, что надо выгружать данные

Если база серверная:
"C:\Program Files (x86)\1cv82\common\1cestart.exe" ENTERPRISE /S"Server1C/DataBase" /N"РоботОбменаДанными" /P"pass" /DisableStartupMessages /RunModeManagedApplication /Execute"C:\Inbox\ОлегА\ОбменДанными.epf" /C"Выгрузка"
Пояснения:
а) C:\Program Files (x86)\1cv82\common\1cestart.exe - ваш путь к стартеру 1С
б) Server1C/DataBase - ваш сервер на котором находится база и имя самой базы из которой выгружаем данные.
Остальные параметры аналогичны файловому варианту bat файла

5) Bat файл загрузки (при необходимости). Если вы решили выгружать данные в файл, а не напрямую в базу. То этот пункт нам тоже понадобится (обычно необходим).
Создание Bat файла загрузки аналогично файлу выгрузки, но отличается лишь параметр запуска, вместо "Выгрузка", мы ставим "Загрузка"

6) Задать расписание запуска наших Bat файлов загрузки/выгрузки на сервере. Для этого надо зайти в администрирование панели управления на сервере и в планировщике заданий создать новое задание запуска файла выгрузки на 23 часа каждый день и задание на загрузку с указанием Bat файла загрузки(если надо) на 04 часа к примеру.