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







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

Обращаю внимание, что большинство данных переносится по УИД, в связи с этим при повторном переносе данных будет возникать ошибка "ссылка уже существует". Переносить рекомендуется на чистую базу. (В текущей версии обработки добавлены проверки на существование переносимых по УИД объектов)

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

21. Штатное расписание

Из документов переносятся:
1. Прогул неявка
2. Больничные
3. Работа в выходные
4. Разовые начисления
5. Отпуска и отпуска без оплаты
6. Исполнительные листы
7. Мат.помощь
8. Командировка
9. Входящая и исходящая справки о заработке
10. Натуральные доходы
11. Удержания 
12. Кадровые документы (в тесте)

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

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

5. Для переноса Кадровых документов нужно также настроить соответствие отпусков и статей увольнения:

Соответствие статей увольнения

соответствие отпусков

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

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

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

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

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

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

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

7. Добавлены отборы для сотрудников и физиков: не уволенные и устроенные по трудовому договору.

8. Добавлена проверка на существование объекта в базе (только для тех, что переносятся по УИД)

9. Актуализирована процедура записи Контактной информации (Адрес) под новые версии ЗУП.

10. Актуализирована процедура записи сотрудника под новые версии ЗУП.

11. Добавлена возможность загрузки Штатного расписания (в зависимости от настройки программы формируется либо Утверждением штатного расписания, либо переносом в справочник Позиции)

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

13. Данные регистров сведений больше не перезаписываются, а добавляются. 

14. Исправлена ошибка с записью адресов. 

15. Данные по Организации теперь берутся из источника по наименованию (раньше Организация проставлялась по умолчанию — первая из справочника Организаций)

 

70 Comments

  1. ben_art

    У Вас название с описанием не сходятся

    Reply
  2. Alik_1c

    да уж, не ясно толи из ЗУП 2,5 в ЗУП 3,0 или на оборот 🙂

    Reply
  3. yojeeg

    (1) ben_art, спасибо, исправил

    Reply
  4. yojeeg

    (2) Alik_1c, ЗУП 3.0 такого качества, что действительно впору писать и такую обработку, которая из 3.0 в 2.5 переносит 🙂

    Reply
  5. ylyas

    Ошибка в коде, молодой человек:

    МассивКодов = КодыДопНачислений.Выгрузить().ВыгрузитьКолонку(не указан обязательный параметр);
    
    МассивКодов = КодыОсновныхНачислений.Выгрузить().ВыгрузитьКолонку(не указан обязательный параметр);
    Reply
  6. ylyas
    Функция СоответствиеВидовРасчета(ВходящийКод, ВходящееНаименование)
    
    Начисление = ПланыВидовРасчета.Начисления.ПустаяСсылка();
    Таблица = СоответствиеВидовРасчета.Выгрузить();
    
    НайденныеСтроки = Таблица.Найти(Новый Структура(«Код, Наименование», СокрЛП(ВходящийКод),СокрЛП(ВходящееНаименование)));
    Если НайденныеСтроки.Количество() > 0 Тогда
    Возврат НайденныеСтроки[0].Начисление;
    Иначе
    Возврат Начисление;
    КонецЕсли;
    
    КонецФункции

    Показать

    Простите, у кого нибудь вообще работает перенос документов??

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

    Процедура не рабочая…

    Или я что то упускаю???

    Reply
  7. yojeeg

    (5)Спасибо, исправил

    Reply
  8. yojeeg

    (6)Благодарю, исправлено — присылайте e-mail

    Reply
  9. ylyas

    (8)

    ммм.. а зачем вам мой емэйл??

    Reply
  10. yojeeg

    (9) мда

    Reply
  11. sferg007

    У меня вот такое выходит при загрузке

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

    таблица Reference291.

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

    Загружаю в пустую базу того же релиза на котором вы тестировали.

    Reply
  12. yojeeg

    (11) Слишком мало информации для понимания ошибки. Это ошибка в процедуре записи объекта в базу. Процедура записи одна для всех объектов.

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

    Reply
  13. ksenym

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

    ТаблицаДокументов.Свернуть(«Документ,УИД»);

    Reply
  14. yojeeg

    (13) Исправил, спасибо

    Reply
  15. ksenym

    (14) А как получить исправленную обработку?

    Reply
  16. yojeeg

    (15) Пришлите в личку свою почту

    Reply
  17. ksenym

    (16) Напишу здесь. У меня почему то личное сообщение не отправляется. ksenym@inbox.ru

    Reply
  18. svegl

    Добрый день! Типовым переносом 1С были перенесены остатки и справочники на начало года. Возможно ли с помощью Вашей обработки дозагрузить документы за текущий год? Не будет задвоений в справочниках? На релизах 3.1.7 будет работать?

    Reply
  19. yojeeg

    Обработка тестировалась на релизах 3.1.5. Задвоений быть не должно, поскольку при переносе документов данные не создаются. Элементы справочников ищутся по ГУИдам, для обработки это критично.

    Reply
  20. German_Tagil

    запомнил

    Reply
  21. as7bs

    Добрый день. На 3.1.8 не загружаются адреса физических лиц. Может кто-уже сталкивался и решил данную проблему.

    Reply
  22. yojeeg

    (21)Добрый день, пока Вы первый, кто заявил о такой проблеме. Я проверю.

    Reply
  23. as7bs

    (22) Мне уже это пока не актуально: загрузил адреса другим способом.

    Я так думаю, связано с тем, что в 3.1.8 используется новый ФИАС2.

    Reply
  24. YannikAlx

    Ошибся адресом…

    Reply
  25. OkeanObuvi

    Роман, приветствую, скачал Вашу обработку, можете дать комментарии по пунктам 2, 3 и 4

    Reply
  26. yojeeg

    (25)Добрый день, а что конкретно интересует?

    Reply
  27. snogl

    Добрый день! Подскажите…

    Необходимо выгрузить все из ЗУП (базовая), редакция 2.5 (2.5.130.2) в ЗУП (базовая), редакция 3.1 (3.1.8.246).

    Данная обработка для этой цели подойдет ?

    Reply
  28. yojeeg

    (27)Добрый день!

    Чтобы выгрузить всё — не подойдет. Почитайте описание, там указано, что часть данных выгружается типовыми правилами, а эта обработка только для тех данных, которые на момент ее создания правилами выгружались некорректно.

    Reply
  29. melisavi

    Большое спасибо за обработку! Данные перенеслись (кстати, вышеуказанная ошибка («Значение не является значением объектного типа (Свернуть)» осталась), но вопрос в другом: открываю, например, документы Отпуск, они перенеслись, но все с пустой организацией. Почему? Сам справочник «Организации» заполнен.

    Reply
  30. yojeeg

    (29) Про «свернуть» не получится дать больше информации? Например, строчку кода или хотя бы что-то, чтобы было ясно, где смотреть?

    Про Организацию при возможности проверю, спасибо за обратную связь.

    Reply
  31. melisavi

    Строчку не написал, к сожалению.

    Вот что еще выяснили:

    1. Организация не заполнена в док-тах «Отпуск», «Больничный лист», возможно, еще где. Странно, что выше никто об этом не написал, может, только у меня такая проблема?

    2. Вышеописанные док-ты не проведены (может, так и задумывалось или это просто следствие отсутствия организации?).

    3. Кроме того, в «Отпусках» даже месяц начисления не везде стоит.

    4. Не перенесся аванс за январь (док-т «Начисление зарплаты на первую половину месяца»).

    5. Док-ты «Ведомость в банк», «Ведомость в кассу» тоже не перенеслись.

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

    Reply
  32. snogl

    Где-то читал, что в ЗУП базовая ограничение на выгрузку/загрузку через com подключение, это так? Или я что-то путаю? На базовой будет работать?

    Reply
  33. yojeeg

    (32) не будет работать, там в принципе нет поддержки com

    http://it-terminal.ru/infobox/index.php/105/

    Reply
  34. yojeeg

    (31)

    1. Проверил, организация заполняется. Ошибка не воспроизводится. Если с самого начала отмечали галку о необходимости переноса Организации, то должно заполнить. Если организаций несколько, берется первая. Обработка не работает с несколькими организациями. На всякий случай из обработки убрал код по типовой процедуре получения Организации по умолчанию и получаю первую организацию самостоятельно.

    2. Документы переносятся непроведеными, так задумано.

    3. Месяц начисления не стоял там, где не было документа начисления в 2.5. В новой версии обработки исправлено.

    4 и 5 действительно не заявлялись к переносу.

    Reply
  35. melisavi

    (34) Да, проблема была именно в процедуре получения орг. по умолчанию. А как получить новую версию обработки?

    Переносить непроведенными действительно правильно, избегаем задвоений (стандартный перенос плюс обработка).

    Reply
  36. Anthon
    Reply
  37. yojeeg

    (21) Исправлено

    Reply
  38. multi

    Спасибо!

    Физлица, Сотрудники с данными перенеслись. Пришлось поправить состав Параметров — не хватало параметра ТолькоПоТрудовомуДоговоруФизлица.

    Не перенеслись стажи, в том числе северный, пока не разобрались в чем проблема.

    Reply
  39. ivnik

    Добрый день!

    Мне нужно перенести только физлиц (более 600 чел.), подключение к базе успешно, а перенос нет. Что можно предпринять? Спасибо!

    Reply
  40. yojeeg

    (38) Спасибо за обратную связь, поправлю параметр.

    Reply
  41. yojeeg

    (39) Добрый день! В форму обработки добавьте в строку 641:

    СтруктураДанныхДляЗагрузки.Вставить(«ТолькоПоТрудовомуДоговоруФизлица», ТолькоПоТрудовомуДоговоруФизлица);

    Reply
  42. yojeeg

    (38) По стажам нужно добавить следующее:

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

    строка 1185 НоваяЗапись.Период = Период.ДатаНачала;

    строка 4075 заменить на «| И ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.Период <= &КонецПериода»

    строка 4091 заменить на «| СведенияОСтажеРаботыНаСевереСрезПоследних.Период <= &КонецПериода»;»

    Ну или перекачать обработку, там я это уже добавил.

    Reply
  43. ivnik

    (41)

    Большое Спасибо!!! Теперь работает!
    Reply
  44. ivnik

    Добрый день!

    SOS!!! Большой «подводный камень»! В рабочей базе ЗУП-3.1 имеется 270 сотрудников, сюда же нужно добавить еще 620 физлиц (не сотрудников) из ЗУП-2.5. Запускаем обработку, физлица подгрузились нормально: с ИНН, паспортными данными и т.п. Вроде бы все красиво, НО… у сотрудников полностью исчезли паспортные данные!!!

    Проблема №2: при перегрузке физлиц адрес переноситься, но в 3.1 он не корректный!!! Визуально: индекс разделен пробелом на 2 части. Может это из-за того, что в ЗУП-2.5 Кладр, а в 3.1 уже ФИАС ? Это можно как-то «поправить»?

    Reply
  45. yojeeg

    (44)Добрый день!

    По 2: заменить строчку 600 на

    СтруктураКИ.Индекс = ?(Не ЗначениеЗаполнено(Выборка11.Индекс),0 ,СтрЗаменить(Число(Выборка11.Индекс),Символы.НПП,»»));

    По 1: надеюсь это не на рабочей базе делалось или есть копия, потому что как указано в описании, переносить данные рекомендуется на чистую базу. Обработка разрабатывалась именно под это, под «догрузки» не затачивалась. Регистры записываются наборами, а значит перезаписываются целиком.

    Reply
  46. ivnik

    Во-первых: Спасибо!

    Во-вторых: копия есть, но получается, что перенос физлиц не выполнен!…. А именно это и нужно, к сотрудникам добавить физлиц, которых в три раза больше.

    Reply
  47. yojeeg

    (46) Это особенность обработки, как я указал выше, она не предназначалась для добавления данных. Но вообще замечание очень хорошее и конструктивное, еще раз благодарю за обратную связь. Затирать данные, конечно, не хорошо.

    Если есть возможность протестировать новую версию обработки на предмет добавления новых данных, а не замещения, можете указать почту — я пришлю новую версию. В комментарии просто так не опишешь что на что заменить, проще выложить новую версию.

    Reply
  48. yojeeg

    (36) Спасибо за критику — многое уже было исправлено/добавлено, в том числе благодаря Вашему комментарию.

    Reply
  49. ivnik

    Это не «критика», я сам тоже не всегда сразу вижу, где накосячил.

    islnik@mail.ru

    Спасибо!

    Reply
  50. yojeeg

    (49)

    Немного здоровой критики никогда не повредит, особенно когда обработка делалась 5 лет назад) Измененную обработку отправил на почту.

    Reply
  51. user614838_dynnikov

    Роман, возможно ли как-то получить исправленную обработку?

    Спасибо)

    Reply
  52. yojeeg

    (51) Честно говоря не вижу Вас в списке скачавших обработку. Если не скачивали — то получить можно с инфостарта за стартмани. Если уже скачивали, то пришлите письмо подтверждение загрузки мне на почту, я в ответ вышлю последнюю актуальную версию.

    Reply
  53. nestokay

    Добрый день, могу я поинтересоваться, мне нужно выгрузить данные по исчисленному и удержанному НДФЛ, эта информация переносится данными правилами?

    Reply
  54. yojeeg

    Добрый день, нет

    Reply
  55. Stim213

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

    Возврат ЗначениеИзСтрокиВнутр(COM_Соединение.ЗначениеВСтрокуВнутр(Ссылка.УникальныйИдентификатор()));»

    Обидно потратить стартмани за неработающую обработку

    Reply
  56. yojeeg

    (55)

    Обидно потратить стартмани за неработающую обработку

    Вы прежде, чем делать выводы поспешные, посмотрите в каком конкретно блоке данных возникла проблема. Приведенный кусок кода универсальный для всех блоков и ни о чем не говорит. Лишь о том, что в каких-то данных, которые Вы переносите, реквизит ссылки скорее всего имеет значение Неопределено. Почему он такое значение имеет уже Вам виднее. Могу только посоветовать добавить в обработку проверку на неопределенные значения, потому что на постоянной основе такую проверку добавлять в обработку я считаю ошибкой. Если переносимые данные имеют значение Неопределено, то это повод именно посмотреть что с ними, а не пропускать незамеченными.

    Reply
  57. user1029657

    запускать в зуп 3.1?

    Reply
  58. yojeeg

    (57)конечно

    Reply
  59. user1029657

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

    V8 = Новый COMОбъект(ВерсияПлатформыСтрока + «.COMConnector»);

    по причине:

    -2147221005(0x800401F3): Недопустимая строка с указанием класса

    ошибка при подключение к бд

    Reply
  60. yojeeg

    (59)

    -2147221005(0x800401F3):

    Копайте в сторону COM соединений по номеру ошибки подключения — проблема на Вашей стороне. Подключение по COM в обработке стандартное, а на вкладке подключение дополнительно указано какие действия необходимо сделать (как минимум).

    Reply
  61. smooth

    Спасибо автору за обработку. Пришлось подпилить напильником под ЗГУ с несколькими организациями, но в любом случае, сэкономил массу времени

    Reply
  62. yojeeg

    (61) Спасибо за отзыв. Рад, что обработка оказалась полезной.

    Reply
  63. smooth

    Роман, а почему такое странное решение выбрали с переносом реквизита «Организация»?

    ps в предыдущем сообщении забыл поблагодарить за красивый код — отдельный респект! )

    Reply
  64. yojeeg

    (63) А что конкретно странно, что он не переносится по факту?)) Обработка дорабатывается, поэтому конструктивная критика всячески приветствуется.

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

    Reply
  65. user1029657

    А можно последнюю версию? а то качал пол года назад

    Reply
  66. yojeeg

    (65) Пришлите в личку подтверждение скачки и email, вышлю новую

    Reply
  67. user1029657

    что то не получается перенести начисления по зарплате

    Reply
  68. yojeeg

    (67) Посмотрите описание обработки — она является дополнением к типовым правилам переноса, а начисления по зарплате прекрасно переносятся именно типовыми правилами. Какой смысл дублировать их функционал. В описании обработки и на скриншотах видно какие конкретно данные она переносит.

    Reply
  69. av75057

    При переносе Отпусков без оплаты выдает ошибку:

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

    Результат21 = Запрос21.Выполнить();

    по причине:

    Произошла исключительная ситуация (1C:Enterprise 8.3.16.1030): {(132, 50)}: Неверные параметры «Перечисление.ПричиныОтсутствияНаРаботеВОрганизации.ОтпускБезСохраненияЗарплаты»

    И ВТ_ВСЕ_ОТПУСКА.ПричинаОтсутствия = ЗНАЧЕНИЕ(<<?>>Перечисление.ПричиныОтсутствияНаРаботеВОрганизации.ОтпускБезСохраненияЗарплаты)

    Произошла исключительная ситуация (1C:Enterprise 8.3.16.1030): {(132, 50)}: Неверные параметры «Перечисление.ПричиныОтсутствияНаРаботеВОрганизации.ОтпускБезСохраненияЗарплаты»

    И ВТ_ВСЕ_ОТПУСКА.ПричинаОтсутствия = ЗНАЧЕНИЕ(<<?>>Перечисление.ПричиныОтсутствияНаРаботеВОрганизации.ОтпускБезСохраненияЗарплаты)

    Reply
  70. av75057

    (69)Разобрался. Всё работает корректно.

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *