gifts2017

Автоматический ежедневный Перенос (Правила переноса) (выгрузка\загрузка) Сотрудников и кадровой истории ЗУП - УПП (КА)

Опубликовал Сергей Козынкин (Ulus) в раздел Обмен - Перенос данных из 1C8 в 1C8

Автоматический ежедневый перенос справочника Сотрудники организаций и кадроовй истории из 1С: Зарплаты и управления персонало (ЗУП) в 1С:Управление производственным предприятием (УПП) или в 1С:Комплексная автоматизация (КА).
Зачем?
Как?
Читаем ниже ....

 

Введение

Многие при внедрении УПП(КА) зарплату ставят отдельно и ведут в ней учет. Соответственно начисленную зарплату перегружают в УПП(КА). ИМХО это достаточно грамотное решение:

• Львиная доля обновление приходится именно на подсистему ЗУП. То есть, ведя зарплату отдельно, УПП(КА) можно обновлять гораздо реже. 

• ЗУП держится типовой, УПП же все равно «допиливается» на любом предприятии.

Собственно в чем проблема?

А в том, что при перегрузки ЗУП – УПП(документ Отражение зарплаты в регламентированном учете) сотрудники не перегружаются. Вся аналитика необходимая для подсистемы Управленческого, Бухгалтерского, Налогового учета – это Физические лица.

То есть, аналитика 70 счета – физические лица и.т.п.

То есть, Сотрудники «как бы и не нужны». Но это не так.

Когда вам нужны сотрудники в УПП:

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

P.S. Обратите внимание, что в подсистеме учета спецодежды, так же нужны только Физические лица. При передачи открывается справочник Сотрудники – это буферный справочник, чтобы не дать выбрать того физического лица, которое не работает на предприятии. При проведении документа в регистры накопления пишется ИМЕННО ФИЗИЧЕСКОЕ ЛИЦО.

2)Печатная форма авансового отчета. Там вы выбираете физическое лицо. А при печати находится Сотрудник, по этому физическому лицу, и определяется его должность. То есть нужен регистр сведений «Кадровая история сотрудников (по юр. лицам)»

3)Прочее. Например, у нас на предприятии: для учета спецодежды,  мы забиваем нормы на должность и подразделение(дописка конфигурации). То есть нам нужно четко знать кто на какой должности и в каком подразделение, чтобы определить сколько сейчас спецодежды в эксплуатации и сравнить с нормами.

Выводы:
В УПП(КА) нам нужны:
•Справочник «Сотрудники»
•Кадровая История Регистр сведение «Кадровая история (по юр. лицам)»

 

Методология

Заключается в перегрузки в автоматическом режиме Сотрудников и кадровой истории.
Что для этого сделано:
1)Написаны правила обмена, которые перегружают сотрудников и кадровую историю.
Тут опишу подробней:

ПВД «Сотрудники» просто зеркально перегружается справочник Сотрудники. Синхронизация ТОЛЬКО QUID.

ПВД «Работники организаций» выгружает кадровую историю.
Прежде чем описать подробнее данное ПВД сразу отчету на вопрос, который у вас скорее всего возник:

«Зачем второе ПВД ведь сотрудники по ссылкам могут выгрузится?»

Ответ: это не так, не все сотрудники попадают в кадровую историю (в регистр сведений). Например, принятые по договорам ГПХ, не отражаются в кадровой истории.

Итак, теперь как выгружается:
Источник: Выгружается ВСЯ кадровая история на дату.
Приемник: создается служебный документ «ВводСведенийОСотрудниках». И тут внимание Загружается только та кадровая история, которая изменилась относительно предыдущего дня.
Сразу отвечу на ваш вопрос, который у вас скорее всего возник: «Почему нельзя в источнике выгружать только измененную кадровую история: и файлик xml маленький будет и вообще грамотней».
Ответ: мы так сначала и сделали. Но пример:
ЗУП 26.09.2013: сделали прием на работу задним числом приняли его 10.09.2013. В кадровую историю «упал» с 10.09.2013 - работает.
Если выгружать и сразу в источнике анализировать изменение, то:
выгружаем 26.09.2013 смотрим какой кадровый срез был 25.09.2013 и что видим? Правильно: кадровая история не поменялась и поэтому в xml не попадет и, следовательно, в УПП не загрузится.
В итоге переделали: при загрузке, находясь в приемник, проверяем, если кадровая история поменялась, то строка попадает в документ «ВводИнформацииОСотрудниках».
В итоге в любом случае всегду грузится только измененная кадровая история!
P.S. При перегрузки остальных объектов(организации, должности, подразделения ...), мы старались синхронизировать так как сделано в типовой выгрузке «Отражения зарплаты в рег. Учете».

 
2)Накиданы маленькие обработки: vigruz.epf и zagruz.epf. Они сами запускают обработку УниверсальныйОбменДаннымиXML «подрубают» правило и соответственно выгружают и загружают.
3)Накиданы два батничка: vigruz.bat и zagruz.bat.

Которые соответственно запускают 1С и при запуске запускают наши : vigruz.epf и zagruz.epf.
Тут вы догадались, запускать мы будем их автоматом или стандартным «виндовозовскими» назначенными задания», или доп. софтом (у нас, например, Control agent)
Сразу отвечу на ваш вопрос, который у вас скорее всего возник Smile «А почему не рег. заданиями?»
Ответ: да, рег задание это круто, но у нас ЗУП файловая. А для файлового варианта надо чтобы клиент всегда был открыт. То есть некрасиво. Проще автоматом: запустил робота, выгрузил, закрыл.
Если у вас приемник и источник SQL, то тогда без вариантов, смело вешайте vigruz.epf и zagruz.epf на рег. Задание и вперед. Батнички не нужны.

 

Последовательность действий при внедрении

1) В 1С (ну и можно учетную запись Windows) добавляете пользователя Robot (пароль Robot)

2) Настраиваете Назначенные задания. У нас выгрузка в 11-00 загрузка в 11-30. Постарайтесь договориться с кадровой службой, чтобы все кадровые изменения делали до 11-00. 

3) Вешаете на эти назначенные задания : vigruz.bat и zagruz.bat 
Внимание: путь где лежат обработки выгрузки/загрузки у нас «F:\bases\UPP_ZUP\» Поменяйте в «батничках» при необходимости так же в обработках  vigruz.epf и zagruz.epf в ПриОткрытии() по умолчанию он ищет правила в тож же каталоге  «F:\bases\UPP_ZUP\». Поменяйте.

4) Наслаждаетесь результатом. Каждый день в 11-30 у вас актуальная кадровая история в УПП(КА)

Так же хотелось бы обратить внимание на следующее:

Если у вас в УПП уже есть Сотрудники и вносили вы их сами руками, QUID у вас будут отличаться с ЗУП.
Рекомендации:
1)Удалите весь справочник Сотрудники. Он вам не нужен, ссылок на них нет. Так как я писал выше вся аналитика необходимая для УУ,БУ,НУ висит на физических лицах. Мы так и сделали, ссылки, которые на них были удалили (служебные ссылки и задачи)
2)Заново уже текущими правилами грузите Сотрудников. В итоге у вас загрузится Сотрудники и кадровая история.
3)Так же можно за предыдущий период всю кадровую историю загрузить. Мы, например, загрузили с 01.01.2012, то есть за 1,5 года. Правда для этого написали еще одну обработку, которая с периодичностью в три дня перелопатила все 1,5 года, создавая документ «ВводИнформацииОСотрудниках».

И последний момент:

У вас в идеале будет совпадать справочник сотрудников в УПП и ЗУП кроме …. СРОЧНЫХ КАДРОВЫХ ИЗМЕННИЙ.
Поясню на примере:
  Иванов И.И. подразделение Отдел ИТ; должность программист.
  ЗУП: делаем Кадровой перемещение и переводим с 01.10.2013 до 15.10.2013  ВРЕМЕННО на старший программист.
  ЗУП: при проведении кадрового перемещения 1С:ЗУП видит что это «временно» и не меняет у него «ТекущуюДолжность» и «ТекущееПодразделение», то есть в форме списка справочника Сотрудники вы так же будете видеть         Иванова И.И. программистом.
  Но … в кадровой истории(в регистре сведение) он Старший программист.
  УПП: при загрузке правила увидят что он Старший программист и в «Ввод ИнформацииОСотрудниках» он включится. А при проведении этого документа 1С:УПП всегда меняет у него «ТекущуюДолжность» и      «ТекущееПодразделение». Итог: в форме списка вы увидите в УПП его как старшего программиста. 
Резюме: кадровая история «один в один», отличие только в реквизитах справочника Сотрудники: «ТекущуюДолжность» и «ТекущееПодразделение».
Далее после 15.10.2013 года все встанет на свои места..

P.S. Все файлы упакованы у один архив
 Сотрудникиxml.xml – наши правила описаны выше
 ПравилаОбменаЗУП_БП20.xml – типовые правила, которые перегружают отражение зарплаты в регламентированном учете. Могут пригодится.
vigruz.epf – обработка выгрузки
zagruz.epf – обработка загрузки
vigruz.bat – батничек выгрузки
zagruz.bat – батничек загрузки

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

Наименование Файл Версия Размер Кол. Скачив.
Автоматическая перегрузка сотрудников
.zip 16,29Kb
07.10.13
135
.zip 16,29Kb 135 Скачать

См. также

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

Комментарии

1. unior (didkovskij) 08.10.13 10:14
Как вариант. Историю изменений кадровой информации в подобной задаче реализовывал через план обмена. Включил нужные документы. Если документ записан (не важно что там изменилось) - уходит в обмен. После выгрузки регистрация очищается.
relanium86; +1 Ответить
2. Сергей Козынкин (Ulus) 08.10.13 13:03
Да согласен у любой задачи есть несколько вариантов решения.
Тут вопрос кому как проще и кому как кажется "красивее".
Через План обмена неплохой вариант. Даже больше скажу ... красивый вариант. Мы в таблицах регистрация изменений видим то, что изменилось. И решается проблема с тем что в источнике работают "задним числом".
Он был у нас при обсуждении как реализовать данную задачу.
Но создавать план обмена это больше работы на порядок.
Мы пошли по наименьшему сопротивлению ...
3. Сергей Козынкин (Ulus) 08.10.13 13:08
Если документ записан (не важно что там изменилось) - уходит в обмен.

НУ и еще момент. Я как понял вы грузите первичку:
Кадровое перемещение - Кадровое перемещение
Мы же не стали заморачиваться в УПП всю кадровую историю заполняем через служебный документ "Ввод информации о сотрудниках".
Всю отчетность (формы Т-2 справки и.т.п.) мы же делаем в ЗУП
В УПП нам просто надо знать АКТУАЛЬНЫЙ КАДРОВЫЙ СРЕЗ. И все.
Ну а создавать документ ВводИнформацииОСотрудниках мне кажется попроще.
В Источнике накидал произвольный запрос (как душе угодно)
В приемнике заполняем табличную часть документа "ВводИнформацииОСотрудниках".
4. hopter _ (hopter) 09.10.13 02:07
quid это все же guid, я так думаю

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

5. Сергей Козынкин (Ulus) 09.10.13 05:36
Физ. лица стандартно по ссылка грузятся. Физ лицо это же реквизит справочника сотрудники.
Обратите внимание синхронизация справочника Физ лица такая же как в типовых правилаж перегрузки зарплаты.
quid это все же guid, я так думаю

:) ну да
6. suhoi (suhoi) 05.01.14 10:34
Хотелось бы чтобы правила были сохранены в макеты а в обработках присутствовала как возможность пакетного запуска так и интерактивного - а так все корректно отработало. Спасибо!
7. Сергей Козынкин (Ulus) 05.01.14 15:17
Рад помочь!
Про макеты согласен. Руки может доберуться :).
обработках присутствовала как возможность пакетного запуска так и интерактивного

Тут не понял. Обработки выгрузки и загрузки просто подпилинные стандартные обработки xml выгрузки и загрузки.
Интерактивно можно просто стандартно перекинуть
1 Из ЗУП выгрузили : Сервис - обмен данными - Универсальный обмен данными. Правила подсунули при выгрузке
2 В УПП загрузили (полный интерфейс): меню Сервис - Прочие обмены данными - Универсальный обмен данными в формате Xml.
8. Сергей Григорьев (Теософ) 12.02.14 18:24
Добрый день! Не могу добиться, чтобы кадровая история подгружалась. УПП изначально пустая. Может как раз в этом-то и дело? Кто знает, в чём тут может быть дело? Автору сообщение отправил, но он редко здесь бывает, а задача срочная.
Прикрепленные файлы:
9. Сергей Козынкин (Ulus) 13.02.14 05:56
(8) Теософ,
Ну почему же редко. Я увидел сообщение по рассылке сразу ответил. Сразу не увидел, возможно у нас разница во времени.
чтобы кадровая история подгружалась

Я вам в личку написал, сначало, пожалуйста, подробней что вы подразумеваетет под этой фразой?
Если вы ждете документы "Прием на работу", "Кадровое перемещение" то их и не будет прочтите описание.
Или у вас не создался документ "Ввод информации о сотрудниках"(или если создался посмотрите проведен ли он)? Так же у вас не наполняется при первой загрузке справчники Сотрудники и Физ. лица? То это другой вопрос. Но нужна доп. информация:
пишите грузите ЗУП - УПП ?
Какие релизы?
Так же если есть какие то диагностические ошибки опишите их. Можно в личку. Чем смогу помогу.
10. Александр Майнагашев (dedicated) 29.05.14 14:07
Спасибо большое! Давно хотел настроить синхронизацию баз, тут наткнулся на вашу обработку. Проверил, работает на УПП 1.3.51.5 и ЗУП 2.5.79.4, буду использовать.
11. Сергей Козынкин (Ulus) 30.05.14 05:31
Приятно, что кому-то полезно.
Спасибо за плюс :).
12. Александр Майнагашев (dedicated) 02.06.14 08:43
Если кому то пригодиться, для клиент-серверного варианта 1С, как настроить чтобы выгрузка выполнялась сразу в базу приемник, без промежуточного файла. Достаточно в обработке выгрузки использовать следующий код:
	ФайлОбмена = Ложь;
	ИмяФайлаОбмена = "C:\Users\all\Desktop\Обмен\Сотрудники_Выгрузка.xml";  // путь к файлу выгрузки в случае если используется выгрузка через файл
    ИмяФайлаПравилОбмена = "C:\Users\all\Desktop\Правила_обмена\Правила_Сотрудники.xml"; // путь к файлу правил выгрузки
	
	ИмяСервера = "1c.local"; // сетевое имя сервера 1С
	ИмяБазыДанных = "УПП";   // имя базы данных в кластере
	Пароль = "password";   // пароль пользователя
	ИмяПользователя = "Администратор"; // пользователь
	
	Обработка = Обработки.УниверсальныйОбменДаннымиXML.Создать();
	Обработка.РежимОбмена ="Выгрузка"; 
	Обработка.ИмяФайлаПравилОбмена = ИмяФайлаПравилОбмена;

	ДатаСегодня = ТекущаяДата();	
	Обработка.ДатаОкончания = ДатаСегодня; 
	Обработка.ДатаНачала = Обработка.ДатаОкончания - 86400;
	Обработка.ВыгружатьТолькоРазрешенные = Истина;
	Обработка.ТипУдаленияРегистрацииИзмененийДляУзловОбменаПослеВыгрузки=0­; // 0 - не снимать регистрацию,
                                                                        // 1 - снимать регистрацию
	Обработка.ЗагрузитьПравилаОбмена();	
	
	Если ФайлОбмена Тогда
			Обработка.ИмяФайлаОбмена = Обработка;
	Иначе
			Обработка.ВерсияПлатформыИнформационнойБазыДляПодключения="V82";
            Обработка.ИмяСервераИнформационнойБазыДляПодключения=ИмяСервера;
    		Обработка.ИмяИнформационнойБазыНаСервереДляПодключения=ИмяБазыДанных;
    		Обработка.ПарольИнформационнойБазыДляПодключения=Пароль;
    		Обработка.ПользовательИнформационнойБазыДляПодключения=ИмяПользователя­;
    		Обработка.ТипИнформационнойБазыДляПодключения=Ложь;
    		Обработка.АутентификацияWindowsИнформационнойБазыДляПодключения=Ложь;
    		Обработка.НепосредственноеЧтениеВИБПриемнике=Истина;
    	КонецЕсли;
		Обработка.ВыполнитьВыгрузку();
    ЗавершитьРаботуСистемы(Ложь);
...Показать Скрыть
13. Сергей Козынкин (Ulus) 02.06.14 09:53
(12) dedicated,
Спасибо, красивее бесспорно.

Еще наверно стоить упомянуть, что данная реализация (в целом, а не в части выгрузки в БД приемника напрямую) все-таки применима, когда относительно небольшой штат сотрудников.
Думаю, если сотрудников 10 000, то постоянно выгружать ВЕСЬ кадровый срез и в приемнике анализировать - это не оптимально.
То есть все дороги идут … к плану обмена.
Дабы добиться выгрузки только измененной кадровой истории.
В случае с планом обмена уже односторонней выгрузкой не обойтись, так как надо квитанцию из приемника (в нашем случае УПП) получать, чтобы смело очищать таблицу регистрации, в части полученных приемником данных.
14. Александр Майнагашев (dedicated) 04.06.14 06:50
Спасибо за наводку, как раз с этим столкнулся. Если, например, у уже загруженного физлица поменялись паспортные данные в ЗУП, в УПП при выгрузке эта информация не попадает. Смотрю в сторону планов обмена.
15. Дмитрий_71_rus_71 (Дмитрий_71_rus_71) 09.10.15 15:06
Спасибо за разработку. Воспользовался ей в УПП 1.3.63.2 и ЗУП 2.5.93.2. Всё вроде бы прошло неплохо. Будем смотреть дальше.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа