![]() |
|
ЗУП 3.1 Программный перерасчёт документа отпуска | ☑ | ||
---|---|---|---|---|
0
DomenER
04.06.21
✎
16:27
|
Всем привет.
Запросом выбираю нужные мне документы отпуска. Далее в цикле меняю данные табличной части на стороне сервера через ПолучитьОбъект по передаваемой ссылке с клиента. А вот как запустить пересчитать не понятно (НДФЛ хочу пересчитать). На клиенте пытаюсь запустить на клиенте ФормаДокумента = ПолучитьФорму("Документ.Отпуск.Форма.ФормаДокумента", Новый Структура("Ключ",СсылкаДокументаОтпуска), ЭтаФорма); ФормаДокумента.ПерезаполнитьНачисленияСотрудника(СтрокаТЧотпусков.Сотрудник,истина,Ложь); И ругается, что "Данные были изменены или удалены другим пользователем". А вот если зайти в документ, подправить данные, то документ пересчитывается нормально. И также показывает, если использовать следующее РасчетЗарплатыКлиент.СтрокаРасчетаПриОкончанииРедактирования(ФормаДокумента, ОписаниеТаблицыНачислений(Истина)) ОписаниеТаблицыНачислений - это типовая функция конфигурации. Как программно запустить перерасчёт? |
|||
1
Serg_1960
04.06.21
✎
16:56
|
Имхо, надо открыть форму объекта, а не его ссылки. Иначе будет ругаться на попытку сохранить этот объект после того, как форма изменит и сохранит объект, полученный её из ссылки.
|
|||
2
mikecool
04.06.21
✎
17:00
|
наверняка есть серверные вызовы пересчета - ищи их
|
|||
3
DomenER
04.06.21
✎
17:09
|
(2) Пока не нашёл. Выполняется очень много кода...
|
|||
4
Фрэнки
04.06.21
✎
18:40
|
(3) На самом деле, с такой фигней, как перерасчет НДФЛ, бороться достаточно тяжело. Я бы посмотрел, имеет ли смысл выполнить перерасчет НДФЛ в том списке лиц, который был обработан в отдельном документе для перерасчёта НДФЛ. Понимаю, что это костыль, но конфиг реально заточен под интерактивные действия расчетчика, а не программиста.
|
|||
5
DomenER
05.06.21
✎
13:37
|
Помогла разобраться одна обработка с инфостарта.
//Получил форму по ссылке ПараметрыФормы = Новый Структура; ПараметрыФормы.Вставить("Ключ", СсылкаДокументаОтпуска); ПараметрыФормы.Вставить("ПерезаполнитьНачисления", Ложь); ФормаДокумента = ПолучитьФорму("Документ.Отпуск.Форма.ФормаДокумента", ПараметрыФормы, ЭтаФорма); ФормаДокумента.Открыть(); //Далее пересчитываю ФормаДокумента.ПерезаполнитьНачисленияСотрудника(СтрокаТЧотпусков.Сотрудник,истина,Ложь); // Потом провожу и закрываю ФормаДокумента.КомандаПровестиИЗакрыть(ФормаДокумента.Команды.КомандаПровестиИЗакрыть); Если нужно перезаполнить начисления, то я использовал: ФормаДокумента.РассчитатьНачисления(ФормаДокумента.Команды.Рассчитать); |
|||
6
SleepyHead
гуру
05.06.21
✎
14:37
|
(0) А потом окажется, что по этим документам уже есть ведомости на выплату.
В результате пересчета НДФЛ возникают последствия, которые тебе еще аукнутся - пересчитанный отпуск попадет в очередную ведомость, часть дохода по отпуску при этом переедет на дату новой ведомости. И начнется очередной раунд борьбы за НДФЛ. Устранять нужно причину ошибок, а не их следствия. |
|||
7
DrZombi
гуру
05.06.21
✎
21:32
|
(0) Никак, нет этого у ЗУП-а, да, только через форму, т.е. на сервере это можно организовать, но вам не понравится.
Пример, как обойти ограничения от 1С... https://infostart.ru/1c/articles/317865/ https://infostart.ru/public/1274701/ |
|||
8
DrZombi
гуру
05.06.21
✎
21:35
|
+(7) Спам бот робит на этой же снове.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |