Требуется перенести все записи РС «Кадровая история сотрудников» из ЗУП 2.5 в БП КОРП 3.0. В БП КОРП 3.0 выгружать кадровые документы НЕ НУЖНО. Т.е. надо в БП КОРП создать 1 документ «Ввод начальных остатков», который будет регистратором для всех записей РС «Кадровая история сотрудников», подгружаемых из ЗУП 2.5.
Я создал правила.
Внутри ПВД создал правило «ВыгрузкаКадровойИстории» со способом выборки «Произвольный алгоритм». В процедуре «Перед обработкой» написал код:
Выборка_Организации = Запросы.РС_РаботникиОрганизаций_ТолькоОрганизации.Выполнить().Выбрать();
Пока Выборка_Организации.Следующий() Цикл
Сообщить("Выгрузка записей РС по организации "+Выборка_Организации.Организация.Наименование);
Запросы.РС_РаботникиОрганизаций.УстановитьПараметр("Организация",Выборка_Организации.Организация);
РезультатЗапроса = Запросы.РС_РаботникиОрганизаций.Выполнить();
КадроваяИсторияСотрудников = РезультатЗапроса.Выгрузить();
ИсходящиеДанные = Новый Структура("Организация, КадроваяИсторияСотрудников");
ИсходящиеДанные.Организация = Выборка_Организации.Организация;
ИсходящиеДанные.КадроваяИсторияСотрудников = КадроваяИсторияСотрудников;
ВыгрузитьПоПравилу(,, ИсходящиеДанные,, "КорректировкаРС_КадроваяИсторияСотрудников");
КонецЦикла;
Использую типовую обработку «Универсальный xml обмен данными».
Документ «Ввод начальных остатков» в БП КОРП 3.0 не создается и записи РС не перегружаются. В чем ошибка? Вторые сутки стучу лапами, три клавиатуры стер, ничего не выходит. Помогите!
(1) RailMen, Разве допустимы движения(записи) документом "Ввод начальных остатков" по Регистру сведений «Кадровая история сотрудников»? В типовых галочка на этом РС не установлена..
(7) tusv, действительно типовой документ "Ввод начальных остатков" НЕ ДЕЛАЕТ движений по регистру сведений «Кадровая история сотрудников» (видимо кто-то уже подпилил напильничком, спасибо что подсказали)! В то же время использовать типовой документ "ОперацияБУХ" не считаю возможным, т.к. у клиента жесткая политика безопасности и все права на доступ к документам прописываются в специальных заявках на права пользователей, т.е. док ОперацияБУХ могут юзать только бухгалтера и только с ограниченными целями. Клиент хочет в след году переходить на ERP 2.0, а там есть документ "Корректировка регистров" и он уже есть в его базе БП КОРП (не типовой). Вот он и будет регистратором.
(10) RailMen, А в чем проблема использовать тот же документ "кадровый перевод", если необходимо слить в типовую тройку, перенеся только его движения без заполнения самого документа? Права доступа теоритически сохраните
(12) tarassov, можно не указывать т.к. алгоритм произвольный и имеется явный вызов <ВыгрузитьПоПравилу(,, ИсходящиеДанные,, "КорректировкаРС_КадроваяИсторияСотрудников"); >
По этой же причине не нужно дополнительно ничего писать в процедуре "При загрузке" - т.к. в ИсходящиеДанные уже поместили все данные Документа включая его табчасть и проводки по РС.
(1) RailMen,
В ПКО КорректировкаРС_КадроваяИсторияСотрудников почему не заполнено "При загрузке"?
Там разве ничего в объект добавлять, исправлять не надо? Например, новую строку в табличную часть?
(2) alwiz3, теперь правила можно скачать по ссылке с ВК (ранее была метка "личный документ").
(5) MyPuK_OLD, в моей БП КОРП 3.0 это допустимо (она не типовая, вестимо). Был уверен, что в типовой тоже допустимо.
(3) drkhaired, журнал БП ругается на дату запрета - ВОТ ОНО!!! .... буду копать... хмхмхм
В ПКО необходимо создать ПКО документа с движениями. В ПВД формируем запрос на выходе имеем выборку, выгружаем строки шапки (там будет одна строка) в любую коллекцию (массив). Добавляем в этот массив новый массив(тз, массив, коллекцию строк, НоваяСтрокаТабДок.СотрудникиОрганизации = МассивСт - пример) с именем регистра и данными регистра.
В ПВД:
"ВыборкаДанных = ПроизвольнаяКоллекция"
Имена колонок должны совпадать с именами источника в ПКО.
Пример ПВД: выгружаю документ собранный произвольным запросом за период, "ПеречислениеНДФЛвБюджет " ТЧ "Сотрудники организаций".
ПКО оставляем "как есть"
Пример
ТабДок = Новый ТаблицаЗначений;
ТабДок.Колонки.Добавить("Дата");
ТабДок.Колонки.Добавить("ДатаПлатежа");
ТабДок.Колонки.Добавить("КодТерритории");
ТабДок.Колонки.Добавить("Комментарий");
ТабДок.Колонки.Добавить("Организация");
ТабДок.Колонки.Добавить("НалоговыйПериод");
ТабДок.Колонки.Добавить("МесяцНалоговогоПериода");
ТабДок.Колонки.Добавить("ОКТМО_КПП");
ТабДок.Колонки.Добавить("ПлатежноеПоручениеДата");
ТабДок.Колонки.Добавить("Ставка");
ТабДок.Колонки.Добавить("Сумма");
ТабДок.Колонки.Добавить("СотрудникиОрганизации");
СотрудникиОрганизации = Новый ТаблицаЗначений;
СотрудникиОрганизации.Колонки.Добавить("ФизЛицо");
СотрудникиОрганизации.Колонки.Добавить("Сумма");
ТекстЗапроса = Запросы.СотрудникиОрганизацииПеречислениеНДФЛвБюджет.Текст;
Запрос = Новый Запрос(ТекстЗапроса);
Запрос.УстановитьПараметр("НачалоПериода",ДатаНачала);
Запрос.УстановитьПараметр("КонецПериода",ДатаОкончания);
ВариантОбхода = ОбходРезультатаЗапроса.ПоГруппировкам;
Гр001 = Запрос.Выполнить().Выбрать(ВариантОбхода);
МассивСт = Новый Массив;
Пока Гр001.Следующий() Цикл
Гр002 = Гр001.Выбрать(ВариантОбхода);
Пока Гр002.Следующий() Цикл
Гр003 = Гр002.Выбрать(ВариантОбхода);
Пока Гр003.Следующий() Цикл
НоваяСтрокаТабДок = ТабДок.Добавить();
НоваяСтрокаТабДок.ОКТМО_КПП = "0000"
Гр004 = Гр003.Выбрать(ВариантОбхода);
МассивСт = Новый Массив;
Сч = 1;
Пока Гр004.Следующий() Цикл
Если Сч = 1 Тогда
ЗаполнитьЗначенияСвойств(НоваяСтрокаТабДок,Гр004);
КонецЕсли;
Сч = Сч+1;
НоваяСтрокаСотрудникиОрганизации = СотрудникиОрганизации.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрокаСотрудникиОрганизации,Гр004);
МассивСт.Добавить(НоваяСтрокаСотрудникиОрганизации);
КонецЦикла;
Если МассивСт.Количество() > 0 Тогда
НоваяСтрокаТабДок.Комментарий = "Коммент "+ТекущаяДата();
НоваяСтрокаТабДок.СотрудникиОрганизации = МассивСт;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЦикла;
ВыборкаДанных = ТабДок;
Правила конвертации данных (КД ред. 2.1) из ЗУП 2.5 в БП КОРП 3.0. Перенос записей регистра сведений «Кадровая история сотрудников» сделал так:
1)в БП КОРП из ERP 2.1 перенес не типовой документ "Корректировка регистров" - именно он будет регистратором. По двум причинам:
а) клиент хочет перейти на ERP 2.1 - там этот документ типовой
б) документ ОперацияБух не подходит т.к. политика безопасности предполагает, что его могут юзать только бухгалтера и только с ограниченными целями
в) "кадровый перевод" не стал использовать т.к. вдруг после перехода ERP 2.1 они захотят туда слить ЗУП полностью, тогда доступ к доку будет у всех кадровиков, а там глядишь шаловливые ручонки захотят перепровести или удалить пустой документ.
2) в БП КОРП в общем модуле "Дата Запрета" в процедурах при записи документов и при записи набора записей отключаем проверку на дату запрета изменения данных для (документа типа "Корректировка регистров"+полные права+пользователь Обмен), т.к. периоды загружаемых из ЗУП записей могут быть ЛЮБЫЕ и это нормально.
3) выгружаем слепок БП КОРП документы с движениями РС (это важно, по умолчанию без регистров сведений выгружается)
4) в конвертации создаем ПКД произвольный алгоритм (как я это сразу сделал) и ПКО с пустым источником и приемником док. "Корректировка регистров". У него создаем ПКГС (папку) с набором записей.
в ПКД запросом собираем коллекцию из реквизитов документа и таб части с названием регистра (на подобии того как описано в комментарии (4) drkhaired ).
Сами правила кому интересно могу выложить в понедельник.
5) основная фишка правил в том, что в приемник БП КОРП переносятся ВСЕ записи кадровой истории, а регистратор у них всех автоматом меняется на 1 один ДОКУМЕНТ "Корректировка регистров".
У нас в ЗУПе 1100 сотрудников и кадровая история за 5 лет - это 27тыс записей. Выгрузка по времени занимает 10-15 минут это не критично (в 01 ночи стартует).
Но возникли некоторые трудности уже не с правилами обмена, а с тем, что в ЗУПе были записи с совпадающими измерениями, но разными регистраторами - и ЗУП это пропускал.
А вот когда эти записи начали грузиться в БП КОРП, то регистратор у них менялся на 1 один, что приводил к ошибки записи набора записей.
Это было видно по журналу регистрации БП КОРП. По ТЗ выгрузка регистраторов (кадровой первички) в БП КОРП недопустима, по этому пришлось анализировать причины возникновения подобных записей в ЗУПе и - О ЧУДО - все они были ошибками ввода данных.
После их ручного исправления в ЗУПе выгрузка заработала как часы.
1. Вы поставили условие: "...Т.е. надо в БП КОРП создать 1 документ «Ввод начальных остатков», " это изначально неверно, т.к. для регистра бп 3.0 "КадроваяИсторияСотрудников" установлены регистраторы "кадровыйперевод, операциябух, приёмнаработу, увольнение".
Значит в правилах переноса необходимо во первых установить соответствия документов ЗУП 2.5 и бп 3.0. При необходимости дописать в правила модули "при выгрузке" и "при загрузке". Это подробно описано в документации по кд.
2. Необходимо использовать все обработки из одной поставки. Недопустимо правила формировать одной обработкой, а загрузку выполнять другой.
На мой взгляд Ваша ошибка в привязке к документу регистратору для бп 3.0 «Ввод начальных остатков». Это в принципе неверно.
С уважением.