Что пришлось переписывать в этой обработке за 5 монет:
- пришлось полностью переписать прочтение доков в таблицу, ибо все множилось зачем-то по одному и тому же документу, лишние реквизиты в запросе...
- сделаны маленькие полезняшки с отбором по типу загружаемого, с визуальным просмотром таб номеров сотрудников до и после (чтоб можно было визуально понять например найден точно он или он-совместитель), добавлено отображение списка сотрудников в документе 2.5 для информации. отображение комментария документов.
- !!! полностью переписаны процедуры заполнения реквизитов документов в структуры для загрузки, с учетом того, что они могут потом использоваться для загрузки в документы списком. в том числе и начисления записываются не для одного, а всех сотрудников с возможностью потом найти чье именно. !!!
- !!! сделана загрузка в документы списки, в том числе с попыткой определять, когда ИзменениеГрафикаСписком и загрузкой в него !!!
- подкорректировано дозаполнение формы в документах по одному сотруднику, типа расчета итогового ФОТ в Приеме на работу после загрузки начислений
- добавлено перенос действий для начислений в Кадровых перемещениях Установить, Отменить и т.п., ибо переносилось все тупо с предопределенным действием Установить.
- исправлены "Объект не найден" на СтрНайти(СокрЛП(НС.Ссылка),"Объект не")>0 Тогда,
именно так СокрЛП обрезает не найденную ссылку
- ошибка во всех процедурах ПолучитьРеквизиты...()
1. для сотрудников - ГУИД_Организация
2. не надо продолжать сотрудников искать по наименованию, если код, т.е. табельный номер у них уже не равен. если такой найдется, то это он же совместитель или уволенный ранее
ГУИД_Сотрудник = БазаТам.String(РаботникОрганизации.Сотрудник.УникальныйИдентификатор());
Если СокрЛП(ГУИД_Организация) <> "00000000-0000-0000-0000-000000000000" Тогда // ПустаяСсылка
Сотрудник = Справочники.Сотрудники.ПолучитьСсылку(Новый УникальныйИдентификатор(ГУИД_Сотрудник));
Если СтрНайти(СокрЛП(Сотрудник), "Объект не") Тогда
Сотрудник = Справочники.Сотрудники.НайтиПоКоду(СокрП(РаботникОрганизации.Сотрудник.Code));
//не надо так, это другой сотрудник - он же уже уволенный или совместитель
//Если НЕ ЗначениеЗаполнено(Сотрудник) Тогда
// Сотрудник = Справочники.Сотрудники.НайтиПоНаименованию(СокрЛП(РаботникОрганизации.Сотрудник.Description));
//КонецЕсли;
КонецЕсли;
Иначе
Сотрудник = Справочники.Сотрудники.ПустаяСсылка();
КонецЕсли;
- ошибка в загрузке физ лиц, если физлицо не военнообязанное, то ВДЗКом.ОтношениеКВоинскомуУчету - пустая ссылка в базе 2.5 и индекс по ней получить нельзя, вылетает на этой строке:
ОтношениеКВоинскомуУчетуТам = СокрЛП(БазаТам.String(ВДЗКом.ОтношениеКВоинскомуУчету));
Ном = "";
Ном = БазаТам.Перечисления.ОтношениеКВоинскомуУчету.Индекс(ВДЗКом.ОтношениеКВоинскомуУчету);
добавлено условие проверки, что это нужно дозаписывать, когда НЕ невоеннобязанный.
- не корректно загружается контактная информация, таблица справочника физлица не полностью заполняется, из-за этого, при открытии адреса - он пустой
- ! не нужно создавать физлицо по умолчанию вместе с сотрудником, если сотрудник не найден, часто оно есть, хоть и с другим GUID и вот его как-то стоит поискать по наименованию еще дополнительно. а так дубли плодятся в базе, а по внутренним совместителям с разными физлицами потом еще и НДФЛ не соберете, если не проверите и оставите как загрузилось !
это пока навскидку... может и еще что-то правил в этой обработке.
больничные не нужны были, не трогались, но на больничных ошибка выдается при первой проверке
обработка эта явно была изначально другая, с каким-то другим функционалом, автор ее переделал, местами коряво и в коде много мусора оставил неиспользуемого и лишних объектов, в частности форму РаботаСКадрами, которая видимо использовалась в оригинальной обработке для загрузки физлиц. может поэтому ту обработку автор и взял за шаблон, потому что там бинго - был готовый код по загрузке физлиц :)
в этом наверное и весь плюс этой обработки, что все-таки загрузка физлица трудоемкая выполнена почти, и есть какое-то дозаполнение документа Увольнения, которое в ЗУП 3.1 сложнее 2.5 - это сокращает время работы, остальное нужно почти все переписывать по новой.
это что касается Приемов, Кадровых перемещений и Увольнений.
есть очень сильные подозрения, что автор неплохо сбарыжничал на чужом труде, не указав источников.
сама идея помощника для ручного забивания документов в ЗУП 3.1, когда нужно выборочно что-то из 2.5 заносить - хорошая.