v3.0.0.9: fix col index 0->1, fix insurance from RASSCHET, fix Index 1-based
This commit is contained in:
+1
-1
@@ -60,7 +60,7 @@
|
||||
<ScriptVariant>Russian</ScriptVariant>
|
||||
<DefaultLanguage>Language.Русский</DefaultLanguage>
|
||||
<Vendor>ООО "Профи-Софт", код партнера 42575-13, г.Байконур.</Vendor>
|
||||
<Version>3.0.0.7</Version>
|
||||
<Version>3.0.0.8</Version>
|
||||
<DefaultLanguage>Language.Русский</DefaultLanguage>
|
||||
<BriefInformation>
|
||||
<v8:item>
|
||||
|
||||
@@ -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, ФИО, ИндексЗаголовков);
|
||||
Иначе
|
||||
СтрВзносов = ПрочитатьСтрокуВзносов(ЛистРасчет, Ном, ФИО, ИндексЗаголовков);
|
||||
КонецЕсли;
|
||||
// Чтение страховых взносов (из РАСЧЕТ, т.к. на листах сотрудников взносов нет)
|
||||
СтрВзносов = ПрочитатьСтрокуВзносов(ЛистРасчет, Ном, ФИО, ИндексЗаголовков);
|
||||
Если СтрВзносов <> Неопределено Тогда
|
||||
МассивВзносов.Добавить(СтрВзносов);
|
||||
КонецЕсли;
|
||||
|
||||
Reference in New Issue
Block a user