которое настроено как разовое - по отдельному документу, разовое начисление. сами создавали. а у вас выплачивает в аванс разовое? Начисление за первую половину месяца делаете? потом выплату (ведомость в банк,например)с видом аванс? и суммы разового + надбавок от него встают в ведомости?
да, за вычетом НДФЛ.
в ЗУП 3.0 очень большую роль играет правильная последовательность документов. особенно это касается документов выплаты...
и, первое время, надо постоянно пересчитывать начисленные суммы... такой вот мой опыт...
да, у вас посложнее... но у 1С ошибки объединены для ЗУПа и ЗГУ (https://bugboard.v8.1c.ru/version/hrm3/3.0.25.64.html) можно делать вывод, что функциональность у них практически одинаковая, проблемы одни и те же....
да,основа одна. но не делает выплату. у вас документ Разовое начисление входит в регистраторы для регистров накопления аванса? "Зарплата к выплате авансом",например?
В моем случае документ Разовые начисления не сделал движений по РегНак Зарплата к выплате авансом.
Но когда я провела выплату - программа сделал движения Расход по РегНак Зарплата к выплате авансом на сумму за первую половину месяца и на сумму Разового начисления.
у нас сумму режет. т.е. если в начислении зп за первую половину насчитали сумму А, разовое сумма Б, то в выплате делает по источникам сумму = А: (А+Б)/Коэф = А. Т.е. часть А и часть Б берет.
подскажите, у вас в общем модуле "ВзаиморасчетыССотрудниками" есть такая процедура
Процедура СоздатьВТЗарплатаКВыплатеОграниченнуюСальдоФизлиц(МенеджерВременныхТаблиц, ТолькоРазрешенные, Параметры)
а в ней еще вот так:
// Коэффициент выплаты (отношение сальдо к зарплате, но не больше зарплаты)
Запрос.Текст =
Запрос.Текст +
ЗарплатаКадрыОбщиеНаборыДанных.РазделительЗапросов() +
"ВЫБРАТЬ
| Зарплата.ФизическоеЛицо КАК ФизическоеЛицо,
| ВЫБОР
| КОГДА Зарплата.КВыплате <= 0
| ТОГДА 1
| КОГДА ЕСТЬNULL(Сальдо.КВыплате, 0) / Зарплата.КВыплате > 1
| ТОГДА 1
| КОГДА ЕСТЬNULL(Сальдо.КВыплате, 0) < 0
| ТОГДА 0
| ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(Сальдо.КВыплате, 0) / Зарплата.КВыплате КАК ЧИСЛО(25, 10))
| КОНЕЦ КАК Размер
|ПОМЕСТИТЬ ВТКоэффициентыВыплаты
|ИЗ
| ВТЗарплатаФизлиц КАК Зарплата
| ЛЕВОЕ СОЕДИНЕНИЕ ВТСальдоФизлиц КАК Сальдо
| ПО Зарплата.ФизическоеЛицо = Сальдо.ФизическоеЛицо";
// Ограничиваем суммы зарплаты коэффициентами выплаты
Запрос.Текст =
Запрос.Текст +
ЗарплатаКадрыОбщиеНаборыДанных.РазделительЗапросов() +
"ВЫБРАТЬ
| ЗарплатаКВыплате.Сотрудник КАК Сотрудник,
| ЗарплатаКВыплате.ФизическоеЛицо КАК ФизическоеЛицо,
| ЗарплатаКВыплате.Подразделение КАК Подразделение,
| ЗарплатаКВыплате.ПериодВзаиморасчетов,
| ЗарплатаКВыплате.СтатьяФинансирования,
| ЗарплатаКВыплате.СтатьяРасходов,
| ЗарплатаКВыплате.ДокументОснование,
| ВЫРАЗИТЬ(ЗарплатаКВыплате.КВыплате * КоэффициентыВыплаты.Размер КАК ЧИСЛО(15, 2)) КАК КВыплате
|ПОМЕСТИТЬ ВТЗарплатаКВыплатеОграниченнуюСальдоФизлиц
|ИЗ
| ВТЗарплатаКВыплате КАК ЗарплатаКВыплате
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТКоэффициентыВыплаты КАК КоэффициентыВыплаты
| ПО (КоэффициентыВыплаты.ФизическоеЛицо = ЗарплатаКВыплате.ФизическоеЛицо)";
Запрос.Выполнить();
здесь самое страшное вот это: ЗарплатаКВыплате.КВыплате * КоэффициентыВыплаты.Размер
в ведомости на выплату над кнопкой "Заполнить" что написано? ссылка "Заполнение всеми причитающимися суммами, без округления"?
может быть вы просто установили процент выплаты?
нет, всеми суммами без округления 100%, выплат нет. тупо берем один отпуск, не выплачивает в аванс. при начислении за первую половину выплачивает частично так, чтобы сумма выплаты была = начисленной в начислении за первую половину. т.е. часть отпуска ставит, часть начисленной за (это видно в разбивке по финансированию).
данные чего? всё просмотрено. доли распределения по статьям нет. если вообще нет распределения по статьям финансирования, суммы делит. при изменении кода,всё отлично считает.
Вот так: убираем коэффициент.
| ЗарплатаКВыплате.ДокументОснование,
//| ВЫРАЗИТЬ(ЗарплатаКВыплате.КВыплате * КоэффициентыВыплаты.Размер КАК ЧИСЛО(15, 2)) КАК КВыплате
| ЗарплатаКВыплате.КВыплате КАК КВыплате
видимопри определнии коэф не хватает разбивки в разрезе статей. пока не разобрались.
коэффициент этот считат так: | ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(Сальдо.КВыплате, 0) / Зарплата.КВыплате КАК ЧИСЛО(25, 10))
Сальдо.КВыплате = сумма из документа "Начисление за первую половину месяца" (или из регистра ЗарплатаКВыплатеАвансом).
Зарплата.КВыплате = Сумма из регистра ЗарплатакВыплате+ЗарплатаКВыплатеАвансом.
При выплате аванса с разбивкой по статьям финансирования, правильно работает выплата в случае след. поправки общего модуля ВзаиморасчетыССотрудниками:
Процедура СоздатьВТЗарплатаКВыплатеОграниченнуюСальдоФизлиц(МенеджерВременныхТаблиц, ТолькоРазрешенные, Параметры)
Если Параметры.ХарактерВыплаты = Перечисления.ХарактерВыплатыЗарплаты.Аванс Тогда
ПериодВзаиморасчетов = Параметры.ПериодРегистрации;
// ДобавитьМесяц(Параметры.ПериодРегистрации, -1);
//изменено Далее добавлена Аналитика во всех запросах по: СтатьяФинансирования и СтатьяРасходов
ИначеЕсли Параметры.ХарактерВыплаты = Перечисления.ХарактерВыплатыЗарплаты.Зарплата Тогда
ПериодВзаиморасчетов = Параметры.ПериодРегистрации;
Иначе
Возврат
КонецЕсли;
УстановитьПривилегированныйРежим(Истина);
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
// Получаем всех сотрудников переданных физлиц
КадровыйУчет.СоздатьВТСотрудникиОрганизации(
МенеджерВременныхТаблиц, Истина,
ПараметрыПолученияСотрудников,
"ВТСотрудникиФизическихЛиц");
// Запрашиваем плановые авансы всех сотрудников рассматриваемых физлиц
СоздатьВТПлановыйАванс(МенеджерВременныхТаблиц, ТолькоРазрешенные, Параметры, "ВТСотрудникиФизическихЛиц");
// Определяем плановые авансы физических лиц
Запрос.Текст =
"ВЫБРАТЬ
| ПлановыйАванс.ФизическоеЛицо КАК ФизическоеЛицо,
| СУММА(ПлановыйАванс.СуммаКВыплате) КАК КВыплате
|ПОМЕСТИТЬ ВТПлановыйАвансФизическихЛиц
|ИЗ
| ВТПлановыйАванс КАК ПлановыйАванс
|
|СГРУППИРОВАТЬ ПО
| ПлановыйАванс.ФизическоеЛицо";
Если Параметры.ХарактерВыплаты = Перечисления.ХарактерВыплатыЗарплаты.Аванс Тогда
// Получаем остатки начислений первой половины месяца
Запрос.Текст =
Запрос.Текст +
ЗарплатаКадрыОбщиеНаборыДанных.РазделительЗапросов() +
"ВЫБРАТЬ
| ЗарплатаКВыплатеАвансом.ФизическоеЛицо КАК ФизическоеЛицо,
| СУММА(ЗарплатаКВыплатеАвансом.СуммаКВыплате) КАК КВыплате,
| ЗарплатаКВыплатеАвансом.СтатьяФинансирования,
| ЗарплатаКВыплатеАвансом.СтатьяРасходов
|ПОМЕСТИТЬ ВТНачисленныйАвансФизическихЛиц
|ИЗ
| (ВЫБРАТЬ
| ЗарплатаКВыплатеОстатки.ФизическоеЛицо КАК ФизическоеЛицо,
| ЗарплатаКВыплатеОстатки.СуммаКВыплатеОстаток КАК СуммаКВыплате,
| ЗарплатаКВыплатеОстатки.СтатьяФинансирования КАК СтатьяФинансирования,
| ЗарплатаКВыплатеОстатки.СтатьяРасходов КАК СтатьяРасходов
| ИЗ
| РегистрНакопления.ЗарплатаКВыплатеАвансом.Остатки(
| КОНЕЦПЕРИОДА(&ПериодРегистрации, МЕСЯЦ),
| Организация = &Организация
| И ПериодВзаиморасчетов = &ПериодРегистрации
| И ФизическоеЛицо В
| (ВЫБРАТЬ
| ЗарплатаФизлиц.ФизическоеЛицо
| ИЗ
| ВТЗарплатаФизлиц КАК ЗарплатаФизлиц)) КАК ЗарплатаКВыплатеОстатки
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ЗарплатаКВыплате.ФизическоеЛицо,
| ВЫБОР
| КОГДА ЗарплатаКВыплате.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| ТОГДА -ЗарплатаКВыплате.СуммаКВыплате
| ИНАЧЕ ЗарплатаКВыплате.СуммаКВыплате
| КОНЕЦ,
| NULL,
| NULL
| ИЗ
| РегистрНакопления.ЗарплатаКВыплатеАвансом КАК ЗарплатаКВыплате
| ГДЕ
| ЗарплатаКВыплате.Регистратор В(&ИгнорируемыеРегистраторы)
| И ЗарплатаКВыплате.Организация = &Организация
| И ЗарплатаКВыплате.Период < КОНЕЦПЕРИОДА(&ПериодРегистрации, МЕСЯЦ)
| И ЗарплатаКВыплате.ПериодВзаиморасчетов = &ПериодРегистрации
| И ЗарплатаКВыплате.ФизическоеЛицо В
| (ВЫБРАТЬ
| ЗарплатаФизлиц.ФизическоеЛицо
| ИЗ
| ВТЗарплатаФизлиц КАК ЗарплатаФизлиц)) КАК ЗарплатаКВыплатеАвансом
|
|СГРУППИРОВАТЬ ПО
| ЗарплатаКВыплатеАвансом.ФизическоеЛицо,
| ЗарплатаКВыплатеАвансом.СтатьяФинансирования,
| ЗарплатаКВыплатеАвансом.СтатьяРасходов";
Иначе
// Получаем начисленное в первой половине месяца
Запрос.Текст =
Запрос.Текст +
ЗарплатаКадрыОбщиеНаборыДанных.РазделительЗапросов() +
"ВЫБРАТЬ
| ЗарплатаКВыплатеАвансом.ФизическоеЛицо,
| СУММА(ЗарплатаКВыплатеАвансом.СуммаКВыплате) КАК КВыплате,
| ЗарплатаКВыплатеАвансом.СтатьяФинансирования,
| ЗарплатаКВыплатеАвансом.СтатьяРасходов
|ПОМЕСТИТЬ ВТНачисленныйАвансФизическихЛиц
|ИЗ
| РегистрНакопления.ЗарплатаКВыплатеАвансом КАК ЗарплатаКВыплатеАвансом
|ГДЕ
| ЗарплатаКВыплатеАвансом.Период = &ПериодРегистрации
| И ЗарплатаКВыплатеАвансом.Организация = &Организация
| И ЗарплатаКВыплатеАвансом.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
|
|СГРУППИРОВАТЬ ПО
| ЗарплатаКВыплатеАвансом.ФизическоеЛицо,
| ЗарплатаКВыплатеАвансом.СтатьяФинансирования,
| ЗарплатаКВыплатеАвансом.СтатьяРасходов";
КонецЕсли;
// Остатки зарплаты к выплате по физлицам
Запрос.Текст =
Запрос.Текст +
ЗарплатаКадрыОбщиеНаборыДанных.РазделительЗапросов() +
"ВЫБРАТЬ
| ЗарплатаКВыплатеОстатки.ФизическоеЛицо КАК ФизическоеЛицо,
| СУММА(ЗарплатаКВыплатеОстатки.СуммаКВыплате) КАК КВыплате,
| ЗарплатаКВыплатеОстатки.СтатьяФинансирования,
| ЗарплатаКВыплатеОстатки.СтатьяРасходов
|ПОМЕСТИТЬ ВТЗарплатаКВыплатеФизическихЛиц
|ИЗ
| (ВЫБРАТЬ
| ЗарплатаКВыплатеОстатки.ФизическоеЛицо КАК ФизическоеЛицо,
| ЗарплатаКВыплатеОстатки.СуммаКВыплатеОстаток КАК СуммаКВыплате,
| ЗарплатаКВыплатеОстатки.СтатьяФинансирования КАК СтатьяФинансирования,
| ЗарплатаКВыплатеОстатки.СтатьяРасходов КАК СтатьяРасходов
| ИЗ
| РегистрНакопления.ЗарплатаКВыплате.Остатки(
| КОНЕЦПЕРИОДА(&ПериодВзаиморасчетов, МЕСЯЦ),
| Организация = &Организация
| И ФизическоеЛицо В
| (ВЫБРАТЬ
| ЗарплатаФизлиц.ФизическоеЛицо
| ИЗ
| ВТЗарплатаФизлиц КАК ЗарплатаФизлиц)) КАК ЗарплатаКВыплатеОстатки
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ЗарплатаКВыплате.ФизическоеЛицо,
| ВЫБОР
| КОГДА ЗарплатаКВыплате.ВидДвижения = ЗНАЧЕНИЕ(ВидДвиженияНакопления.Приход)
| ТОГДА -ЗарплатаКВыплате.СуммаКВыплате
| ИНАЧЕ ЗарплатаКВыплате.СуммаКВыплате
| КОНЕЦ,
| ЗарплатаКВыплате.СтатьяФинансирования,
| ЗарплатаКВыплате.СтатьяРасходов
| ИЗ
| РегистрНакопления.ЗарплатаКВыплате КАК ЗарплатаКВыплате
| ГДЕ
| ЗарплатаКВыплате.Регистратор В(&ИгнорируемыеРегистраторы)
| И ЗарплатаКВыплате.Период < КОНЕЦПЕРИОДА(&ПериодВзаиморасчетов, МЕСЯЦ)
| И ЗарплатаКВыплате.Организация = &Организация
| И ЗарплатаКВыплате.ФизическоеЛицо В
| (ВЫБРАТЬ
| ЗарплатаФизлиц.ФизическоеЛицо
| ИЗ
| ВТЗарплатаФизлиц КАК ЗарплатаФизлиц)) КАК ЗарплатаКВыплатеОстатки
|
|СГРУППИРОВАТЬ ПО
| ЗарплатаКВыплатеОстатки.ФизическоеЛицо,
| ЗарплатаКВыплатеОстатки.СтатьяФинансирования,
| ЗарплатаКВыплатеОстатки.СтатьяРасходов";
// Предел выплаты по физлицам
Запрос.Текст =
Запрос.Текст +
ЗарплатаКадрыОбщиеНаборыДанных.РазделительЗапросов() +
"ВЫБРАТЬ
| ПределВыплат.ФизическоеЛицо КАК ФизическоеЛицо,
| СУММА(ПределВыплат.КВыплате) КАК КВыплате,
| ПределВыплат.СтатьяФинансирования,
| ПределВыплат.СтатьяРасходов
|ПОМЕСТИТЬ ВТСальдоФизлиц
|ИЗ
| (ВЫБРАТЬ
| ПлановыйАванс.ФизическоеЛицо КАК ФизическоеЛицо,
| ПлановыйАванс.КВыплате КАК КВыплате,
| NULL КАК СтатьяФинансирования,
| NULL КАК СтатьяРасходов
| ИЗ
| ВТПлановыйАвансФизическихЛиц КАК ПлановыйАванс
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| НачисленныйАванс.ФизическоеЛицо,
| НачисленныйАванс.КВыплате,
| НачисленныйАванс.СтатьяФинансирования,
| НачисленныйАванс.СтатьяРасходов
| ИЗ
| ВТНачисленныйАвансФизическихЛиц КАК НачисленныйАванс
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| ЗарплатаКВыплате.ФизическоеЛицо,
| ЗарплатаКВыплате.КВыплате,
| ЗарплатаКВыплате.СтатьяФинансирования,
| ЗарплатаКВыплате.СтатьяРасходов
| ИЗ
| ВТЗарплатаКВыплатеФизическихЛиц КАК ЗарплатаКВыплате) КАК ПределВыплат
|
|СГРУППИРОВАТЬ ПО
| ПределВыплат.ФизическоеЛицо,
| ПределВыплат.СтатьяФинансирования,
| ПределВыплат.СтатьяРасходов";
// Коэффициент выплаты (отношение сальдо к зарплате, но не больше зарплаты)
Запрос.Текст =
Запрос.Текст +
ЗарплатаКадрыОбщиеНаборыДанных.РазделительЗапросов() +
"ВЫБРАТЬ
| Зарплата.ФизическоеЛицо КАК ФизическоеЛицо,
| ВЫБОР
| КОГДА Зарплата.КВыплате <= 0
| ТОГДА 1
| КОГДА ЕСТЬNULL(Сальдо.КВыплате, 0) / Зарплата.КВыплате > 1
| ТОГДА 1
| КОГДА ЕСТЬNULL(Сальдо.КВыплате, 0) < 0
| ТОГДА 0
| ИНАЧЕ ВЫРАЗИТЬ(ЕСТЬNULL(Сальдо.КВыплате, 0) / Зарплата.КВыплате КАК ЧИСЛО(25, 10))
| КОНЕЦ КАК Размер,
| Зарплата.СтатьяФинансирования,
| Зарплата.СтатьяРасходов
|ПОМЕСТИТЬ ВТКоэффициентыВыплаты
|ИЗ
| ВТЗарплатаФизлиц КАК Зарплата
| ЛЕВОЕ СОЕДИНЕНИЕ ВТСальдоФизлиц КАК Сальдо
| ПО Зарплата.ФизическоеЛицо = Сальдо.ФизическоеЛицо
| И Зарплата.СтатьяФинансирования = Сальдо.СтатьяФинансирования
| И Зарплата.СтатьяРасходов = Сальдо.СтатьяРасходов";
// Ограничиваем суммы зарплаты коэффициентами выплаты
Запрос.Текст =
Запрос.Текст +
ЗарплатаКадрыОбщиеНаборыДанных.РазделительЗапросов() +
"ВЫБРАТЬ
| ЗарплатаКВыплате.Сотрудник КАК Сотрудник,
| ЗарплатаКВыплате.ФизическоеЛицо КАК ФизическоеЛицо,
| ЗарплатаКВыплате.Подразделение КАК Подразделение,
| ЗарплатаКВыплате.ПериодВзаиморасчетов,
| ЗарплатаКВыплате.СтатьяФинансирования,
| ЗарплатаКВыплате.СтатьяРасходов,
| ЗарплатаКВыплате.ДокументОснование,
//| ЗарплатаКВыплате.КВыплате КАК КВыплате
| ВЫРАЗИТЬ(ЗарплатаКВыплате.КВыплате * КоэффициентыВыплаты.Размер КАК ЧИСЛО(15, 2)) КАК КВыплате
|ПОМЕСТИТЬ ВТЗарплатаКВыплатеОграниченнуюСальдоФизлиц
|ИЗ
| ВТЗарплатаКВыплате КАК ЗарплатаКВыплате
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТКоэффициентыВыплаты КАК КоэффициентыВыплаты
| ПО (КоэффициентыВыплаты.ФизическоеЛицо = ЗарплатаКВыплате.ФизическоеЛицо)
| И ЗарплатаКВыплате.СтатьяФинансирования = КоэффициентыВыплаты.СтатьяФинансирования
| И ЗарплатаКВыплате.СтатьяРасходов = КоэффициентыВыплаты.СтатьяРасходов";