|   |   | 
| 
 | Программный пересчет строки сотрудника в разовом начислении. | ☑ | ||
|---|---|---|---|---|
| 0
    
        gul_Sayan 03.11.23✎ 10:06 | 
        Есть задача Нужно программно скорректировать строку начисления (не все) в документе разовое начисление.
 Строку то скорректировал, а вот как пересчитать НДФЛ и Удержания не открывая формы? | |||
| 1
    
        SleepyHead гуру 03.11.23✎ 10:07 | 
        (0) Смотри, что происходит по кнопке "Пересчитать сотрудника". И можно ли обойтись без открытия формы, работая только с коллекциями, связанными с документом.     | |||
| 2
    
        gul_Sayan 03.11.23✎ 10:22 | 
        По кнопке передаётся в том числе и форма, а вот форму то открывать и не хочется, тем паче что иногда требуется пересчитать 1 строку из 100.     | |||
| 3
    
        SleepyHead гуру 03.11.23✎ 10:24 | 
        (2) Передай туда структуру, которая повторяет то, что содержат данные формы.     | |||
| 4
    
        Масянька 03.11.23✎ 10:24 | 
        (0) Все пересчеты лежат в модуле формы. И работают с ТЧ документа.
 Такое вот ноу-хау от 1С. | |||
| 5
    
        Масянька 03.11.23✎ 10:27 | 
        (4) РасчетЗарплатыРасширенныйКлиентСервер.УстановитьПланируемуюДатуВыплаты(ВладелецФормы, ОписаниеДокумента(ВладелецФормы))     | |||
| 6
    
        gul_Sayan 03.11.23✎ 10:34 | 
        Короче похоже без открытия формы не обойтись :-(     | |||
| 7
    
        SleepyHead гуру 03.11.23✎ 10:36 | 
        (2) 
 Это из модуля формы документа. Все считается на сервере Сдается мне, переписать этот код без формы особого труда не составит. &НаСервере Процедура ПересчитатьНДФЛ() УстановитьПривилегированныйРежим(Истина); МенеджерРасчета = РасчетЗарплатыРасширенный.СоздатьМенеджерРасчета(Объект.МесяцНачисления, Объект.Организация); Сотрудники = ОбщегоНазначения.ВыгрузитьКолонку(Объект.Начисления, "Сотрудник"); ФизическиеЛицаСотрудников = ОбщегоНазначения.ЗначениеРеквизитаОбъектов(Сотрудники, "ФизическоеЛицо"); ФизическиеЛица = ОбщегоНазначения.ВыгрузитьКолонку(ФизическиеЛицаСотрудников, "Значение"); ЗаполнитьНастройкиМенеджераРасчета(ФизическиеЛица, МенеджерРасчета); МенеджерРасчета.НастройкиРасчета.ФизическиеЛица = ФизическиеЛица; Если ОтложитьРасчетНалогаДоРасчетаЗарплатыВКонцеМесяца Тогда Объект.НДФЛ.Очистить(); Объект.КорректировкиВыплаты.Очистить(); Объект.ПримененныеВычетыНаДетейИИмущественные.Очистить(); КонецЕсли; ДанныеФормыВДанныеМенеджераРасчета(МенеджерРасчета); МенеджерРасчета.ПересчитатьНДФЛ(); РасчетЗарплатыВДанныеФормы(МенеджерРасчета.Зарплата); ЗаполнитьНалогиУдержания(); УстановитьПривилегированныйРежим(Ложь); КонецПроцедуры | |||
| 8
    
        El_Duke гуру 03.11.23✎ 10:46 | 
        (7) "Сдается мне, переписать этот код без формы особого труда не составит"
 Очень опасный инструмент может получиться. Пересчитали начисление, налоги и ... никаких следов. Кто, когда, зачем ? Пострашнее чем фаустпатрон. Особенно в прошедшем периоде, когда пересчитанный НДФЛ и остальное надо пересдать корректировкой 6-НДФЛ, перс.сведений и тд. В Разовом начислении есть каноническая ссылка Исправить, хоть следы останутся для последующего следствия | |||
| 9
    
        SleepyHead гуру 03.11.23✎ 10:51 | 
        (8) Хочет человек создать документ, заполнить и рассчитать. Под его ответственность.
 Мне этот момент интересен чисто технически - можно или нет. | |||
| 10
    
        gul_Sayan 03.11.23✎ 11:44 | 
        (7) Спасибо.     | |||
| 11
    
        gul_Sayan 03.11.23✎ 11:46 | 
        (8) Документы текущего периода, так что корректировка вполне возможна, да и так первоначально собирались документ открывать и пересчитывать сотрудников.     | |||
| 12
    
        SleepyHead гуру 03.11.23✎ 11:48 | 
        (11) А может, все же по кнопке "Исправить" и не грешить?     | |||
| 13
    
        Масянька 03.11.23✎ 11:51 | 
        (11) По законам жанрам (ЗУП), если ЗП ещё не закрыта (рассчитана, выплачена) - корректируем в док-те, иначе - исправляем док-т.
 Не забываем про межрасчетные выплаты. | |||
| 14
    
        El_Duke гуру 03.11.23✎ 13:11 | 
        (11) Если доки текущего периода, то зачем вообще нужна эта задача ?     | |||
| 15
    
        Gucci76 03.11.23✎ 13:27 | 
        ПерезаполнитьДанныеФормыНаСервере(МассивСотрудников,Истина);     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |