Загрузка данных истина

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

Так же данные можно переносить при помощи . Во многих конфигурациях 1С 8.3 есть типовой функционал для настройки синхронизации данных между различными конфигурациями и бесшовная интеграция с 1С Документооборот.

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

Скачать данную обработку можно на диске ИТС, либо по ссылкам:

Она является универсальной и подойдёт для любой конфигурации.

Рассмотрим пример выгрузки справочника «Номенклатура» из одной информационной базы 1С 8.3 Бухгалтерия 3.0 в другую. Обязательным условием будет отбор по родителю (группе) «Деревообработка».

Выгрузка данных из 1С в XML

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

Откройте обработку выгрузки и загрузки данных XML (Ctrl+O).

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

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

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

Колонка «Выгружать при необходимости» означает, необходимо ли перегружать данный объект, если на него ссылается реквизит перегружаемого нами справочника. Например, позиция перегружаемой вами номенклатуры имеет такую единицу измерения, которой нет в базе – приемнике. Если напротив справочника с единицами измерения будет установлен флаг в колонке «Выгружать при необходимости», создастся новая позиция. В противном случае в качестве значения реквизита будет надпись «» и его уникальный идентификатор.

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

В данном примере нужно отобрать только ту номенклатуру, которая находится в папке «Деревообработка».

Аналогичная обработка для 8.2 позволяет в удобной форме устанавливать отборы для каждого объекта конфигурации. В 8.3, к сожалению, такого функционала нет. Одним из вариантов выхода в данной ситуации будет отбор необходимых позиций на вкладке «Дополнительные объекты для выгрузки».

Добавить объекты здесь можно как вручную (кнопка «Добавить»), так и запросом («Добавить запросом…»). При большом их количестве предпочтительнее второй вариант.

В данном случае запрос будет следующим. Заполните параметры, выполните запрос, проверив данные, и нажмите на кнопку «Выбрать результат».

После того, как вы указали все необходимые объекты и дополнительные элементы для выгрузки, нажмите на кнопку «Выгрузить данные». Они попадут в XML файл, имя и путь нахождения которого указывали ранее. Результаты данной операции отобразятся в сообщениях.

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

Загрузка справочника из XML

После успешной выгрузки данных из конфигурации – источника в XML файл, откройте базу – приемник. Структура объектов и их реквизитов должны совпадать между собой. В данном случае перенос осуществляется между двумя типовыми конфигурациями 1С:Бухгалтерия 3.0.

Откройте обработку в базе – приемнике. Данная обработка используется как для выгрузки, так и для загрузки данных. Перейдите на вкладку «Загрузить» и укажите путь к 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-соединение. Важно: путь к файлу должен быть доступен с компьютера, на котором установлена база-приемник.
  • «Дописывать данные в протокол обмена» – если флаг установлен, то содержимое файла протокола обмена сохраняется, если файл протокола уже существует.
  • «Вывод в протокол информационных сообщений» – если флаг установлен, то в протокол обмена будут выводиться сообщения информативного характера, помимо сообщений об ошибках обмена.
  • «Открывать файлы протоколов обмена после выполнения операций» – если флаг установлен, то после выполнения обмена данными файлы протоколов обмена будут автоматически открыты для просмотра.

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

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

Что такое ОбменДанными.Загрузка = Истина, как использовать ОбменДанными.Загрузка.

ОбменДанными.Загрузка — атрибут любого объекта в системе 1С предприятие. Он позволяет обозначить при записи объекта, что необходимо отключить любые проверки (в т.ч проверки на уровне платформы 1С). Сделано это было для того, чтобы избежать конфликтов при обмене данных.

Если Вы разрабатываете свою конфигурацию, во всех проверках правильности данных (например, процедура ПередЗаписью) необходимо первой строкой добавить такую строку:

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

Это является хорошим тоном среди разработчиков 1С.

Контроль записи в стандартных обработках 1С

Если Вы когда-либо пользовались стандартными (например, Поиск и замена значений, Групповая обработка данных, Универсальный обмен данных и т.п), Вы наверное замечали настройку, которая называется обычно «Контроль записи». Эта настройка как раз отвечает за включение/выключение атрибута «ОбменДанными.Загрузка».

Как установить режим ОбменДанными Загрузка

Использовать этот атрибут очень удобно в программном коде, для отключения всех проверок. Например, данный атрибут необходим, если Вам нужно записать объект, но он имеет незаполненные обязательные реквизиты. Это можно также использовать как способ увеличить скорость массовой обработки данных — если Вы отключаете все проверки, система записывает объект быстрее.

Учебник по 1С Конвертации данных (редакция 2) Оптимизация

Правила Выгрузки данных

1. Порядок правил выгрузки данных

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

Пример: Нужно выгрузить два справочника Пользователи и Физические лица. Справочник Пользователи имеет реквизит Физ. лицо — ссылка на справочник Физические лица. То есть справочник Пользователи ссылается на справочник Физические лица. Рекомендуемая последовательность правил выгрузки в этом случае: Физические лица, пользователи.

2. Выбирать данные для выгрузки одним запросом

Если в правиле конвертации нет переноса табличных частей и движений, а так же в событиях перед выгрузкой нет прямых обращений к выгружаемому объекту, рекомендуется в правиле выгрузки данных использовать режим «Выбирать данные для выгрузки одним запросом». Этот режим позволит одним запросом получить все выгружаемые данные определенного типа, а не строить отдельные запросы для выгрузки каждого объекта.

Правила Конвертации объектов

3. Использовать быстрый поиск при загрузке

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

Пример: Справочник Пользователи. Практически все документы имеют ссылку на этот справочник и количество элементов справочника не превосходит 1000.

4. Не выгружать объекты свойств по ссылкам

Режим позволяет для правила конвертации объектов не выгружать все элементы на которые есть ссылки. Если режим установлен, то при выгрузке будет выгружен сам объект и информация для поиска всех его ссылок, но полная информация о зависимых элементах выгружена не будет. Эта оптимизация может в несколько раз ускорить выгрузку и загрузку данных.

5. Не запоминать выгруженные объекты

Для правил конвертации не ссылочных объектов (регистров) нужно установить флажок «Не запоминать выгруженные объекты», так как ссылаться на строки регистра нельзя, поэтому нет и смысла запоминать те строки регистров, которые были выгружены. Для ссылочных объектов этот флажок, как правило, нужен, что бы оптимизировать повторное обращение для выгрузки одного и того же объекта.

6. Не делать общих обработчиков событий для всех объектов

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

Обработка «Универсальный обмен данными XML»

7. Использовать оптимизированный формат для обмена данными

8. Загружать данные в режиме обмена

Позволяет отказать от излишних проверок на этапе загрузки данных

9. Записывать только измененные объекты

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

10. Оптимизированная запись объектов

Режим позволяет резко сократить количество обращений в информационной базе для записи объектов.

11. Записывать регистры наборами записей

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

12. Обмен данными через COM

Для обмена V8-V8, если информационные базы источника и приемника находятся внутри одной локальной сети, рекомендуется использовать обмен через COM — соединение. Нужно только что бы в конфигурации приемника присутствовала обработка Универсальный обмена данными.

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *