Выгрузка данных по зарплате из БП в ЗУП

У клиента данные по зарплате велись в БП. Он хочет перенести их в базу ЗУП.

Неправильный подход

Решил попробовать сделать это через синхронизацию из БП в ЗУП.

Обмен делаю через каталог 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 час.

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Читайте также:

Добавить комментарий

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