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;
КонецФункции