1С ЗУП 3.1 пересчет налогов и взносов в документах Начисление зарплаты
Есть документы "Начисление зарплаты и взносов" (около 1000) - по подразделениям, таблицы начисления, таблицы НДФЛ, вносы и начисления пустые. Начисления в базе есть. Можно ли как-то программно пересчитать в них взносы и НДФЛ? Код такой не работает. ТаблицаСсылок - содержит все необходимые документы.
&НаКлиенте
Процедура Команда1(Команда)
Команда1НаСервере(); собирает таблицу ссылок
Для Каждого СтрокаФизическихЛиц Из ТаблицаСсылок Цикл
Ключ = Новый Структура("Ключ", СтрокаФизическихЛиц.Ссылка);
Форма = ПолучитьФорму("Документ.НачислениеЗарплаты.Форма.ФормаДокумента", Ключ);
Форма.РежимПересчетаВзносов = Истина;
Форма.РежимПересчетаНДФЛ = Истина;
Форма.ПерезаполнитьДанныеФормыНаКлиенте();
Форма.Записать();
ОкнаПриложения = ПолучитьОкна();
Для Каждого ОкноПриложения Из ОкнаПриложения Цикл
Если ОкноПриложения.Содержимое.Количество() = 0 Тогда Продолжить; КонецЕсли;
Если ОкноПриложения.Содержимое[0].ИмяФормы = "ОбщаяФорма.ДлительнаяОперация" и НЕ ОкноПриложения.НачальнаяСтраница и НЕ ОкноПриложения.Основное Тогда
ФормаДлОп = ОкноПриложения.ПолучитьСодержимое();
Если ФормаДлОп.Открыта() Тогда
ФормаДлОп.Закрыть();
КонецЕсли;
КонецЕсли;
КонецЦикла;
Оповещение = Новый ОписаниеОповещения();
ПоказатьПредупреждение(Оповещение, СтрокаФизическихЛиц.Ссылка);
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура Команда1(Команда)
Команда1НаСервере(); собирает таблицу ссылок
Для Каждого СтрокаФизическихЛиц Из ТаблицаСсылок Цикл
Ключ = Новый Структура("Ключ", СтрокаФизическихЛиц.Ссылка);
Форма = ПолучитьФорму("Документ.НачислениеЗарплаты.Форма.ФормаДокумента", Ключ);
Форма.РежимПересчетаВзносов = Истина;
Форма.РежимПересчетаНДФЛ = Истина;
Форма.ПерезаполнитьДанныеФормыНаКлиенте();
Форма.Записать();
ОкнаПриложения = ПолучитьОкна();
Для Каждого ОкноПриложения Из ОкнаПриложения Цикл
Если ОкноПриложения.Содержимое.Количество() = 0 Тогда Продолжить; КонецЕсли;
Если ОкноПриложения.Содержимое[0].ИмяФормы = "ОбщаяФорма.ДлительнаяОперация" и НЕ ОкноПриложения.НачальнаяСтраница и НЕ ОкноПриложения.Основное Тогда
ФормаДлОп = ОкноПриложения.ПолучитьСодержимое();
Если ФормаДлОп.Открыта() Тогда
ФормаДлОп.Закрыть();
КонецЕсли;
КонецЕсли;
КонецЦикла;
Оповещение = Новый ОписаниеОповещения();
ПоказатьПредупреждение(Оповещение, СтрокаФизическихЛиц.Ссылка);
КонецЦикла;
КонецПроцедуры
По теме из базы знаний
- Перерасчет выбранных в списке документов "Начисление зарплаты" для ЗУП 3.1.2 и 2.5.123
- Анализ ФСС НС в разрезе месяцев начисления и месяцев налогового учета
- Пересчет и контроль распределения НДФЛ при выплате по сотрудникам (ЕРП 2)
- Обновление конфигураций Бухгалтерия 2, КА 1.1, ЗУП 2.5
- Краснота в отчете "Проверка расчета взносов" по сотрудникам после перерасчета отпуска в следующем месяце
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Если пересчеты очень сложного и запутанного типа то есть способ похожий но более радикальный
На форме документа, который надо изменить ПриОткрытии в самом конце проверить некий параметр (параметр при открытии скорее всего не будет, придется проверить параметр ПриСозданииНаСервере и присвоить его значение Реквизиту формы с таким же названием), скажем ПрограммныйПересчет и если он есть тогда выполнять код который записан под командами Пересчитать НДФЛ, Пересчитать взносы, и потом Записать данные и закрыть форму. А чтобы запустить все это, создать обработку которая в цикле просто будет открывать формы документов которые необходимо изменить (надо не забыть передать параметр ПрограммныйПересчет на форму которая будет открываться). И можно поставить паузу на несколько секунд после каждого открытия формы чтобы ничего не блокировалось. После успешного применения всех изменений можно удалить добавленный код на форму документа
На форме документа, который надо изменить ПриОткрытии в самом конце проверить некий параметр (параметр при открытии скорее всего не будет, придется проверить параметр ПриСозданииНаСервере и присвоить его значение Реквизиту формы с таким же названием), скажем ПрограммныйПересчет и если он есть тогда выполнять код который записан под командами Пересчитать НДФЛ, Пересчитать взносы, и потом Записать данные и закрыть форму. А чтобы запустить все это, создать обработку которая в цикле просто будет открывать формы документов которые необходимо изменить (надо не забыть передать параметр ПрограммныйПересчет на форму которая будет открываться). И можно поставить паузу на несколько секунд после каждого открытия формы чтобы ничего не блокировалось. После успешного применения всех изменений можно удалить добавленный код на форму документа
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот