Выгрузка данных по зарплате из БП в ЗУП
У клиента данные по зарплате велись в БП. Он хочет перенести их в базу ЗУП.
Неправильный подход
Решил попробовать сделать это через синхронизацию из БП в ЗУП.
Обмен делаю через каталог C:\Usersr\USR1CV8\AppData, обычно он всегда доступен на сервере 1С.
В ЗУП правила отправки данных прописываю так:

В БП правила отправки данных прописываю так:

Документы ставлю с 2000 года, чтобы выгрузились все документы. НСИ выгружаю всю. Отправляю данные только с отбором по одной организации.
Но увы, сопоставление данных показало, что принята только такая информация:

Мало того, в плане обмена с ЗУП в БП нет документов по зарплате. Так что метод ошибочный.
Правильный перенос через помощник начальной загрузки данных
Нашел другой типовой способ переноса данных, через помощник:

Повторно его можно запустить отсюда:

Запустил через COM-соединение (подключение к базе):

Но при загрузке загрузке возникли ошибки.
Ошибка пометки на удаление подразделения:
Ошибка записи объекта
ТипОбъекта = Подразделение
Объект = Основное подразделение
ОписаниеОшибки = Ошибка при вызове метода контекста (Записать)
ПозицияМодуля = {ОбщийМодуль.КадровыйУчетРасширенный.Модуль(16384)}:ВызватьИсключение ТекстСообщения;
{Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(6428)}:Объект.Записать();
{Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(9252)}:ЗаписатьОбъектВИБ(Объект, ТипОбъекта);
{Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(12833)}:ПоследнийОбъектЗагрузки = ПрочитатьОбъект();
{Обработка.УниверсальныйОбменДаннымиXML.МодульОбъекта(13173)}:ПроизвестиЧтениеДанных();
{Обработка.ПомощникПереходаСПрежнихПрограммЗарплатаКадры.Форма.ФормаПомощника.Форма(1934)}:ОбработкаОбмена.ВыполнитьЗагрузку();
{Обработка.ПомощникПереходаСПрежнихПрограммЗарплатаКадры.Форма.ФормаПомощника.Форма(1845)}:РезультатВыполнения = ВыполнитьЗагрузкуФайлаНаСервере(ИмяВременногоФайла);
[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
Ошибка при выполнении обработчика - 'ПередЗаписью'
по причине:
Нельзя пометить на удаление действующее подразделение "Основное подразделение", организации "Имярек А. А. ИП"
[ОшибкаВоВремяВыполненияВстроенногоЯзыка, ИсключениеВызванноеИзВстроенногоЯзыка]
КодСообщения = 26
Пришлось написать расширение по обходу этих ошибок.
Расширяю модуль ЗарплатаКадры:
&Вместо("ОтключитьБизнесЛогикуПриЗаписи") Функция аопзупбп_ОтключитьБизнесЛогикуПриЗаписи(Знач Объект) Возврат Истина; //Временно отключаем бизнес-логику Результат = ПродолжитьВызов(Объект); Возврат Результат; КонецФункции
Расширение можно скачать тут:
Внимание! Это слишком мощное расширение, из-за него не формируются интервальные регистры, т.к. загружает данные в режиме без контроля. Использовать его не рекомендую, лучше снять пометку на удаление со всех подразделений перед обменов.
Ну и в дальнейшем я использовал выгрузку в файл, чтобы в случае сбоя не тратить время на повторную выгрузку:

При этом в каталог выгружается множество файлов:

Вот их список:
Справочники.xml | Справочники, настройки программы.
НастройкиНачисленийУдержаний.xml | Настройки начислений, удержаний.
СведенияВычетыНДФЛ.xml | Сведения о вычетах НДФЛ.
КадровыеДокументы.xml | Кадровые документы.
ЭТК.xml | Электронные трудовые книжки.
СЗВ_ТД_Файлы.zip | Файлы СЗВ_ТД
РезультатыРасчетаЗарплаты.xml | Результаты расчета зарплаты.
ВоинскийУчет.xml | Воинский Учет.
БронированиеГражданПребывающихВЗапасе_Файлы.zip | Файлы БронированиеГражданПребывающихВЗапасе
ЛистокСообщенияДляВоенкомата_Файлы.zip | Файлы ЛистокСообщенияДляВоенкомата
ОтменаБронированияГражданПребывающихВЗапасе_Файлы.zip | Файлы ОтменаБронированияГражданПребывающихВЗапасе
СведенияОПриемеПереводеИУвольненииДляВоенкомата_Файлы.zip | Файлы СведенияОПриемеПереводеИУвольненииДляВоенкомата
СверкаСВоеннымКомиссариатом_Файлы.zip | Файлы СверкаСВоеннымКомиссариатом
СверкаСДокументамиВоинскогоУчета_Файлы.zip | Файлы СверкаСДокументамиВоинскогоУчета
ХодатайствоОБронированииГражданПребывающихВЗапасе_Файлы.zip | Файлы ХодатайствоОБронированииГражданПребывающихВЗапасе
Отчетность.xml | Отчетность.
СЗВ_М_Файлы.zip | Файлы СЗВ_М
СЗВ_Стаж_Файлы.zip | Файлы СЗВ_Стаж
СЗВ_КОРР_Файлы.zip | Файлы СЗВ_КОРР
ОписьОДВ_1_Файлы.zip | Файлы ОписьОДВ_1
СЗВ_К_Файлы.zip | Файлы СЗВ_К
ИзвещениеФСС_Файлы.zip | Файлы ИзвещениеФСС
Загрузка прошла успешно:

Удалил данные по лишним организациям. Их было 600+, так что было весело, но это все равно быстрее, чем удалять данные по организациям в БП. К сожалению, при переносе данных в ЗУП из БП нет фильтра по организации.
Отдал пользователям на проверку.
Проблемы в полученной базе ЗУП
Пользователи сообщили, что не проводился документ приема на работу.
Не перенеслись галочки «Отражать в трудовой книжке», а без них не фиксировалось подразделение сотрудника.

При попытке заполнить руками это поле выдавало ошибку:
Запись не верна! Значение поля «Ид мероприятия» не может быть пустым!: МероприятияТрудовойДеятельности: Иванов Иван Иванович, Предпринимателев А.О. ИП, 00000000-0000-0000-0000-000000000000, Нет (Регистр сведений: Мероприятия трудовой деятельности; Номер строки: 1)
Оказалось, причина того, что в карточке не показывался нужный сотрудник, была в том, что не заполнены интервальные регистры.

А не заполнялись они потому, что я не выключил расширение, которое борется с ошибками. Когда отключил расширение, регистры начали заполняться и все заработало. Поэтому я и советую не использовать это расширение. Ну или написать менее масштабное расширение, которое бы не мешало записывать помеченные на удаление подразделения.
Среда: ЗУП 3.1.32.66, БП 3.0.174.30, 1С 8.3.24.1667 Объем: 3 час.

Свежие комментарии