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