Отладка расчетов СКД для пользователя
Делал для пользователя отчет, где нужно было рассчитать для заказа стоимость материальных затрат на его производство — по сути, стоимость всех материалов.
Я вынес функцию расчета в общий модуль расширения, чтобы его удобно было править. И получал материальную стоимость затрат вызовом одной функции:
Но мне показалось, что к просто цифре у пользователя не будет доверия, поэтому я решил сделать пользователю возможность расшифровать эту цифру.
Поэтому я создал булев параметр Отладка:
Если пользователь ставит галочку, то в процедуре расчета выводится в окне сообщений трассировка расчета:
Реализуется это кодом вида:
Функция МатериальнаяСебестоимостьЗаказаПокупателя(ЗаказПокупателя, ВидЗакупочнойЦены, Отладка = ложь) Экспорт Запрос = Новый Запрос(); Запрос.Текст = ... Запрос.УстановитьПараметр("ТекущийДокумент", ЗаказПокупателя); Запрос.УстановитьПараметр("ДатаЗаказа", ЗаказПокупателя.Дата); Запрос.УстановитьПараметр("ВидЦен", Справочники.ВидыЦен.Учетная); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Стоимость = 0; Если Отладка Тогда Сообщить("=== Материальные затраты по заказу: " + ЗаказПокупателя + " ==="); КонецЕсли; Пока Выборка.Следующий() Цикл ... Если Отладка Тогда Сообщить(" " + Выборка.Номенклатура + " " + Выборка.Характеристика + " " + Выборка.Количество + " * " + ТекЦена + " = " + ТекСтоимость); КонецЕсли; Стоимость = Стоимость + ТекСтоимость; КонецЦикла; Возврат Стоимость; КонецФункции
Очень удобно, отчет перестает быть черным ящиком и показывает нужные данные.
В принципе, правильнее было бы сделать расчет материальных затрат в отдельную таблицу и передавать ее уже в отчет, тогда можно было бы для каждого заказа выводить расшифровку в виде отчета. Но такое мне не заказывали, поэтому я сделал минимальный инструмент контроля.
Рекомендую всегда делать расшифровку для пользователя. Он будет меньше обращаться к программисту и больше доверять отчету, ведь всегда сможет его проверить.
Свежие комментарии