gifts2017

Выгрузка документа Отражение зарплаты в регламентированном учете из ЗУП в УПП по правилам обмена через файловый ресурс (на кнопке Заполнить)

Опубликовал Olga Kazakevich (ok521) в раздел Обмен - Перенос данных из 1C8 в 1C8

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

 

Зачем это было нужно

 


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

 

Как это выглядит в ЗУП



 


Первая обработка ЗУП_ВыгузитьВФайлОбмена.epf подключается как внешняя обработка табличной части (Сервис - Дополнительные отчеты и обработки - Дополнительные внешние обработки табличных частей) в конфигурацию Зарплата и управление персоналом. Она выгружает документ ОтражениеЗарплатыВРеглУчете в XML файл по правилам обмена из макета.

 


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

 

N Представление объекта Табличная часть Представление кнопки Параметры обработки
1 Документ "Отражение зарплаты в регл учете" Отражение в учете    


параметры

Имя Значение
КаталогОбмена \\nksi . . . Nksi_ExchangeZUP_UPP\

 


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

 

Как это выглядит в УПП




Вторая обработка УПП_ЗагрузитьИзФайлаОбмена.epf подключается в конфигурацию Управление производственным предприятием аналогично, как внешняя обработка табличной части (Сервис - Дополнительные внешние отчеты и обработки - Обработки заполнения табличных частей). Она загружает до документ ОтражениеЗарплатыВРеглУчете из полученного XML файла. Каталог для обмена также нужно указать в строковом параметре КаталогОбмена подключаемой обработки. Это будет каталог, который предложит обработка для выбора файла для загрузки.

 

N Представление объекта Табличная часть Представление кнопки Параметры обработки
1 Документ "Отражение зарплаты в регл учете" Отражение в учете    


параметры

Имя Значение
КаталогОбмена \\nksi . . . Nksi_ExchangeZUP_UPP\



Для любознательных - коды



ЗУП_ВыгузитьВФайлОбмена.epf


В обработке

Реквизит ДополнительныеПараметры

Макет ПравилаОбмена типа двоичные данные



В модуле объекта



Процедура Инициализировать(Объект, ИмяТабличнойЧасти, ТабличноеПолеОбъекта) Экспорт
Ссылка = Объект.Ссылка;
Если ДополнительныеПараметры = Неопределено Тогда
КаталогОбмена = "\\ . . .\ExchangeZUP_UPP";
Иначе
КаталогОбмена = ДополнительныеПараметры.КаталогОбмена;
КонецЕсли;

ФормаИндикатора = ПолучитьОбщуюФорму("ХодВыполненияОбработкиДанных");
ФормаИндикатора.НаименованиеОбработкиДанных = "Выгрузка данных для УПП";
ФормаИндикатора.КомментарийОбработкиДанных = "Загружаются правила обмена";
ФормаИндикатора.КомментарийЗначения = "Обработанно:";
ФормаИндикатора.Открыть();

ФормаИндикатора.МаксимальноеЗначение = 5;
ФормаИндикатора.Значение = 1;

ОбработкаУниверсальныйОбменДаннымиXML = Обработки.УниверсальныйОбменДаннымиXML.Создать();
// Получим из макета правила обмена данными
УникальныйИдентификатор = Новый УникальныйИдентификатор();
ИмяВременногоФайлаПравилОбмена = КаталогВременныхФайлов() + УникальныйИдентификатор + ".xml";
МакетПравилОбмена = ПолучитьМакет("ПравилаОбмена");
МакетПравилОбмена.Записать(ИмяВременногоФайлаПравилОбмена);
ФормаИндикатора.Значение = 2;
// Загрузка в универсальную обработку XML правил обмена
ОбработкаУниверсальныйОбменДаннымиXML.ИмяФайлаПравилОбмена = ИмяВременногоФайлаПравилОбмена;
ОбработкаУниверсальныйОбменДаннымиXML.ЗагрузитьПравилаОбмена();
ФормаИндикатора.Значение = 3;

// Удаляем временный файл правил и внешней обработки
Попытка
УдалитьФайлы(ИмяВременногоФайлаПравилОбмена);
Исключение
КонецПопытки;

ТаблицаПравилВыгрузки = ОбработкаУниверсальныйОбменДаннымиXML.ТаблицаПравилВыгрузки.Скопировать();
ТекущееПВД = ТаблицаПравилВыгрузки.Строки[0].Строки[0];

ОбъектМетаданных = Метаданные.НайтиПоТипу(ТекущееПВД.ОбъектВыборки);
ИмяМетаданных = СтрЗаменить(ОбъектМетаданных.ПолноеИмя(), ОбъектМетаданных.Имя, ОбъектМетаданных.Представление());
Построитель = ОбработкаУниверсальныйОбменДаннымиXML.ПостроительОтчета;
Построитель.Текст = "ВЫБРАТЬ _.Ссылка КАК Ссылка ИЗ " + ТекущееПВД.ИмяОбъектаДляЗапроса + " КАК _ "+ "{ГДЕ _.Ссылка.* КАК " + СтрЗаменить(ТекущееПВД.ИмяОбъектаДляЗапроса, ".", "_") + "}";
Построитель.Отбор.Сбросить();

Если НЕ ТекущееПВД.НастройкиПостроителя = Неопределено Тогда
Построитель.УстановитьНастройки(ТекущееПВД.НастройкиПостроителя);
КонецЕсли;

Отбор = Построитель.Отбор;

Если Отбор.Найти("Документ_ОтражениеЗарплатыВРеглУчете") = Неопределено Тогда
Отбор.Добавить("Документ_ОтражениеЗарплатыВРеглУчете");
КонецЕсли;

Отбор.Документ_ОтражениеЗарплатыВРеглУчете.Использование = Истина;
Отбор.Документ_ОтражениеЗарплатыВРеглУчете.Значение = Ссылка;

ТекущееПВД.НастройкиПостроителя = Построитель.ПолучитьНастройки();
ТекущееПВД.ИспользоватьОтбор = ИСТИНА;

ОбработкаУниверсальныйОбменДаннымиXML.ТаблицаПравилВыгрузки = ТаблицаПравилВыгрузки;

ФормаИндикатора.КомментарийОбработкиДанных = "Выгружаются данные";
ФормаИндикатора.Значение = 4;

ФайлКудаВыгружать = Формат(Ссылка.Дата, "ДФ=""ММММгггг'г'""") + ".xml";

ОбработкаУниверсальныйОбменДаннымиXML.ИмяФайлаОбмена = КаталогОбмена + ФайлКудаВыгружать;
ОбработкаУниверсальныйОбменДаннымиXML.ДатаВыгрузкиДанных = Ссылка.Дата;

ОбработкаУниверсальныйОбменДаннымиXML.ВыполнитьВыгрузку();
Сообщить("Выгружено в файл: " + КаталогОбмена + ФайлКудаВыгружать);

ФормаИндикатора.Значение = 5;
ФормаИндикатора.Закрыть();

КонецПроцедуры




УПП_ЗагрузитьИзФайлаОбмена.epf


В обработке Реквизит ДополнительныеПараметры



В модуле объекта



Процедура Инициализировать(Объект, ИмяТабличнойЧасти, ТабличноеПолеОбъекта) Экспорт

Если ДополнительныеПараметры = Неопределено Тогда
КаталогОбмена = "\\ . . .\ExchangeZUP_UPP";
Иначе
КаталогОбмена = ДополнительныеПараметры.КаталогОбмена;
КонецЕсли;


Диалог = РаботаСФайлами.ПолучитьДиалогВыбораФайлов(Ложь, КаталогОбмена);
Диалог.Фильтр = "Файл XMLобмена (*.xml)|*.xml";
Если Не Диалог.Выбрать() Тогда
Возврат;
КонецЕсли;
ФайлОткудаЗагружать = Диалог.ПолноеИмяФайла;

ФормаИндикатора = ПолучитьОбщуюФорму("ХодВыполненияОбработкиДанных");
ФормаИндикатора.НаименованиеОбработкиДанных = "Загрузка данных из ЗУП";
ФормаИндикатора.КомментарийОбработкиДанных = "Загружаются данные из файла "+ФайлОткудаЗагружать;
ФормаИндикатора.КомментарийЗначения = "Обработанно:";
ФормаИндикатора.Открыть();

ФормаИндикатора.МаксимальноеЗначение = 5;
ФормаИндикатора.Значение = 1;

ОбработкаУниверсальныйОбменДаннымиXML = Обработки.УниверсальныйОбменДаннымиXML.Создать();
ОбработкаУниверсальныйОбменДаннымиXML.ИмяФайлаОбмена = ФайлОткудаЗагружать;
ОбработкаУниверсальныйОбменДаннымиXML.РежимОбмена = "Загрузка";
ОбработкаУниверсальныйОбменДаннымиXML.ОптимизированнаяЗаписьОбъектов = Истина;
ОбработкаУниверсальныйОбменДаннымиXML.ЗаписыватьРегистрыНаборамиЗаписей = Истина;
ОбработкаУниверсальныйОбменДаннымиXML.ЗаписыватьВИнформационнуюБазуТолькоИзмененныеОбъекты = Истина;
ОбработкаУниверсальныйОбменДаннымиXML.ЗагружатьДанныеВРежимеОбмена = Истина;
ФормаИндикатора.Значение = 2;

ОбработкаУниверсальныйОбменДаннымиXML.ВыполнитьЗагрузку();

ФормаИндикатора.Значение = 5;
ФормаИндикатора.Закрыть();
Объект.ОбменДанными.Загрузка = Истина ;
ФормаДокумента =Объект.ПолучитьФорму("ФормаДокумента");
ФормаДокумента.Модифицированность = Ложь;
ФормаДокумента.Закрыть();

ФормаДокумента.ДокументОбъект = ОбработкаУниверсальныйОбменДаннымиXML.Параметры.Документ;
ФормаДокумента.Открыть();

КонецПроцедуры
















Скачать файлы

Наименование Файл Версия Размер
ОбменПоКнопке.rar 74
.rar 75,58Kb
05.11.13
74
.rar 75,58Kb Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Владимир Лагутин (Lukich66) 23.10.13 20:53
Молодец. Хотя ситуация ЗиУП->УПП не так уж сильно распространена, но имеет место быть востребована. И тут Вы, спасибо. По честному,я не сторонник считать зарплату в УПП, у неё своих проблем ...
2. Иван Иванов (Famza) 01.11.13 14:03
(1) Lukich66,
Хотя ситуация ЗиУП->УПП не так уж сильно распространена, но имеет место быть востребована.

Однозначно
3. Иван Иванов (Famza) 01.11.13 14:06
Уже в который раз встречаю - файлы одной публикации, одной версии так сказать и не в архиве...
4. Иван Иванов (Famza) 01.11.13 14:38
(0) Начало загрузки: 01.11.2013 14:36:06
номер релиза принимающей конфигурации 1 345

Окончание загрузки: 01.11.2013 14:36:06

Загружено объектов: 22 //(из 1750!!!)
Заполнение ТЧ не произведено!
Поле объекта не обнаружено (Документ)

(стр. №45: ФормаДокумента.ДокументОбъект = ОбработкаУниверсальныйОбменДаннымиXML.Параметры.Документ;)
5. Борис Рукавицын (rukawizin) 06.11.13 21:00
Обнаружена ошибка при выгрузке из ЗУП :{Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(638)}: Поле объекта не обнаружено (УдалитьЛицензионный)
Возврат Менеджер[Значение];
6. mikhailovaew (mikhailovaew) 22.01.14 17:26
на картинке кнопка в ЗУП имеет заголовок "Выгузить в файл обмена". какие-то нехорошие задние ассоциации навевает...
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа