|
8.3 ЗУП проблема с загрузкой документа начисление зп | ☑ | ||
---|---|---|---|---|
0
dbaranov
14.04.15
✎
14:46
|
Здравствуйте!
ЗУП 3.0.22.188 Необходимо документ начисление зп загрузить из ексель файла. Я на клиенте делаю так: мФорма = ПолучитьФорму("Документ.НачислениеЗарплаты.Форма.ФормаДокумента"); Док = мФорма.Объект; ЗагрузитьНаСервере(Док); КопироватьДанныеФормы(Док,мФорма.Объект); мФорма.Открыть(); В загрузитьнасервере я читаю ексель и заполняю шапку и строки. Все хорошо, но не получается посчитать НДФЛ, ВЗНОСЫ и нормадней и нормачасов. Попробовал разобраться - не получилось. Посмотрел, что делает при ручном выборе строки - попробовал написать так: ТабЧасть = Док.Начисления; Для Каждого Строка Из ТабЧасть Цикл мФорма.Элементы.Начисления.ТекущаяСтрока = ТабЧасть[0].ПолучитьИдентификатор(); РасчетЗарплатыРасширенныйКлиент.ДокументыВыполненияНачисленийПриАктивацииСтроки(мФорма, "Начисления", Истина); РасчетЗарплатыРасширенныйКлиент.СтрокаРасчетаПриНачалеРедактирования(мФорма, "Начисления", мФорма.Элементы.Начисления.ТекущиеДанные, Ложь, Ложь); Строка.Результат = 10000; РасчетЗарплатыРасширенныйКлиент.СтрокаРасчетаПриОкончанииРедактирования(мФорма, ОписаниеТаблицыНачислений()); КонецЦикла; мФорма.Открыть(); Не выходит. Спотыкается на ПолучитьИдентификатор(). Там 0, соответственно на строке не позиционируется. На сервере я строки в Начисления добавляю методом Добавить() Причем, если я не сам заполняю табчасть, а процедурой мФорма.ПерезаполнитьДанныеФормыНаСервере(Сотр) ПолучитьИдентификатор() спокойно проходит, хотя ТабЧасть в обоих случаях выглядит одинаково. В чем проблема может быть? |
|||
1
dbaranov
14.04.15
✎
14:48
|
Вместо
ТакбЧасть[0] писал Строка Ничего не меняется. |
|||
2
dbaranov
14.04.15
✎
19:27
|
Что-то я сложно написал :)
Стр = мФорма.Объект.Начисления.Добавить(); Стр.Результат = 2; мФорма.Элементы.Начисления.ТекущаяСтрока = Стр.ПолучитьИдентификатор(); Не ругается, но и тип значения - Неопределено |
|||
3
dbaranov
14.04.15
✎
19:28
|
мФорма = ПолучитьФорму("Документ.НачислениеЗарплаты.Форма.ФормаДокумента");
|
|||
4
Мимохожий Однако
14.04.15
✎
22:01
|
Док = мФорма.Объект;
Здесь фигня |
|||
5
FireAlex
14.04.15
✎
22:20
|
Не совсем правильно загружать документ начисление зп если у тебя готовые суммы начислений лучше через данные для расчета зп загружать какой нить показатель а зуп уже сам начислит взносы и ндфл
|
|||
6
dbaranov
15.04.15
✎
03:40
|
Док = мФорма.Объект;
Здесь фигня Где-то вычитал и вроде бы даже работает, если просто открывать форму. Таблица заполнена, все красиво. Но я бросил этот метод, на сервере я только читаю ексель, кладу его в таблицу, а на клиенте пробую приблизительно так: мФорма = ПолучитьФорму("Документ.НачислениеЗарплаты.Форма.ФормаДокумента"); Для Каждого Строка Из Таблица Цикл Стр = мФорма.Объект.Начисления.Добавить(); Стр.Сотрудник = Строка.Сотрудник; Стр.Результат = Строка.Сумма; и т.д. (графики, явка, подразделение........) КонецЦикла; Так таблица тоже заполняется хорошо, но если я пытаюсь вставить: мФорма.Элементы.Начисления.ТекущаяСтрока = Стр.ПолучитьИдентификатор(); Опять никуда не позиционируется. Причем, если я таблицу заполняю (взял из обработчика подбора документа) вот так: мФорма.ПерезаполнитьДанныеФормыНаСервере(СписокСотр) То таблица с виду заполняется также, и если я потом по ней циклом иду, то спокойно позиционируется и через процедуры, указанные выше, все считает. Разобраться в ПерезаполнитьДанныеФормыНаСервере() ума и опыта не хватило, к сожалению. |
|||
7
dbaranov
15.04.15
✎
03:46
|
"Не совсем правильно загружать документ начисление зп если у тебя готовые суммы начислений лучше через данные для расчета зп загружать какой нить показатель а зуп уже сам начислит взносы и ндфл".
Возможно, я книжку еще не забрал у матери. Они ее сами читают. Визуально в показателях нашел только сдельные наряды. Если подскажете - большое спасибо. Тут проблема еще в том, что других начислений не будет. Это не премия, а окончательный расчет. Т.е. в одной строке начисления зп должна быть и сумма и дни и нормы дней и явка. Других строк (кроме РК и СН) не будет. |
|||
8
dbaranov
15.04.15
✎
06:33
|
Спасибо огромное.
Сделал так: Оплата по окладу - в формуле указал РазмерРазовойПремии Разовая премия - в формуле РазмерРазовойПремии*0. Вроде все красиво получилось. Кроме строк с разовой премией в начислении с пустым результатом. |
|||
9
FireAlex
15.04.15
✎
06:40
|
зачем с разовой премией так извращаться? если она не нужна просто отмени это начисление. в такой схеме есть один минус - если будешь делать перерасчет. например человек заболел и нужно отсторнировать этот оклад - в моем случае вся сумма сторнировалась, хотя это не нужно - человек уже эти деньги заработал в любом случае.
|
|||
10
dbaranov
16.04.15
✎
08:47
|
Расчет сумм начислений ведется в своей хитровымудренной программе, куда заносятся все опоздания, новомодные коэффициенты, типа коммуникабельности и т.д.
В итоге в конце месяца дают ексель, где суммы начислений по сотрудникам. Надо занести их в 1С, начислить налоги, взносы, сдавать отчеты, считать больничные и отпуска. Сначала пытался грузить напрямую в начисление зп (см. начало ветки). Умные люди подсказали и вроде вполне себе приемлемое решение. "Оплата по окладу - в формуле указал РазмерРазовойПремии Разовая премия - в формуле РазмерРазовойПремии*0. " 1. Гружу все суммы из ексель в док разовой премии. 2. Начисляю зп. в документе по каждому сотруднику Оплата по окладу с нужной суммой и Разовая премия с 0. Все считается прекрасно, а премия пусть себе болтается. |
|||
11
FireAlex
16.04.15
✎
09:05
|
попробуй внести за прошлый месяц больничный лист - посмотри как отстрорнируются доходы и время посчитается. (всегда возможна ситуация когда выяснилось что человек заболел, при этом сумма зп не изменилась но отр время стало меньше)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |