v3.0.0.52
This commit is contained in:
+1
-1
@@ -56,7 +56,7 @@
|
||||
<ScriptVariant>Russian</ScriptVariant>
|
||||
<DefaultRoles/>
|
||||
<Vendor>ООО "Профи-Софт", код партнера 42575-13, г.Байконур.</Vendor>
|
||||
<Version>3.0.0.51</Version>
|
||||
<Version>3.0.0.52</Version>
|
||||
<Caption/>
|
||||
<ShortCaption/>
|
||||
<DefaultLanguage>Language.Русский</DefaultLanguage>
|
||||
|
||||
@@ -473,9 +473,29 @@
|
||||
КонецЦикла;
|
||||
|
||||
// Кэш сотрудников: Идентификатор -> (Сотрудник, ФизическоеЛицо)
|
||||
// Приоритет поиска: ИНН → СНИЛС → ФИО
|
||||
КэшСотрудников = Новый Соответствие;
|
||||
Для Каждого Эл Из Объект.Сотрудники Цикл
|
||||
СотрСсылка = Справочники.Сотрудники.НайтиПоНаименованию(СокрЛП(Эл.ФИО), Истина);
|
||||
СотрСсылка = Неопределено;
|
||||
|
||||
// 1. Поиск по ИНН (уникальный идентификатор)
|
||||
Если ЗначениеЗаполнено(Эл.ИНН) Тогда
|
||||
СотрСсылка = Справочники.Сотрудники.НайтиПоРеквизиту("ИНН", СокрЛП(Эл.ИНН));
|
||||
КонецЕсли;
|
||||
|
||||
// 2. Поиск по СНИЛС
|
||||
Если Не ЗначениеЗаполнено(СотрСсылка) И ЗначениеЗаполнено(Эл.СНИЛС) Тогда
|
||||
ФЛ = Справочники.ФизическиеЛица.НайтиПоРеквизиту("СтраховойНомерПФР", СокрЛП(Эл.СНИЛС));
|
||||
Если ЗначениеЗаполнено(ФЛ) Тогда
|
||||
СотрСсылка = Справочники.Сотрудники.НайтиПоРеквизиту("ФизическоеЛицо", ФЛ, Истина);
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
// 3. Поиск по ФИО (fallback)
|
||||
Если Не ЗначениеЗаполнено(СотрСсылка) И ЗначениеЗаполнено(Эл.ФИО) Тогда
|
||||
СотрСсылка = Справочники.Сотрудники.НайтиПоНаименованию(СокрЛП(Эл.ФИО), Истина);
|
||||
КонецЕсли;
|
||||
|
||||
Если ЗначениеЗаполнено(СотрСсылка) Тогда
|
||||
КэшСотрудников.Вставить(Эл.Идентификатор, Новый Структура("Сотрудник, ФизическоеЛицо", СотрСсылка, СотрСсылка.ФизическоеЛицо));
|
||||
КонецЕсли;
|
||||
@@ -615,8 +635,32 @@
|
||||
Процедура ЗаписатьНачисление(ДокПеренос, Строка, ВидРасчета, Сумма, Группа, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка)
|
||||
Если Сумма = 0 Тогда Возврат; КонецЕсли;
|
||||
|
||||
// Находим вид расчёта по наименованию
|
||||
ВидРасчёта = ПланыВидовРасчета.Начисления.НайтиПоНаименованию(ВидРасчета, Истина);
|
||||
// Определяем суффикс ПВР по статье финансирования
|
||||
Суффикс = "";
|
||||
Если СтатьяФинансирования <> Неопределено Тогда
|
||||
НаименованиеСтатьи = СокрЛП(СтатьяФинансирования.Наименование);
|
||||
Если СтрНайти(НаименованиеСтатьи, "\u041e\u041c\u0421") > 0 Тогда
|
||||
Суффикс = " (\u041e\u041c\u0421)";
|
||||
ИначеЕсли СтрНайти(НаименованиеСтатьи, "\u041f\u0414") > 0 Тогда
|
||||
Суффикс = " (\u041f\u0414)";
|
||||
ИначеЕсли СтрНайти(НаименованиеСтатьи, "\u0411\u044e\u0434\u0436\u0435\u0442") > 0 Или СтрНайти(НаименованиеСтатьи, "\u0441\u0443\u0431") > 0 Тогда
|
||||
Суффикс = "";
|
||||
КонецЕсли;
|
||||
КонецЕсли;
|
||||
|
||||
// Ищем ПВР сначала с суффиксом, потом без
|
||||
ВидРасчёта = Неопределено;
|
||||
Если ЗначениеЗаполнено(Суффикс) Тогда
|
||||
ВидРасчёта = ПланыВидовРасчета.Начисления.НайтиПоНаименованию(ВидРасчета + Суффикс, Истина);
|
||||
КонецЕсли;
|
||||
Если ВидРасчёта = Неопределено Тогда
|
||||
ВидРасчёта = ПланыВидовРасчета.Начисления.НайтиПоНаименованию(ВидРасчета, Истина);
|
||||
КонецЕсли;
|
||||
|
||||
Если ВидРасчёта = Неопределено Тогда
|
||||
Сообщить("Не найден ПВР: " + ВидРасчета + Суффикс);
|
||||
Возврат;
|
||||
КонецЕсли;
|
||||
|
||||
Движение = ДокПеренос.Движения.НачисленияУдержанияПоСотрудникам.Добавить();
|
||||
Движение.Период = Период;
|
||||
|
||||
Reference in New Issue
Block a user