Показать сообщение отдельно
Гость
- 10.05.2018 - 22:57
Останусь при своём - программист накосячил с заполнением. Какой смысл пользователю тут чего-то мутить? Тем более, что в пользовательском режиме при изменении суммы цена пересчитается.
В типовой есть достаточно чудные конструкции, например в функции глПодготовитьТаблицуДокумента, где рассчитывается сумма к проведению, есть достаточно хрупкие конструкции, типа:

Если ТаблНоменклатуры.НомерСтроки= ТаблНоменклатуры.КоличествоСтрок() Тогда
СуммаПоРасчетам=СуммаВзаим;
Иначе
КоэффВзаим=?(СуммаДокументаВсего=0,0,СуммаВзаим/СуммаДокументаВсего);
СуммаПоРасчетам=ОКР(ТаблНоменклатуры.Сумма* КоэффВзаим,2,1);
СуммаВзаим=СуммаВзаим-СуммаПоРасчетам;
СуммаДокументаВсего=СуммаДокументаВсего- ТаблНоменклатуры.Сумма;
КонецЕсли;

То есть для каждой строки берётся не просто сумма строки в документе, а через коэффициент. При этом коэффициент каждый раз пересчитывается в зависимости от остатка суммы по документу. Весь остаток падает в последнюю строку. Любой мелкий косяк программиста (реквизит СуммаВзаиморасчетов неправильно заполнен или при переборе строк таблицы пропускаются какие-то товары, может услуги) и при проведении получатся непонятные суммы.
Я подозреваю, что и в этом случае есть какой-то такой же коряво прописанный цикл, который просто для определения суммы неправильно рассчитывает коэффициент. Но это всё гадания на коф.гуще. У ТС есть мдшник, он может сравнить его с типовым. Может сделать поиск во внешних обработках по слову "ОприходованиеТМЦ", чтобы найти ту, которая возможно создаёт эти проблемные документы.
У нас такой возможности нет и ТС мдшник не предоставил. Ну, значит, вопрос для себя закрываю.

Отредактировано pivovarovivan; 10.05.2018 в 22:58. Причина: орфо