0. yojeeg 110 26.05.16 14:44 Сейчас в теме

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

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

Перейти к публикации

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

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


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

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

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

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

Загружаю в пустую базу того же релиза на котором вы тестировали.
12. yojeeg 110 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.

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

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

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

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

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

Пп. 4 и 5 у вас нет в списке, видимо, и не должны были перенестись.
Прикрепленные файлы:
34. yojeeg 110 07.02.19 11:33 Сейчас в теме
(31)
1. Проверил, организация заполняется. Ошибка не воспроизводится. Если с самого начала отмечали галку о необходимости переноса Организации, то должно заполнить. Если организаций несколько, берется первая. Обработка не работает с несколькими организациями. На всякий случай из обработки убрал код по типовой процедуре получения Организации по умолчанию и получаю первую организацию самостоятельно.
2. Документы переносятся непроведеными, так задумано.
3. Месяц начисления не стоял там, где не было документа начисления в 2.5. В новой версии обработки исправлено.
4 и 5 действительно не заявлялись к переносу.
35. melisavi 1 07.02.19 15:06 Сейчас в теме
(34) Да, проблема была именно в процедуре получения орг. по умолчанию. А как получить новую версию обработки?
Переносить непроведенными действительно правильно, избегаем задвоений (стандартный перенос плюс обработка).
32. snogl 31.01.19 21:12 Сейчас в теме
Где-то читал, что в ЗУП базовая ограничение на выгрузку/загрузку через com подключение, это так? Или я что-то путаю? На базовой будет работать?
33. yojeeg 110 01.02.19 09:55 Сейчас в теме
(32) не будет работать, там в принципе нет поддержки com
http://it-terminal.ru/infobox/index.php/105/
38. multi 30.04.19 14:01 Сейчас в теме
Спасибо!
Физлица, Сотрудники с данными перенеслись. Пришлось поправить состав Параметров - не хватало параметра ТолькоПоТрудовомуДоговоруФизлица.
Не перенеслись стажи, в том числе северный, пока не разобрались в чем проблема.
40. yojeeg 110 06.05.19 10:13 Сейчас в теме
(38) Спасибо за обратную связь, поправлю параметр.
59. user1029657 19.07.19 11:21 Сейчас в теме
{ВнешняяОбработка.ПереносДанныхИзЗУП2_5вЗУП3.МодульОбъекта(40)}: Ошибка при вызове конструктора (COMОбъект)
V8 = Новый COMОбъект(ВерсияПлатформыСтрока + ".COMConnector");
по причине:
-2147221005(0x800401F3): Недопустимая строка с указанием класса
ошибка при подключение к бд
60. yojeeg 110 19.07.19 11:48 Сейчас в теме
(59)
-2147221005(0x800401F3):

Копайте в сторону COM соединений по номеру ошибки подключения - проблема на Вашей стороне. Подключение по COM в обработке стандартное, а на вкладке подключение дополнительно указано какие действия необходимо сделать (как минимум).
42. yojeeg 110 06.05.19 11:27 Сейчас в теме
(38) По стажам нужно добавить следующее:
В модуле объекта:
строка 1185 НоваяЗапись.Период = Период.ДатаНачала;
строка 4075 заменить на "| И ПлановыеНачисленияРаботниковОрганизацийСрезПоследних.Период <= &КонецПериода"
строка 4091 заменить на "| СведенияОСтажеРаботыНаСевереСрезПоследних.Период <= &КонецПериода";"

Ну или перекачать обработку, там я это уже добавил.
39. ivnik 412 01.05.19 00:06 Сейчас в теме
Добрый день!
Мне нужно перенести только физлиц (более 600 чел.), подключение к базе успешно, а перенос нет. Что можно предпринять? Спасибо!
Прикрепленные файлы:
41. yojeeg 110 06.05.19 10:20 Сейчас в теме
(39) Добрый день! В форму обработки добавьте в строку 641:
СтруктураДанныхДляЗагрузки.Вставить("ТолькоПоТрудовомуДоговоруФизлица", ТолькоПоТрудовомуДоговоруФизлица);
43. ivnik 412 06.05.19 13:10 Сейчас в теме
(41)
Большое Спасибо!!! Теперь работает!
44. ivnik 412 14.05.19 14:19 Сейчас в теме
Добрый день!
SOS!!! Большой "подводный камень"! В рабочей базе ЗУП-3.1 имеется 270 сотрудников, сюда же нужно добавить еще 620 физлиц (не сотрудников) из ЗУП-2.5. Запускаем обработку, физлица подгрузились нормально: с ИНН, паспортными данными и т.п. Вроде бы все красиво, НО... у сотрудников полностью исчезли паспортные данные!!!
Проблема №2: при перегрузке физлиц адрес переноситься, но в 3.1 он не корректный!!! Визуально: индекс разделен пробелом на 2 части. Может это из-за того, что в ЗУП-2.5 Кладр, а в 3.1 уже ФИАС ? Это можно как-то "поправить"?
45. yojeeg 110 14.05.19 14:47 Сейчас в теме
(44)Добрый день!

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

По 1: надеюсь это не на рабочей базе делалось или есть копия, потому что как указано в описании, переносить данные рекомендуется на чистую базу. Обработка разрабатывалась именно под это, под "догрузки" не затачивалась. Регистры записываются наборами, а значит перезаписываются целиком.
46. ivnik 412 14.05.19 14:49 Сейчас в теме
Во-первых: Спасибо!
Во-вторых: копия есть, но получается, что перенос физлиц не выполнен!.... А именно это и нужно, к сотрудникам добавить физлиц, которых в три раза больше.
47. yojeeg 110 14.05.19 15:09 Сейчас в теме
(46) Это особенность обработки, как я указал выше, она не предназначалась для добавления данных. Но вообще замечание очень хорошее и конструктивное, еще раз благодарю за обратную связь. Затирать данные, конечно, не хорошо.
Если есть возможность протестировать новую версию обработки на предмет добавления новых данных, а не замещения, можете указать почту - я пришлю новую версию. В комментарии просто так не опишешь что на что заменить, проще выложить новую версию.
49. ivnik 412 14.05.19 15:16 Сейчас в теме
Это не "критика", я сам тоже не всегда сразу вижу, где накосячил.
islnik@mail.ru
Спасибо!
50. yojeeg 110 14.05.19 15:18 Сейчас в теме
(49)
islnik@mail.ru
Немного здоровой критики никогда не повредит, особенно когда обработка делалась 5 лет назад) Измененную обработку отправил на почту.
51. user614838_dynnikov 29.05.19 11:08 Сейчас в теме
Роман, возможно ли как-то получить исправленную обработку?
Спасибо)
52. yojeeg 110 29.05.19 11:19 Сейчас в теме
(51) Честно говоря не вижу Вас в списке скачавших обработку. Если не скачивали - то получить можно с инфостарта за стартмани. Если уже скачивали, то пришлите письмо подтверждение загрузки мне на почту, я в ответ вышлю последнюю актуальную версию.
53. nestokay 54 05.06.19 15:44 Сейчас в теме
Добрый день, могу я поинтересоваться, мне нужно выгрузить данные по исчисленному и удержанному НДФЛ, эта информация переносится данными правилами?
54. yojeeg 110 07.06.19 08:02 Сейчас в теме
55. Stim213 362 10.06.19 17:10 Сейчас в теме
"{ВнешняяОбработка.ПереносДанныхИзЗУП2_5вЗУП3.МодульОбъекта(2638)}: Значение не является значением объектного типа (УникальныйИдентификатор)
Возврат ЗначениеИзСтрокиВнутр(COM_Соединение.ЗначениеВСтрокуВнутр(Ссылка.УникальныйИдентификатор()));"

Обидно потратить стартмани за неработающую обработку
56. yojeeg 110 22.06.19 19:50 Сейчас в теме
(55)
Обидно потратить стартмани за неработающую обработку


Вы прежде, чем делать выводы поспешные, посмотрите в каком конкретно блоке данных возникла проблема. Приведенный кусок кода универсальный для всех блоков и ни о чем не говорит. Лишь о том, что в каких-то данных, которые Вы переносите, реквизит ссылки скорее всего имеет значение Неопределено. Почему он такое значение имеет уже Вам виднее. Могу только посоветовать добавить в обработку проверку на неопределенные значения, потому что на постоянной основе такую проверку добавлять в обработку я считаю ошибкой. Если переносимые данные имеют значение Неопределено, то это повод именно посмотреть что с ними, а не пропускать незамеченными.
57. user1029657 19.07.19 09:15 Сейчас в теме
58. yojeeg 110 19.07.19 10:25 Сейчас в теме
61. smooth 184 10.09.19 14:38 Сейчас в теме
Спасибо автору за обработку. Пришлось подпилить напильником под ЗГУ с несколькими организациями, но в любом случае, сэкономил массу времени
62. yojeeg 110 10.09.19 15:01 Сейчас в теме
(61) Спасибо за отзыв. Рад, что обработка оказалась полезной.
63. smooth 184 10.09.19 20:40 Сейчас в теме
Роман, а почему такое странное решение выбрали с переносом реквизита "Организация"?

ps в предыдущем сообщении забыл поблагодарить за красивый код - отдельный респект! )
64. yojeeg 110 11.09.19 09:53 Сейчас в теме
(63) А что конкретно странно, что он не переносится по факту?)) Обработка дорабатывается, поэтому конструктивная критика всячески приветствуется.

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

Вакансии

Программист 1С
Владивосток
зарплата от 80 000 руб. до 120 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству

Руководитель проекта, аналитик, консультант
Санкт-Петербург
По совместительству

Программист 1С
Екатеринбург
зарплата от 120 000 руб. до 120 000 руб.
Полный день

Бизнес-аналитик 1С
Москва
зарплата от 140 000 руб. до 200 000 руб.
Полный день