Как перенести пользовательские виды начислений между базами 1С:ЗКГУ 8.3?

Программист 1С v8.3 (Управляемые формы) 1С:Зарплата и Управление Персоналом Сфера услуг, туризм и социальный сектор
← На главную

При администрировании нескольких однотипных баз 1С:Зарплата и кадры государственного учреждения (ЗКГУ) часто возникает задача: перенести вид начисления, созданный и настроенный в одной базе, в другую. На первый взгляд, это кажется простой операцией экспорта-импорта. Однако на практике пользователи сталкиваются с задвоением существующих начислений и ошибками вроде «объект не найден» или «Значение не является значением объектного типа» при попытке открыть загруженное начисление.

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

Причина ошибок: связанные данные

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

Ключевые зависимости для вида начисления:

  1. Показатели расчета: Любая формула начисления использует показатели (например, Оклад, ПроцентПремии, МРОТ). Это элементы справочника ПоказателиРасчетаЗарплаты.
  2. Виды доходов: Для корректного расчета налогов и взносов каждое начисление связано с элементами справочников ВидыДоходовНДФЛ и ВидыДоходовСтраховыхВзносов.
  3. Базовые начисления: Если начисление является зависимым (например, премия процентом от оклада), его формула ссылается на другие виды расчета из того же плана видов расчета Начисления.
  4. Способы отражения в учете: Информация о том, на какие счета бухгалтерского учета относить затраты по данному начислению (справочник СпособыОтраженияЗарплатыВБухучете).

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

Решение 1: Стандартная обработка «Выгрузка и загрузка данных XML»

Этот встроенный инструмент отлично подходит для разового переноса данных между идентичными релизами конфигураций. Секрет его правильного использования — в выгрузке не только самого начисления, но и всех его зависимостей в одном XML-файле.

Рассмотрим пошаговый алгоритм:

  1. Найдите и запустите стандартную обработку «Выгрузка и загрузка данных XML». Обычно она доступна через меню «Все функции».
  2. На вкладке «Выгрузка» в табличной части «Выгружаемые данные» необходимо добавить строки для каждого типа зависимых объектов.
  3. Шаг 1. Добавляем начисления. Нажмите «Добавить». В колонке «Данные» выберите План видов расчета: Начисления. Затем настройте отбор, чтобы выгрузить только нужные вам элементы. Например, установите отбор по полю «Наименование» с условием «В списке» и выберите созданные вами начисления. Это предотвратит выгрузку и последующее задвоение типовых начислений.
  4. Шаг 2. Добавляем связанные показатели. Добавьте новую строку. В колонке «Данные» выберите Справочник: Показатели расчета зарплаты. Установите отбор по наименованию, чтобы выгрузить только те показатели, которые используются в ваших начислениях.
  5. Шаг 3. Добавляем виды доходов. Аналогично добавьте строки для Справочник: ВидыДоходовНДФЛ и Справочник: ВидыДоходовСтраховыхВзносов, отобрав используемые в начислениях элементы.
  6. Шаг 4. Добавляем другие зависимости. Если ваше начисление использует специфические способы отражения в учете или зависит от других нетиповых начислений, их также нужно добавить в список выгружаемых данных с соответствующими отборами.
  7. Укажите имя файла и нажмите кнопку «Выгрузить данные».
  8. В базе-приемнике откройте эту же обработку, перейдите на вкладку «Загрузка», выберите созданный файл и нажмите «Загрузить данные».

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

Решение 2: Использование «Инструментов разработчика»

Для тех, кто часто работает с данными, существует незаменимый набор обработок, известный как «Инструменты разработчика» (ИР). Его можно найти на просторах интернета. В составе этого набора есть своя, усовершенствованная версия обработки выгрузки/загрузки данных.

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

Решение 3: Профессиональный подход с «Конвертацией данных»

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

Этот метод является наиболее мощным и надежным, но требует определенных навыков.

Краткая суть процесса:

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

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

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

← На главную