Функция загрузки табеля отделена для безопасной отработки выхода по

ошибке
This commit is contained in:
tsvetkoff
2026-08-13 21:37:27 +05:00
parent 090ae55ddf
commit bcadc737b7
7 changed files with 508 additions and 495 deletions
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="f3b01825-0b99-4164-8e92-f4d0535f9033"> <mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="f3b01825-0b99-4164-8e92-f4d0535f9033">
<name>ПС_Описание</name> <name>ПС_ЗагрузкаДанныхИзExcel_Описание</name>
<synonym> <synonym>
<key>ru</key> <key>ru</key>
<value>Описание</value> <value>Описание</value>
@@ -75,7 +75,7 @@
<commonModules>CommonModule.КадровыйУчетВызовСервера</commonModules> <commonModules>CommonModule.КадровыйУчетВызовСервера</commonModules>
<commonModules>CommonModule.КадровыйУчетБазовый</commonModules> <commonModules>CommonModule.КадровыйУчетБазовый</commonModules>
<commonModules>CommonModule.УчетРабочегоВремениРасширенный</commonModules> <commonModules>CommonModule.УчетРабочегоВремениРасширенный</commonModules>
<commonModules>CommonModule.ПС_Описание</commonModules> <commonModules>CommonModule.ПС_ЗагрузкаДанныхИзExcel_Описание</commonModules>
<commonModules>CommonModule.ПС_КартаДанных</commonModules> <commonModules>CommonModule.ПС_КартаДанных</commonModules>
<catalogs>Catalog.Организации</catalogs> <catalogs>Catalog.Организации</catalogs>
<catalogs>Catalog.ПодразделенияОрганизаций</catalogs> <catalogs>Catalog.ПодразделенияОрганизаций</catalogs>
@@ -596,6 +596,42 @@
ФайлДанных.Прочитать(ИмяФайла); ФайлДанных.Прочитать(ИмяФайла);
ИначеЕсли Прав(ИмяФайла, 3)="xls" ИЛИ (Прав(ИмяФайла, 4)="xlsx") Тогда ИначеЕсли Прав(ИмяФайла, 3)="xls" ИЛИ (Прав(ИмяФайла, 4)="xlsx") Тогда
Ждать ЗагрузитьДанныеИзФайлаExcel(ИмяФайла);
КонецЕсли;
КонецЕсли;
НайтиРанееЗагруженныйТабель();
ОпределитьВидимостьСтраниц();
Элементы.ГруппаСтраницы.ТекущаяСтраница = СтраницаФормыПоСтатьеФинансирования(ТекущаяСтатьяФинансирования);
ЗаписатьКоличествоСотрудниковПоСтатьеФинансирования(ТекущаяСтатьяФинансирования);
//ОбновитьСписокЗагруженныхТабелей();
ДанныеИзменены = Истина;
КонецПроцедуры
&НаКлиенте
Процедура ЗакрытьExcel(Excel)
Если Excel = Неопределено Тогда
Возврат;
КонецЕсли;
Попытка
Если Excel.ActiveWorkbook <> Неопределено Тогда
Excel.ActiveWorkbook.Close(False);
КонецЕсли;
Исключение
КонецПопытки;
Попытка
Excel.Quit();
Исключение
КонецПопытки;
Excel = Неопределено;
КонецПроцедуры
&НаКлиенте
Асинх Функция ЗагрузитьДанныеИзФайлаExcel(ИмяФайла)
Перем Excel;
Excel = Неопределено;
ИмяФайлаКраткое = Прав(ИмяФайла, СтрДлина(ИмяФайла) - СтрНайти(ИмяФайла, "\", НаправлениеПоиска.СКонца));
Попытка Попытка
Excel = Новый COMОбъект("Excel.Application"); Excel = Новый COMОбъект("Excel.Application");
Excel.WorkBooks.Open(ИмяФайла, 2, True); Excel.WorkBooks.Open(ИмяФайла, 2, True);
@@ -605,23 +641,18 @@
Исключение Исключение
Сообщить("Ошибка при открытии файла с помощью Excel! Загрузка не будет произведена!"); Сообщить("Ошибка при открытии файла с помощью Excel! Загрузка не будет произведена!");
Сообщить(ОписаниеОшибки()); Сообщить(ОписаниеОшибки());
Возврат; ЗакрытьExcel(Excel);
Возврат Неопределено;
КонецПопытки; КонецПопытки;
Попытка Попытка
//Открываем необходимый лист
Excel.Sheets(1).Select(); Excel.Sheets(1).Select();
// лист 1, по умолчанию Исключение
Исключение //Закрываем Excel Сообщить("Файл "+ИмяФайла+" не соответствует необходимому формату! Первый лист не найден!");
Excel.ActiveWorkbook.Close(); ЗакрытьExcel(Excel);
Excel = 0; Возврат Неопределено;
Сообщить("Файл "+Строка(ИмяФайла)+" не соответствует необходимому формату! Первый лист не найден!");
Возврат;
КонецПопытки; КонецПопытки;
// СтрокаОпределенияФормата = Excel.Cells(10, 1).Text;
Сообщение = Новый СообщениеПользователю; Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Определен файл выгрузки данных табеля учета рабочего времени."; Сообщение.Текст = "Определен файл выгрузки данных табеля учета рабочего времени.";
Сообщение.Сообщить(); Сообщение.Сообщить();
@@ -854,11 +885,11 @@
ТабличнаяЧасть = ИмяТабличнойЧастиПоСтатьеФинансирования(ТекущаяСтатьяФинансирования); ТабличнаяЧасть = ИмяТабличнойЧастиПоСтатьеФинансирования(ТекущаяСтатьяФинансирования);
Объект[ТабличнаяЧасть].Очистить(); Объект[ТабличнаяЧасть].Очистить();
Иначе Иначе
Возврат ЗакрытьExcel(Excel);
Возврат Неопределено;
КонецЕсли; КонецЕсли;
НомерСтрокиТабеля = 1; НомерСтрокиТабеля = 1;
//Оценка количества сотрудников
МаксимальноеКоличествоСотрудников = 0; МаксимальноеКоличествоСотрудников = 0;
Если ПродолжитьЦикл Тогда Если ПродолжитьЦикл Тогда
Состояние("Загрузка файла табеля """ + ИмяФайлаКраткое + """",1,"Оценка размера файла..."); Состояние("Загрузка файла табеля """ + ИмяФайлаКраткое + """",1,"Оценка размера файла...");
@@ -911,7 +942,6 @@
Объект.Организация, Объект.Организация,
Объект.КонецПериодаТабеля, Объект.КонецПериодаТабеля,
ИФ); ИФ);
Иначе Иначе
КоличествоСовместителей = КоличествоСовместителей + 1; КоличествоСовместителей = КоличествоСовместителей + 1;
КонецЕсли; КонецЕсли;
@@ -938,29 +968,25 @@
ТекущаяСтрокаТабличнойЧасти.Сотрудник = Сотрудник; ТекущаяСтрокаТабличнойЧасти.Сотрудник = Сотрудник;
ТекущаяСтрокаТабличнойЧасти.Должность = Должность; ТекущаяСтрокаТабличнойЧасти.Должность = Должность;
ВремяИтог = СокрЛП(Excel.Cells(НомерТекущейСтроки, Колонка_ВремяИтог).Text); ВремяИтог = СокрЛП(Excel.Cells(НомерТекущейСтроки, Колонка_ВремяИтог).Text);
ТекущаяСтрокаТабличнойЧасти.ВремяИтог = ВремяИтог; ТекущаяСтрокаТабличнойЧасти.ВремяИтог = ВремяИтог;
Если ВысотаСтроки = 3 Тогда //Есть ночные Если ВысотаСтроки = 3 Тогда
НоваяСтрокаНочныхЧасовТабличнойЧасти = Объект[ТабличнаяЧасть].Добавить(); НоваяСтрокаНочныхЧасовТабличнойЧасти = Объект[ТабличнаяЧасть].Добавить();
Если ЗначениеЗаполнено(ФИО) Тогда Если ЗначениеЗаполнено(ФИО) Тогда
ФИОСотрудника = ФИО; ФИОСотрудника = ФИО;
КонецЕсли; КонецЕсли;
НоваяСтрокаНочныхЧасовТабличнойЧасти.ФИОСотрудника = ФИОСотрудника; НоваяСтрокаНочныхЧасовТабличнойЧасти.ФИОСотрудника = ФИОСотрудника;
НоваяСтрокаНочныхЧасовТабличнойЧасти.ТабельныйНомер = ТабельныйНомер; НоваяСтрокаНочныхЧасовТабличнойЧасти.ТабельныйНомер = ТабельныйНомер;
НоваяСтрокаНочныхЧасовТабличнойЧасти.ДолжностьСотрудника = НаименованиеДолжностиСотрудника; НоваяСтрокаНочныхЧасовТабличнойЧасти.ДолжностьСотрудника = НаименованиеДолжностиСотрудника;
НоваяСтрокаНочныхЧасовТабличнойЧасти.Сотрудник = Сотрудник; НоваяСтрокаНочныхЧасовТабличнойЧасти.Сотрудник = Сотрудник;
ВремяИтог = СокрЛП(Excel.Cells(НомерТекущейСтроки + 1, Колонка_ВремяИтог).Text); ВремяИтог = СокрЛП(Excel.Cells(НомерТекущейСтроки + 1, Колонка_ВремяИтог).Text);
НоваяСтрокаНочныхЧасовТабличнойЧасти.ВремяИтог = ВремяИтог; НоваяСтрокаНочныхЧасовТабличнойЧасти.ВремяИтог = ВремяИтог;
КонецЕсли; КонецЕсли;
Для ЧислоДня = 1 По КонецМесяцаТабеля Цикл // число для отладки
Для ЧислоДня = 1 По КонецМесяцаТабеля Цикл
ИмяКолонкиЦифра = "Часов" + ЧислоДня; ИмяКолонкиЦифра = "Часов" + ЧислоДня;
ИмяКолонкиБуква = "Время" + ЧислоДня + "Буква"; ИмяКолонкиБуква = "Время" + ЧислоДня + "Буква";
ИмяКолонкиВидВремени = "ВидВремени" + ЧислоДня; ИмяКолонкиВидВремени = "ВидВремени" + ЧислоДня;
НомерКолонкиФайла = НК+ЧислоДня; НомерКолонкиФайла = НК+ЧислоДня;
@@ -970,7 +996,7 @@
КоличествоНочныхЧасов = 0; КоличествоНочныхЧасов = 0;
КоличествоЧасов = 0; КоличествоЧасов = 0;
НайденоРабочееВремя = Ложь; НайденоРабочееВремя = Ложь;
Если ВысотаСтроки = 3 Тогда //Есть ночные Если ВысотаСтроки = 3 Тогда
ТекстЯчейки = ВРег(СокрЛП(Excel.Cells(НомерТекущейСтроки+1, НомерКолонкиФайла).Text)); ТекстЯчейки = ВРег(СокрЛП(Excel.Cells(НомерТекущейСтроки+1, НомерКолонкиФайла).Text));
Если (Найти(ТекстЯчейки,"Н") > 0) и (Найти(ТекстЯчейки,"НН") = 0) и Если (Найти(ТекстЯчейки,"Н") > 0) и (Найти(ТекстЯчейки,"НН") = 0) и
(Найти(ТекстЯчейки,"НБ") = 0) и (Найти(ТекстЯчейки,"НОД") = 0) и (Найти(ТекстЯчейки,"НБ") = 0) и (Найти(ТекстЯчейки,"НОД") = 0) и
@@ -984,7 +1010,6 @@
Если Найти(ТекстКоличестваНочныхЧасов_2,"Н") = 0 Тогда Если Найти(ТекстКоличестваНочныхЧасов_2,"Н") = 0 Тогда
ТекстКоличестваНочныхЧасов = ТекстКоличестваНочныхЧасов_2; ТекстКоличестваНочныхЧасов = ТекстКоличестваНочныхЧасов_2;
КонецЕсли; КонецЕсли;
Если ТекстКоличестваНочныхЧасов = "" Тогда Если ТекстКоличестваНочныхЧасов = "" Тогда
КоличествоНочныхЧасов = 0; КоличествоНочныхЧасов = 0;
Иначе Иначе
@@ -1016,7 +1041,6 @@
Попытка Попытка
КоличествоЧасов = Число(ТекстКоличестваЧасов); КоличествоЧасов = Число(ТекстКоличестваЧасов);
Исключение Исключение
Сообщение = Новый СообщениеПользователю;
СообщениеОбОшибкеВидаВремени = "Ошибка получения часов по табелю. Сотрудник: " + ФИО + СообщениеОбОшибкеВидаВремени = "Ошибка получения часов по табелю. Сотрудник: " + ФИО +
". Номер дня: " + Строка(ЧислоДня); ". Номер дня: " + Строка(ЧислоДня);
ИнформационноеСообщение(СообщениеОбОшибкеВидаВремени,СтатусСообщения.ОченьВажное); ИнформационноеСообщение(СообщениеОбОшибкеВидаВремени,СтатусСообщения.ОченьВажное);
@@ -1027,54 +1051,54 @@
Если ТекстЯчейки = "" Тогда Если ТекстЯчейки = "" Тогда
ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениВыходныеДни(); ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениВыходныеДни();
ИначеЕсли Найти(ТекстЯчейки,"Ф") = 1 Тогда //Явка ИначеЕсли Найти(ТекстЯчейки,"Ф") = 1 Тогда
ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениЯвка(); ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениЯвка();
НайденоРабочееВремя = Истина; НайденоРабочееВремя = Истина;
ИначеЕсли Найти(ТекстЯчейки,"С") = 1 Тогда //Сверхурочные ИначеЕсли Найти(ТекстЯчейки,"С") = 1 Тогда
ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениСверхурочные(); ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениСверхурочные();
НайденоРабочееВремя = Истина; НайденоРабочееВремя = Истина;
ИначеЕсли Найти(ТекстЯчейки,"РП") = 1 Тогда //Праздничные и выходные ИначеЕсли Найти(ТекстЯчейки,"РП") = 1 Тогда
ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениПраздники(); ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениПраздники();
НайденоРабочееВремя = Истина; НайденоРабочееВремя = Истина;
ИначеЕсли Найти(ТекстЯчейки,"В") = 1 Тогда //Выходные и праздничные дни ИначеЕсли Найти(ТекстЯчейки,"В") = 1 Тогда
ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениВыходныеДни(); ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениВыходныеДни();
ИначеЕсли Найти(ТекстЯчейки,"К") = 1 Тогда //Больничный ИначеЕсли Найти(ТекстЯчейки,"К") = 1 Тогда
ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениКомандировка(); ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениКомандировка();
ИначеЕсли Найти(ТекстЯчейки,"Б") = 1 Тогда //Больничный ИначеЕсли Найти(ТекстЯчейки,"Б") = 1 Тогда
ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениБолезнь(); ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениБолезнь();
ИначеЕсли Найти(ТекстЯчейки,"Р") = 1 Тогда //Отпуск по беременности и родам ИначеЕсли Найти(ТекстЯчейки,"Р") = 1 Тогда
ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениОтпускПоБеременностиИРодам(); ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениОтпускПоБеременностиИРодам();
ИначеЕсли Найти(ТекстЯчейки,"ОР") = 1 Тогда //Отпуск по уходу за ребенком ИначеЕсли Найти(ТекстЯчейки,"ОР") = 1 Тогда
ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениОтпускПоУходуЗаРебенком(); ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениОтпускПоУходуЗаРебенком();
ИначеЕсли Найти(ТекстЯчейки,"П") = 1 Тогда //Прогул ИначеЕсли Найти(ТекстЯчейки,"П") = 1 Тогда
ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениПрогулы(); ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениПрогулы();
ИначеЕсли Найти(ТекстЯчейки,"А") = 1 Тогда //Прогул ИначеЕсли Найти(ТекстЯчейки,"А") = 1 Тогда
ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениДополнительныеВыходныеДниОплачиваемые(); ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениДополнительныеВыходныеДниОплачиваемые();
ИначеЕсли Найти(ТекстЯчейки,"О") = 1 Тогда //Отпуск основной ИначеЕсли Найти(ТекстЯчейки,"О") = 1 Тогда
ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениОсновнойОтпуск(); ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениОсновнойОтпуск();
ИначеЕсли Найти(ТекстЯчейки,"ОД") = 1 Тогда //Отпуск дополнительный ИначеЕсли Найти(ТекстЯчейки,"ОД") = 1 Тогда
ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениДополнительныйОтпуск(); ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениДополнительныйОтпуск();
ИначеЕсли Найти(ТекстЯчейки,"ОУ") = 1 Тогда //Отпуск учебный ИначеЕсли Найти(ТекстЯчейки,"ОУ") = 1 Тогда
ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениОтпускНаОбучение(); ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениОтпускНаОбучение();
ИначеЕсли Найти(ТекстЯчейки,"ВУ") = 1 Тогда //Отпуск учебный ИначеЕсли Найти(ТекстЯчейки,"ВУ") = 1 Тогда
ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениДополнительныеВыходныеДниОплачиваемые(); ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениДополнительныеВыходныеДниОплачиваемые();
ИначеЕсли Найти(ТекстЯчейки,"НН") = 1 Тогда //Неявки по невыясненным причинам ИначеЕсли Найти(ТекстЯчейки,"НН") = 1 Тогда
ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениНеявкиПоНевыясненнымПричинам(); ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениНеявкиПоНевыясненнымПричинам();
ИначеЕсли Найти(ТекстЯчейки,"ОЗ") = 1 Тогда //Отпуск учебный ИначеЕсли Найти(ТекстЯчейки,"ОЗ") = 1 Тогда
ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениНеоплачиваемыйОтпускПоРазрешениюРаботодателя(); ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениНеоплачиваемыйОтпускПоРазрешениюРаботодателя();
ИначеЕсли Найти(ТекстЯчейки,"ОВ") = 1 Тогда //Отпуск учебный ИначеЕсли Найти(ТекстЯчейки,"ОВ") = 1 Тогда
ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениДополнительныеВыходныеДниОплачиваемые(); ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениДополнительныеВыходныеДниОплачиваемые();
ИначеЕсли Найти(ТекстЯчейки,"НБ") = 1 Тогда //Отпуск учебный ИначеЕсли Найти(ТекстЯчейки,"НБ") = 1 Тогда
ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениОтстранениеОтРаботыБезОплаты(); ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениОтстранениеОтРаботыБезОплаты();
ИначеЕсли Найти(ТекстЯчейки,"НОД") = 1 Тогда //Отпуск учебный ИначеЕсли Найти(ТекстЯчейки,"НОД") = 1 Тогда
ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениДополнительныеВыходныеДниОплачиваемые(); ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениДополнительныеВыходныеДниОплачиваемые();
ИначеЕсли Найти(ТекстЯчейки,"ДВ") = 1 Тогда //Отпуск учебный ИначеЕсли Найти(ТекстЯчейки,"ДВ") = 1 Тогда
ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениДополнительныеВыходныеДниОплачиваемые(); ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениДополнительныеВыходныеДниОплачиваемые();
ИначеЕсли Найти(ТекстЯчейки,"Д") = 1 Тогда //Отпуск учебный ИначеЕсли Найти(ТекстЯчейки,"Д") = 1 Тогда
ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениДополнительныеВыходныеДниОплачиваемые(); ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениДополнительныеВыходныеДниОплачиваемые();
ИначеЕсли Найти(ТекстЯчейки,"НА") = 1 Тогда //Неявка из-за ареста (Неявки по невыясненным причинам) ИначеЕсли Найти(ТекстЯчейки,"НА") = 1 Тогда
ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениНеявкиПоНевыясненнымПричинам(); ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениНеявкиПоНевыясненнымПричинам();
ИначеЕсли Найти(ТекстЯчейки,"НО") = 1 и (Найти(ТекстЯчейки,"НОД") = 0) Тогда //Отпуск учебный ИначеЕсли Найти(ТекстЯчейки,"НО") = 1 и (Найти(ТекстЯчейки,"НОД") = 0) Тогда
ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениОтстранениеОтРаботыСОплатой(); ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениОтстранениеОтРаботыСОплатой();
КонецЕсли; КонецЕсли;
ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиЦифра] = КоличествоЧасов; ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиЦифра] = КоличествоЧасов;
@@ -1095,26 +1119,15 @@
КонецЕсли; КонецЕсли;
КонецЦикла; КонецЦикла;
КонецЕсли;
Объект.Комментарий = "Загружено " + Строка(ТекущаяДата()) + Объект.Комментарий = "Загружено " + Строка(ТекущаяДата()) +
" по данным файлов: """ + ИмяФайлаСГЗ + """, """ + ИмяФайлаПД + """, """ + ИмяФайлаСГЗ + """"; " по данным файлов: """ + ИмяФайлаСГЗ + """, """ + ИмяФайлаПД + """, """ + ИмяФайлаСГЗ + """";
НомерСтрокиТабеля = 100001; НомерСтрокиТабеля = 100001;
НомерТекущейСтрокиТабличнойЧасти = 100001; НомерТекущейСтрокиТабличнойЧасти = 100001;
Excel.WorkBooks.Close(); ЗакрытьExcel(Excel);
//ЗаполнитьТабличнуюЧасть(); Возврат ТекущаяСтатьяФинансирования;
//ОчисткаЗначенийРекрвизитовФормы() КонецФункции
//ЭтаОбработка = РеквизитФормыВЗначение("Объект");
//Объект.Табель.Очистить();
КонецЕсли;
НайтиРанееЗагруженныйТабель();
ОпределитьВидимостьСтраниц();
Элементы.ГруппаСтраницы.ТекущаяСтраница = СтраницаФормыПоСтатьеФинансирования(ТекущаяСтатьяФинансирования);
ЗаписатьКоличествоСотрудниковПоСтатьеФинансирования(ТекущаяСтатьяФинансирования);
//ОбновитьСписокЗагруженныхТабелей();
ДанныеИзменены = Истина;
КонецПроцедуры
&НаСервере &НаСервере
Процедура НайтиРанееЗагруженныйТабель() Процедура НайтиРанееЗагруженныйТабель()
@@ -35,7 +35,7 @@
// //
// Общие модули: // Общие модули:
// ПС_РаботаСНастройками — программный интерфейс (Сервер) // ПС_РаботаСНастройками — программный интерфейс (Сервер)
// ПС_Описание — настоящий модуль документации // ПС_ПериодическиеНастройки_Описание — настоящий модуль документации
// //
// ПРИНЦИП ЗАПИСИ БЕЗ УКАЗАНИЯ ПЕРИОДА // ПРИНЦИП ЗАПИСИ БЕЗ УКАЗАНИЯ ПЕРИОДА
// //
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="6d9ceeed-89b2-436f-8698-d7314fff223f"> <mdclass:CommonModule xmlns:mdclass="http://g5.1c.ru/v8/dt/metadata/mdclass" uuid="6d9ceeed-89b2-436f-8698-d7314fff223f">
<name>ПС_Описание</name> <name>ПС_ПериодическиеНастройки_Описание</name>
<synonym> <synonym>
<key>ru</key> <key>ru</key>
<value>Описание</value> <value>Описание</value>
@@ -46,7 +46,7 @@
</languages> </languages>
<roles>Role.ПС_ЗаписьНастроек</roles> <roles>Role.ПС_ЗаписьНастроек</roles>
<roles>Role.ПС_ЧтениеНастроек</roles> <roles>Role.ПС_ЧтениеНастроек</roles>
<commonModules>CommonModule.ПС_Описание</commonModules> <commonModules>CommonModule.ПС_ПериодическиеНастройки_Описание</commonModules>
<commonModules>CommonModule.ПС_РаботаСНастройками</commonModules> <commonModules>CommonModule.ПС_РаботаСНастройками</commonModules>
<definedTypes>DefinedType.ПС_ТипыЗначенийНастроек</definedTypes> <definedTypes>DefinedType.ПС_ТипыЗначенийНастроек</definedTypes>
<catalogs>Catalog.Пользователи</catalogs> <catalogs>Catalog.Пользователи</catalogs>