|
Документ начисления зарплаты в ЕРП Гена, kir-g, Ненавижу 1С, paramedic, Gucci76, 2S, alexela, Kongo2019, privetik, Федя Тяпкин, LoneMan, Hawk_1c, maxar, Волшебник, Timon1405, shuhard, Fragster, lirt82, calmius, El_Duke, Eiffil123, okmail, DemonShinji2, Ivanich, scanduta, spiller26, d4rkmesa, Krendel, WebberNSK, Гипервизор, AleksandrM09
| ☑ | ||
|---|---|---|---|---|
|
0
lirt82
22.10.26
✎
10:42
|
В документ НачислениеЗарплаты, добавил команду загрузить из эксель, описал обработчик, таб. часть Начисления заполняется данными из экселя, но показатели(налоги) пустые и следовательно колонка Результат пустая, не могу найти процедуру обработчик которая вызывает заполнение и расчет показателей. Кто сталкивался подскажите процедуру?
|
|||
|
1
paramedic
22.10.26
✎
10:45
|
А посмотреть обработчик поля Начисление ПриИзменении?
|
|||
|
2
lirt82
22.10.26
✎
14:49
|
(1) смотрю
кто может сюда скинуть пример кода по заполнению документа "НачислениеЗарплаты" в ЗУП-е, ЕРП из внешнего источника? |
|||
|
3
lirt82
22.10.26
✎
14:52
|
вот мой код, при выполнении таб часть заполняется то показатели пустые как и колонка Результат
&НаСервере Функция ВыполнитьЗагрузкуИзФайлаExcelНаСервере(Адрес, ТекстОшибки) Экспорт Данные = ПолучитьИзВременногоХранилища(Адрес); ИмяВременногоФайла = ПолучитьИмяВременногоФайла(РасширениеExcelФайла); Данные.Записать(ИмяВременногоФайла); Объект.Начисления.Очистить(); Документ = Новый ТабличныйДокумент; Документ.Прочитать(ИмяВременногоФайла, СпособЧтенияЗначенийТабличногоДокумента.Значение); ПЗ = Новый ПостроительЗапроса; ПЗ.ИсточникДанных = Новый ОписаниеИсточникаДанных(Документ.Область(4, 2, Документ.ВысотаТаблицы, 40)); ПЗ.ДобавлениеПредставлений = ТипДобавленияПредставлений.НеДобавлять; ПЗ.ЗаполнитьНастройки(); ПЗ.Выполнить(); ТаблицаЗначений = ПЗ.Результат.Выгрузить(); //+ в первом цикле сформируем массив ссылок сотрудников полученных от физ. лиц ТекстОшибки = ""; ТЗСотрудникиИСуммы = Новый ТаблицаЗначений; ТЗСотрудникиИСуммы.Колонки.Добавить("Сотрудник"); ТЗСотрудникиИСуммы.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(13, 2))); МассивСотрудников = Новый Массив; Для Каждого ТС Из ТаблицаЗначений Цикл ФИО = СокрЛП(ТС.Ф_И_О_); ФизическоеЛицо = Справочники.ФизическиеЛица.НайтиПоНаименованию(ФИО); Если Не ФизическоеЛицо.Пустая() Тогда НашлиСотрудника = КадровыйУчетРасширенный.ОсновнойСотрудникФизЛица(ФизическоеЛицо, Объект.Организация, Объект.Дата); Если НашлиСотрудника <> Неопределено Тогда Если ЗначениеЗаполнено(ТС.ПерерИтого) Тогда МассивСотрудников.Добавить(НашлиСотрудника); Стр = ТЗСотрудникиИСуммы.Добавить(); Стр.Сотрудник = НашлиСотрудника; Стр.Сумма = Окр(ТС.ПерерИтого, 0); КонецЕсли; Иначе ТекстОшибки = ТекстОшибки + НСтр("ru = 'Не найден сотрудник %1.'") + Символы.ПС; ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки, ФИО); КонецЕсли; Иначе ТекстОшибки = ТекстОшибки + НСтр("ru = 'Не удалось найти физическое лицо %1.'") + Символы.ПС; ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки, ФИО); КонецЕсли; КонецЦикла; //- в первом цикле сформируем массив ссылок сотрудников полученных от физ. лиц //+ во втором цикле заполним таб. часть документа Ном = 0; Если МассивСотрудников.Количество() > 0 Тогда КадровыеДанныеСотрудников = КадровыйУчет.КадровыеДанныеСотрудников(Истина, ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(МассивСотрудников), "Организация, Подразделение, ГрафикРаботы, ДатаУвольнения", Объект.Дата); ПоказательПремия = Справочники.ПоказателиРасчетаЗарплаты.НайтиПоРеквизиту("Идентификатор", "Премия"); НачислениеПремия = ПланыВидовРасчета.Начисления.НайтиПоНаименованию("Премия за месяц"); Для Каждого ДанныеСотрудника Из КадровыеДанныеСотрудников Цикл Если ЗначениеЗаполнено(ДанныеСотрудника.ДатаУвольнения) Тогда ТекстОшибки = ТекстОшибки + НСтр("ru = 'Сотрудник %1 уволен.'") + Символы.ПС; ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки, Строка(ДанныеСотрудника.Сотрудник)); Ном = Ном + 1; КонецЕсли; Если ДанныеСотрудника.Подразделение = Объект.Подразделение Тогда НС = Объект.Начисления.Добавить(); НС.Сотрудник = ДанныеСотрудника.Сотрудник; НС.Подразделение = ДанныеСотрудника.Подразделение; НС.ГрафикРаботы = ДанныеСотрудника.ГрафикРаботы; НС.ПериодДействия = Объект.МесяцНачисления; НС.ДатаНачала = Объект.МесяцНачисления; НС.ДатаОкончания = КонецМесяца(Объект.МесяцНачисления); НС.ПериодРегистрацииВремени = Объект.МесяцНачисления; НС.Начисление = НачислениеПремия; НС.Показатель1 = ПоказательПремия; НС.Значение1 = ТЗСотрудникиИСуммы.Найти(ДанныеСотрудника.Сотрудник, "Сотрудник").Сумма; КонецЕсли; КонецЦикла; КонецЕсли; Если Ном > 0 Тогда ТекстОшибки = ТекстОшибки + НСтр("ru = 'Загрузка завершена. Найдено %1 уволенных сотрудников (требуют проверки).'"); Иначе ТекстОшибки = ТекстОшибки + НСтр("ru = 'Загрузка завершена.'"); КонецЕсли; ТекстОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ТекстОшибки, Ном); Попытка УдалитьФайлы(ИмяВременногоФайла); Исключение КонецПопытки; ЗарплатаКадрыКлиентСервер.ЗаполнитьМесяцПоДатеВТабличнойЧасти(Объект.Начисления, "ПериодДействия", "ПериодДействияСтрокой"); //ПересчитатьСотрудниковНаСервере(); //СотрудникиДокумента = Объект.Начисления.Выгрузить(, "Сотрудник").ВыгрузитьКолонку("Сотрудник"); //ПерезаполнитьДанныеФормыНаСервере(СотрудникиДокумента, Ложь); Возврат ТекстОшибки; КонецФункции |
|||
|
4
lirt82
22.10.26
✎
15:03
|
вот так получается
|
|||
|
5
Gucci76
22.10.26
✎
15:53
|
(0) А почему премия грузится в начисление зарплаты? Может ее в премию грузить?
|
|||
|
6
paramedic
22.10.26
✎
16:08
|
1. Вы недозаполняете необходимые ТЧ.
2. В коде даже комментарий есть: // Заполнение и расчет начислений. |
| Форум | Правила | Описание | Секции | Поиск |