Обновление форматов данных в 1С 8.3: от макета печатной формы до XML-обмена

· 10 мин

Содержание

Форматы в 1С обновляют в четырёх местах, и способ зависит от того, что именно устарело. Макет печатной формы правят в режиме 1С:Предприятие через Администрирование → Печатные формы, отчеты и обработки → Макеты печатных форм. Формат обмена EnterpriseData и правила конвертации обновляются вместе с релизом конфигурации или загрузкой новых правил из файла. XML-схемы меняют через XDTO-пакеты в Конфигураторе, а отчёты на СКД — в схеме компоновки или в расширении.

Главное правило для типовой конфигурации: любые доработки формата выносите в расширение или во внешнюю обработку . Тогда следующее обновление релиза не сотрёт вашу работу, и не придётся снимать конфигурацию с поддержки.

Что проверить до обновления форматов

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

Версия платформы и конфигурации

Откройте Справка → О программе (кнопка с вопросительным знаком в правом верхнем углу). Там видны три числа:

  • 🔹 версия платформы, например 8.3.25.1445;
  • 🔹 название и релиз конфигурации, например «Бухгалтерия предприятия, редакция 3.0»;
  • 🔹 режим совместимости — его видно в Конфигураторе, в свойствах корня конфигурации.

Режим совместимости важен для XML и JSON. Часть методов работы с JSON и некоторые возможности расширений доступны только при номере режима не ниже определённой версии. Если код из примера не компилируется, первым делом проверьте этот параметр.

Состояние поддержки

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

Резервная копия

Перед любыми изменениями в рабочей базе сделайте выгрузку .dt и согласуйте окно работ с пользователями. Выгрузка идёт через Администрирование → Выгрузить информационную базу в Конфигураторе. Монопольный доступ нужен только на этапе обновления структуры базы, а не на всё время работы с макетами.

Перед обновлением формата
Выполнено: 0 / 6

Как обновить печатные формы и макеты

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

Изменённые макеты после обновления релиза

В типовых конфигурациях на БСП пользовательские правки макетов хранятся отдельно от конфигурации. Это удобно, но есть ловушка. Фирма 1С выпускает новый релиз с исправленной формой — например, под новые реквизиты счёта-фактуры. А база продолжает печатать ваш старый изменённый вариант.

Порядок действий:

  1. Откройте Администрирование → Печатные формы, отчеты и обработки → Макеты печатных форм.
  2. Отфильтруйте список по признаку изменённых макетов (они помечены отдельной картинкой или флажком в колонке).
  3. Для каждого изменённого макета откройте его и сравните с поставляемым.
  4. Если ваши правки больше не нужны — используйте команду возврата к стандартному макету.
  5. Если нужны — перенесите их на новый стандартный макет заново.

Перед сбросом сохраните изменённый макет в файл .mxl. Это две минуты работы и страховка, если правки всё-таки понадобятся.

Внешние печатные формы

Внешние формы (.epf) подключаются в Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки. Чтобы обновить такую форму:

  1. Откройте карточку обработки в списке.
  2. Нажмите «Загрузить из файла» и выберите новую версию .epf.
  3. Проверьте раздел размещения: к каким документам привязана печать.
  4. Запишите карточку.

После обновления типовой конфигурации внешние формы ломаются чаще всего. Причина — переименованные реквизиты документов или изменённые общие модули, к которым обращается обработка. Ошибка выглядит так: Поле объекта не обнаружено (ИмяРеквизита).

Когда менять макет в Конфигураторе

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

Как обновить форматы обмена данными: EnterpriseData, XML и JSON

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

Версии формата EnterpriseData

Современные типовые конфигурации (БП 3.0, УТ 11, ЗУП 3.1, КА 2, ERP) обмениваются через универсальный формат EnterpriseData. У формата есть версии вида 1.x. Каждая конфигурация поддерживает список версий, и при синхронизации базы выбирают максимальную общую.

Практический вывод: обновлять нужно обе стороны обмена. Если вы обновили только БП, а УТ осталась на старом релизе, обмен продолжит работать на старой общей версии. Новые реквизиты, ради которых обновлялись, при этом не передаются.

Правила конвертации КД 2.0

Старые обмены построены на правилах «Конвертации данных 2.0» — это XML-файл с правилами. Обновляют их так:

  1. Получите новые правила у разработчика или выгрузите из «Конвертации данных».
  2. Откройте Администрирование → Синхронизация данных → Настройки синхронизации данных.
  3. Откройте нужный обмен и найдите команду загрузки правил из файла.
  4. Загрузите правила конвертации объектов и, если есть, правила регистрации.
  5. Выполните тестовую синхронизацию на копии.

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

Собственные XML-форматы и XDTO

Если вы обмениваетесь с внешней системой по своей XSD-схеме, схема живёт в XDTO-пакете конфигурации или расширения. Чтобы обновить её:

  1. В Конфигураторе раскройте Общие → XDTO-пакеты.
  2. Для нового пакета используйте импорт XML-схемы из контекстного меню ветки.
  3. Сравните пространство имён (targetNamespace) старой и новой схемы. Если оно сменилось — в коде нужно поменять URI во всех вызовах ФабрикаXDTO.Тип().

Если схему меняют часто, удобнее не встраивать её в конфигурацию, а создавать фабрику из файла во время работы:

// Фабрика из актуального XSD без изменения конфигурации
Фабрика = СоздатьФабрикуXDTO("C:\Exchange\schema_v2.xsd");
ТипДокумента = Фабрика.Тип("urn:example:exchange:v2", "Document");
Документ = Фабрика.Создать(ТипДокумента);

Формат JSON

JSON в 1С пишут объектом ЗаписьJSON и функцией ЗаписатьJSON. При смене формата у партнёра чаще всего меняется имя поля или тип даты. Пример выгрузки с явным форматом даты:

Данные = Новый Структура;
Данные.Вставить("number", "00045");
Данные.Вставить("sum", 15400.50);
Данные.Вставить("date", ТекущаяДатаСеанса());

Настройки = Новый НастройкиСериализацииJSON;
Настройки.ФорматСериализацииДаты = ФорматДатыJSON.ISO;

Запись = Новый ЗаписьJSON;
Запись.УстановитьСтроку();
ЗаписатьJSON(Запись, Данные, Настройки);
Результат = Запись.Закрыть();

Для ISO-даты партнёр получит строку вида 2026-10-07T14:30:00. Если ему нужна дата без времени, формируйте строку сами через Формат(Дата, "ДФ=yyyy-MM-dd").

Сопоставление полей
Старое поле doc_num→Новое поле number
Старое поле amount (строка)→Новое поле sum (число)
Дата dd.MM.yyyy→Дата ISO 8601
Код контрагента→ИНН контрагента

Такую таблицу соответствия полезно составить до правки кода. Она же станет основой для тестов.

Обновление отчётов на системе компоновки данных (СКД)

Большинство отчётов в 8.3 построены на СКД. «Обновить формат» отчёта обычно значит одно из трёх: добавить поле, изменить группировки или починить пользовательский вариант после обновления релиза.

Сломанные варианты после обновления

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

Решение:

  1. Откройте отчёт.
  2. В меню «Ещё» выберите возврат к стандартным настройкам.
  3. Заново настройте отборы и группировки и сохраните вариант.

Правка схемы компоновки

Чтобы добавить поле в собственный отчёт:

  1. Откройте макет отчёта — «Основная схема компоновки данных».
  2. На вкладке «Наборы данных» добавьте поле в запрос или в список полей набора.
  3. На вкладке «Ресурсы» укажите, как поле итожится, если это число.
  4. На вкладке «Настройки» включите поле в выбранные поля нужной группировки.

Если поле добавлено в запрос, но не в настройки варианта, в отчёте оно не появится. Это самая частая причина вопроса «я добавил поле, а его нет».

Вывод в нужный формат файла

Отчёт на СКД выводится в табличный документ. Сохранить его в XLSX, PDF или ODS можно кнопкой сохранения на панели отчёта. Программно — методом Записать() табличного документа с указанием типа файла, например ТипФайлаТабличногоДокумента.XLSX.

Обновить формат через расширение, не трогая типовую

Расширения появились в платформе 8.3.6. Это главный приём для типовых конфигураций: доработка живёт отдельно и переживает обновления релиза.

Что можно сделать в расширении

ЗадачаКак в расширенииРиск при обновлении релиза
Изменить макет печатной формыЗаимствовать объект и его макет, изменить копиюСредний: новый стандартный макет не подтянется сам
Поменять код заполнения формыЗаимствовать модуль, метод с аннотацией &После или &ВместоСредний: метод могут переименовать
Добавить свой формат XMLСвой XDTO-пакет и общий модульНизкий
Добавить поле в отчётЗаимствовать отчёт и схему компоновкиСредний
Добавить реквизит в документЗаимствовать документ, добавить реквизитНизкий

Аннотация &После безопаснее, чем &Вместо. Она дополняет типовой код, а не подменяет его. Если в новом релизе 1С исправит ошибку в типовом методе, с &После вы это исправление получите, а с &Вместо — нет.

Как подключить расширение

В режиме 1С:Предприятие: Администрирование → Печатные формы, отчеты и обработки → Расширения. Нажмите «Добавить из файла», выберите .cfe и перезапустите программу.

В Конфигураторе: Конфигурация → Расширения конфигурации. Загрузка .cfe и обновление конфигурации базы данных — это два отдельных шага. Без второго расширение не заработает.

Что делать после обновления релиза

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

Если расширение неприменимо, при запуске появляется сообщение об ошибке, и расширение не подключается. Пользователи при этом продолжают работать на типовом функционале, но ваша доработка молча пропадает.

Где править формат?

Проверка и валидация обновлённых форматов

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

Печатные формы

  • 🔹 распечатайте 3-5 документов разных типов: с НДС и без, с одной строкой и с сотней строк;
  • 🔹 проверьте перенос таблицы на вторую страницу — шапка таблицы должна повторяться;
  • 🔹 сравните суммы прописью с итогом по документу.

XML и JSON

Для XML проверьте файл на соответствие схеме до отправки. Объект XDTO можно проверить методом Проверить():

Попытка
    Документ.Проверить();
    Сообщить("Документ соответствует схеме");
Исключение
    Сообщить(ОписаниеОшибки());
КонецПопытки;

Для JSON схемы-валидатора в платформе нет. Прочитайте выгруженный файл обратно через ЧтениеJSON и ПрочитатьJSON и сравните ключевые поля с исходными данными.

Обмен между базами

  1. Разверните копии обеих баз из свежих выгрузок.
  2. Выполните синхронизацию вручную.
  3. Откройте журнал регистрации с отбором по событиям обмена данными и посмотрите ошибки.
  4. Сверьте количество документов за тестовый период в источнике и приёмнике.

Для сравнения конфигураций до и после обновления используйте Конфигурация → Сравнить, объединить с конфигурацией из файла. В отчёте о сравнении видно и изменённые макеты: табличные документы сравниваются построчно.

Типичные ошибки после смены формата

Диагностика: выберите симптом

Частые вопросы

Пропадут ли мои изменённые макеты при обновлении конфигурации?
Нет. Макеты, изменённые в режиме 1С:Предприятие, хранятся в базе отдельно и переживают обновление. Но и новый стандартный макет вместо них не применится — его нужно включить вручную.
Можно ли обновить формат EnterpriseData без обновления релиза?
Нет. Список поддерживаемых версий формата зашит в конфигурацию. Новую версию формата база получает только вместе с новым релизом.
Чем расширение лучше внешней обработки?
Внешняя обработка подходит для печатной формы или отчёта. Расширение умеет больше: менять поведение типовых документов, добавлять реквизиты и XDTO-пакеты.
Нужен ли монопольный режим, чтобы поменять макет печатной формы?
Нет. Макеты в режиме 1С:Предприятие меняют при работающих пользователях. Монопольный доступ понадобится при обновлении структуры базы в Конфигураторе.
Почему код с JSON не компилируется в старой базе?
Чаще всего мешает режим совместимости конфигурации. Посмотрите его в свойствах корня конфигурации и сравните с версией, в которой появился нужный метод.