0
echo77
11.05.12
✎
15:37
|
Что за загадочная функция в модуле документа РасчетСтраховых взносов?
ЗаполнениеРегламентированнойОтчетности.ОкруглитьСлагаемыеПоСумме(ВременнаяТаблица,"ФССНесчастныеСлучаи", Выборка.ВзносовСводно, 2, "ФизЛицо");
в ЗУПе, по-моему, такого нет.
Так же смущает запрос, предшествующий ей. Мне кажется из-за этого "округления" у меня страховые взносы ФСС НС округляются не туда
|
|
2
Gesperid
11.05.12
✎
16:00
|
Подправлял так, но уже не помню что к чему =)
Процедура ОкруглитьСлагаемыеПоСумме(Данные, ИмяКолонки, Сумма, Точность = 0, ИмяКлюча =
"ФизЛицо") Экспорт
ВременнаяТаблица = Данные.Скопировать(, ИмяКлюча + "," + ИмяКолонки);
ВременнаяТаблица.Колонки.Добавить(ИмяКолонки + "Окр");
Для каждого СтрокаТЗ Из ВременнаяТаблица Цикл
СтрокаТЗ[ИмяКолонки + "Окр"] = Окр(СтрокаТЗ[ИмяКолонки],Точность)
КонецЦикла;
Данные.ЗагрузитьКолонку(ВременнаяТаблица.ВыгрузитьКолонку(ИмяКолонки + "Окр"),ИмяКолонки);
СуммаСлагаемых = ВременнаяТаблица.Итог(ИмяКолонки + "Окр");
Если СуммаСлагаемых <> Сумма Тогда
Шаг = Pow(10, -Точность);
РасхождениеСуммы = Сумма - СуммаСлагаемых;
Приращение = ?(РасхождениеСуммы > 0, Шаг, -Шаг);
ВсегоПриращений = Мин(РасхождениеСуммы / Приращение, ВременнаяТаблица.Количество());
ВременнаяТаблица.Колонки.Добавить(ИмяКолонки + "Расхождение");
ВременнаяТаблица.Колонки.Добавить(ИмяКолонки + "Изменение");
Для каждого СтрокаТЗ Из ВременнаяТаблица Цикл
СтрокаТЗ[ИмяКолонки + "Расхождение"] = ?(СтрокаТЗ[ИмяКолонки + "Окр"] < СтрокаТЗ[ИмяКолонки], СтрокаТЗ[ИмяКолонки] - СтрокаТЗ[ИмяКолонки + "Окр"], СтрокаТЗ[ИмяКолонки + "Окр"] - СтрокаТЗ[ИмяКолонки]);
СтрокаТЗ[ИмяКолонки + "Изменение"] = ?(СтрокаТЗ[ИмяКолонки + "Окр"] < СтрокаТЗ[ИмяКолонки], - Шаг, Шаг);
//+андрей 20/07/11
// Непосредственно округление данных
СтруктураПоиска = Новый Структура(ИмяКлюча);
ЗаполнитьЗначенияСвойств(СтруктураПоиска, СтрокаТЗ);
СтрокаДанных = Данные.НайтиСтроки(СтруктураПоиска)[0];
СтрокаДанных[ИмяКолонки] = СтрокаТЗ[ИмяКолонки + "Окр"];
//-андрей 20/07/11
КонецЦикла;
ВременнаяТаблица.Сортировать(ИмяКолонки + "Изменение" + ?(Приращение > 0,""," Убыв") + ", " + ИмяКолонки + "Расхождение Убыв");
СтруктураПоиска = Новый Структура(ИмяКлюча);
Для Сч = 1 По ВсегоПриращений Цикл
Если ВременнаяТаблица[Сч-1][ИмяКолонки + "Изменение"] <> Приращение Тогда
ЗаполнитьЗначенияСвойств(СтруктураПоиска, ВременнаяТаблица[Сч-1]);
Данные.НайтиСтроки(СтруктураПоиска)[0][ИмяКолонки] = ВременнаяТаблица[Сч-1][ИмяКолонки + "Окр"] + Приращение;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
|
|