Доработка правил конвертации ЗУП->Бух1.2: выгрузка кадровых документов

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

Конфигурации: Зарплата и Управление Персоналом для Украины, редакция 2.1 (2.1.47.1) и Бухгалтерия для Украины, редакция 1.2 (1.2.25.1) 

Для обмена между ЗиУП и другими бухгалтерскими конфигурациями предусмотрена обработка "Выгрузка данных в 1С:Бухгалтерию", которая входит в состав ЗиУП.

Бухгалтерию 8 для Украины"

Эта обработка использует еще одну встроенную обработку "Универсальный обмен данными в формате XML". Правила обмена размещаются в виде макета двоичных данных:

Макеты с правилами обмена

В данном случае, нас интересует файл "ПравилаОбмена12".

Редактируем правила обмена

Для редактирования правил обмена используется конфигурация 1С "Конвертация данных" версии 2.1. Данная конфигурация представляет, своего рода, IDE для создания и редактирования правил обмена между любыми конфигурациями 1С:

Конфигурация Конвертация данных 2.1

Добавляем Правила Конвертации Объектов (ПКО)

Обе конфигурации (ЗиУП и Бухгалтерия) в большей степени совпадают в плане реквизитов кадровых документов и создание ПКО не представляет особой сложности. Достаточно воспользоваться помощником и он автоматически сопоставит реквизиты с совпадающими именами:

Настройка ПКС для документа "Прием на работу в организацию"

ЗиУП позволяет устанавливать для сотрудников сложные начисления с несколькими параметрами. В табличной части "Основные начисления" документа приема на работу ЗиУП используется до 6-ти показателей начисления. В конфигурации "Бухгалтерия для Украины" в аналочичном документе для указания размера начисления используется один одноименный реквизит. 

В нашем случае в зарплатной конфигурации не используется сложных начислений и мы можем сразу указать ПКС для реквизита "Показатель1":

ПКС для реквизита "Показатель"

В поставленной задаче, начисления, для которых не указана сумма, переносить не надо. Значит в правила конвертации группы свойств (ПКГС) "ОсновныеНачисления" в событие "Перед выгрузкой" добавим код:

Если НЕ ЗначениеЗаполнено(ОбъектКоллекции.Показатель1) Тогда
	Отказ = Истина; //Не выгружать эту строку  документа
КонецЕсли;

Отметим флажок "Автоматически генерировать номер или код, если он не задан" поскольку нумерация документов в источнике и приёмнике не совпадает. Кроме этого, отключим выгрузку реквизита "Номер" для источника. В нашем случае, основной учет ведется в базе ЗиУП, поэтому нас устроит поиск документа по внутреннему идентификатору.

Редактируем Правила выгрузки данных (ПВД)

Для выгрузки других документов используется способ выборки "Произвольный алгоритм" и для новых документов необходимо создать новые ПВД. В текущих правилах используется следующий алгоритм:

  1. Получаем текст запроса;
  2. Устанавливаем параметры запроса;
  3. Меняем в тексте запроса строку "//Доп условие" на дополнительные условия, которые формируются исходя из того, задали ли мы дату начала и дату окончания выгрузки;
  4. Результат запроса в виде таблице значений записываем в переменную "Выборка данных", которая затем будет обрабатываться ПКО.

Создадим 3 ПВД для наших новых документов по аналогии с существующими. На рисунке представлен ПВД "ПриемНаРаботуОрганизаций":

Правила выгрузки данных "Прием на работу в организацию"

Обязательно! Поскольку в ПВД используется произвольный алгоритм, необходимо в правилах конвертации объекта отметить флажок "Не запоминать выгруженные", иначе будет выгружаться только один документ:

Флаг "Не запоминать выгруженные"

Редактируем конфигурацию ЗиУП

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

СтрокаДерева				=	ТаблицаПравилВыгрузки.Строки.Добавить();
СтрокаДерева.Наименование	=	"Кадровые документы";
СтрокаДерева.Включить		=	Истина;

При нажатии на кнопку "Выполнить" вызывается процедура "КнопкаВыполнитьНажатие", которая открывает обработку "Универсальный обмен данными XML" и производит ее первоначальную настройку в зависимости от выбранных параметров и версии конфигурации 1С:Бухгалтерия. После этого происходит перебор в цикле правил выгрузки данных (ПВД) и их активация/деактивация в зависимости от видов выгружаемых объектов. Добавим в цикл:

ИначеЕсли Наименование = "ПриемНаРаботуВОрганизацию" Тогда
	
	СтрокаТаблицаПравилВыгрузки = ТаблицаПравилВыгрузки.Строки.Найти("Кадровые документы",,Истина);
	Если СтрокаТаблицаПравилВыгрузки <> Неопределено Тогда
		СтрокаУровня2.Включить = Число(СтрокаТаблицаПравилВыгрузки.Включить)
	КонецЕсли;
	
ИначеЕсли Наименование = "КадровоеПеремещениеОрганизаций" Тогда
	
	СтрокаТаблицаПравилВыгрузки = ТаблицаПравилВыгрузки.Строки.Найти("Кадровые документы",,Истина);
	Если СтрокаТаблицаПравилВыгрузки <> Неопределено Тогда
		СтрокаУровня2.Включить = Число(СтрокаТаблицаПравилВыгрузки.Включить)
	КонецЕсли;	
	
ИначеЕсли Наименование = "УвольнениеИзОрганизаций" Тогда
	
	СтрокаТаблицаПравилВыгрузки = ТаблицаПравилВыгрузки.Строки.Найти("Кадровые документы",,Истина);
	Если СтрокаТаблицаПравилВыгрузки <> Неопределено Тогда
		СтрокаУровня2.Включить = Число(СтрокаТаблицаПравилВыгрузки.Включить)
	КонецЕсли;	

Конечный результат

Выгрузка данных с опцией "Кадровые документы"


Похожие материалы

Комментарии