diff --git a/Configuration.xml b/Configuration.xml
index 1aac6a4..5ed77b0 100755
--- a/Configuration.xml
+++ b/Configuration.xml
@@ -60,7 +60,7 @@
Russian
Language.Русский
ООО "Профи-Софт", код партнера 42575-13, г.Байконур.
- 3.0.0.7
+ 3.0.0.8
Language.Русский
diff --git a/DataProcessors/ЗагрузкаДанныхИзExcel/Forms/Форма/Ext/Form/Module.bsl b/DataProcessors/ЗагрузкаДанныхИзExcel/Forms/Форма/Ext/Form/Module.bsl
index c263b58..015ea10 100644
--- a/DataProcessors/ЗагрузкаДанныхИзExcel/Forms/Форма/Ext/Form/Module.bsl
+++ b/DataProcessors/ЗагрузкаДанныхИзExcel/Forms/Форма/Ext/Form/Module.bsl
@@ -148,12 +148,21 @@
// ============================================================================
// Создаёт Соответствие для поиска колонок по имени заголовка.
-// Ключ — имя заголовка (нижний регистр), значение — номер колонки (0-based).
+// Ключ — имя заголовка (нижний регистр), значение — номер колонки (1-based).
&НаКлиенте
Функция СоздатьИндексЗаголовков(Лист, НомерСтрокиЗаголовков)
Индекс = Новый Соответствие;
- Для Колонка = 0 По Лист.Cells(НомерСтрокиЗаголовков, 1).End(-4161).Column - 1 Цикл
- Имя = СокрЛП(НРег(Лист.Cells(НомерСтрокиЗаголовков, Колонка + 1).Value));
+ // Определяем количество колонок: ищем последнюю непустую колонку
+ ПоследняяКолонка = 1;
+ Для Колонка = 1 По 100 Цикл
+ Значение = Лист.Cells(НомерСтрокиЗаголовков, Колонка).Value;
+ Если Значение <> Неопределено И Значение <> "" Тогда
+ ПоследняяКолонка = Колонка;
+ КонецЕсли;
+ КонецЦикла;
+
+ Для Колонка = 1 По ПоследняяКолонка Цикл
+ Имя = СокрЛП(НРег(Лист.Cells(НомерСтрокиЗаголовков, Колонка).Value));
Если ЗначениеЗаполнено(Имя) Тогда
Индекс.Вставить(Имя, Колонка);
КонецЕсли;
@@ -162,7 +171,7 @@
КонецФункции
// Находит номер колонки по ключевому слову в заголовке.
-// Возвращает номер колонки (0-based) или -1 если не найдено.
+// Возвращает номер колонки (1-based) или -1 если не найдено.
&НаКлиенте
Функция НайтиКолонкуПоЗаголовку(ИндексЗаголовков, КлючевоеСлово)
Ключ = НРег(КлючевоеСлово);
@@ -404,7 +413,7 @@
Пока Истина Цикл
// Попытка 1: читаем значение напрямую (xls)
- ФИО = ПрочитатьЯчейкуСтрока(ЛистРасчет, Ном, 0);
+ ФИО = ПрочитатьЯчейкуСтрока(ЛистРасчет, Ном, 1);
// Попытка 2: если значение пустое — проверяем формулу (xlsm)
ЛистСотрудника = Неопределено;
@@ -450,12 +459,8 @@
МассивДанных.Добавить(Строка);
- // Чтение страховых взносов
- Если ЛистСотрудника <> Неопределено Тогда
- СтрВзносов = ПрочитатьСтрокуВзносов(ЛистСотрудника, 2, ФИО, ИндексЗаголовков);
- Иначе
- СтрВзносов = ПрочитатьСтрокуВзносов(ЛистРасчет, Ном, ФИО, ИндексЗаголовков);
- КонецЕсли;
+ // Чтение страховых взносов (из РАСЧЕТ, т.к. на листах сотрудников взносов нет)
+ СтрВзносов = ПрочитатьСтрокуВзносов(ЛистРасчет, Ном, ФИО, ИндексЗаголовков);
Если СтрВзносов <> Неопределено Тогда
МассивВзносов.Добавить(СтрВзносов);
КонецЕсли;