v3.0.0.62

This commit is contained in:
Профи-Софт
2026-07-14 04:20:08 +00:00
parent 0cfcfcf715
commit aae744ba6a
2 changed files with 30 additions and 45 deletions
@@ -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 @@
ДокПеренос.Записать();
// Записываем движения
Для Каждого Движение Из ДокПеренос.Движения Цикл
Движение.Записать();
КонецЦикла;
Сообщить("Данные записаны. Документ: " + ДокПеренос.Ссылка);
КонецПроцедуры