Не правильно считается сумма в запросе (7.7)

Новая тема
Показывать по 10 20 40 сообщений
Столкнулся с такой ситуацией: какой-то не хороший редиска $%^&@# создал документ в котором пара реквизитов табличной части имеют тип значения - строка, это реквизиты СуммаСтарая и Разница (как видно тип должен быть все же число). Второй раз наступаю именно на эти грабли, в запросе сумма по данным реквизитам округляется до целого числа и по некоторым группа товаров, соответственно, иногда получается расхождение в районе 10 руб., что не есть хорошо.
Собственно вопрос: как это можно победить, получать правильное, не округленное, значение суммы таких реквизитов в запросе?
В 77 проблемы с "хитрыми" запросами решаются путем создания фиктивных объектов -  документов с нужной разрядностью реквизитов. Этакий аналог временной таблицы.
В транзакции создается новый фиктивный документ. заполняется данными. затем по нему делается запрос. транзакция откатывается.

Не совсем понятен контекст Вашей задачи,но возможно и в Вашем случае это будет разумно.
Я бы делал так:
1. Переименовал бы СуммаСтарая и Разница в, например, нСуммаСтарая и нРазница
2. Сделал бы еще пару реквизитов СуммаСтарая и Разница все таки числового типа.
3. Написал бы обработку, которой перегнал бы символьные значения в числа и записал бы их в нормальные реквизиты
4. нСуммаСтарая и нРазница удалил бы совсем
5. Просмотрел бы алгоритмы, где обрабатывались символьные СуммаСтарая и Разница и переделал бы их
Может это долго, но зато все будет правильно
> Не совсем понятен контекст Вашей задачи
Пример: в документе реквизит Разница, тип строка, значение 100,56 в одной позиции и 55,02 в другой позиции
В запросе: |РазницаСумма = Сумма(Разница) должно быть 155,57, а получается 156
> Я бы делал так:
Наверное так и придется делать. В запросе (отчете) не могу придумать как выкрутиться...
"Сама проблема понятна.
Речь идет о контексте решаемой задачи, то есть например зачем Вы сделали строку. Здесь уже предлагали изменить тип значения на число. Можно ли так сделать или нет из контекста задачи непонятно, хотя решение довольно здравое. Как и наше предложение тоже. ;-)



ПрофитСервис, Москва http://www.profitservice.ru
Адаптация
и сопровождение программ 1С:Предприятие
"
Попробовал просто сменить тип реквизитов, в "прогнозе" была частичная потеря данных, но пронесло, отчет по остаткам показал отсутствие расхождений в подопытной и рабочей базе. Но как-то все равно страшновато рабочую базу мучить :)
> то есть например зачем Вы сделали строку
Не я, к работе с 1С я пришел из delphi так, что с выбором типов реквизитов у меня строго...
Пробную смену типа реквизита провел, но в рабочей базе пока повременю... попробую выкрутиться :)
Да все у вас нормально.
> Да все у вас нормально.
Спасибо. Отдам еще подопытную базу на проверку зам. директора по торговле и буду менять тип.
Читают тему
(гостей: 1)

Быстрый переход