Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Подкрашивание цветом ячейки (Обычные формы)

Подкрашивание цветом ячейки (Обычные формы)
Я
   Stasja
 
21.11.18 - 08:27
Добрый день!
Есть обработка в которую вывожу список всей номенклатуры, далее при нажатии кнопки Дилер записывается дилерская цена в документ Установка цен номенклатуры.
После записи в таблице обработки нужно выделить цветом те ячейки, Дилерская цена для которых не обновилась (проверяю по дате).
Подозреваю, что нужно всё это проделать ПриВыводеСтроки или ПриПолученииДанных, но что из этого выбрать и как сделать сообразить не могу. Люди добрые, подскажите пожалуйста!

Процедура ОсновныеДействияФормыДилер(Кнопка)
.......
    Для каждого Стр Из ТоварыИЦены Цикл
        
           ВыборкаДетальныеЗаписи = ПроверкаСовпаденияДатыДокументаУстановкиЦенСТекущей(Стр.Товар, Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("00009")).Выгрузить()//РезультатЗапроса.Выгрузить();     //Запрос.Выполнить().Выгрузить()[0].Дата

        
        Если НачалоДня(ВыборкаДетальныеЗаписи[0].Дата) <> НачалоДня(ТекущаяДата()) Тогда  //Формат(ВыборкаДетальныеЗаписи.Дата, "ДФ=dd.MM.yyyy") <> Формат(ТекущаяДата(), "ДФ=dd.MM.yyyy") Тогда

            Оформление = ЭлементыФормы.ТоварыИЦены.ОформлениеСтроки(Стр); 
            Оформление.ЦветФона = WebЦвета.Коралловый//Оформление.Ячейки.Дилер.ЦветФона = WebЦвета.Коралловый;

        КонецЕсли;
    
    КонецЦикла; 
КонецПроцедуры

Функция ПроверкаСовпаденияДатыДокументаУстановкиЦенСТекущей(Номенклатура, ТипЦены)    
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ ПЕРВЫЕ 1
        |    УстановкаЦенНоменклатурыТовары.Номенклатура,
        |    УстановкаЦенНоменклатурыТовары.Ссылка.Дата КАК Дата,
        |    УстановкаЦенНоменклатурыТовары.ТипЦен,
        |    УстановкаЦенНоменклатурыТовары.Цена
        |ИЗ
        |    Документ.УстановкаЦенНоменклатуры.Товары КАК УстановкаЦенНоменклатурыТовары
        |ГДЕ
        |    УстановкаЦенНоменклатурыТовары.Номенклатура = &Номенклатура
        |    И УстановкаЦенНоменклатурыТовары.Ссылка.Проведен
        |    И УстановкаЦенНоменклатурыТовары.ТипЦен = &ТипЦен
        |
        |УПОРЯДОЧИТЬ ПО
        |    Дата УБЫВ";

    Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
    Запрос.УстановитьПараметр("ТипЦен", ТипЦены);

    РезультатЗапроса = Запрос.Выполнить();
    
    Возврат РезультатЗапроса; 
    
КонецФункции
 
 
   Cyberhawk
 
1 - 21.11.18 - 08:29
Почему не обновилась цена?
   Stasja
 
2 - 21.11.18 - 08:33
(1) Цена может не обновиться если она равна цене в предыдущем документе, данная номенклатура просто не попадет в документ УстановкаЦенНоменклатуры. Исходя из этого нужно подкрасить ту цену для наглядности
   Cyberhawk
 
3 - 21.11.18 - 08:37
Зачем подкрашивать?
   Cyberhawk
 
4 - 21.11.18 - 08:37
Сделай отчетпо товарам, дата установки цены на которые меньше последнего документа установки цен
   Stasja
 
5 - 21.11.18 - 08:41
(4) Мне не нужен отчет. Клиент просит наглядно отобразить в списке. Иначе много лишней работы выполнять нужно будет + не удобно
   Cyberhawk
 
6 - 21.11.18 - 08:44
С таким подходом далеко не уедешь
   Михаил Козлов
 
7 - 21.11.18 - 10:55
ПриПолученииДанных.
ДЛЯ каждого оф ИЗ ОформленияСтрок Цикл
    тд = оф.ДанныеСтроки;
    Если НЕ ЦенаИзменилась(тд.Номенклатура) Тогда
        оф.Ячейки.Цена.ЦветФона = цветНеИзмененнойЦены;
    КонецЕсли;
КонецЦикла;
   catena
 
8 - 21.11.18 - 11:00
(5)Так, как хочет клиент при текущей реализации будет оттормаживать и мелькать.
   Stasja
 
9 - 21.11.18 - 12:06
(7) А как быть с кодом в (0)?  Т.к. ПриПолученииДанных отрабатывает раньше моего кода. Мне бы как-нибудь обратиться из  процедуры ОсновныеДействияФормыДилер
   hhhh
 
10 - 21.11.18 - 12:32
(9) ПриПолученииДанных отрабатывает при каждой перерисовке таблицы. Значит она отрабатывает много много раз и раньше и позже вашей процедуры  ОсновныеДействияФормыДилер
 
 Рекламное место пустует

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует