К списку форумов К списку тем
Регистрация    Правила    Главная форума    Поиск   
Имя: Пароль:
Рекомендовать в новости

Формирование формы АДВ-6-2 суммы уплаты не идут на копейки

Гость
0 - 26.04.2012 - 16:52
При печати пачки АДВ-6-2 суммы перечисленного разнятся на копейки с тем что было зарегистрировано документами "РасчетыПоСтраховымВзносам"
Что не так?



1 - 26.04.2012 - 17:18
Несовершенный алгоритм распределения уплат по сотрудникам в типовых конфигурациях. Он основан на общих коэффициентах.
Подробнее здесь: http://infostart.ru/catalog/88231/
"Вторая особенность механизма ЗИК. Как было показано ранее, ЗИК распределяет оплату на застрахованных по общим коэффициентам: (ОплаченоВсегоПред / НачисленоВсегоЗаПред) и (ОплаченоВсегоЗаТек / НачисленоВсего). Т.к. результат расчетов приходится округлять до двух знаков после запятой (до копеек), то это неизбежно приводит к тому, что образуются ошибки округления при расчетах. Их два рода:
1) Сумма "Оплачено всего по организации" не совпадет с суммой распределенных оплат по сотрудникам. Это расхождение может составить всего несколько копеек, а может достигнуть и рублей.
Пример. Пусть имеется 1000 работников, каждому начислено взносов по 100 рублю, итого начислено по организации - 100 000 руб. Пусть организация оплатила на всю организацию 99 995 руб. Как штатный механизм распределит эту сумму по сотрудникам? Очевидно, каждому достанется 100 * (99 995 / 100 000) = 99.995 руб., округляем до копеек и получаем на каждого сотрудника 100.00 руб. Итого суммарно по сотрудникам 100 000 руб., но ведь к уплате было дано 99 995 руб.!
"
Гость
2 - 26.04.2012 - 22:13
да видел я как там делается, но это же неверно. зачем так сделали в 1С. какими высшими материями руководсововались при разработке алгоритма?
3 - 27.04.2012 - 04:55
2-Gorr >Расскажи, как надо было. Хочу послушать высшие материи из твоих уст.
Гость
4 - 27.04.2012 - 09:53
На первый взгляд распределение уплат по текущему периоду можно сделать хотябы за счет корректировки копеек на последнем сотруднике в списке (Процедура ЗаполнитьСуммыВзносов):
//<-ТабИсчисленоВзносов.НоваяКолонка("Ключ", "Строка", 200, 0);// Сотрудник + КатегорияЗЛ
ОсталосьРаспределитьСтраховая = 0;
ОсталосьРаспределитьНакопительная = 0;
ТабУплатыВзносов.ВыбратьСтроки();
Пока ТабУплатыВзносов.ПолучитьСтроку() = 1 цикл
ОсталосьРаспределитьСтраховая = ОсталосьРаспределитьСтраховая + ТабУплатыВзносов.УплаченоСтраховая;
ОсталосьРаспределитьНакопительная = ОсталосьРаспределитьНакопительная + ТабУплатыВзносов.УплаченоНакопительная;
КонецЦикла;
//->ТабИсчисленоВзносов.ВыбратьСтроки();

ТабИсчисленоВзносов.ВыбратьСтроки();
Пока ТабИсчисленоВзносов.ПолучитьСтроку()=1 Цикл

КоэффициентСтраховая = 0;
КоэффициентНакопительная = 0;

ДатаПериода = ТабИсчисленоВзносов.ОтчетныйПериод;
НомСтроки = "";
Если ТабУплатыВзносов.НайтиЗначение(ДатаПериода,НомСтро ки,"ОтчетныйПериод")=1 Тогда
КоэффициентСтраховая = ТабУплатыВзносов.ПолучитьЗначение(НомСтроки,"Коэфф ициентСтраховая");
КоэффициентНакопительная = ТабУплатыВзносов.ПолучитьЗначение(НомСтроки,"Коэфф ициентНакопительная");
КонецЕсли;

ТабИсчисленоВзносов.Ключ = ПолучитьКлючСотрудника(ТабИсчисленоВзносов.Сотрудн ик,ТабИсчисленоВзносов.КатегорияЗЛ);
ТабИсчисленоВзносов.УплаченоСтраховая = ОКР(ТабИсчисленоВзносов.ИсчисленоСтраховая * КоэффициентСтраховая,2);
ТабИсчисленоВзносов.УплаченоНакопительная = ОКР(ТабИсчисленоВзносов.ИсчисленоНакопительная * КоэффициентНакопительная,2);

Если ДатаПериода<>ТекущийОтченыйПериод Тогда
ТабИсчисленоВзносов.ИсчисленоСтраховая = 0;
ТабИсчисленоВзносов.ИсчисленоНакопительная = 0;
КонецЕсли;

//+
если (ТабИсчисленоВзносов.НомерСтроки = ТабИсчисленоВзносов.КоличествоСтрок()) тогда
ТабИсчисленоВзносов.УплаченоСтраховая = ОсталосьРаспределитьСтраховая;
ТабИсчисленоВзносов.УплаченоНакопительная = ОсталосьРаспределитьНакопительная;
конецесли;
ОсталосьРаспределитьСтраховая = ОсталосьРаспределитьСтраховая - ТабИсчисленоВзносов.УплаченоСтраховая;
ОсталосьРаспределитьНакопительная = ОсталосьРаспределитьНакопительная - ТабИсчисленоВзносов.УплаченоНакопительная;
//->

КонецЦикла;

По поводу взаиморасчетов можно было бы и новый журнал расчетов в конфигурацию добавить. Но решений может быть несколько. Промежуточную информацию хранить все таки нужно.
Гость
5 - 27.04.2012 - 09:56
+В любом случае это дело 1С. Разве не 1С взяла на себя ответственность за разработку и реализацию алгоритмов.
6 - 27.04.2012 - 09:56
(4) "за счет корректировки копеек на последнем сотруднике в списке" - а если общей уплаты по последнему не хватает на корректировку?

Поэтому на второй взгляд лучше отсортировать сотрудников по размеру уплат и подгонять по копеечке начиная с самых обеспеченных, тогда общий коэффициент меньше исказится.
Гость
7 - 27.04.2012 - 09:58
(6) это уже детали реализации
Гость
8 - 27.04.2012 - 10:16
+7
То, что 1С деньги нехилые и с простых пользователей, а сейчас еще и с партнеров дерет и при этом продолжает работать как всегда, когда-нибудь уже заставит людей задуматься...
9 - 27.04.2012 - 18:36
деццкий сад...


К списку вопросов






Copyright ©, Все права защищены