From aae744ba6a343a0c2b687d2a58e5725d838030a1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=9F=D1=80=D0=BE=D1=84=D0=B8-=D0=A1=D0=BE=D1=84=D1=82?= Date: Tue, 14 Jul 2026 04:20:08 +0000 Subject: [PATCH] v3.0.0.62 --- Configuration.xml | 2 +- .../Forms/Форма/Ext/Form/Module.bsl | 73 ++++++++----------- 2 files changed, 30 insertions(+), 45 deletions(-) diff --git a/Configuration.xml b/Configuration.xml index 4d1b779..83df8cf 100755 --- a/Configuration.xml +++ b/Configuration.xml @@ -56,7 +56,7 @@ Russian ООО "Профи-Софт", код партнера 42575-13, г.Байконур. - 3.0.0.61 + 3.0.0.62 Language.Русский diff --git a/DataProcessors/ЗагрузкаДанныхИзExcel/Forms/Форма/Ext/Form/Module.bsl b/DataProcessors/ЗагрузкаДанныхИзExcel/Forms/Форма/Ext/Form/Module.bsl index f604ac2..44217ff 100644 --- a/DataProcessors/ЗагрузкаДанныхИзExcel/Forms/Форма/Ext/Form/Module.bsl +++ b/DataProcessors/ЗагрузкаДанныхИзExcel/Forms/Форма/Ext/Form/Module.bsl @@ -37,7 +37,7 @@ Сообщить("Нет данных для записи!"); Возврат; КонецЕсли; - ЗаписатьДанныеНаСервере(); + ЗаписатьДанныеНаСервере(ГодЗагрузки, СтрокаОрганизация, СтрокаСтатьяФинансирования, СтрокаСтатьяРасходов); Сообщить("Данные записаны!"); КонецПроцедуры @@ -328,10 +328,10 @@ Организация = СокрЛП(Строка(ЛистРасчет.Cells(4, 20).Value)); СтатьяФинансирования = СокрЛП(Строка(ЛистРасчет.Cells(8, 20).Value)); СтатьяРасходов = "211"; - // Сохраняем в реквизиты объекта для отображения на форме и записи - Объект.Организация = Организация; - Объект.СтатьяФинансирования = СтатьяФинансирования; - Объект.СтатьяРасходов = СтатьяРасходов; + // Сохраняем строковые значения для передачи на сервер + СтрокаОрганизация = Организация; + СтрокаСтатьяФинансирования = СтатьяФинансирования; + СтрокаСтатьяРасходов = СтатьяРасходов; // Строка начала данных НачальнаяСтрока = 0; Для Ном = 17 По 30 Цикл @@ -458,13 +458,29 @@ КонецПроцедуры &НаСервере -Процедура ЗаписатьДанныеНаСервере() +Процедура ЗаписатьДанныеНаСервере(Знач ГодЗагрузкиПараметр, ОрганизацияНаименование, СтатьяФинансированияНаименование, СтатьяРасходовКод) // Определяем период - ГодЗагрузки = ГодЗагрузки; - Если Не ЗначениеЗаполнено(ГодЗагрузки) Тогда - ГодЗагрузки = Год(ТекущаяДата()); + Если Не ЗначениеЗаполнено(ГодЗагрузкиПараметр) Тогда + ГодЗагрузкиПараметр = Год(ТекущаяДата()); + КонецЕсли; + Период = Дата(Цел(ГодЗагрузкиПараметр), Цел(Объект.МесяцЗагрузки), 1); + + // Разрешаем ссылки из строковых значений + Организация = Справочники.Организации.НайтиПоНаименованию(СокрЛП(ОрганизацияНаименование), Истина); + Если Не ЗначениеЗаполнено(Организация) Тогда + Сообщить("Не найдена организация: """ + ОрганизацияНаименование + """"); + Возврат; + КонецЕсли; + + СтатьяФинансирования = Неопределено; + Если ЗначениеЗаполнено(СтатьяФинансированияНаименование) Тогда + СтатьяФинансирования = Справочники.СтатьиФинансированияЗарплата.НайтиПоНаименованию(СокрЛП(СтатьяФинансированияНаименование), Истина); + КонецЕсли; + + СтатьяРасходов = Неопределено; + Если ЗначениеЗаполнено(СтатьяРасходовКод) Тогда + СтатьяРасходов = Справочники.СтатьиРасходовЗарплата.НайтиПоКоду(СокрЛП(СтатьяРасходовКод)); КонецЕсли; - Период = Дата(ГодЗагрузки, Объект.МесяцЗагрузки, 1); // Создаём документ ПереносДанных ДокПеренос = Документы.ПереносДанных.СоздатьДокумент(); @@ -506,41 +522,15 @@ КонецЦикла; // Сопоставление организаций и статей - Организация = Справочники.Организации.НайтиПоНаименованию(СокрЛП(Объект.Организация), Истина); - Если Не ЗначениеЗаполнено(Организация) Тогда - Сообщить("Не найдена организация: """ + Объект.Организация + """. Попытка по первому элементу..."); - Выборка = Справочники.Организации.Выбрать(); - Если Выборка.Следующий() Тогда - Организация = Выборка.Ссылка; - Сообщить("Используется: " + Организация.Наименование); - Иначе - Сообщить("ОШИБКА: Нет ни одной организации в справочнике!"); - КонецЕсли; - КонецЕсли; - - СтатьяФинансирования = Справочники.СтатьиФинансированияЗарплата.НайтиПоНаименованию(СокрЛП(Объект.СтатьяФинансирования), Истина); - Если Не ЗначениеЗаполнено(СтатьяФинансирования) Тогда - Сообщить("Не найдена статья финансирования: """ + Объект.СтатьяФинансирования + """"); - КонецЕсли; - - СтатьяРасходов = Справочники.СтатьиРасходовЗарплата.НайтиПоНаименованию(СокрЛП(Объект.СтатьяРасходов), Истина); - Если Не ЗначениеЗаполнено(СтатьяРасходов) Тогда - Сообщить("Не найдена статья расходов: """ + Объект.СтатьяРасходов + """"); - КонецЕсли; - - Если Не ЗначениеЗаполнено(Организация) Тогда - Сообщить("Запись невозможна: организация не определена!"); - Возврат; - КонецЕсли; - // ============================================ // Регистр 1: НачисленияУдержанияПоСотрудникам // ============================================ Для Каждого Строка Из Объект.ДанныеРасчетаЗП Цикл ИД = Строка.ИдентификаторСотрудника; ДанныеСотр = КэшСотрудников.Получить(ИД); - ФизЛицо = ?(ДанныеСотр <> Неопределено, ДанныеСотр.ФизическоеЛицо, Неопределено); - СотрудникСсылка = ?(ДанныеСотр <> Неопределено, ДанныеСотр.Сотрудник, Неопределено); + Если ДанныеСотр = Неопределено Тогда Продолжить; КонецЕсли; + ФизЛицо = ДанныеСотр.ФизическоеЛицо; + СотрудникСсылка = ДанныеСотр.Сотрудник; // Начисления (Оклад, доплаты, надбавки и т.д.) ЗаписатьНачисление(ДокПеренос, Строка, "Оклад", Строка.Оклад, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка); @@ -640,11 +630,6 @@ ДокПеренос.Записать(); - // Записываем движения - Для Каждого Движение Из ДокПеренос.Движения Цикл - Движение.Записать(); - КонецЦикла; - Сообщить("Данные записаны. Документ: " + ДокПеренос.Ссылка); КонецПроцедуры