diff --git a/101_ЦМСЧ_ЗиКГУ.ЗагрузкаДанныхИзExcel/src/CommonModules/ПС_Описание/Module.bsl b/101_ЦМСЧ_ЗиКГУ.ЗагрузкаДанныхИзExcel/src/CommonModules/ПС_ЗагрузкаДанныхИзExcel_Описание/Module.bsl similarity index 100% rename from 101_ЦМСЧ_ЗиКГУ.ЗагрузкаДанныхИзExcel/src/CommonModules/ПС_Описание/Module.bsl rename to 101_ЦМСЧ_ЗиКГУ.ЗагрузкаДанныхИзExcel/src/CommonModules/ПС_ЗагрузкаДанныхИзExcel_Описание/Module.bsl diff --git a/101_ЦМСЧ_ЗиКГУ.ЗагрузкаДанныхИзExcel/src/CommonModules/ПС_Описание/ПС_Описание.mdo b/101_ЦМСЧ_ЗиКГУ.ЗагрузкаДанныхИзExcel/src/CommonModules/ПС_ЗагрузкаДанныхИзExcel_Описание/ПС_ЗагрузкаДанныхИзExcel_Описание.mdo similarity index 77% rename from 101_ЦМСЧ_ЗиКГУ.ЗагрузкаДанныхИзExcel/src/CommonModules/ПС_Описание/ПС_Описание.mdo rename to 101_ЦМСЧ_ЗиКГУ.ЗагрузкаДанныхИзExcel/src/CommonModules/ПС_ЗагрузкаДанныхИзExcel_Описание/ПС_ЗагрузкаДанныхИзExcel_Описание.mdo index 0305963..e2186fa 100644 --- a/101_ЦМСЧ_ЗиКГУ.ЗагрузкаДанныхИзExcel/src/CommonModules/ПС_Описание/ПС_Описание.mdo +++ b/101_ЦМСЧ_ЗиКГУ.ЗагрузкаДанныхИзExcel/src/CommonModules/ПС_ЗагрузкаДанныхИзExcel_Описание/ПС_ЗагрузкаДанныхИзExcel_Описание.mdo @@ -1,6 +1,6 @@ - ПС_Описание + ПС_ЗагрузкаДанныхИзExcel_Описание ru Описание diff --git a/101_ЦМСЧ_ЗиКГУ.ЗагрузкаДанныхИзExcel/src/Configuration/Configuration.mdo b/101_ЦМСЧ_ЗиКГУ.ЗагрузкаДанныхИзExcel/src/Configuration/Configuration.mdo index 2c1cb22..84479b1 100644 --- a/101_ЦМСЧ_ЗиКГУ.ЗагрузкаДанныхИзExcel/src/Configuration/Configuration.mdo +++ b/101_ЦМСЧ_ЗиКГУ.ЗагрузкаДанныхИзExcel/src/Configuration/Configuration.mdo @@ -75,7 +75,7 @@ CommonModule.КадровыйУчетВызовСервера CommonModule.КадровыйУчетБазовый CommonModule.УчетРабочегоВремениРасширенный - CommonModule.ПС_Описание + CommonModule.ПС_ЗагрузкаДанныхИзExcel_Описание CommonModule.ПС_КартаДанных Catalog.Организации Catalog.ПодразделенияОрганизаций diff --git a/101_ЦМСЧ_ЗиКГУ.ЗагрузкаДанныхИзExcel/src/DataProcessors/ПС_ЗагрузкаТабеляУчётаРабочегоВремениИзEXCEL/Forms/Форма/Module.bsl b/101_ЦМСЧ_ЗиКГУ.ЗагрузкаДанныхИзExcel/src/DataProcessors/ПС_ЗагрузкаТабеляУчётаРабочегоВремениИзEXCEL/Forms/Форма/Module.bsl index 13bcdab..1fc7a89 100644 --- a/101_ЦМСЧ_ЗиКГУ.ЗагрузкаДанныхИзExcel/src/DataProcessors/ПС_ЗагрузкаТабеляУчётаРабочегоВремениИзEXCEL/Forms/Форма/Module.bsl +++ b/101_ЦМСЧ_ЗиКГУ.ЗагрузкаДанныхИзExcel/src/DataProcessors/ПС_ЗагрузкаТабеляУчётаРабочегоВремениИзEXCEL/Forms/Форма/Module.bsl @@ -596,525 +596,538 @@ ФайлДанных.Прочитать(ИмяФайла); ИначеЕсли Прав(ИмяФайла, 3)="xls" ИЛИ (Прав(ИмяФайла, 4)="xlsx") Тогда - Попытка - Excel = Новый COMОбъект("Excel.Application"); - Excel.WorkBooks.Open(ИмяФайла, 2, True); - Excel.DisplayAlerts = 0; - НомерЛистаExcel = 1; - ExcelЛист = Excel.Sheets(НомерЛистаExcel); - Исключение - Сообщить("Ошибка при открытии файла с помощью Excel! Загрузка не будет произведена!"); - Сообщить(ОписаниеОшибки()); - Возврат; - КонецПопытки; - Попытка - //Открываем необходимый лист - Excel.Sheets(1).Select(); - // лист 1, по умолчанию - Исключение //Закрываем Excel - Excel.ActiveWorkbook.Close(); - Excel = 0; - Сообщить("Файл "+Строка(ИмяФайла)+" не соответствует необходимому формату! Первый лист не найден!"); - - Возврат; - КонецПопытки; - - // СтрокаОпределенияФормата = Excel.Cells(10, 1).Text; - - - Сообщение = Новый СообщениеПользователю; - Сообщение.Текст = "Определен файл выгрузки данных табеля учета рабочего времени."; - Сообщение.Сообщить(); - - НомерСтрокиТабеля = 0; - НомерТекущейСтрокиТабличнойЧасти = 0; - - НС = 21; - НК = 6; - - Колонка_ВремяИтог = 41; - Колонка_ВремяЗаПервуюПоловинуМесяца = 22; - Колонка_ВремяЗаВторуюПоловинуМесяца = 39; - Колонка_ТабельныйНомер = 2; - Колонка_ФИО = 3; - Колонка_КоличествоСтавок = 5; - Колонка_ВидЗанятости = 6; - Колонка_Должность = 4; - КоличествоСотрудников = 0; - КоличествоСовместителей = 0; - ПродолжитьЦикл = Истина; - ЗагружаетсяПервыйТабель = Ложь; - - Если (Найти(ВРег(СокрЛП(Excel.Cells(НС-5, Колонка_ФИО).Text)),"ФАМИЛИЯ") = 0) Тогда - ИнформационноеСообщение("Ошибка формата файла. Не обнаружена графа ФИО (ячейка 16:3)",СтатусСообщения.ОченьВажное); - ПродолжитьЦикл = Ложь; - КонецЕсли; + Ждать ЗагрузитьДанныеИзФайлаExcel(ИмяФайла); + КонецЕсли; + КонецЕсли; + НайтиРанееЗагруженныйТабель(); + ОпределитьВидимостьСтраниц(); + Элементы.ГруппаСтраницы.ТекущаяСтраница = СтраницаФормыПоСтатьеФинансирования(ТекущаяСтатьяФинансирования); + ЗаписатьКоличествоСотрудниковПоСтатьеФинансирования(ТекущаяСтатьяФинансирования); + //ОбновитьСписокЗагруженныхТабелей(); + ДанныеИзменены = Истина; +КонецПроцедуры - Попытка - НаименованиеПодразделенияИзФайла = ВРег(Строка(СокрЛП(Excel.Cells(12,5).Text))); - Если Объект.НаименованиеПодразделения = "" Тогда - Объект.НаименованиеПодразделения = НаименованиеПодразделенияИзФайла; - ЗагружаетсяПервыйТабель = Истина; - Иначе - Если Объект.НаименованиеПодразделения <> НаименованиеПодразделенияИзФайла Тогда - ИнформационноеСообщение("Ошибка загрузки файла. Наименование подразделения (ячейка 12:5) отличается от загруженных ранее. Загрузка отменена.",СтатусСообщения.ОченьВажное); - ПродолжитьЦикл = Ложь; - КонецЕсли; - КонецЕсли; - Исключение - ИнформационноеСообщение("Ошибка формата файла. Не обнаружено наименование подразделения табеля (ячейка 12:5)",СтатусСообщения.ОченьВажное); - ПродолжитьЦикл = Ложь; - КонецПопытки; +&НаКлиенте +Процедура ЗакрытьExcel(Excel) + Если Excel = Неопределено Тогда + Возврат; + КонецЕсли; + Попытка + Если Excel.ActiveWorkbook <> Неопределено Тогда + Excel.ActiveWorkbook.Close(False); + КонецЕсли; + Исключение + КонецПопытки; + Попытка + Excel.Quit(); + Исключение + КонецПопытки; + Excel = Неопределено; +КонецПроцедуры - Попытка - Если ЗагружаетсяПервыйТабель и ПродолжитьЦикл и Объект.Подразделение = ПустаяСсылкаНаПодразделение Тогда - КодПодразделения = ВРег(Строка(СокрЛП(Excel.Cells(12,37).Text))); - Если ЗначениеЗаполнено(КодПодразделения) Тогда - Объект.Подразделение = НайтиПодразделениеПоКоду(КодПодразделения,Объект.НаименованиеПодразделения); - КонецЕсли; - КонецЕсли; - Исключение - ИнформационноеСообщение("Предупреждение по формату файла. Не обнаружена ячейка с кодом подразделения табеля (ячейка 12:37).",СтатусСообщения.Внимание); - КонецПопытки; - - Если Объект.Подразделение = ПустаяСсылкаНаПодразделение Тогда - ТекстВопроса = "Подразделение не укаазно пользователем и не определено из файла. Для продолжения укажите подразделение."; - ВведеноеЗначение = Ждать ВвестиЗначениеАсинх(Объект.Подразделение,ТекстВопроса,ТипЗнч(ПустаяСсылкаНаПодразделение)); - Если ВведеноеЗначение = Неопределено Тогда +&НаКлиенте +Асинх Функция ЗагрузитьДанныеИзФайлаExcel(ИмяФайла) + + Перем Excel; + Excel = Неопределено; + ИмяФайлаКраткое = Прав(ИмяФайла, СтрДлина(ИмяФайла) - СтрНайти(ИмяФайла, "\", НаправлениеПоиска.СКонца)); + + Попытка + Excel = Новый COMОбъект("Excel.Application"); + Excel.WorkBooks.Open(ИмяФайла, 2, True); + Excel.DisplayAlerts = 0; + НомерЛистаExcel = 1; + ExcelЛист = Excel.Sheets(НомерЛистаExcel); + Исключение + Сообщить("Ошибка при открытии файла с помощью Excel! Загрузка не будет произведена!"); + Сообщить(ОписаниеОшибки()); + ЗакрытьExcel(Excel); + Возврат Неопределено; + КонецПопытки; + + Попытка + Excel.Sheets(1).Select(); + Исключение + Сообщить("Файл "+ИмяФайла+" не соответствует необходимому формату! Первый лист не найден!"); + ЗакрытьExcel(Excel); + Возврат Неопределено; + КонецПопытки; + + Сообщение = Новый СообщениеПользователю; + Сообщение.Текст = "Определен файл выгрузки данных табеля учета рабочего времени."; + Сообщение.Сообщить(); + + НомерСтрокиТабеля = 0; + НомерТекущейСтрокиТабличнойЧасти = 0; + + НС = 21; + НК = 6; + + Колонка_ВремяИтог = 41; + Колонка_ВремяЗаПервуюПоловинуМесяца = 22; + Колонка_ВремяЗаВторуюПоловинуМесяца = 39; + Колонка_ТабельныйНомер = 2; + Колонка_ФИО = 3; + Колонка_КоличествоСтавок = 5; + Колонка_ВидЗанятости = 6; + Колонка_Должность = 4; + КоличествоСотрудников = 0; + КоличествоСовместителей = 0; + ПродолжитьЦикл = Истина; + ЗагружаетсяПервыйТабель = Ложь; + + Если (Найти(ВРег(СокрЛП(Excel.Cells(НС-5, Колонка_ФИО).Text)),"ФАМИЛИЯ") = 0) Тогда + ИнформационноеСообщение("Ошибка формата файла. Не обнаружена графа ФИО (ячейка 16:3)",СтатусСообщения.ОченьВажное); + ПродолжитьЦикл = Ложь; + КонецЕсли; + + Попытка + НаименованиеПодразделенияИзФайла = ВРег(Строка(СокрЛП(Excel.Cells(12,5).Text))); + Если Объект.НаименованиеПодразделения = "" Тогда + Объект.НаименованиеПодразделения = НаименованиеПодразделенияИзФайла; + ЗагружаетсяПервыйТабель = Истина; + Иначе + Если Объект.НаименованиеПодразделения <> НаименованиеПодразделенияИзФайла Тогда + ИнформационноеСообщение("Ошибка загрузки файла. Наименование подразделения (ячейка 12:5) отличается от загруженных ранее. Загрузка отменена.",СтатусСообщения.ОченьВажное); ПродолжитьЦикл = Ложь; - Режим = РежимДиалогаВопрос.ОК; - ТекстПредупреждения = "Подразделение не указано. Загрузка отменена."; - Ждать ПредупреждениеАсинх(ТекстПредупреждения,5,"Отмена загрузки"); - Иначе - Объект.Подразделение = ВведеноеЗначение; КонецЕсли; - КонецЕсли; - ИФ = ""; - Если ПродолжитьЦикл Тогда - Попытка - ИсточникФинансирования = ВРег(Строка(СокрЛП(Excel.Cells(9,19).Text))); - Режим = РежимДиалогаВопрос.ДаНет; - ТекстВопросаПриНаличииЗагруженногоТабеляПоИсточнику = "Табель по источнику финансирования """ + ИсточникФинансирования + - """ для этого подразделения ранее загружался и существуют данные в табличной части. - | Продолжение действия приведет к перезаполнению табеля по этому источнику. Продолжить?"; - Если ИсточникФинансирования = "БЮДЖЕТ" Тогда - ИФ = "СГЗ"; - ТекущаяСтатьяФинансирования = СтатьяФинансированияСГЗ; - Если Объект.ТабличнаяЧастьСГЗ.Количество() = 0 Тогда + КонецЕсли; + Исключение + ИнформационноеСообщение("Ошибка формата файла. Не обнаружено наименование подразделения табеля (ячейка 12:5)",СтатусСообщения.ОченьВажное); + ПродолжитьЦикл = Ложь; + КонецПопытки; + + Попытка + Если ЗагружаетсяПервыйТабель и ПродолжитьЦикл и Объект.Подразделение = ПустаяСсылкаНаПодразделение Тогда + КодПодразделения = ВРег(Строка(СокрЛП(Excel.Cells(12,37).Text))); + Если ЗначениеЗаполнено(КодПодразделения) Тогда + Объект.Подразделение = НайтиПодразделениеПоКоду(КодПодразделения,Объект.НаименованиеПодразделения); + КонецЕсли; + КонецЕсли; + Исключение + ИнформационноеСообщение("Предупреждение по формату файла. Не обнаружена ячейка с кодом подразделения табеля (ячейка 12:37).",СтатусСообщения.Внимание); + КонецПопытки; + + Если Объект.Подразделение = ПустаяСсылкаНаПодразделение Тогда + ТекстВопроса = "Подразделение не укаазно пользователем и не определено из файла. Для продолжения укажите подразделение."; + ВведеноеЗначение = Ждать ВвестиЗначениеАсинх(Объект.Подразделение,ТекстВопроса,ТипЗнч(ПустаяСсылкаНаПодразделение)); + Если ВведеноеЗначение = Неопределено Тогда + ПродолжитьЦикл = Ложь; + Режим = РежимДиалогаВопрос.ОК; + ТекстПредупреждения = "Подразделение не указано. Загрузка отменена."; + Ждать ПредупреждениеАсинх(ТекстПредупреждения,5,"Отмена загрузки"); + Иначе + Объект.Подразделение = ВведеноеЗначение; + КонецЕсли; + КонецЕсли; + ИФ = ""; + Если ПродолжитьЦикл Тогда + Попытка + ИсточникФинансирования = ВРег(Строка(СокрЛП(Excel.Cells(9,19).Text))); + Режим = РежимДиалогаВопрос.ДаНет; + ТекстВопросаПриНаличииЗагруженногоТабеляПоИсточнику = "Табель по источнику финансирования """ + ИсточникФинансирования + + """ для этого подразделения ранее загружался и существуют данные в табличной части. + | Продолжение действия приведет к перезаполнению табеля по этому источнику. Продолжить?"; + Если ИсточникФинансирования = "БЮДЖЕТ" Тогда + ИФ = "СГЗ"; + ТекущаяСтатьяФинансирования = СтатьяФинансированияСГЗ; + Если Объект.ТабличнаяЧастьСГЗ.Количество() = 0 Тогда + ИмяФайлаСГЗ = ИмяФайлаКраткое; + Иначе + Ответ = Ждать ВопросАсинх(ТекстВопросаПриНаличииЗагруженногоТабеляПоИсточнику, Режим, 0); + Если Ответ = КодВозвратаДиалога.Да Тогда ИмяФайлаСГЗ = ИмяФайлаКраткое; Иначе - Ответ = Ждать ВопросАсинх(ТекстВопросаПриНаличииЗагруженногоТабеляПоИсточнику, Режим, 0); - Если Ответ = КодВозвратаДиалога.Да Тогда - ИмяФайлаСГЗ = ИмяФайлаКраткое; - Иначе - ПродолжитьЦикл = Ложь; - КонецЕсли; + ПродолжитьЦикл = Ложь; КонецЕсли; - ИначеЕсли ИсточникФинансирования = "ВНЕБЮДЖЕТ" Тогда - ИФ = "ПД"; - ТекущаяСтатьяФинансирования = СтатьяФинансированияПД; - Если Объект.ТабличнаяЧастьПД.Количество() = 0 Тогда + КонецЕсли; + ИначеЕсли ИсточникФинансирования = "ВНЕБЮДЖЕТ" Тогда + ИФ = "ПД"; + ТекущаяСтатьяФинансирования = СтатьяФинансированияПД; + Если Объект.ТабличнаяЧастьПД.Количество() = 0 Тогда + ИмяФайлаПД = ИмяФайлаКраткое; + Иначе + Ответ = Ждать ВопросАсинх(ТекстВопросаПриНаличииЗагруженногоТабеляПоИсточнику, Режим, 0); + Если Ответ = КодВозвратаДиалога.Да Тогда ИмяФайлаПД = ИмяФайлаКраткое; Иначе - Ответ = Ждать ВопросАсинх(ТекстВопросаПриНаличииЗагруженногоТабеляПоИсточнику, Режим, 0); - Если Ответ = КодВозвратаДиалога.Да Тогда - ИмяФайлаПД = ИмяФайлаКраткое; - Иначе - ПродолжитьЦикл = Ложь; - КонецЕсли; + ПродолжитьЦикл = Ложь; КонецЕсли; - ИначеЕсли ИсточникФинансирования = "ОМС" Тогда - ИФ = "ОМС"; - ТекущаяСтатьяФинансирования = СтатьяФинансированияОМС; - Если Объект.ТабличнаяЧастьОМС.Количество() = 0 Тогда + КонецЕсли; + ИначеЕсли ИсточникФинансирования = "ОМС" Тогда + ИФ = "ОМС"; + ТекущаяСтатьяФинансирования = СтатьяФинансированияОМС; + Если Объект.ТабличнаяЧастьОМС.Количество() = 0 Тогда + ИмяФайлаОМС = ИмяФайлаКраткое; + Иначе + Ответ = Ждать ВопросАсинх(ТекстВопросаПриНаличииЗагруженногоТабеляПоИсточнику, Режим, 0); + Если Ответ = КодВозвратаДиалога.Да Тогда ИмяФайлаОМС = ИмяФайлаКраткое; Иначе - Ответ = Ждать ВопросАсинх(ТекстВопросаПриНаличииЗагруженногоТабеляПоИсточнику, Режим, 0); - Если Ответ = КодВозвратаДиалога.Да Тогда - ИмяФайлаОМС = ИмяФайлаКраткое; - Иначе - ПродолжитьЦикл = Ложь; - КонецЕсли; + ПродолжитьЦикл = Ложь; КонецЕсли; - Иначе - ИнформационноеСообщение("Ошибка формата файла. Не обнаружен источник финансирования табеля (ячейка 9:19).",СтатусСообщения.ОченьВажное); - ПродолжитьЦикл = Ложь; КонецЕсли; - Исключение + Иначе ИнформационноеСообщение("Ошибка формата файла. Не обнаружен источник финансирования табеля (ячейка 9:19).",СтатусСообщения.ОченьВажное); - ПродолжитьЦикл = Ложь; - КонецПопытки; - КонецЕсли; - Если ПродолжитьЦикл Тогда - МесяцТабеля = НРег(СокрЛП(Excel.Cells(10, 19).Text)); - - Если Найти(МесяцТабеля, "январ" )=1 Тогда НомерМесяцаТабеля = 1; - ИначеЕсли Найти(МесяцТабеля,"феврал")=1 Тогда НомерМесяцаТабеля = 2; - ИначеЕсли Найти(МесяцТабеля,"март")=1 Тогда НомерМесяцаТабеля = 3; - ИначеЕсли Найти(МесяцТабеля,"апрел")=1 Тогда НомерМесяцаТабеля = 4; - ИначеЕсли Найти(МесяцТабеля,"мая" )=1 или Найти(МесяцТабеля,"май" )=1 Тогда НомерМесяцаТабеля = 5; - ИначеЕсли Найти(МесяцТабеля,"июн")=1 Тогда НомерМесяцаТабеля = 6; - ИначеЕсли Найти(МесяцТабеля,"июл" )=1 Тогда НомерМесяцаТабеля = 7; - ИначеЕсли Найти(МесяцТабеля,"август")=1 Тогда НомерМесяцаТабеля = 8; - ИначеЕсли Найти(МесяцТабеля,"сентябр")=1 Тогда НомерМесяцаТабеля = 9; - ИначеЕсли Найти(МесяцТабеля,"октябр")=1 Тогда НомерМесяцаТабеля = 10; - ИначеЕсли Найти(МесяцТабеля,"ноябр") =1 Тогда НомерМесяцаТабеля = 11; - ИначеЕсли Найти(МесяцТабеля,"декабр" )=1 Тогда НомерМесяцаТабеля = 12; - Иначе - ИнформационноеСообщение("Ошибка формата файла. Не обнаружен месяц табеля (ячейка 10:19).",СтатусСообщения.ОченьВажное); - ПродолжитьЦикл = Ложь; - НомерМесяцаТабеля = Неопределено; + ПродолжитьЦикл = Ложь; КонецЕсли; - - Попытка - НачалоМесяцаТабеля = Число(Строка(СокрЛП(Excel.Cells(10,16).Text))); - Исключение - ИнформационноеСообщение("Ошибка формата файла. Не обнаружен начальный день месяца табеля (ячейка 10:16).",СтатусСообщения.ОченьВажное); - ПродолжитьЦикл = Ложь; - НачалоМесяцаТабеля = Неопределено; - КонецПопытки; + Исключение + ИнформационноеСообщение("Ошибка формата файла. Не обнаружен источник финансирования табеля (ячейка 9:19).",СтатусСообщения.ОченьВажное); + ПродолжитьЦикл = Ложь; + КонецПопытки; + КонецЕсли; + Если ПродолжитьЦикл Тогда + МесяцТабеля = НРег(СокрЛП(Excel.Cells(10, 19).Text)); - Попытка - КонецМесяцаТабеля = Число(Строка(СокрЛП(Excel.Cells(10,18).Text))); - Исключение - ИнформационноеСообщение("Ошибка формата файла. Не обнаружен последний день месяца табеля (ячейка 10:18).",СтатусСообщения.ОченьВажное); - ПродолжитьЦикл = Ложь; - НачалоМесяцаТабеля = Неопределено; - КонецПопытки; - - Попытка - ГодТабеля = Число(Лев(СокрЛП(Excel.Cells(10, 22).Text),4)); - Исключение - ИнформационноеСообщение("Ошибка формата файла. Не обнаружен год табеля (ячейка 10:22).",СтатусСообщения.ОченьВажное); - ПродолжитьЦикл = Ложь; - ГодТабеля = Неопределено; - КонецПопытки; - - Попытка - НачалоПериодаТабеляИзФайла = Дата(ГодТабеля,НомерМесяцаТабеля,НачалоМесяцаТабеля); - Если НачалоПериодаТабеляИзФайла >= НачалоМесяца(Объект.ПериодРегистрации) И - НачалоПериодаТабеляИзФайла <= КонецМесяца(Объект.ПериодРегистрации) Тогда - Если Объект.НачалоПериодаТабеля = ПустаяДата Тогда - Объект.НачалоПериодаТабеля = НачалоПериодаТабеляИзФайла; - Иначе - Если Объект.НачалоПериодаТабеля <> НачалоПериодаТабеляИзФайла Тогда - ИнформационноеСообщение("Ошибка загружки. Дата начала загружаемого табеля не совпадает с загруженными ранее данными.",СтатусСообщения.ОченьВажное); - ПродолжитьЦикл = Ложь; - КонецЕсли; - КонецЕсли; - Иначе - ИнформационноеСообщение("Ошибка загружки. Дата начала загружаемого табеля не совпадает с выбранным месяцем.",СтатусСообщения.ОченьВажное); - ПродолжитьЦикл = Ложь; - КонецЕсли; - Исключение - ИнформационноеСообщение("Ошибка формата файла. Не определена дата начала периода табеля (строка 10 файла).",СтатусСообщения.ОченьВажное); - ПродолжитьЦикл = Ложь; - КонецПопытки; - - Попытка - КонецПериодаТабеляИзФайла = Дата(ГодТабеля,НомерМесяцаТабеля,КонецМесяцаТабеля); - Если КонецПериодаТабеляИзФайла >= НачалоМесяца(Объект.ПериодРегистрации) И - КонецПериодаТабеляИзФайла <= КонецМесяца(Объект.ПериодРегистрации) Тогда - Если Объект.КонецПериодаТабеля = ПустаяДата Тогда - Объект.КонецПериодаТабеля = КонецПериодаТабеляИзФайла; - Иначе - Если Объект.КонецПериодаТабеля <> КонецПериодаТабеляИзФайла Тогда - ИнформационноеСообщение("Ошибка загружки. Дата окончания загружаемого табеля не совпадает с загруженными ранее данными.",СтатусСообщения.ОченьВажное); - ПродолжитьЦикл = Ложь; - КонецЕсли; - КонецЕсли; - Иначе - ИнформационноеСообщение("Ошибка загружки. Дата окончания загружаемого табеля не совпадает с выбранным месяцем.",СтатусСообщения.ОченьВажное); - ПродолжитьЦикл = Ложь; - КонецЕсли; - Исключение - ИнформационноеСообщение("Ошибка формата файла. Не определена дата окончания периода табеля (строка 10 файла).",СтатусСообщения.ОченьВажное); - ПродолжитьЦикл = Ложь; - КонецПопытки; - - Если НачалоДня(Объект.НачалоПериодаТабеля) = НачалоМесяца(Объект.НачалоПериодаТабеля) Тогда - Если КонецДня(Объект.КонецПериодаТабеля) = КонецМесяца(Объект.КонецПериодаТабеля) Тогда - Объект.ПериодВводаДанныхОВремени = ПериодыВводаДанныхОВремениТекущийМесяц; - Иначе - Объект.ПериодВводаДанныхОВремени = ПериодыВводаДанныхОВремениПерваяПоловинаТекущегоМесяца; - КонецЕсли; - ИначеЕсли КонецДня(Объект.КонецПериодаТабеля) = КонецМесяца(Объект.КонецПериодаТабеля) Тогда - Объект.ПериодВводаДанныхОВремени = ПериодыВводаДанныхОВремениВтораяПоловинаТекущегоМесяца; - Иначе - Объект.ПериодВводаДанныхОВремени = ПериодыВводаДанныхОВремениТекущийМесяц; - ИнформационноеСообщение("Дата начала и окончания периода табеля не равны началу и окончанию месяца. Не удалось определить вид периода - присвоен ""Текущий месяц"".",СтатусСообщения.Внимание); - КонецЕсли; - КонецЕсли; - - Если ЗагружаетсяПервыйТабель и ПродолжитьЦикл Тогда - ОпределитьОтветственныхЛиц(Объект.Организация,Объект.КонецПериодаТабеля); - КонецЕсли; - - Если ПродолжитьЦикл Тогда - ТабличнаяЧасть = ИмяТабличнойЧастиПоСтатьеФинансирования(ТекущаяСтатьяФинансирования); - Объект[ТабличнаяЧасть].Очистить(); + Если Найти(МесяцТабеля, "январ" )=1 Тогда НомерМесяцаТабеля = 1; + ИначеЕсли Найти(МесяцТабеля,"феврал")=1 Тогда НомерМесяцаТабеля = 2; + ИначеЕсли Найти(МесяцТабеля,"март")=1 Тогда НомерМесяцаТабеля = 3; + ИначеЕсли Найти(МесяцТабеля,"апрел")=1 Тогда НомерМесяцаТабеля = 4; + ИначеЕсли Найти(МесяцТабеля,"мая" )=1 или Найти(МесяцТабеля,"май" )=1 Тогда НомерМесяцаТабеля = 5; + ИначеЕсли Найти(МесяцТабеля,"июн")=1 Тогда НомерМесяцаТабеля = 6; + ИначеЕсли Найти(МесяцТабеля,"июл" )=1 Тогда НомерМесяцаТабеля = 7; + ИначеЕсли Найти(МесяцТабеля,"август")=1 Тогда НомерМесяцаТабеля = 8; + ИначеЕсли Найти(МесяцТабеля,"сентябр")=1 Тогда НомерМесяцаТабеля = 9; + ИначеЕсли Найти(МесяцТабеля,"октябр")=1 Тогда НомерМесяцаТабеля = 10; + ИначеЕсли Найти(МесяцТабеля,"ноябр") =1 Тогда НомерМесяцаТабеля = 11; + ИначеЕсли Найти(МесяцТабеля,"декабр" )=1 Тогда НомерМесяцаТабеля = 12; Иначе - Возврат - КонецЕсли; - - НомерСтрокиТабеля = 1; - //Оценка количества сотрудников - МаксимальноеКоличествоСотрудников = 0; - Если ПродолжитьЦикл Тогда - Состояние("Загрузка файла табеля """ + ИмяФайлаКраткое + """",1,"Оценка размера файла..."); - НомерТекущейСтроки = НС; - ПродолжатьЦиклОценкиКоличестваСотрудников = Истина; - Пока ПродолжатьЦиклОценкиКоличестваСотрудников Цикл - ФИО = СокрЛП(Excel.Cells(НомерТекущейСтроки, Колонка_ФИО).Text); - НаименованиеДолжностиСотрудника = СокрЛП(Excel.Cells(НомерТекущейСтроки, Колонка_Должность).Text); - ТабельныйНомер = СокрЛП(Excel.Cells(НомерТекущейСтроки, Колонка_ТабельныйНомер).Text); - ОбъединенныеЯчейки = Excel.Cells(НомерТекущейСтроки, Колонка_Должность).MergeArea; - ВысотаСтроки = ОбъединенныеЯчейки.Count; - Если (ЗначениеЗаполнено(ФИО) = Истина) ИЛИ - (ЗначениеЗаполнено(ФИО) = Ложь) И (ЗначениеЗаполнено(НаименованиеДолжностиСотрудника) = Истина) Тогда - МаксимальноеКоличествоСотрудников = МаксимальноеКоличествоСотрудников + 1; - Иначе - ПродолжатьЦиклОценкиКоличестваСотрудников = Ложь; - КонецЕсли; - НомерТекущейСтроки = НомерТекущейСтроки + ВысотаСтроки; - КонецЦикла; - НомерТекущейСтроки = НС; + ИнформационноеСообщение("Ошибка формата файла. Не обнаружен месяц табеля (ячейка 10:19).",СтатусСообщения.ОченьВажное); + ПродолжитьЦикл = Ложь; + НомерМесяцаТабеля = Неопределено; КонецЕсли; - - Пока ПродолжитьЦикл Цикл - ФИО = СокрЛП(Excel.Cells(НомерТекущейСтроки, Колонка_ФИО).Text); - НаименованиеДолжностиСотрудника = СокрЛП(Excel.Cells(НомерТекущейСтроки, Колонка_Должность).Text); - ТабельныйНомер = СокрЛП(Excel.Cells(НомерТекущейСтроки, Колонка_ТабельныйНомер).Text); + + Попытка + НачалоМесяцаТабеля = Число(Строка(СокрЛП(Excel.Cells(10,16).Text))); + Исключение + ИнформационноеСообщение("Ошибка формата файла. Не обнаружен начальный день месяца табеля (ячейка 10:16).",СтатусСообщения.ОченьВажное); + ПродолжитьЦикл = Ложь; + НачалоМесяцаТабеля = Неопределено; + КонецПопытки; + + Попытка + КонецМесяцаТабеля = Число(Строка(СокрЛП(Excel.Cells(10,18).Text))); + Исключение + ИнформационноеСообщение("Ошибка формата файла. Не обнаружен последний день месяца табеля (ячейка 10:18).",СтатусСообщения.ОченьВажное); + ПродолжитьЦикл = Ложь; + НачалоМесяцаТабеля = Неопределено; + КонецПопытки; + + Попытка + ГодТабеля = Число(Лев(СокрЛП(Excel.Cells(10, 22).Text),4)); + Исключение + ИнформационноеСообщение("Ошибка формата файла. Не обнаружен год табеля (ячейка 10:22).",СтатусСообщения.ОченьВажное); + ПродолжитьЦикл = Ложь; + ГодТабеля = Неопределено; + КонецПопытки; + + Попытка + НачалоПериодаТабеляИзФайла = Дата(ГодТабеля,НомерМесяцаТабеля,НачалоМесяцаТабеля); + Если НачалоПериодаТабеляИзФайла >= НачалоМесяца(Объект.ПериодРегистрации) И + НачалоПериодаТабеляИзФайла <= КонецМесяца(Объект.ПериодРегистрации) Тогда + Если Объект.НачалоПериодаТабеля = ПустаяДата Тогда + Объект.НачалоПериодаТабеля = НачалоПериодаТабеляИзФайла; + Иначе + Если Объект.НачалоПериодаТабеля <> НачалоПериодаТабеляИзФайла Тогда + ИнформационноеСообщение("Ошибка загружки. Дата начала загружаемого табеля не совпадает с загруженными ранее данными.",СтатусСообщения.ОченьВажное); + ПродолжитьЦикл = Ложь; + КонецЕсли; + КонецЕсли; + Иначе + ИнформационноеСообщение("Ошибка загружки. Дата начала загружаемого табеля не совпадает с выбранным месяцем.",СтатусСообщения.ОченьВажное); + ПродолжитьЦикл = Ложь; + КонецЕсли; + Исключение + ИнформационноеСообщение("Ошибка формата файла. Не определена дата начала периода табеля (строка 10 файла).",СтатусСообщения.ОченьВажное); + ПродолжитьЦикл = Ложь; + КонецПопытки; + + Попытка + КонецПериодаТабеляИзФайла = Дата(ГодТабеля,НомерМесяцаТабеля,КонецМесяцаТабеля); + Если КонецПериодаТабеляИзФайла >= НачалоМесяца(Объект.ПериодРегистрации) И + КонецПериодаТабеляИзФайла <= КонецМесяца(Объект.ПериодРегистрации) Тогда + Если Объект.КонецПериодаТабеля = ПустаяДата Тогда + Объект.КонецПериодаТабеля = КонецПериодаТабеляИзФайла; + Иначе + Если Объект.КонецПериодаТабеля <> КонецПериодаТабеляИзФайла Тогда + ИнформационноеСообщение("Ошибка загружки. Дата окончания загружаемого табеля не совпадает с загруженными ранее данными.",СтатусСообщения.ОченьВажное); + ПродолжитьЦикл = Ложь; + КонецЕсли; + КонецЕсли; + Иначе + ИнформационноеСообщение("Ошибка загружки. Дата окончания загружаемого табеля не совпадает с выбранным месяцем.",СтатусСообщения.ОченьВажное); + ПродолжитьЦикл = Ложь; + КонецЕсли; + Исключение + ИнформационноеСообщение("Ошибка формата файла. Не определена дата окончания периода табеля (строка 10 файла).",СтатусСообщения.ОченьВажное); + ПродолжитьЦикл = Ложь; + КонецПопытки; + + Если НачалоДня(Объект.НачалоПериодаТабеля) = НачалоМесяца(Объект.НачалоПериодаТабеля) Тогда + Если КонецДня(Объект.КонецПериодаТабеля) = КонецМесяца(Объект.КонецПериодаТабеля) Тогда + Объект.ПериодВводаДанныхОВремени = ПериодыВводаДанныхОВремениТекущийМесяц; + Иначе + Объект.ПериодВводаДанныхОВремени = ПериодыВводаДанныхОВремениПерваяПоловинаТекущегоМесяца; + КонецЕсли; + ИначеЕсли КонецДня(Объект.КонецПериодаТабеля) = КонецМесяца(Объект.КонецПериодаТабеля) Тогда + Объект.ПериодВводаДанныхОВремени = ПериодыВводаДанныхОВремениВтораяПоловинаТекущегоМесяца; + Иначе + Объект.ПериодВводаДанныхОВремени = ПериодыВводаДанныхОВремениТекущийМесяц; + ИнформационноеСообщение("Дата начала и окончания периода табеля не равны началу и окончанию месяца. Не удалось определить вид периода - присвоен ""Текущий месяц"".",СтатусСообщения.Внимание); + КонецЕсли; + КонецЕсли; + + Если ЗагружаетсяПервыйТабель и ПродолжитьЦикл Тогда + ОпределитьОтветственныхЛиц(Объект.Организация,Объект.КонецПериодаТабеля); + КонецЕсли; + + Если ПродолжитьЦикл Тогда + ТабличнаяЧасть = ИмяТабличнойЧастиПоСтатьеФинансирования(ТекущаяСтатьяФинансирования); + Объект[ТабличнаяЧасть].Очистить(); + Иначе + ЗакрытьExcel(Excel); + Возврат Неопределено; + КонецЕсли; + + НомерСтрокиТабеля = 1; + МаксимальноеКоличествоСотрудников = 0; + Если ПродолжитьЦикл Тогда + Состояние("Загрузка файла табеля """ + ИмяФайлаКраткое + """",1,"Оценка размера файла..."); + НомерТекущейСтроки = НС; + ПродолжатьЦиклОценкиКоличестваСотрудников = Истина; + Пока ПродолжатьЦиклОценкиКоличестваСотрудников Цикл + ФИО = СокрЛП(Excel.Cells(НомерТекущейСтроки, Колонка_ФИО).Text); + НаименованиеДолжностиСотрудника = СокрЛП(Excel.Cells(НомерТекущейСтроки, Колонка_Должность).Text); + ТабельныйНомер = СокрЛП(Excel.Cells(НомерТекущейСтроки, Колонка_ТабельныйНомер).Text); ОбъединенныеЯчейки = Excel.Cells(НомерТекущейСтроки, Колонка_Должность).MergeArea; ВысотаСтроки = ОбъединенныеЯчейки.Count; - ТекущийПроцентПрогресса = 0; Если (ЗначениеЗаполнено(ФИО) = Истина) ИЛИ - (ЗначениеЗаполнено(ФИО) = Ложь) И (ЗначениеЗаполнено(НаименованиеДолжностиСотрудника) = Истина) Тогда - - Попытка - КоличествоСтавок = Число(СокрЛП(Excel.Cells(НомерТекущейСтроки, Колонка_КоличествоСтавок).Text)); - Исключение - ИнформационноеСообщение("Не удалось определить количество ставок для сотрудника "+ФИО,СтатусСообщения.ОченьВажное); - КонецПопытки; - ВидЗанятости = СокрЛП(Excel.Cells(НомерТекущейСтроки, Колонка_ВидЗанятости).Text); - - КоличествоСотрудников = КоличествоСотрудников + 1; - ТекущаяСтрокаТабличнойЧасти = Объект[ТабличнаяЧасть].Добавить(); - НомерТекущейСтрокиТабличнойЧасти = ТекущаяСтрокаТабличнойЧасти.НомерСтроки; - - Прогресс = КоличествоСотрудников/МаксимальноеКоличествоСотрудников*100; - ПроцентПрогресса = Цел(Прогресс); - Если ЗначениеЗаполнено(ФИО) Тогда - ФИОСотрудника = ФИО; - ДанныеСотрудника = НайтиДанныеСотрудникаПоТабельномуНомеру(ТабельныйНомер,ФИОСотрудника, - Объект.Подразделение, - Объект.Организация, - Объект.КонецПериодаТабеля, - ИФ); - - Иначе - КоличествоСовместителей = КоличествоСовместителей + 1; - КонецЕсли; - ТекущиеДанныеСотрудника = НайтиСотрудникиВМассивеДанных(НаименованиеДолжностиСотрудника, - КоличествоСтавок, - ВидЗанятости, - ДанныеСотрудника); - Сотрудник = ТекущиеДанныеСотрудника.Сотрудник; - Должность = ТекущиеДанныеСотрудника.ДолжностьПоШтатномуРасписанию; - - Если ТекущийПроцентПрогресса < ПроцентПрогресса Тогда - ТекущийПроцентПрогресса = ПроцентПрогресса; - Состояние("Загрузка файла табеля """ + ИмяФайлаКраткое + """",ТекущийПроцентПрогресса,"Сотрудник: " + ФИОСотрудника); - КонецЕсли; - - ТекущаяСтрокаТабличнойЧасти.ПризнакОшибкиСотрудника = Не ЗначениеЗаполнено(Сотрудник); - - ТекущаяСтрокаТабличнойЧасти.ФИОСотрудника = ФИОСотрудника; - ТекущаяСтрокаТабличнойЧасти.ТабельныйНомер = ТабельныйНомер; - ТекущаяСтрокаТабличнойЧасти.ДолжностьСотрудника = НаименованиеДолжностиСотрудника; - ТекущаяСтрокаТабличнойЧасти.КоличествоСтавок = КоличествоСтавок; - ТекущаяСтрокаТабличнойЧасти.ВидЗанятости = ВидЗанятости; - - ТекущаяСтрокаТабличнойЧасти.Сотрудник = Сотрудник; - ТекущаяСтрокаТабличнойЧасти.Должность = Должность; - - - ВремяИтог = СокрЛП(Excel.Cells(НомерТекущейСтроки, Колонка_ВремяИтог).Text); - ТекущаяСтрокаТабличнойЧасти.ВремяИтог = ВремяИтог; - - Если ВысотаСтроки = 3 Тогда //Есть ночные - НоваяСтрокаНочныхЧасовТабличнойЧасти = Объект[ТабличнаяЧасть].Добавить(); - - Если ЗначениеЗаполнено(ФИО) Тогда - ФИОСотрудника = ФИО; - КонецЕсли; - НоваяСтрокаНочныхЧасовТабличнойЧасти.ФИОСотрудника = ФИОСотрудника; - НоваяСтрокаНочныхЧасовТабличнойЧасти.ТабельныйНомер = ТабельныйНомер; - НоваяСтрокаНочныхЧасовТабличнойЧасти.ДолжностьСотрудника = НаименованиеДолжностиСотрудника; - - НоваяСтрокаНочныхЧасовТабличнойЧасти.Сотрудник = Сотрудник; - - ВремяИтог = СокрЛП(Excel.Cells(НомерТекущейСтроки + 1, Колонка_ВремяИтог).Text); - НоваяСтрокаНочныхЧасовТабличнойЧасти.ВремяИтог = ВремяИтог; - КонецЕсли; - Для ЧислоДня = 1 По КонецМесяцаТабеля Цикл // число для отладки - - ИмяКолонкиЦифра = "Часов" + ЧислоДня; - - ИмяКолонкиБуква = "Время" + ЧислоДня + "Буква"; - ИмяКолонкиВидВремени = "ВидВремени" + ЧислоДня; - НомерКолонкиФайла = НК+ЧислоДня; - Если НомерКолонкиФайла >= Колонка_ВремяЗаПервуюПоловинуМесяца Тогда - НомерКолонкиФайла = НомерКолонкиФайла + 1; - КонецЕсли; - КоличествоНочныхЧасов = 0; - КоличествоЧасов = 0; - НайденоРабочееВремя = Ложь; - Если ВысотаСтроки = 3 Тогда //Есть ночные - ТекстЯчейки = ВРег(СокрЛП(Excel.Cells(НомерТекущейСтроки+1, НомерКолонкиФайла).Text)); - Если (Найти(ТекстЯчейки,"Н") > 0) и (Найти(ТекстЯчейки,"НН") = 0) и - (Найти(ТекстЯчейки,"НБ") = 0) и (Найти(ТекстЯчейки,"НОД") = 0) и - (Найти(ТекстЯчейки,"НА") = 0) и (Найти(ТекстЯчейки,"НО") = 0) Тогда - ТекстКоличестваНочныхЧасов_1 = СокрЛП(Лев(ТекстЯчейки,СтрДлина(ТекстЯчейки)-2)); - ТекстКоличестваНочныхЧасов_2 = СокрЛП(Прав(ТекстЯчейки,СтрДлина(ТекстЯчейки)-2)); - ТекстКоличестваНочныхЧасов = ""; - Если Найти(ТекстКоличестваНочныхЧасов_1,"Н") = 0 Тогда - ТекстКоличестваНочныхЧасов = ТекстКоличестваНочныхЧасов_1; - КонецЕсли; - Если Найти(ТекстКоличестваНочныхЧасов_2,"Н") = 0 Тогда - ТекстКоличестваНочныхЧасов = ТекстКоличестваНочныхЧасов_2; - КонецЕсли; - - Если ТекстКоличестваНочныхЧасов = "" Тогда - КоличествоНочныхЧасов = 0; - Иначе - НайденоРабочееВремя = Истина; - Попытка - КоличествоНочныхЧасов = Число(ТекстКоличестваНочныхЧасов); - Исключение - КоличествоНочныхЧасов = 0; - ТекущаяСтрокаТабличнойЧасти.ПризнакОшибкиВидаВремени = Истина; - КонецПопытки; - КонецЕсли; - НоваяСтрокаНочныхЧасовТабличнойЧасти[ИмяКолонкиЦифра] = КоличествоНочныхЧасов; - НоваяСтрокаНочныхЧасовТабличнойЧасти[ИмяКолонкиБуква] = ТекстЯчейки; - НоваяСтрокаНочныхЧасовТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениРаботаНочныеЧасы(); - Если КоличествоНочныхЧасов = 0 Тогда - СообщениеОбОшибкеВидаВремени = "Ошибка получения количества отработанных ночных часов. Сотрудник: " + ФИО + - ", Номер строки табеля: " + Строка(НомерСтрокиТабеля) + - ". Номер дня: " + Строка(ЧислоДня); - ИнформационноеСообщение(СообщениеОбОшибкеВидаВремени,СтатусСообщения.ОченьВажное); - НоваяСтрокаНочныхЧасовТабличнойЧасти.ПризнакОшибкиВидаВремени = Истина; - КонецЕсли; - КонецЕсли - КонецЕсли; - ТекстЯчейки = ВРег(СокрЛП(Excel.Cells(НомерТекущейСтроки+ВысотаСтроки-1, НомерКолонкиФайла).Text)); - ТекстКоличестваЧасов = СокрЛП(Excel.Cells(НомерТекущейСтроки, НомерКолонкиФайла).Text); - Если ТекстКоличестваЧасов = "" Тогда - КоличествоЧасов = 0; - Иначе - Попытка - КоличествоЧасов = Число(ТекстКоличестваЧасов); - Исключение - Сообщение = Новый СообщениеПользователю; - СообщениеОбОшибкеВидаВремени = "Ошибка получения часов по табелю. Сотрудник: " + ФИО + - ". Номер дня: " + Строка(ЧислоДня); - ИнформационноеСообщение(СообщениеОбОшибкеВидаВремени,СтатусСообщения.ОченьВажное); - КоличествоЧасов = 0; - ТекущаяСтрокаТабличнойЧасти.ПризнакОшибкиВидаВремени = Истина; - КонецПопытки; - КонецЕсли; - - Если ТекстЯчейки = "" Тогда - ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениВыходныеДни(); - ИначеЕсли Найти(ТекстЯчейки,"Ф") = 1 Тогда //Явка - ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениЯвка(); - НайденоРабочееВремя = Истина; - ИначеЕсли Найти(ТекстЯчейки,"С") = 1 Тогда //Сверхурочные - ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениСверхурочные(); - НайденоРабочееВремя = Истина; - ИначеЕсли Найти(ТекстЯчейки,"РП") = 1 Тогда //Праздничные и выходные - ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениПраздники(); - НайденоРабочееВремя = Истина; - ИначеЕсли Найти(ТекстЯчейки,"В") = 1 Тогда //Выходные и праздничные дни - ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениВыходныеДни(); - ИначеЕсли Найти(ТекстЯчейки,"К") = 1 Тогда //Больничный - ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениКомандировка(); - ИначеЕсли Найти(ТекстЯчейки,"Б") = 1 Тогда //Больничный - ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениБолезнь(); - ИначеЕсли Найти(ТекстЯчейки,"Р") = 1 Тогда //Отпуск по беременности и родам - ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениОтпускПоБеременностиИРодам(); - ИначеЕсли Найти(ТекстЯчейки,"ОР") = 1 Тогда //Отпуск по уходу за ребенком - ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениОтпускПоУходуЗаРебенком(); - ИначеЕсли Найти(ТекстЯчейки,"П") = 1 Тогда //Прогул - ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениПрогулы(); - ИначеЕсли Найти(ТекстЯчейки,"А") = 1 Тогда //Прогул - ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениДополнительныеВыходныеДниОплачиваемые(); - ИначеЕсли Найти(ТекстЯчейки,"О") = 1 Тогда //Отпуск основной - ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениОсновнойОтпуск(); - ИначеЕсли Найти(ТекстЯчейки,"ОД") = 1 Тогда //Отпуск дополнительный - ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениДополнительныйОтпуск(); - ИначеЕсли Найти(ТекстЯчейки,"ОУ") = 1 Тогда //Отпуск учебный - ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениОтпускНаОбучение(); - ИначеЕсли Найти(ТекстЯчейки,"ВУ") = 1 Тогда //Отпуск учебный - ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениДополнительныеВыходныеДниОплачиваемые(); - ИначеЕсли Найти(ТекстЯчейки,"НН") = 1 Тогда //Неявки по невыясненным причинам - ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениНеявкиПоНевыясненнымПричинам(); - ИначеЕсли Найти(ТекстЯчейки,"ОЗ") = 1 Тогда //Отпуск учебный - ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениНеоплачиваемыйОтпускПоРазрешениюРаботодателя(); - ИначеЕсли Найти(ТекстЯчейки,"ОВ") = 1 Тогда //Отпуск учебный - ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениДополнительныеВыходныеДниОплачиваемые(); - ИначеЕсли Найти(ТекстЯчейки,"НБ") = 1 Тогда //Отпуск учебный - ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениОтстранениеОтРаботыБезОплаты(); - ИначеЕсли Найти(ТекстЯчейки,"НОД") = 1 Тогда //Отпуск учебный - ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениДополнительныеВыходныеДниОплачиваемые(); - ИначеЕсли Найти(ТекстЯчейки,"ДВ") = 1 Тогда //Отпуск учебный - ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениДополнительныеВыходныеДниОплачиваемые(); - ИначеЕсли Найти(ТекстЯчейки,"Д") = 1 Тогда //Отпуск учебный - ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениДополнительныеВыходныеДниОплачиваемые(); - ИначеЕсли Найти(ТекстЯчейки,"НА") = 1 Тогда //Неявка из-за ареста (Неявки по невыясненным причинам) - ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениНеявкиПоНевыясненнымПричинам(); - ИначеЕсли Найти(ТекстЯчейки,"НО") = 1 и (Найти(ТекстЯчейки,"НОД") = 0) Тогда //Отпуск учебный - ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениОтстранениеОтРаботыСОплатой(); - КонецЕсли; - ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиЦифра] = КоличествоЧасов; - ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиБуква] = ТекстЯчейки; - Если (КоличествоЧасов + КоличествоНочныхЧасов) = 0 И - НайденоРабочееВремя Тогда - СообщениеОбОшибкеВидаВремени = "Ошибка получения количества отработанных часов. Указан классификатор (буква) рабочего времени, но отсутствует количество часов. Сотрудник: " + ФИО + - ". Номер дня: " + Строка(ЧислоДня) + ". Этот день переведен в выходные"; - ИнформационноеСообщение(СообщениеОбОшибкеВидаВремени,СтатусСообщения.ОченьВажное); - ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениВыходныеДни(); - ТекущаяСтрокаТабличнойЧасти.ПризнакОшибкиВидаВремени = Истина; - КонецЕсли; - КонецЦикла; - НомерТекущейСтроки = НомерТекущейСтроки + ВысотаСтроки; - НомерСтрокиТабеля = НомерСтрокиТабеля + 1; - Иначе - ПродолжитьЦикл = Ложь; + (ЗначениеЗаполнено(ФИО) = Ложь) И (ЗначениеЗаполнено(НаименованиеДолжностиСотрудника) = Истина) Тогда + МаксимальноеКоличествоСотрудников = МаксимальноеКоличествоСотрудников + 1; + Иначе + ПродолжатьЦиклОценкиКоличестваСотрудников = Ложь; КонецЕсли; + НомерТекущейСтроки = НомерТекущейСтроки + ВысотаСтроки; КонецЦикла; - - КонецЕсли; + НомерТекущейСтроки = НС; + КонецЕсли; + + Пока ПродолжитьЦикл Цикл + ФИО = СокрЛП(Excel.Cells(НомерТекущейСтроки, Колонка_ФИО).Text); + НаименованиеДолжностиСотрудника = СокрЛП(Excel.Cells(НомерТекущейСтроки, Колонка_Должность).Text); + ТабельныйНомер = СокрЛП(Excel.Cells(НомерТекущейСтроки, Колонка_ТабельныйНомер).Text); + ОбъединенныеЯчейки = Excel.Cells(НомерТекущейСтроки, Колонка_Должность).MergeArea; + ВысотаСтроки = ОбъединенныеЯчейки.Count; + ТекущийПроцентПрогресса = 0; + Если (ЗначениеЗаполнено(ФИО) = Истина) ИЛИ + (ЗначениеЗаполнено(ФИО) = Ложь) И (ЗначениеЗаполнено(НаименованиеДолжностиСотрудника) = Истина) Тогда + + Попытка + КоличествоСтавок = Число(СокрЛП(Excel.Cells(НомерТекущейСтроки, Колонка_КоличествоСтавок).Text)); + Исключение + ИнформационноеСообщение("Не удалось определить количество ставок для сотрудника "+ФИО,СтатусСообщения.ОченьВажное); + КонецПопытки; + ВидЗанятости = СокрЛП(Excel.Cells(НомерТекущейСтроки, Колонка_ВидЗанятости).Text); + + КоличествоСотрудников = КоличествоСотрудников + 1; + ТекущаяСтрокаТабличнойЧасти = Объект[ТабличнаяЧасть].Добавить(); + НомерТекущейСтрокиТабличнойЧасти = ТекущаяСтрокаТабличнойЧасти.НомерСтроки; + + Прогресс = КоличествоСотрудников/МаксимальноеКоличествоСотрудников*100; + ПроцентПрогресса = Цел(Прогресс); + Если ЗначениеЗаполнено(ФИО) Тогда + ФИОСотрудника = ФИО; + ДанныеСотрудника = НайтиДанныеСотрудникаПоТабельномуНомеру(ТабельныйНомер,ФИОСотрудника, + Объект.Подразделение, + Объект.Организация, + Объект.КонецПериодаТабеля, + ИФ); + Иначе + КоличествоСовместителей = КоличествоСовместителей + 1; + КонецЕсли; + ТекущиеДанныеСотрудника = НайтиСотрудникиВМассивеДанных(НаименованиеДолжностиСотрудника, + КоличествоСтавок, + ВидЗанятости, + ДанныеСотрудника); + Сотрудник = ТекущиеДанныеСотрудника.Сотрудник; + Должность = ТекущиеДанныеСотрудника.ДолжностьПоШтатномуРасписанию; + + Если ТекущийПроцентПрогресса < ПроцентПрогресса Тогда + ТекущийПроцентПрогресса = ПроцентПрогресса; + Состояние("Загрузка файла табеля """ + ИмяФайлаКраткое + """",ТекущийПроцентПрогресса,"Сотрудник: " + ФИОСотрудника); + КонецЕсли; + + ТекущаяСтрокаТабличнойЧасти.ПризнакОшибкиСотрудника = Не ЗначениеЗаполнено(Сотрудник); + + ТекущаяСтрокаТабличнойЧасти.ФИОСотрудника = ФИОСотрудника; + ТекущаяСтрокаТабличнойЧасти.ТабельныйНомер = ТабельныйНомер; + ТекущаяСтрокаТабличнойЧасти.ДолжностьСотрудника = НаименованиеДолжностиСотрудника; + ТекущаяСтрокаТабличнойЧасти.КоличествоСтавок = КоличествоСтавок; + ТекущаяСтрокаТабличнойЧасти.ВидЗанятости = ВидЗанятости; + + ТекущаяСтрокаТабличнойЧасти.Сотрудник = Сотрудник; + ТекущаяСтрокаТабличнойЧасти.Должность = Должность; + + ВремяИтог = СокрЛП(Excel.Cells(НомерТекущейСтроки, Колонка_ВремяИтог).Text); + ТекущаяСтрокаТабличнойЧасти.ВремяИтог = ВремяИтог; + + Если ВысотаСтроки = 3 Тогда + НоваяСтрокаНочныхЧасовТабличнойЧасти = Объект[ТабличнаяЧасть].Добавить(); + Если ЗначениеЗаполнено(ФИО) Тогда + ФИОСотрудника = ФИО; + КонецЕсли; + НоваяСтрокаНочныхЧасовТабличнойЧасти.ФИОСотрудника = ФИОСотрудника; + НоваяСтрокаНочныхЧасовТабличнойЧасти.ТабельныйНомер = ТабельныйНомер; + НоваяСтрокаНочныхЧасовТабличнойЧасти.ДолжностьСотрудника = НаименованиеДолжностиСотрудника; + НоваяСтрокаНочныхЧасовТабличнойЧасти.Сотрудник = Сотрудник; + ВремяИтог = СокрЛП(Excel.Cells(НомерТекущейСтроки + 1, Колонка_ВремяИтог).Text); + НоваяСтрокаНочныхЧасовТабличнойЧасти.ВремяИтог = ВремяИтог; + КонецЕсли; + + Для ЧислоДня = 1 По КонецМесяцаТабеля Цикл + + ИмяКолонкиЦифра = "Часов" + ЧислоДня; + ИмяКолонкиБуква = "Время" + ЧислоДня + "Буква"; + ИмяКолонкиВидВремени = "ВидВремени" + ЧислоДня; + НомерКолонкиФайла = НК+ЧислоДня; + Если НомерКолонкиФайла >= Колонка_ВремяЗаПервуюПоловинуМесяца Тогда + НомерКолонкиФайла = НомерКолонкиФайла + 1; + КонецЕсли; + КоличествоНочныхЧасов = 0; + КоличествоЧасов = 0; + НайденоРабочееВремя = Ложь; + Если ВысотаСтроки = 3 Тогда + ТекстЯчейки = ВРег(СокрЛП(Excel.Cells(НомерТекущейСтроки+1, НомерКолонкиФайла).Text)); + Если (Найти(ТекстЯчейки,"Н") > 0) и (Найти(ТекстЯчейки,"НН") = 0) и + (Найти(ТекстЯчейки,"НБ") = 0) и (Найти(ТекстЯчейки,"НОД") = 0) и + (Найти(ТекстЯчейки,"НА") = 0) и (Найти(ТекстЯчейки,"НО") = 0) Тогда + ТекстКоличестваНочныхЧасов_1 = СокрЛП(Лев(ТекстЯчейки,СтрДлина(ТекстЯчейки)-2)); + ТекстКоличестваНочныхЧасов_2 = СокрЛП(Прав(ТекстЯчейки,СтрДлина(ТекстЯчейки)-2)); + ТекстКоличестваНочныхЧасов = ""; + Если Найти(ТекстКоличестваНочныхЧасов_1,"Н") = 0 Тогда + ТекстКоличестваНочныхЧасов = ТекстКоличестваНочныхЧасов_1; + КонецЕсли; + Если Найти(ТекстКоличестваНочныхЧасов_2,"Н") = 0 Тогда + ТекстКоличестваНочныхЧасов = ТекстКоличестваНочныхЧасов_2; + КонецЕсли; + Если ТекстКоличестваНочныхЧасов = "" Тогда + КоличествоНочныхЧасов = 0; + Иначе + НайденоРабочееВремя = Истина; + Попытка + КоличествоНочныхЧасов = Число(ТекстКоличестваНочныхЧасов); + Исключение + КоличествоНочныхЧасов = 0; + ТекущаяСтрокаТабличнойЧасти.ПризнакОшибкиВидаВремени = Истина; + КонецПопытки; + КонецЕсли; + НоваяСтрокаНочныхЧасовТабличнойЧасти[ИмяКолонкиЦифра] = КоличествоНочныхЧасов; + НоваяСтрокаНочныхЧасовТабличнойЧасти[ИмяКолонкиБуква] = ТекстЯчейки; + НоваяСтрокаНочныхЧасовТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениРаботаНочныеЧасы(); + Если КоличествоНочныхЧасов = 0 Тогда + СообщениеОбОшибкеВидаВремени = "Ошибка получения количества отработанных ночных часов. Сотрудник: " + ФИО + + ", Номер строки табеля: " + Строка(НомерСтрокиТабеля) + + ". Номер дня: " + Строка(ЧислоДня); + ИнформационноеСообщение(СообщениеОбОшибкеВидаВремени,СтатусСообщения.ОченьВажное); + НоваяСтрокаНочныхЧасовТабличнойЧасти.ПризнакОшибкиВидаВремени = Истина; + КонецЕсли; + КонецЕсли + КонецЕсли; + ТекстЯчейки = ВРег(СокрЛП(Excel.Cells(НомерТекущейСтроки+ВысотаСтроки-1, НомерКолонкиФайла).Text)); + ТекстКоличестваЧасов = СокрЛП(Excel.Cells(НомерТекущейСтроки, НомерКолонкиФайла).Text); + Если ТекстКоличестваЧасов = "" Тогда + КоличествоЧасов = 0; + Иначе + Попытка + КоличествоЧасов = Число(ТекстКоличестваЧасов); + Исключение + СообщениеОбОшибкеВидаВремени = "Ошибка получения часов по табелю. Сотрудник: " + ФИО + + ". Номер дня: " + Строка(ЧислоДня); + ИнформационноеСообщение(СообщениеОбОшибкеВидаВремени,СтатусСообщения.ОченьВажное); + КоличествоЧасов = 0; + ТекущаяСтрокаТабличнойЧасти.ПризнакОшибкиВидаВремени = Истина; + КонецПопытки; + КонецЕсли; + + Если ТекстЯчейки = "" Тогда + ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениВыходныеДни(); + ИначеЕсли Найти(ТекстЯчейки,"Ф") = 1 Тогда + ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениЯвка(); + НайденоРабочееВремя = Истина; + ИначеЕсли Найти(ТекстЯчейки,"С") = 1 Тогда + ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениСверхурочные(); + НайденоРабочееВремя = Истина; + ИначеЕсли Найти(ТекстЯчейки,"РП") = 1 Тогда + ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениПраздники(); + НайденоРабочееВремя = Истина; + ИначеЕсли Найти(ТекстЯчейки,"В") = 1 Тогда + ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениВыходныеДни(); + ИначеЕсли Найти(ТекстЯчейки,"К") = 1 Тогда + ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениКомандировка(); + ИначеЕсли Найти(ТекстЯчейки,"Б") = 1 Тогда + ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениБолезнь(); + ИначеЕсли Найти(ТекстЯчейки,"Р") = 1 Тогда + ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениОтпускПоБеременностиИРодам(); + ИначеЕсли Найти(ТекстЯчейки,"ОР") = 1 Тогда + ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениОтпускПоУходуЗаРебенком(); + ИначеЕсли Найти(ТекстЯчейки,"П") = 1 Тогда + ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениПрогулы(); + ИначеЕсли Найти(ТекстЯчейки,"А") = 1 Тогда + ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениДополнительныеВыходныеДниОплачиваемые(); + ИначеЕсли Найти(ТекстЯчейки,"О") = 1 Тогда + ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениОсновнойОтпуск(); + ИначеЕсли Найти(ТекстЯчейки,"ОД") = 1 Тогда + ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениДополнительныйОтпуск(); + ИначеЕсли Найти(ТекстЯчейки,"ОУ") = 1 Тогда + ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениОтпускНаОбучение(); + ИначеЕсли Найти(ТекстЯчейки,"ВУ") = 1 Тогда + ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениДополнительныеВыходныеДниОплачиваемые(); + ИначеЕсли Найти(ТекстЯчейки,"НН") = 1 Тогда + ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениНеявкиПоНевыясненнымПричинам(); + ИначеЕсли Найти(ТекстЯчейки,"ОЗ") = 1 Тогда + ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениНеоплачиваемыйОтпускПоРазрешениюРаботодателя(); + ИначеЕсли Найти(ТекстЯчейки,"ОВ") = 1 Тогда + ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениДополнительныеВыходныеДниОплачиваемые(); + ИначеЕсли Найти(ТекстЯчейки,"НБ") = 1 Тогда + ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениОтстранениеОтРаботыБезОплаты(); + ИначеЕсли Найти(ТекстЯчейки,"НОД") = 1 Тогда + ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениДополнительныеВыходныеДниОплачиваемые(); + ИначеЕсли Найти(ТекстЯчейки,"ДВ") = 1 Тогда + ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениДополнительныеВыходныеДниОплачиваемые(); + ИначеЕсли Найти(ТекстЯчейки,"Д") = 1 Тогда + ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениДополнительныеВыходныеДниОплачиваемые(); + ИначеЕсли Найти(ТекстЯчейки,"НА") = 1 Тогда + ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениНеявкиПоНевыясненнымПричинам(); + ИначеЕсли Найти(ТекстЯчейки,"НО") = 1 и (Найти(ТекстЯчейки,"НОД") = 0) Тогда + ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениОтстранениеОтРаботыСОплатой(); + КонецЕсли; + ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиЦифра] = КоличествоЧасов; + ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиБуква] = ТекстЯчейки; + Если (КоличествоЧасов + КоличествоНочныхЧасов) = 0 И + НайденоРабочееВремя Тогда + СообщениеОбОшибкеВидаВремени = "Ошибка получения количества отработанных часов. Указан классификатор (буква) рабочего времени, но отсутствует количество часов. Сотрудник: " + ФИО + + ". Номер дня: " + Строка(ЧислоДня) + ". Этот день переведен в выходные"; + ИнформационноеСообщение(СообщениеОбОшибкеВидаВремени,СтатусСообщения.ОченьВажное); + ТекущаяСтрокаТабличнойЧасти[ИмяКолонкиВидВремени] = ВидВремениВыходныеДни(); + ТекущаяСтрокаТабличнойЧасти.ПризнакОшибкиВидаВремени = Истина; + КонецЕсли; + КонецЦикла; + НомерТекущейСтроки = НомерТекущейСтроки + ВысотаСтроки; + НомерСтрокиТабеля = НомерСтрокиТабеля + 1; + Иначе + ПродолжитьЦикл = Ложь; + КонецЕсли; + КонецЦикла; + Объект.Комментарий = "Загружено " + Строка(ТекущаяДата()) + " по данным файлов: """ + ИмяФайлаСГЗ + """, """ + ИмяФайлаПД + """, """ + ИмяФайлаСГЗ + """"; - + НомерСтрокиТабеля = 100001; НомерТекущейСтрокиТабличнойЧасти = 100001; - Excel.WorkBooks.Close(); - //ЗаполнитьТабличнуюЧасть(); - //ОчисткаЗначенийРекрвизитовФормы() - //ЭтаОбработка = РеквизитФормыВЗначение("Объект"); - //Объект.Табель.Очистить(); - КонецЕсли; - НайтиРанееЗагруженныйТабель(); - ОпределитьВидимостьСтраниц(); - Элементы.ГруппаСтраницы.ТекущаяСтраница = СтраницаФормыПоСтатьеФинансирования(ТекущаяСтатьяФинансирования); - ЗаписатьКоличествоСотрудниковПоСтатьеФинансирования(ТекущаяСтатьяФинансирования); - //ОбновитьСписокЗагруженныхТабелей(); - ДанныеИзменены = Истина; -КонецПроцедуры + ЗакрытьExcel(Excel); + Возврат ТекущаяСтатьяФинансирования; +КонецФункции &НаСервере Процедура НайтиРанееЗагруженныйТабель() diff --git a/101_ЦМСЧ_ЗиКГУ.ПС_ПериодическиеНастройки/src/CommonModules/ПС_Описание/Module.bsl b/101_ЦМСЧ_ЗиКГУ.ПС_ПериодическиеНастройки/src/CommonModules/ПС_ПериодическиеНастройки_Описание/Module.bsl similarity index 96% rename from 101_ЦМСЧ_ЗиКГУ.ПС_ПериодическиеНастройки/src/CommonModules/ПС_Описание/Module.bsl rename to 101_ЦМСЧ_ЗиКГУ.ПС_ПериодическиеНастройки/src/CommonModules/ПС_ПериодическиеНастройки_Описание/Module.bsl index cacce84..c11df90 100644 --- a/101_ЦМСЧ_ЗиКГУ.ПС_ПериодическиеНастройки/src/CommonModules/ПС_Описание/Module.bsl +++ b/101_ЦМСЧ_ЗиКГУ.ПС_ПериодическиеНастройки/src/CommonModules/ПС_ПериодическиеНастройки_Описание/Module.bsl @@ -35,7 +35,7 @@ // // Общие модули: // ПС_РаботаСНастройками — программный интерфейс (Сервер) -// ПС_Описание — настоящий модуль документации +// ПС_ПериодическиеНастройки_Описание — настоящий модуль документации // // ПРИНЦИП ЗАПИСИ БЕЗ УКАЗАНИЯ ПЕРИОДА // diff --git a/101_ЦМСЧ_ЗиКГУ.ПС_ПериодическиеНастройки/src/CommonModules/ПС_Описание/ПС_Описание.mdo b/101_ЦМСЧ_ЗиКГУ.ПС_ПериодическиеНастройки/src/CommonModules/ПС_ПериодическиеНастройки_Описание/ПС_ПериодическиеНастройки_Описание.mdo similarity index 75% rename from 101_ЦМСЧ_ЗиКГУ.ПС_ПериодическиеНастройки/src/CommonModules/ПС_Описание/ПС_Описание.mdo rename to 101_ЦМСЧ_ЗиКГУ.ПС_ПериодическиеНастройки/src/CommonModules/ПС_ПериодическиеНастройки_Описание/ПС_ПериодическиеНастройки_Описание.mdo index e724519..d7af1c4 100644 --- a/101_ЦМСЧ_ЗиКГУ.ПС_ПериодическиеНастройки/src/CommonModules/ПС_Описание/ПС_Описание.mdo +++ b/101_ЦМСЧ_ЗиКГУ.ПС_ПериодическиеНастройки/src/CommonModules/ПС_ПериодическиеНастройки_Описание/ПС_ПериодическиеНастройки_Описание.mdo @@ -1,6 +1,6 @@ - ПС_Описание + ПС_ПериодическиеНастройки_Описание ru Описание diff --git a/101_ЦМСЧ_ЗиКГУ.ПС_ПериодическиеНастройки/src/Configuration/Configuration.mdo b/101_ЦМСЧ_ЗиКГУ.ПС_ПериодическиеНастройки/src/Configuration/Configuration.mdo index 8e2b052..0970d0d 100644 --- a/101_ЦМСЧ_ЗиКГУ.ПС_ПериодическиеНастройки/src/Configuration/Configuration.mdo +++ b/101_ЦМСЧ_ЗиКГУ.ПС_ПериодическиеНастройки/src/Configuration/Configuration.mdo @@ -46,7 +46,7 @@ Role.ПС_ЗаписьНастроек Role.ПС_ЧтениеНастроек - CommonModule.ПС_Описание + CommonModule.ПС_ПериодическиеНастройки_Описание CommonModule.ПС_РаботаСНастройками DefinedType.ПС_ТипыЗначенийНастроек Catalog.Пользователи