Перенос данных из ЗУП 2.5 в ЗУП 3.1

Публикация № 527493

Обмен - Перенос данных из 1C8 в 1C8

Перенос данных из ЗиУП 2.5 в ЗУП 3.1 ЗУП25 ЗУП3 ЗУП 31 ЗУП 3 ЗУП 25 перенос

34
Данная обработка предназначена для переноса некоторых данных из ЗУП 2.5 в ЗУП 3.1 через COM-соединения. Была написана потому, что типовые правила переноса не предоставляют возможности переносить данные по отдельности, а некоторые данные не переносят вовсе. Тестировалась на версии 3.1.8.216 (8.3.12.1790)

Обращаю внимание, что большинство данных переносится по УИД, в связи с этим при повторном переносе данных будет возникать ошибка "ссылка уже существует". Переносить нужно ТОЛЬКО на чистую базу. 

Данная обработка позволяет переносить следующую информацию:
1. Организация
2. Подразделения
3. Регистрация в налоговом органе
4. Должности
5. Сотрудники
6. Физ.лица
7. ФИО Физлиц
8. Статусы физ лиц НДФЛ
9. Статусы застрахованных физлиц
10. Контактная информация
11. Гражданство
12. Документы физ.лиц
13. Образование
14. Состав семьи
15. Семейное положение
16. График работы
17. Северная надбавка
18. Параметры исчисления СН
19. Дополнительные сведения по должности и подразделению
20. Пользователи
Из документов переносятся:
1. Прогул неявка
2. Больничные
3. Работа в выходные
4. Разовые начисления
5. Отпуска и отпуска без оплаты
6. Исполнительные листы
7. Мат.помощь
8. Командировка
9. Входящая и исходящая справки о заработке
10. Натуральные доходы
11. Удержания 

 Кадровые документы отлично переносятся типовыми правилами переноса, поэтому их в этой обработке нет. В тех справочниках, где это имеет смысл, данные переносятся по УИД (Сотрудник, Физик и так далее), поэтому то, что грузится правилами, лучше грузить потом, чтобы подцепило данные по УИД.

Для работы с обработкой требуется:
1. Заполнить данные подключения к базе ЗУП 2.5:
 
2. Поскольку некоторые данные требуют переноса в разрезе видов расчета (Начисления в ЗУП 3), например, разовые начисления, премиии так далее, то необходимо настроить таблицу соответствия кодов и наименований видов расчетов из ЗУП 2.5 и начисления из ЗУП 3:
 
3. Для переноса документов Материальная помощь требуется указать коды видов расчетов из 2.5, которые относятся к материальной помощи:
 
4. Для переноса разовых начислений требуется указать коды видов расчетов, которые относятся к разовым начислениям (основные и дополнительные):

5. После этого можно отметить галками те данные, которые требуется перенести, выбрать период и нажать кнопку загрузить.
 

UPD: 
1. Добавлена возможность подключения для платформы 8.2

2. Исправлена ошибка, которая не позволяла использовать в имени пользователя пробел

3. Добавлена возможность проверки подключения к базе до загрузки

4. Добавлена возможность загрузки соответствий и списков из табличного документа (копированием из Excel)

5. Добавлена работа в файловом режиме

6. Добавлена возможность перенести СН как для ЗУП 3.1.3.x, так и для ЗУП 3.1.4.x и новее, поскольку в новых конфигурациях было изменено место хранения информации о северных надбавках. 

 

34

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

Наименование Файл Версия Размер
Перенос из ЗУП 2.5 в ЗУП 3.1
.epf 53,06Kb
01.02.18
580
.epf 1.5.1 53,06Kb 580 Скачать

См. также

Специальные предложения

Комментарии
Избранное Подписка Сортировка: Древо
1. ben_art 13 26.05.16 17:40 Сейчас в теме
У Вас название с описанием не сходятся
3. yojeeg 95 26.05.16 22:28 Сейчас в теме
(1) ben_art, спасибо, исправил
2. Alik_1c 26.05.16 20:36 Сейчас в теме
да уж, не ясно толи из ЗУП 2,5 в ЗУП 3,0 или на оборот :)
4. yojeeg 95 26.05.16 22:30 Сейчас в теме
(2) Alik_1c, ЗУП 3.0 такого качества, что действительно впору писать и такую обработку, которая из 3.0 в 2.5 переносит :)
Death_eye; +1 Ответить
5. ylyas 25 15.02.17 17:38 Сейчас в теме
Ошибка в коде, молодой человек:
МассивКодов = КодыДопНачислений.Выгрузить().ВыгрузитьКолонку(не указан обязательный параметр);

МассивКодов = КодыОсновныхНачислений.Выгрузить().ВыгрузитьКолонку(не указан обязательный параметр);
7. yojeeg 95 15.03.17 17:45 Сейчас в теме
6. ylyas 25 15.02.17 18:03 Сейчас в теме
Функция СоответствиеВидовРасчета(ВходящийКод, ВходящееНаименование)
	
	Начисление = ПланыВидовРасчета.Начисления.ПустаяСсылка();
	Таблица = СоответствиеВидовРасчета.Выгрузить();
	
	НайденныеСтроки = Таблица.Найти(Новый Структура("Код, Наименование", СокрЛП(ВходящийКод),СокрЛП(ВходящееНаименование)));
	Если НайденныеСтроки.Количество() > 0 Тогда 
		Возврат НайденныеСтроки[0].Начисление;		
	Иначе 
		Возврат Начисление;
	КонецЕсли;
	
КонецФункции
Показать


Простите, у кого нибудь вообще работает перенос документов??
Тут явно должен быть метод "Таблица.НайтиСтроки()", чтобы сработала такая проверка..
Процедура не рабочая...

Или я что то упускаю???
8. yojeeg 95 15.03.17 17:45 Сейчас в теме
(6)Благодарю, исправлено - присылайте e-mail
9. ylyas 25 16.03.17 13:37 Сейчас в теме
(8)
ммм.. а зачем вам мой емэйл??
10. yojeeg 95 22.03.17 16:06 Сейчас в теме
11. sferg007 27.06.18 21:31 Сейчас в теме
У меня вот такое выходит при загрузке

{ВнешняяОбработка.ПереносДанныхИзЗУП2_5вЗУП3.МодульОбъекта(3492)}: Ошибка при вызове метода контекста (Записать): Ошибка при попытке вставки записи с неуникальным значением ссылки.
таблица Reference291.

И таких строк много с разными значениями Reference

Загружаю в пустую базу того же релиза на котором вы тестировали.
12. yojeeg 95 12.07.18 17:13 Сейчас в теме
(11) Слишком мало информации для понимания ошибки. Это ошибка в процедуре записи объекта в базу. Процедура записи одна для всех объектов.

Судя по описанию ошибка возникает у вас при переносе какого-то объекта, которые переносится по УИД. И если ругается, что он уже есть, значит в базе он уже действительно есть. Значит либо база не совсем пустая. Либо при получении данных из ЗУП 2.5 задвоились данные в каком-то месте. Почему задвоились: справочник какой-то доработанный или еще какая причина. Проверьте на чём конкретно обработка падает и на наличие доработок метаданных в этом месте в ЗУП 2.5.
36. Anthon 229 20.02.19 17:02 Сейчас в теме
(12) Всё банально. В обработке нет проверки на то, переносились сотрудники уже или нет. И никакого контроля. Пришлось добавить строчки

ФИО = СокрЛП(СтрПолучитьСтроку(СтрЗаменить(СокрЛП(СтрЗаменить(Выборка.СотрудникиОрганизацийСсылка.Наименование, " ", " ")), "(", "" ""), 1));
Доп = СокрЛП(СтрПолучитьСтроку(СтрЗаменить(СокрЛП(СтрЗаменить(Выборка.СотрудникиОрганизацийСсылка.Наименование, " ", " ")), "(", "" ""), 2));
Если НЕ Справочники.Сотрудники.НайтиПоНаименованию(ФИО).Пустая() Тогда
Сообщить("Сотрудник " + Выборка.СотрудникиОрганизацийСсылка.Наименование + " уже загружен, пропускаем.");
Продолжить;
КонецЕсли;
Если COM_Соединение.ЗначениеЗаполнено(Выборка.СотрудникиОрганизацийСсылка) Тогда

И

Если НЕ ФизическиеЛица.НайтиПоНаименованию(СокрЛП(СтрЗаменить(Выборка.СотрудникиОрганизацийФизлицоСсылка.Наименование, " ", " "))).Пустая() Тогда
Сообщить("Физлицо " + Выборка.СотрудникиОрганизацийФизлицоСсылка.Наименование + " уже загружено, пропускаем.");
Продолжить;
КонецЕсли;

Если COM_Соединение.ЗначениеЗаполнено(Выборка.СотрудникиОрганизацийФизлицоСсылка) Тогда

кроме того, все перенесенные этой обработкой сотрудники становятся "призраками", потому что для работы в программе необходимо заполнение еще как минимум двух регистров, а лучше еще пятнадцать. Хотя бы таким кодом

ЗаписатьОбъект(НовыйСотрудник);


МенеджерЗаписи = РегистрыСведений.ДанныеДляПодбораСотрудников.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Наименование = НовыйСотрудник.Наименование;
МенеджерЗаписи.Сотрудник = НовыйСотрудник.Ссылка;
МенеджерЗаписи.ФизическоеЛицо = НоваяСсылкаФизЛицо;
МенеджерЗаписи.Наименование = НовыйСотрудник.Наименование;
МенеджерЗаписи.ИдентификаторЗаписи = Новый УникальныйИдентификатор;
МенеджерЗаписи.ПоДоговоруГПХ = Найти(Доп, "дог") <> 0;
МенеджерЗаписи.Организация = Справочники.Организации.НайтиПоНаименованию("блаблабла ваша контора");
МенеджерЗаписи.ЭтоГоловнойСотрудник = Истина;
МенеджерЗаписи.ВидЗанятости = Перечисления.ВидыЗанятости.ОсновноеМестоРаботы;
МенеджерЗаписи.ВидДоговора = Перечисления.ВидыДоговоровССотрудниками.ТрудовойДоговор;
МенеджерЗаписи.ВидЗанятости = Перечисления.ВидыЗанятости.ОсновноеМестоРаботы;
МенеджерЗаписи.Начало = Дата("31.12.1899 00:00:00");
МенеджерЗаписи.Окончание = Дата("31.12.3999 00:00:00");
МенеджерЗаписи.Записать();

МенеджерЗаписи = РегистрыСведений.РолиСотрудников.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Сотрудник = НовыйСотрудник.Ссылка;
МенеджерЗаписи.РольСотрудника = ?(Найти(Доп, "дог") = 0, Перечисления.РолиСотрудников.Работник, Перечисления.РолиСотрудников.Договорник);
МенеджерЗаписи.Записать();


кроме того, поправил еще штук тридцать ошибок, чтобы все заработало, но все равно обработка мне сэкономила пару часов.
не хватает переносов приемов на работу/кадровых переводов, так как многие руководители людят устраивать чистки (иногда даже фиктивные) на 01.01.

ах да. на адреса ТС, видимо, забил.

вам, наверное, уже неактуально, а вот следующим хомякам будет полезно.
13. ksenym 28.07.18 16:49 Сейчас в теме
У меня такая ошибка: {ВнешняяОбработка.ПереносДанныхИзЗУП2_5вЗУП3.МодульОбъекта(2451)}: Значение не является значением объектного типа (Свернуть)

ТаблицаДокументов.Свернуть("Документ,УИД");
14. yojeeg 95 30.07.18 09:52 Сейчас в теме
15. ksenym 30.07.18 13:20 Сейчас в теме
(14) А как получить исправленную обработку?
16. yojeeg 95 30.07.18 13:39 Сейчас в теме
(15) Пришлите в личку свою почту
17. ksenym 30.07.18 13:45 Сейчас в теме
(16) Напишу здесь. У меня почему то личное сообщение не отправляется. ksenym@inbox.ru
18. svegl 13 06.09.18 14:29 Сейчас в теме
Добрый день! Типовым переносом 1С были перенесены остатки и справочники на начало года. Возможно ли с помощью Вашей обработки дозагрузить документы за текущий год? Не будет задвоений в справочниках? На релизах 3.1.7 будет работать?
19. yojeeg 95 12.09.18 17:19 Сейчас в теме
Обработка тестировалась на релизах 3.1.5. Задвоений быть не должно, поскольку при переносе документов данные не создаются. Элементы справочников ищутся по ГУИдам, для обработки это критично.
20. German_Tagil 6 17.10.18 10:39 Сейчас в теме
21. as7bs 147 28.11.18 08:09 Сейчас в теме
Добрый день. На 3.1.8 не загружаются адреса физических лиц. Может кто-уже сталкивался и решил данную проблему.
22. yojeeg 95 28.11.18 15:50 Сейчас в теме
(21)Добрый день, пока Вы первый, кто заявил о такой проблеме. Я проверю.
23. as7bs 147 30.11.18 07:49 Сейчас в теме
(22) Мне уже это пока не актуально: загрузил адреса другим способом.
Я так думаю, связано с тем, что в 3.1.8 используется новый ФИАС2.
24. user614822 25 30.11.18 10:10 Сейчас в теме
25. OkeanObuvi 07.12.18 11:55 Сейчас в теме
Роман, приветствую, скачал Вашу обработку, можете дать комментарии по пунктам 2, 3 и 4
26. yojeeg 95 12.12.18 10:27 Сейчас в теме
(25)Добрый день, а что конкретно интересует?
27. snogl 31.01.19 11:27 Сейчас в теме
Добрый день! Подскажите...
Необходимо выгрузить все из ЗУП (базовая), редакция 2.5 (2.5.130.2) в ЗУП (базовая), редакция 3.1 (3.1.8.246).
Данная обработка для этой цели подойдет ?
28. yojeeg 95 31.01.19 12:47 Сейчас в теме
(27)Добрый день!
Чтобы выгрузить всё - не подойдет. Почитайте описание, там указано, что часть данных выгружается типовыми правилами, а эта обработка только для тех данных, которые на момент ее создания правилами выгружались некорректно.
29. melisavi 31.01.19 15:31 Сейчас в теме
Большое спасибо за обработку! Данные перенеслись (кстати, вышеуказанная ошибка ("Значение не является значением объектного типа (Свернуть)" осталась), но вопрос в другом: открываю, например, документы Отпуск, они перенеслись, но все с пустой организацией. Почему? Сам справочник "Организации" заполнен.
30. yojeeg 95 31.01.19 15:51 Сейчас в теме
(29) Про "свернуть" не получится дать больше информации? Например, строчку кода или хотя бы что-то, чтобы было ясно, где смотреть?

Про Организацию при возможности проверю, спасибо за обратную связь.
31. melisavi 31.01.19 17:21 Сейчас в теме
Строчку не написал, к сожалению.

Вот что еще выяснили:
1. Организация не заполнена в док-тах "Отпуск", "Больничный лист", возможно, еще где. Странно, что выше никто об этом не написал, может, только у меня такая проблема?
2. Вышеописанные док-ты не проведены (может, так и задумывалось или это просто следствие отсутствия организации?).
3. Кроме того, в "Отпусках" даже месяц начисления не везде стоит.
4. Не перенесся аванс за январь (док-т "Начисление зарплаты на первую половину месяца").
5. Док-ты "Ведомость в банк", "Ведомость в кассу" тоже не перенеслись.

Пп. 4 и 5 у вас нет в списке, видимо, и не должны были перенестись.
Прикрепленные файлы:
34. yojeeg 95 07.02.19 11:33 Сейчас в теме
(31)
1. Проверил, организация заполняется. Ошибка не воспроизводится. Если с самого начала отмечали галку о необходимости переноса Организации, то должно заполнить. Если организаций несколько, берется первая. Обработка не работает с несколькими организациями. На всякий случай из обработки убрал код по типовой процедуре получения Организации по умолчанию и получаю первую организацию самостоятельно.
2. Документы переносятся непроведеными, так задумано.
3. Месяц начисления не стоял там, где не было документа начисления в 2.5. В новой версии обработки исправлено.
4 и 5 действительно не заявлялись к переносу.
35. melisavi 07.02.19 15:06 Сейчас в теме
(34) Да, проблема была именно в процедуре получения орг. по умолчанию. А как получить новую версию обработки?
Переносить непроведенными действительно правильно, избегаем задвоений (стандартный перенос плюс обработка).
32. snogl 31.01.19 21:12 Сейчас в теме
Где-то читал, что в ЗУП базовая ограничение на выгрузку/загрузку через com подключение, это так? Или я что-то путаю? На базовой будет работать?
33. yojeeg 95 01.02.19 09:55 Сейчас в теме
(32) не будет работать, там в принципе нет поддержки com
http://it-terminal.ru/infobox/index.php/105/
Оставьте свое сообщение