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
| деццкий сад... | |
| Интернет-форум Краснодарского края и Краснодара |