|
Раскрасить строки табличной части (ОФ). |
☑ |
0
AneJIbcuH
17.11.15
✎
08:50
|
Добрый день!
Есть необходимость раскрашивать строки ТЧ в зависимости входит или нет номенклатура строки в периодический регистр сведений.
Суть заморочки, исключить запрос в цикле :)
Также сложность в том, чтобы при различных манипуляциях (открытии формы существующего документа, добавлении нового элемента в ТЧ, добавление нового элемента в ТЧ с помощью подбора и других видах заполнения) сразу строки раскрашивались .
Мог бы не заморачиваясь написать так:
Процедура ТоварыПриПолученииДанных(Элемент, ОформленияСтрок)
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| пк_МинимальныйТорговыйЗапасСрезПоследних.Номенклатура,
| пк_МинимальныйТорговыйЗапасСрезПоследних.ХарактеристикаНоменклатуры
|ИЗ
| РегистрСведений.пк_МинимальныйТорговыйЗапас.СрезПоследних(
| &ТекущаяДата,
| &ТекущаяДата МЕЖДУ НачалоПериода И КонецПериода
| И Номенклатура = &Номенклатура
| И ХарактеристикаНоменклатуры = &ХарактеристикаНоменклатуры) КАК пк_МинимальныйТорговыйЗапасСрезПоследних";
Запрос.УстановитьПараметр("Номенклатура", Элемент.ТекущаяСтрока.Номенклатура);
Запрос.УстановитьПараметр("ТекущаяДата", ТекущаяДата());
Запрос.УстановитьПараметр("ХарактеристикаНоменклатуры", Элемент.ТекущаяСтрока.ХарактеристикаНоменклатуры);
Результат = Запрос.Выполнить();
Если НЕ Результат.Пустой() Тогда
Элемент.ЦветФона = WebЦвета.Серый;
КонецЕсли;
КонецПроцедуры
Хочется оптимальнее..
|
|
1
RomanYS
17.11.15
✎
08:52
|
кэшируй регистр в соответствие, всего один запрос
|
|
2
AneJIbcuH
17.11.15
✎
08:57
|
(1) Читал недавно где-то про соответствие и его преимущества, возможно ваше решение отличное! Не подскажите пример кода :)
|
|
3
Горогуля
17.11.15
✎
09:00
|
Функция СтрокаВВидСравнения(стр)
соо=Новый Соответствие;
соо.Вставить("меньше", "<");
соо.Вставить("меньше или равно", "<=");
соо.Вставить("равно", "=");
соо.Вставить("больше или равно", ">=");
соо.Вставить("больше", ">");
соо.Вставить("в списке", "В");
соо.Вставить("в группе", "В ИЕРАРХИИ");
Возврат соо[стр];
КонецФункции
|
|
4
AneJIbcuH
17.11.15
✎
09:02
|
(3) Как создать соответствие мне известно. Как его использовать в моём примере?
|
|
5
Горогуля
17.11.15
✎
09:04
|
если входит[ТекОформление.ДанныеСтроки.Номенклатура]
|
|
6
aleks_default
17.11.15
✎
09:09
|
Если я правильно помню, в событии ПриПолученииДанных из оформления строк можно получить не одну текущую номенклатуру а список всех выводимых на экран (давно в ОФ не работаю, не помню синтаксис). Вот и делай запрос не по одной позиции, а по списку.
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший