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 @@
ДокПеренос.Записать();
- // Записываем движения
- Для Каждого Движение Из ДокПеренос.Движения Цикл
- Движение.Записать();
- КонецЦикла;
-
Сообщить("Данные записаны. Документ: " + ДокПеренос.Ссылка);
КонецПроцедуры