"Собственно вот проблема:<br>Заполняем эту форму, сотрудники встают нормально, все как надо. Вписываем две уплаченные суммы: страховая и накопительная части, далее нажимаем "Заполнить суммы взносов" - ни чего не заполняется. Идет какой-то пересчет, но все остается нолями. Бухгалтерия ведется первичкой, все начисления стоят как надо. У бухгалтеров глаза круглые - народу много, заполнять вручную нереально. Полазил в интернете, ни чего толком не нашел.<br><br>Полез в Конфигуратор, запустил отладчик и стал смотреть что же происходит. Особо в механизм работы отчета не вникал, но заметил, что в процедуре ЗаполнитьСуммыВзносов() в последней ее части есть код с двумя циклами и примечанием:<br><br> // распределим уплатченные суммы по сотрудникам <br> <br> ТаблицаВзносов.ВыбратьСтроки();<br>//Цикл №1<br> Пока ТаблицаВзносов.ПолучитьСтроку()=1 Цикл<br> <br> ИсчисленоСтраховая = Макс(ТаблицаВзносов.ИсчисленоСтраховая,0);<br> ИсчисленоНакопительная = Макс(ТаблицаВзносов.ИсчисленоНакопительная,0);<br> ТаблицаВзносов.ИсчисленоСтраховая = ИсчисленоСтраховая;<br> ТаблицаВзносов.ИсчисленоНакопительная = ИсчисленоНакопительная; <br> Если ИтогоИсчисленоСтраховая<>0 Тогда<br> ТаблицаВзносов.УплаченоСтраховая = Окр(ИсчисленоСтраховая * РаспределитьУплаченоСтраховая / ИтогоИсчисленоСтраховая,2); <br> КонецЕсли; <br> Если ИтогоИсчисленоНакопительная<>0 Тогда<br> ТаблицаВзносов.УплаченоНакопительная = Окр(ИсчисленоНакопительная * РаспределитьУплаченоНакопительная / ИтогоИсчисленоНакопительная,2); <br> КонецЕсли;<br> <br> КонецЦикла; <br> <br> Пачки.ВыбратьСтроки();<br>//Цикл №2<br> Пока Пачки.ПолучитьСтроку()=1 Цикл<br> <br> ТипПачки = Пачки.Форма;<br> Если СОКРЛП(ТипПачки) = "АДВ-6-2" Тогда<br> Продолжить;<br> КонецЕсли; <br> <br> КатегорияЗЛ = Пачки.КатегорияЗЛ;<br> <br> ТабСоставПачки = Пачки.СоставПачки;<br> ТабСоставПачки.ВыбратьСтроки();<br> Пока ТабСоставПачки.ПолучитьСтроку()=1 Цикл <br> <br> Сотрудник = ТабСоставПачки.Сотрудник;<br> НомСтрокиТВ =""""; <br> ТаблицаВзносов.ВыбратьСтроки();<br> Если ТаблицаВзносов.НайтиЗначение(Сотрудник,НомСтрокиТВ,"Сотрудник")=0 Тогда<br> //Если ТаблицаВзносов.НайтиЗначение(ПолучитьКлючСотрудника(Сотрудник,КатегорияЗЛ),НомСтрокиТВ,"Ключ")=0 Тогда<br> ТабСоставПачки.ИсчисленоСтраховая = 0;<br> ТабСоставПачки.ИсчисленоНакопительная = 0;<br> ТабСоставПачки.УплаченоСтраховая = 0;<br> ТабСоставПачки.УплаченоНакопительная = 0;<br> Иначе<br> ТабСоставПачки.ИсчисленоСтраховая = ТаблицаВзносов.ПолучитьЗначение(НомСтрокиТВ,"ИсчисленоСтраховая");<br> ТабСоставПачки.ИсчисленоНакопительная = ТаблицаВзносов.ПолучитьЗначение(НомСтрокиТВ,"ИсчисленоНакопительная");<br> ТабСоставПачки.УплаченоСтраховая = ТаблицаВзносов.ПолучитьЗначение(НомСтрокиТВ,"УплаченоСтраховая");<br> ТабСоставПачки.УплаченоНакопительная = ТаблицаВзносов.ПолучитьЗначение(НомСтрокиТВ,"УплаченоНакопительная");<br> КонецЕсли; <br> <br> КонецЦикла; <br> <br> КонецЦикла; <br><br>Вот тут при отладке в мониторе видно, что в первом цикле у меня все встает как надо, есть все четыре значения - начислено страховая, накопительная и уплачено страховая, накопительная. Во втором цикле есть условие, которое в исходном состоянии выглядит так: <br><br>Если ТаблицаВзносов.НайтиЗначение(ПолучитьКлючСотрудника(Сотрудник,КатегорияЗЛ),НомСтрокиТВ,"Ключ")=0 Тогда<br><br>Вот тут у меня ни чего не находится, и по условия я перехожу в код, который всем четырем значениям присваивает ноли.<br>Посмотрел значения "Ключ" для ТаблицаВзносов.Ключ и ПолучитьКлючСотрудника(Сотрудник,КатегорияЗЛ), т.е. то что сравнивается - у меня они разные! (так надо или это косяк?!)<br>Например:<br><br>"{"B","0","0","208","0","0"," 108 "}{"E","0","0","55981","0","0"," 55978 "} "<br>"{"B","0","0","208","0","0"," 108 "}{"E","0","0","55981","0","0"," 55980 "} "<br><br>Вобщем я поправил условие, ведь если я все правильно понял, то в нем всего лишь пытаются найти взносы по конкретному сотруднику и присвоить их полям в пачке. <br>Получилось вместо:<br><br>Если ТаблицаВзносов.НайтиЗначение(ПолучитьКлючСотрудника(Сотрудник,КатегорияЗЛ),НомСтрокиТВ,"Ключ")=0 Тогда<br><br>вот такой вот код:<br><br>Если ТаблицаВзносов.НайтиЗначение(Сотрудник,НомСтрокиТВ,"Сотрудник")=0 Тогда<br><br>После этого изменения все работает. Бухгалтерия все проверила, вроде все сходится. Но меня мучают сомнения. Почему так? Правильно ли сделал? Что за "Ключ"?!"