|
Документ начисления зарплаты в ЕРП Эх-эх-эх, Пушкин, Вадя, Kongo2019, paramedic, Amra, Gucci76, ReaLg, El_Duke, privetik, PLUT, nick86, coldsiemens, tulke, Fragster, Гена, lucky-nn, Fish, d4rkmesa, Ненавижу 1С, integer, KJlag, kir-g, unenu, 2S, alexela, Федя Тяпкин, LoneMan, Hawk_1c, maxar, Волшебник, Timon1405, shuhard, lirt82, calmius
| ☑ | ||
|---|---|---|---|---|
|
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. В коде даже комментарий есть: // Заполнение и расчет начислений. |
|||
|
7
Gucci76
22.10.26
✎
16:53
|
(6) Зачем для загрузки премии использовать самый сложный документ расчета? В премии, разовом начислении тоже не одна ТЧ.
На Бухэксперт уже есть обработка загрузки во многие документы (кроме начисления ЗП :-) ). |
|||
|
8
paramedic
22.10.26
✎
16:55
|
(7) Откуда мы знаем, что ТС грузит только премии? Может премии как пример показаны?
|
|||
|
9
Gucci76
22.10.26
✎
16:59
|
(8) Вот я и спрашиваю ТС ))))
|
|||
|
10
Гена
гуру
22.10.26
✎
17:04
|
(5) +
За загрузку в док Начисления зп данных кроме поля результата - сразу расстрел. Только сначала напоить чайком... всенеп'геменно... это а'гхиважно! |
|||
|
11
Amra
22.10.26
✎
17:28
|
(10) Согласен. Удаляет гланды через .опу.
(0) Выкинуть весь код в топку. Переделать показатель премии как задаваемый через документ данные для начисления зп, и грузить туда. Гоооораздо проше и правильнее |
|||
|
12
Вадя
22.10.26
✎
18:18
|
Данные для расчета зарплаты - это же архискучно !!!
|
|||
|
13
Вадя
22.10.26
✎
18:21
|
Нужно сочинить свои документы - Начисления по KPI или на крайний случай какой-нибудь навороченный Сдельный наряд для каждого подразделения со своей спецификой и грузить в них данные из екселек. Это всем понравится !!!
|
|||
|
14
Amra
22.10.26
✎
19:07
|
(13) Да-да, а потом угробить базу при обновлении, при таких познаниях ЗУПа)) Это по нашему, модно и современно)
|
| Форум | Правила | Описание | Секции | Поиск |