Как перенести определенную группу справочника через «Выгрузку и загрузку данных XML» в 1С 8.3?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

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

Разбор основной проблемы: почему запрос выдает ошибку

Разберем ситуацию, когда мы пытаемся использовать произвольный запрос для выгрузки. Типичная ошибка новичка заключается в том, что в тексте запроса указывается параметр, но система не понимает, как его интерпретировать. Посмотрим на пример кода, который часто приводит к ошибке:


ВЫБРАТЬ 
    Контрагенты.Ссылка
ИЗ 
    Справочник.Контрагенты КАК Контрагенты
ГДЕ 
    Родитель = &НаличныйРасчет

Проанализируем причины неудачи. Во-первых, при использовании параметров в обработке ВыгрузкаЗагрузкаДанныхXML.epf недостаточно просто объявить переменную через символ &. Программе требуется четкое указание значения этого параметра на специальной вкладке. Если вкладка «Параметры» пуста, 1С выдаст сообщение «Ошибка в выражении», так как не сможет сопоставить &НаличныйРасчет с конкретным объектом в базе данных.

Во-вторых, обратите внимание на структуру условия. Если нам нужно перенести всех контрагентов, включая тех, кто находится во вложенных папках внутри группы «Наличный расчет», использование знака «равно» (=) будет некорректным. Оно выберет только те элементы, которые находятся на первом уровне вложенности относительно указанной папки.

Шаг 1. Настройка параметров запроса

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

  1. В окне обработки перейдите на закладку «Дополнительные объекты для выгрузки».
  2. Добавьте новую строку и вставьте текст запроса.
  3. Перейдите на закладку «Параметры» (в нижней или боковой части формы, в зависимости от версии обработки).
  4. Добавьте параметр с именем НаличныйРасчет (без символа амперсанда).
  5. В колонке «Тип» выберите СправочникСсылка.Контрагенты.
  6. В колонке «Значение» выберите нужную вам папку из справочника.

Только после выполнения этих действий 1С сможет подставить конкретную ссылку в запрос при выполнении выгрузки.

Шаг 2. Оптимизация текста запроса

Проанализируем более надежные варианты написания запроса. Если мы хотим гарантированно захватить всю иерархию (все подпапки и всех контрагентов внутри), следует использовать оператор В ИЕРАРХИИ. Посмотрим на правильный пример кода:


ВЫБРАТЬ 
    Контрагенты.Ссылка
ИЗ 
    Справочник.Контрагенты КАК Контрагенты
ГДЕ 
    Контрагенты.Ссылка В ИЕРАРХИИ (&НаличныйРасчет)

Если же по каким-то причинам вы не хотите привязываться к конкретной ссылке (GUID) объекта (например, если в базе-приемнике папка создана вручную и имеет другой идентификатор), можно воспользоваться поиском по наименованию. Рассмотрим этот пример:


ВЫБРАТЬ 
    Контрагенты.Ссылка
ИЗ 
    Справочник.Контрагенты КАК Контрагенты
ГДЕ 
    Родитель.Наименование ПОДОБНО "%Наличный расчет%"

Важный нюанс: поиск по наименованию менее надежен, так как при наличии опечаток или лишних пробелов данные могут не попасть в выборку. Рекомендуется всегда использовать поиск по ссылке В ИЕРАРХИИ.

Шаг 3. Режим работы и выбор версии обработки

В обсуждениях часто встречается совет «запустить в режиме обычных форм». Поясним, что это значит. В старых версиях 1С (платформа 8.2) интерфейс обработки позволял интерактивно выбирать группы справочников без написания кода. В управляемом интерфейсе (БП 3.0) штатная обработка с ИТС часто требует более строгой настройки.

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

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

Критически важные моменты при переносе

Разберем ситуацию, которая часто возникает после успешной, на первый взгляд, загрузки в базу-приемник. Вы открываете карточку контрагента, а там пусто: нет договоров, нет банковских счетов, нет адресов. Выясним, почему так происходит.

1. Выгрузка связанных данных. Справочник Контрагенты тесно связан с другими объектами. В 1С:Бухгалтерии 3.0 договоры и счета — это отдельные справочники, подчиненные контрагенту. Чтобы они перенеслись, в настройках обработки обязательно должен быть включен флаг «Выгружать при необходимости» (или аналогичный, отвечающий за экспорт связанных объектов). Если этого не сделать, вы перенесете только «оболочку» контрагента.

2. Проблема уникальных идентификаторов (GUID). Помните, что обработка XML работает через поиск по внутреннему идентификатору. Рассмотрим два сценария:

  1. Если папка «Наличный расчет» была создана в базе-приемнике копированием или через XML-загрузку из первой базы — GUID совпадут, и всё будет хорошо.
  2. Если вы создали папку в новой базе вручную (кнопкой «Создать группу»), то для программы это два абсолютно разных объекта, даже если названия идентичны. В этом случае при загрузке может создаться дубль папки или элементы «рассыпятся» по справочнику без родителя.

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

Альтернативные способы переноса

Если использование обработки XML кажется слишком сложным или постоянно возникают ошибки в запросах, проанализируем встроенные возможности 1С:Бухгалтерия 3.0. В разделе «Администрирование» — «Синхронизация данных» существует функционал «Загрузка данных из другой программы». Этот инструмент работает более стабильно с точки зрения контроля ссылочной целостности и позволяет выбрать состав данных через удобный интерфейс помощника, автоматически подтягивая все связанные договора и контактную информацию.

Подводя итог, использование запроса ГДЕ Ссылка В ИЕРАРХИИ (&Параметр) в сочетании с правильной настройкой на вкладке «Параметры» является самым быстрым и профессиональным способом точечного переноса данных. Пользуйтесь этим инструментом аккуратно, всегда проверяя настройки выгрузки зависимых объектов.

← На главную