К статье
Практический материал

Разработка и Конфигурация · 12 мин

ПКС в 1С: что это и как настроить правила конвертации свойств

ПКС в 1С — это правила конвертации свойств при обмене данными. Разбираем назначение, структуру, настройку в Конвертации данных и типичные ошибки.

ПКС в 1С — это правила конвертации свойств, один из базовых элементов типовой конфигурации «1С:Конвертация данных». ПКС определяет, как значение конкретного реквизита объекта-источника преобразуется в реквизит объекта-приёмника при выгрузке и загрузке данных между информационными базами.

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

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

Где используются ПКС и как они связаны с другими правилами

ПКС не существуют отдельно — они всегда входят в состав правила конвертации объектов (ПКО). ПКО описывает соответствие двух типов объектов целиком, например «Справочник.Номенклатура источника → Справочник.Номенклатура приёмника», а ПКС внутри него описывают перенос каждого реквизита: Наименование → Наименование, Артикул → Артикул и так далее.

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

Правила конвертации создаются в конфигурации «1С:Конвертация данных» (актуальные редакции — 2.1 и 3.0) и сохраняются в XML-файл правил обмена. Этот файл затем используется универсальными обработчиками обмена или типовыми планами обмена.

Структура и ключевые параметры правила конвертации свойств

У каждого ПКС есть набор параметров, от которых зависит поведение при обмене. Основные из них:

  • Свойство источника — имя реквизита в конфигурации-источнике. Может быть пустым, если значение формируется только алгоритмом или выражением.
  • Свойство приёмника — имя реквизита в конфигурации-приёмнике, куда попадёт значение.
  • Правило конвертации — ссылка на ПКО или ПКЗ, если свойство является ссылкой на другой объект или перечислением. Для примитивных типов (строка, число, дата) правило не нужно.
  • Перед выгрузкой / При выгрузке / После выгрузки — обработчики событий, в которых можно написать произвольный код преобразования значения.
  • Не замещать значение при загрузке — флаг, защищающий существующее значение в приёмнике от перезаписи.

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

Если типы свойств в источнике и приёмнике совпадают и не требуют преобразования, достаточно указать имена свойств — конвертация выполнится автоматически. Сложные случаи (разные типы, составные поля, вычисляемые значения) решаются через обработчики событий.

Как создать и настроить ПКС на практике

Работа ведётся в конфигурации «1С:Конвертация данных». Предварительно нужно загрузить структуру метаданных обеих конфигураций (источника и приёмника) через обработку выгрузки описания структуры метаданных — без этого справочник конфигураций будет пустым и правила создать не получится.

Порядок создания ПКС
  1. 1
    Загрузите структуры метаданных источника и приёмника в Конвертацию данных
  2. 2
    Создайте или откройте правило конвертации объекта (ПКО) для нужной пары объектов
  3. 3
    В табличной части «Конвертация свойств» добавьте строку и укажите свойство источника и свойство приёмника
  4. 4
    Если свойство — ссылка на другой объект, укажите правило конвертации (ПКО или ПКЗ)
  5. 5
    При необходимости преобразования напишите код в обработчике «Перед выгрузкой» или «При выгрузке»
  6. 6
    Сохраните правила обмена в XML-файл и выполните тестовую выгрузку на копии базы

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

Значение = Источник.КонтактнаяИнформация.Найти(Перечисления.ТипыКонтактнойИнформации.Телефон).Представление;

Если обработчик должен отменить выгрузку свойства в конкретной ситуации, используется переменная Отказ: установка Отказ = Истина пропускает выгрузку данного свойства, не прерывая конвертацию объекта целиком.

Обработчики событий и переменные в ПКС

Обработчики событий — основной инструмент нестандартной конвертации. Внутри кода ПКС доступны стандартные переменные: Источник (выгружаемый объект), Приемник (загружаемый объект, доступен в событиях загрузки), Значение (текущее значение свойства), Отказ, Параметры (параметры обмена), ИмяПКС и другие.

Типовые сценарии использования обработчиков: склейка нескольких реквизитов в один (например, Фамилия + Имя + Отчество → Наименование), разбор одного поля на несколько, преобразование типов (строка в число), подстановка значения по умолчанию, когда источник пуст, поиск объекта приёмника по произвольным полям через запрос.

Для поиска связанных объектов в приёмнике часто применяется вызов Выполнить("Запрос...") или обращение к менеджерам объектов — но в событиях выгрузки контекст базы-приёмника недоступен, поэтому поиск организуют через правила поиска в ПКО или через параметры обмена. Это ограничение важно учитывать, чтобы не писать код, который физически не сможет выполниться.

Если одно и то же преобразование нужно в нескольких ПКС (например, склейка ФИО), вынесите его в алгоритм глобального модуля правил и вызывайте одной строкой. Так проще поддерживать правила и меньше риск рассинхронизации кода в разных местах.
ПЗ
Практическое замечание

Как проверить, что ПКС отработали правильно

Проверку всегда начинают на копии базы-приёмника, а не на рабочей. После тестовой загрузки сверяют несколько контрольных объектов: открывают выгруженный элемент справочника или документ и сравнивают каждый реквизит с источником вручную. Для документов дополнительно проверяют табличные части и движения по регистрам.

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

Контрольные точки

Как проверить результат обмена

Ссылочные реквизиты в загруженных объектах
Норма

Заполнены, открываются реальные объекты приёмника

Тревожный признак

Пустые значения или «Объект не найден» в протоколе

Числа и суммы документов
Норма

Совпадают с источником при выборочной сверке

Тревожный признак

Расхождения, округления, потерянные строки табличных частей

Протокол загрузки
Норма

Нет ошибок конвертации свойств

Тревожный признак

Сообщения об ошибках в обработчиках ПКС

Перечисления
Норма

Значения соответствуют по смыслу

Тревожный признак

Пустые значения из-за отсутствия ПКЗ

Типичные ошибки и ограничения при работе с ПКС

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

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

Типичные ошибки
01
Не указано правило конвертации для ссылочного свойства — в приёмнике остаётся пустая ссылка
02
Код в обработчике обращается к реквизиту, переименованному после обновления конфигурации — ошибка или потеря данных
03
Отсутствует ПКЗ для перечисления с разными именами значений — значения не переносятся
04
Тестирование обмена сразу на рабочей базе без резервной копии — риск порчи учётных данных
05
Флаг «Не замещать» выставлен случайно — изменения из источника не попадают в приёмник

Альтернативы и смежные механизмы обмена

Классические ПКС — не единственный способ организовать обмен. Для однотипных конфигураций часто достаточно типовых правил обмена, где правила уже настроены поставщиком и доработка не требуется. Для обмена с внешними системами (сайты, CRM, WMS) чаще применяют веб-сервисы, HTTP-запросы и форматы JSON/XML без Конвертации данных.

Сравнение подходов к обмену

ПКС в Конвертации данных 2.1

Гибкая настройка любых соответствий между разными конфигурациями; требует навыков разработки и сопровождения правил

Типовые правила обмена

Быстрый старт между поддерживаемыми конфигурациями; ограниченная кастомизация без доработки

Конвертация данных 3.0 (EnterpriseData)

Современный универсальный формат для обмена между продуктами 1С; другая архитектура правил, не классические ПКС

Веб-сервисы и API

Подходят для интеграции с не-1С системами; требуют самостоятельной разработки логики преобразования данных

Выбор зависит от задачи: разовая миграция между разными конфигурациями — типичный случай для Конвертации данных 2.1 с ручной настройкой ПКС; регулярный обмен между типовыми продуктами — повод сначала проверить типовые правила и только потом писать свои.

Итог

Что важно запомнить

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

Частые вопросы о ПКС в 1С

Чем ПКС отличается от ПКО?

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

Можно ли обойтись без Конвертации данных при обмене?

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

Почему после обмена ссылочный реквизит пустой?

Наиболее вероятные причины: для свойства не указано правило конвертации объекта, связанный объект не выгрузился (не попал в выборку или отфильтрован), либо правила поиска в ПКО не смогли найти объект в приёмнике. Проверьте протокол загрузки — там обычно есть сообщение «Объект не найден».

Где писать код преобразования — «Перед выгрузкой» или «При выгрузке»?

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

Что делать с ПКС после обновления конфигурации?

Заново выгрузите структуру метаданных обновлённой конфигурации, загрузите её в Конвертацию данных и проверьте правила: переименованные или удалённые реквизиты будут подсвечены как отсутствующие. Обновите затронутые ПКС и обработчики, затем выполните тестовый обмен на копии базы.

Подходят ли классические ПКС для обмена через универсальный формат EnterpriseData?

Нет, обмен в формате EnterpriseData строится на Конвертации данных 3.0, где вместо ПКО и ПКС используются правила обработки данных и правила конвертации объектов новой редакции с иной структурой. Механизмы похожи по смыслу, но правила между редакциями напрямую не переносятся.