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

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

Таким образом, выгрузка в XML-файл (импорт записей) из одной информационной базы и последующая загрузка из XML в другую- представляют собой обмен данными в формате XML между базами.

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

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

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

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

ВАЖНО. Экспорт в XML в 1С и дальнейшая загрузка в XML из 1С допустима для идентичных конфигураций - в противном случае произойдёт её повреждение.

Универсальный обработчик

Основные моменты для использования универсального разработчика:

  • Импорт файлов сохранять до окончания переноса записей и проверки их корректности;
  • При использовании как резервных копий следует вести их учёт для сортировки поиска.

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

Кроме того, пользователь может устанавливать как при экспорте, так и загрузке данных дополнительные ограничения.

Извлекаем записи

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

После скачивания, установки и открытия обработчика выполняется следующее:


Их отбор производят в открывшемся после запуска диалоговом окне. Для этого устанавливают галочки в перечне, который отображает объекты метаданных для извлечения;

  1. Настраиваются необходимые фильтры (например, по дате);
  2. Выбирается место на дисковом пространстве;
  3. Запускается сама операция.

Заливаем записи в приёмник

Первым шагом для принятия данных в базу-приёмник нужно открыть в ней программу-обработчик.

После того как будет указан путь к файлу-источнику и активированы (при необходимости) флажки настроек процедуры - можно запускать процесс кнопкой «Загрузить данные».

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

Режимы работы

Обработка ВыгрузкаЗагрузкаДанныхXML82 реализует 2 режима работы: Выгрузки (создание файла выгрузки указанных пользователем данных) и Загрузки (чтение файла выгрузки, созданного одноименным режимом, и запись имеющихся в нем данных). Установка режима осуществляется выбором в поле Режим.

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

В режиме загрузки имеется возможность редактирования использования итогов при записи регистров, что может повлиять на скорость загрузки. Кнопки “Отключить итоги” и “Включить итоги” доступны при установленном флаге “Включить возможность редактирования использования итогов во время загрузки данных” и используются для ручного управления режимом использования итогов при загрузке данных. ** Условия применимости обработки**

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

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

Определение состава выгрузки

Обработка позволяет осуществить как полную, так и частичную выгрузку данных информационной базы в файл. Настройка состава выгружаемых данных производится в диалоге путем установки флажков в колонке дерева, отображающего объекты метаданных, данные по которым могут быть выгружены. Дополнительная колонка флажков, “При необходимости”, устанавливает необходимость выгрузки объектов данного типа “по ссылке”. То есть, если флажок установлен только в колонке “При необходимости”, то данные по такому объекту будут выгружаться не полностью, а только в том объеме, который необходим для поддержания ссылочной целостности в информационной базе, которая будет загружать файл выгрузки.

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

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

Возможные применения

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

— всем известные веб-страницы, которые также представляют из себя аналог XML с нестрогими проверками.

Объекты чтения/записи XML, FastInfoset, HTML расширяют возможности чтения текстового файла встроенной обработкой тегов разметки.

Также они используются для объектов ПостроительDOM/ЗаписьDOM (см. далее) как источники данных.

Файлы XML 1С содержат текстовую информацию, то есть являются текстовыми файлами. Объекты ЧтениеXML 1С и ЗаписьXML 1С являются «надстройкой», позволяющей упростить работу с тегами XML файла 1С.

Объекты ЧтениеFastInfoset 1С и ЗаписьFastInfoset 1С, ЧтениеHTML 1С и ЗаписьHTML 1С полностью аналогичны ЧтениеXML 1С и ЗаписьXML 1С и служат для работы таким же способом с другими форматами.

Файл XML 1С, который использовался в примерах

Справочник>

Справочник>

Текстовое значениеРеквизит>
Справочник>
Конфигурация>

Пример 1. Считывание файла XML 1С в дерево значений с помощью ЧтениеXML 1С

//открываем файл XML 1С на чтение с помощью ЧтениеXML 1С
Файл = Новый ЧтениеXML();
Файл.ОткрытьФайл("D:\СтруктураКонфигурации.xml");

//подготовим дерево значений
//у каждой ветки XML может быть наименование, атрибуты и значение
дзXML = Новый ДеревоЗначений();
дзXML.Колонки.Добавить("Наименование");
дзXML.Колонки.Добавить("Значение");
дзXML.Колонки.Добавить("Атрибуты");

//так как атрибутов у строки XML может быть несколько - будем записывать их в таблицу значений
//каждый атрибут имеет имя и значение
тАтрибутов = Новый ТаблицаЗначений();
тАтрибутов.Колонки.Добавить("Имя");
тАтрибутов.Колонки.Добавить("Значение");

//уровень вложенности поможет нам понимать когда требуется добавить вложенную ветку, а когда нужно вернуться на уровень вверх
УровеньВложенности = 0;
//текущая строка - строка дерева, будет меняться при увеличении вложенности
ТекущаяСтрока = Неопределено;
//чтение файла XML 1С производится не построчно, а по структуре, при окончании файла чтение вернет ЛОЖЬ
Пока Файл.Прочитать() Цикл

//нас интересуют три вида узлов - начало элемента, текст (значение элемента) и конец элемента (чтобы вернуться на уровень вверх)
Если Файл.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда

УровеньВложенности = УровеньВложенности + 1;

//если это первая строка, то добавим ее в самый верх дерева и сохраним только наименование
Если ТекущаяСтрока = Неопределено Тогда
ТекущаяСтрока = дзXML.Строки.Добавить();
ТекущаяСтрока.Наименование = Файл.Имя;
Продолжить;
Иначе
//вложенные строки
ТекущаяСтрока = ТекущаяСтрока.Строки.Добавить();
ТекущаяСтрока.Наименование = Файл.Имя; //сохраним наименование

//есть ли у этого элемента XML атрибуты?
Если Файл.КоличествоАтрибутов() > 0 Тогда
//если да - скопируем подготовленную пустую таблицу для сохранения атрибутов
тАтрибутыУзла = тАтрибутов.Скопировать();
//цикл по количеству атрибутов у этого элемента
Для Сч = 0 по Файл.КоличествоАтрибутов()-1 Цикл
//для каждого атрибута запомним имя и значение
Строка = тАтрибутыУзла.Добавить();
Строка.Имя = Файл.ИмяАтрибута(Сч);
Строка.Значение = Файл.ЗначениеАтрибута(Сч);
КонецЦикла;
//сохраним таблицу атрибутов элемента в текущую строку
ТекущаяСтрока.Атрибуты = тАтрибутыУзла;
КонецЕсли;
КонецЕсли;

ИначеЕсли Файл.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
//в начале элемента увеличиваем уровень вложенности, в конце элемента уменьшаем
УровеньВложенности = УровеньВложенности - 1;
//возвращаем текущую строку на уровень вверх
ТекущаяСтрока = ТекущаяСтрока.Родитель;

ИначеЕсли Файл.ТипУзла = ТипУзлаXML.Текст Тогда
//если у элемента есть значение - просто сохраним его
ТекущаяСтрока.Значение = Файл.Значение;

КонецЕсли;

КонецЦикла;

Файл.Закрыть();

Пример 2. Запись файла 1С XML с помощью объекта ЗаписьXML 1С

//создаем файл ЗаписьXML 1С
Файл = Новый ЗаписьXML();
Файл.ОткрытьФайл("D:\СтруктураКонфигурации.xml", "UTF-8");
Файл.ЗаписатьНачалоЭлемента("Конфигурация");

//по метаданным обходим все справочники (подробнее см. "Работа с метаданными")
Для каждого Справочник из Метаданные.Справочники Цикл

//ЗаписатьНачалоЭлемента - открывает новую [подчиненную] ветку
Файл.ЗаписатьНачалоЭлемента("Справочник");
//ЗаписатьАтрибут - записывает атрибут в открытую ранее ветку
Файл.ЗаписатьАтрибут("Имя", Справочник.Имя);
Файл.ЗаписатьАтрибут("Синоним", Справочник.Синоним);

//по метаданным обходим все реквизиты справочника
Для каждого Реквизит из Справочник.Реквизиты Цикл




КонецЦикла;

//по метаданным обходим все табличные части справочника
Для каждого ТЧ из Справочник.ТабличныеЧасти Цикл
Файл.ЗаписатьНачалоЭлемента("ТабличнаяЧасть");
Файл.ЗаписатьАтрибут("Имя", ТЧ.Имя);
Файл.ЗаписатьАтрибут("Синоним", ТЧ.Синоним);

Для каждого Реквизит из ТЧ.Реквизиты Цикл
Файл.ЗаписатьНачалоЭлемента("Реквизит");
Файл.ЗаписатьАтрибут("Имя", Реквизит.Имя);
Файл.ЗаписатьАтрибут("Синоним", Реквизит.Синоним);
Файл.ЗаписатьКонецЭлемента();
КонецЦикла;

Файл.ЗаписатьКонецЭлемента();
КонецЦикла;

//ЗаписатьКонецЭлемента - "закрывает" открытую ранее с помощью ЗаписатьНачалоЭлемента ветку
Файл.ЗаписатьКонецЭлемента();
КонецЦикла;

Файл.ЗаписатьКонецЭлемента();
Файл.Закрыть();

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

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

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

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

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

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

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

Как загрузить файл XML в базу 1С?

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

Процедура загрузки данных из файла формата XML в общих чертах выглядит следующим образом:

    Разрешить показ пункта меню «Все функции». Для этого надо поставить галочку в соответствующем пункте окна «Параметры» (вкладка находится в разделе меню «Сервис»).

    В меню «Все функции» через плюс раскрыть перечень вариантов, где и выбрать пункт «Обработки».

    В предложенном списке открыть пункт «Универсальный обмен данными в формате XML».

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

Как используются файлы XML в 1С?

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

Формат используется на платформе 1С: Предприятие 8 по следующим направлениям:

    Выгрузка прайс-листов, заказов, печатных форм документов.

    Обмен данными с банками, налоговой службой, внебюджетными фондами.

    Перенос расчетов по заработной плате из 1С: ЗУП и других «специализированных» конфигураций в «общую» 1С: Бухгалтерия 8.

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

Если в компании выбран раздельный способ ведения бухгалтерского и налогового учета, то обработка по выгрузке/загрузке финансовых данных через формат XML станет весьма востребованной. С ее помощью нужные для расчета налоговой базы цифры переносятся в программу 1С: Налогоплательщик или в подобный программный продукт. За счет того, что файлы этого формата легко редактируются, с помощью пакета Microsoft Office легко подкорректировать их содержимое перед отправкой в налоговую службу.

То же относится к КУДиР (книге учета доходов и расходов), журналу учета выданных или полученных счет-фактур. Все это передается через систему СБИС++ и, помимо процесса редактирования табличной части XML файла, выгрузка в этом формате необходима для последующей загрузки в сервис и передачи данных в ФНС.

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

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

Чаще всего обмен происходит с программой Клиент-Банк. Процесс выгрузки выглядит здесь следующим образом:

    Формируется выписка за нужный пользователю период.

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

    В открывшемся окне выбирается нужная папка и имя файла.

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

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

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

Используется формат XML и для загрузки различных классификаторов (КЛАДР, ОКОФ, ЕНАОФ). Если в программе 1С они отсутствуют, надо избегать их ручного заполнения, т. к. легко допустить ошибку при указании кодов. Стоит один раз воспользоваться файлом XML, скачав классификатор из надежного источника.

Сделать это может как сам пользователь, так и приглашенный специалист:

    В основном меню выбирают раздел «Справочники».

    Нажимается кнопка «Настройка действий».

    В открывшемся окне указывают пункт «Загрузить классификатор okof», после чего нажимают на кнопку «Добавить».

    В появившемся разделе «Сервис» выбирают нужную команду и жмут «ОК».

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

Эта статья также доступна на следующих языках: Тайский

  • Next

    Огромное Вам СПАСИБО за очень полезную информацию в статье. Очень понятно все изложено. Чувствуется, что проделана большая работа по анализу работы магазина eBay

    • Спасибо вам и другим постоянным читателям моего блога. Без вас у меня не было бы достаточной мотивации, чтобы посвящать много времени ведению этого сайта. У меня мозги так устроены: люблю копнуть вглубь, систематизировать разрозненные данные, пробовать то, что раньше до меня никто не делал, либо не смотрел под таким углом зрения. Жаль, что только нашим соотечественникам из-за кризиса в России отнюдь не до шоппинга на eBay. Покупают на Алиэкспрессе из Китая, так как там в разы дешевле товары (часто в ущерб качеству). Но онлайн-аукционы eBay, Amazon, ETSY легко дадут китайцам фору по ассортименту брендовых вещей, винтажных вещей, ручной работы и разных этнических товаров.

      • Next

        В ваших статьях ценно именно ваше личное отношение и анализ темы. Вы этот блог не бросайте, я сюда часто заглядываю. Нас таких много должно быть. Мне на эл. почту пришло недавно предложение о том, что научат торговать на Амазоне и eBay. И я вспомнила про ваши подробные статьи об этих торг. площ. Перечитала все заново и сделала вывод, что курсы- это лохотрон. Сама на eBay еще ничего не покупала. Я не из России , а из Казахстана (г. Алматы). Но нам тоже лишних трат пока не надо. Желаю вам удачи и берегите себя в азиатских краях.

  • Еще приятно, что попытки eBay по руссификации интерфейса для пользователей из России и стран СНГ, начали приносить плоды. Ведь подавляющая часть граждан стран бывшего СССР не сильна познаниями иностранных языков. Английский язык знают не более 5% населения. Среди молодежи — побольше. Поэтому хотя бы интерфейс на русском языке — это большая помощь для онлайн-шоппинга на этой торговой площадке. Ебей не пошел по пути китайского собрата Алиэкспресс, где совершается машинный (очень корявый и непонятный, местами вызывающий смех) перевод описания товаров. Надеюсь, что на более продвинутом этапе развития искусственного интеллекта станет реальностью качественный машинный перевод с любого языка на любой за считанные доли секунды. Пока имеем вот что (профиль одного из продавцов на ебей с русским интерфейсом, но англоязычным описанием):
    https://uploads.disquscdn.com/images/7a52c9a89108b922159a4fad35de0ab0bee0c8804b9731f56d8a1dc659655d60.png