Информационный поток
Задания вакансии материалы разработки сообщения форума
Форум

Обсуждение к заданию: Помощь с СКД за вознаграждение

    • #1
    • 09.10.2015 14:17
    0
    Добрый день, коллеги!!! Есть простой отчет в СКД: ВЫБРАТЬ РАЗРЕШЕННЫЕ МеткиКлиентов.Метка, МеткиКлиентов.Клиент КАК Клиент, МеткиКлиентов.Комментарий, МеткиКлиентов.Автор, МеткиКлие...  Подробнее>>
    • #2
    • 09.10.2015 14:19
    0
    Добрый. Условное оформление вам в помощь.
    • #3
    • 09.10.2015 14:24
    • Отредактировано: 09.10.2015 14:34:21
    0
    Цвет в каком формате храниться ?

    К чему спрашиваю. В лоб не получится. Первое что приходит на ум. Это составить карту цветов.
    Пример:
    ЦветМетки = 1; это зеленый
    ЦветМетки = 2; это синий
    ЦветМетки = 3; это красный

    Ну а дальше дело в условном оформлении поля
    Если ЦветМетки = 1 То окрасим строку или что нужно в зеленый.
    т.е нужно будет создать набор условностей для условного оформления.
    • #4
    • 09.10.2015 15:16
    0
    Клиент
    Период Метка Активность Комментарий Метка.Цвет метки
    Александр
    02.10.2015 Приход Установлена "{""#"",9cd510c7-abfc-11d4-9434-004095e12fc7,2,
    {3,2,
    {47}
    }
    }"
    Анастасия
    01.10.2015 Входящий звонок Установлена "{""#"",9cd510c7-abfc-11d4-9434-004095e12fc7,2,
    {3,2,
    {145}
    }
    }"
    01.10.2015 посещать неудобно Установлена живет далеко "{""#"",9cd510c7-abfc-11d4-9434-004095e12fc7,2,
    {3,2,
    {101}
    }
    }"

    Как то так ))) В условном оформлении мы можем выбрать цвет фона, также как и при создании макета... но необходимо передать, а не выбрать изначально ...
    • #5
    • 09.10.2015 15:21
    0
    У нас есть условное оформление
    У нас есть возможность задавать макет для ячейки или группировки

    Но как передать туда цвет фона, в свойства ячейки ???
    • #6
    • 09.10.2015 15:30
    0
    Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;




    Настройки = КомпоновщикНастроек.Настройки;


    СписокУдаляемыхЭлементов = Новый СписокЗначений;
    Для каждого ЭлементУсловногоОформления Из Настройки.УсловноеОформление.Элементы Цикл
    Если ЭлементУсловногоОформления.ИдентификаторПользовательскойНастройки = "Предустановленный" Тогда
    СписокУдаляемыхЭлементов.Добавить(ЭлементУсловногоОформления);
    КонецЕсли;
    КонецЦикла;
    Для каждого Элемент Из СписокУдаляемыхЭлементов Цикл
    Настройки.УсловноеОформление.Элементы.Удалить(Элемент.Значение);
    КонецЦикла;


    ВыборкаСостояния = Справочники.СостоянияЗаказовПокупателей.Выбрать();
    Пока ВыборкаСостояния.Следующий() Цикл

    ЦветФона = ВыборкаСостояния.Цвет.Получить();
    Если ТипЗнч(ЦветФона) <> Тип("Цвет") Тогда
    Продолжить;
    КонецЕсли;

    ЭлементУсловногоОформления = Настройки.УсловноеОформление.Элементы.Добавить();

    ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));

    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементОтбора.ПравоеЗначение = ВыборкаСостояния.Ссылка;


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

    КонецЦикла;

    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки);

    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);

    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);
    КонецПроцедуры
    • #7
    • 09.10.2015 15:31
    0
    noName
    Цвет в каком формате храниться ?

    К чему спрашиваю. В лоб не получится. Первое что приходит на ум. Это составить карту цветов.
    Пример:
    ЦветМетки = 1; это зеленый
    ЦветМетки = 2; это синий
    ЦветМетки = 3; это красный

    Ну а дальше дело в условном оформлении поля
    Если ЦветМетки = 1 То окрасим строку или что нужно в зеленый.
    т.е нужно будет создать набор условностей для условного оформления.


    ДА, но цветов (255, 255, 255) т.е. не вариант Цвет хранится в справочнике "Метки" и цвет задает пользователь ...
    • #8
    • 09.10.2015 15:31
    0
    Программно наложи условное оформление на все возможные цвета, которые есть в твоей базе и будет тебе счастье
    • #9
    • 09.10.2015 15:41
    0
    Ну тогда только как показали выше, событие ковырять надо.
    Но это по сути программный вариант.
    • #10
    • 09.10.2015 15:43
    0
    Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    СтандартнаяОбработка = Ложь;
    
    
    
    
    Настройки = КомпоновщикНастроек.Настройки;
    
    
    СписокУдаляемыхЭлементов = Новый СписокЗначений;
    Для каждого ЭлементУсловногоОформления Из Настройки.УсловноеОформление.Элементы Цикл
    Если ЭлементУсловногоОформления.ИдентификаторПользовательскойНастройки = "Предустановленный" Тогда
    СписокУдаляемыхЭлементов.Добавить(ЭлементУсловногоОформления);
    КонецЕсли;
    КонецЦикла;
    Для каждого Элемент Из СписокУдаляемыхЭлементов Цикл
    Настройки.УсловноеОформление.Элементы.Удалить(Элемент.Значение);
    КонецЦикла;
    
    
    ВыборкаМетки= Справочники.Метки.Выбрать();
    Пока ВыборкаМетки.Следующий() Цикл
    
    ЦветФона = ВыборкаМетки.Цвет.Получить();
    Если ТипЗнч(ЦветФона) <> Тип("Цвет") Тогда
    Продолжить;
    КонецЕсли;
    
    ЭлементУсловногоОформления = Настройки.УсловноеОформление.Элементы.Добавить();
    
    ЭлементОтбора = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Метка");
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементОтбора.ПравоеЗначение = ВыборкаМетки.Ссылка;
    
    
    ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", ЦветФона);
    ЭлементУсловногоОформления.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
    ЭлементУсловногоОформления.ИдентификаторПользовательскойНастройки = "Предустановленный";
    
    КонецЦикла;
    
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки);
    
    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки);
    
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);
    КонецПроцедуры
    • #11
    • 12.10.2015 03:15
    • Отредактировано: 12.10.2015 03:24:43
    0
    1. В схеме компоновки - закладка "Настройки".
    2. Нижние закладки - "Условное оформление".
    3. Дальше:
    https://helpf.pro/faq/view/752.htm
    Пункт "Условное оформление"

    Закладка "Макеты" обычно используется в других ситуациях.

    Или еще вариант - книжка Хрусталевой "Разработка сложных отчетов в 1С:Предприятии 8.2. Система компоновки данных"
    Раздел "Условное оформление" Стр.469
    Книжку можно купить (около 300 р.-электронная) или найти.
    • #12
    • 12.10.2015 06:40
    0
    SupportX1C
    1. В схеме компоновки - закладка "Настройки".
    2. Нижние закладки - "Условное оформление".
    3. Дальше:
    https://helpf.pro/faq/view/752.htm
    Пункт "Условное оформление"

    Закладка "Макеты" обычно используется в других ситуациях.

    Или еще вариант - книжка Хрусталевой "Разработка сложных отчетов в 1С:Предприятии 8.2. Система компоновки данных"
    Раздел "Условное оформление" Стр.469
    Книжку можно купить (около 300 р.-электронная) или найти.


    Это все не то. Автору требуется иное, чем простое описание Условного оформления.
    • #13
    • 12.10.2015 17:41
    0
    Артур Салаватович, да я уже понял по дальнейшему обсуждению и скрину с метками, что стандартное Условное оформление не подойдет.
    Задача заинтересовала - сделать это без кода в отчете.
    Как вариант (извратный вообще-то и с кодом в другом месте) сделать условное оформление в пользовательских настройках отчета и добавлять туда цвета при сохранении метки. Но тогда все равно 1С-код используется, правда, не в отчете, а в справочнике меток.
Яндекс-директ
Для участия в обсуждении Вам необходимо авторизоваться либо   зарегистрироваться