diff --git a/Configuration.xml b/Configuration.xml index d1249de..13d7098 100755 --- a/Configuration.xml +++ b/Configuration.xml @@ -60,7 +60,7 @@ Russian Language.Русский ООО "Профи-Софт", код партнера 42575-13, г.Байконур. - 3.0.0.5 + 3.0.0.6 Language.Русский diff --git a/DataProcessors/ЗагрузкаДанныхИзExcel/Forms/Форма/Ext/Form.xml b/DataProcessors/ЗагрузкаДанныхИзExcel/Forms/Форма/Ext/Form.xml index e5ef033..538f9f8 100644 --- a/DataProcessors/ЗагрузкаДанныхИзExcel/Forms/Форма/Ext/Form.xml +++ b/DataProcessors/ЗагрузкаДанныхИзExcel/Forms/Форма/Ext/Form.xml @@ -89,7 +89,7 @@ - + Объект.ДанныеРасчетаЗП @@ -194,7 +194,7 @@ 35 - +
@@ -205,7 +205,7 @@ - + Объект.ДанныеСтраховыхВзносов @@ -270,7 +270,7 @@ 12 - +
diff --git a/DataProcessors/ЗагрузкаДанныхИзExcel/Forms/Форма/Ext/Form/Module.bsl b/DataProcessors/ЗагрузкаДанныхИзExcel/Forms/Форма/Ext/Form/Module.bsl index 169a6e2..3fa31b5 100644 --- a/DataProcessors/ЗагрузкаДанныхИзExcel/Forms/Форма/Ext/Form/Module.bsl +++ b/DataProcessors/ЗагрузкаДанныхИзExcel/Forms/Форма/Ext/Form/Module.bsl @@ -158,8 +158,9 @@ Возврат -1; КонецФункции -// Находит строку заголовков, содержащую ключевые слова ("Сотрудник" или "Должность"). -// Обеспечивает совместимость с xls (строка 15) и xlsm (строка 16). +// Находит строку заголовков таблицы данных. +// Ищет строку, содержащую ХОТЯ БЫ 2 ключевых слова из списка одновременно. +// Это исключает ложные срабатывания на метаданных (строки 0-14). &НаКлиенте Функция НайтиСтрокуЗаголовков(ЛистРасчет) // Ключевые слова заголовков (в нижнем регистре) @@ -167,22 +168,30 @@ КлючевыеСлова.Добавить("сотрудник"); КлючевыеСлова.Добавить("должность"); КлючевыеСлова.Добавить("счет"); + КлючевыеСлова.Добавить("вид занятости"); - // Ищем в диапазоне строк 10-20 (с запасом) - Для Ном = 10 По Мин(20, ЛистРасчет.Rows.Count) Цикл + // Ищем строку с минимум 2 совпадениями ключевых слов + Для Ном = 1 По Мин(30, ЛистРасчет.Rows.Count) Цикл + КоличествоСовпадений = 0; Для Каждого КлючевоеСлово Из КлючевыеСлова Цикл - Для Колонка = 1 По Мин(5, ЛистРасчет.Columns.Count) Цикл + Для Колонка = 1 По Мин(10, ЛистРасчет.Columns.Count) Цикл Значение = ЛистРасчет.Cells(Ном, Колонка).Value; Если Значение <> Неопределено Тогда Если СтрНайти(НРег(СокрЛП("" + Значение)), КлючевоеСлово) > 0 Тогда - Возврат Ном; + КоличествоСовпадений = КоличествоСовпадений + 1; + Прервать; КонецЕсли; КонецЕсли; КонецЦикла; КонецЦикла; + + // Строка заголовков содержит 2+ ключевых слова + Если КоличествоСовпадений >= 2 Тогда + Возврат Ном; + КонецЕсли; КонецЦикла; - // Если не нашли — возвращаем 15 по умолчанию (для xls) + // Fallback: строка 15 (для старых xls) Возврат 15; КонецФункции