Условное оформление в СКД

1. work.sable 26 22.05.20 07:31 Сейчас в теме
Существует ли способ несколько строк условного оформления объединить в одну?

Упрощенная задача, в скд есть две строки условного оформления:
1. Выделить красным номенклатуру с остатком < 5
2. Выделить синим номенклатуру с остатком > 10

Свойства элементов настроек (одинаково для обоих строк УО):
1. Включать в пользовательские настройки = ДА
2. Представление = "Раскрашивать номенклатуру в зависимости от остатка"
3. Режим редактирования = Быстрый доступ

Результат:
на форме отчета (типовая общая форма "форма отчета") добавляется 2 галочки "Раскрашивать номенклатуру в зависимости от остатка"

Вопросы:
можно ли их объединить в одну не меняя типовой формы, как?
Может быть есть способ "сгруппировать" строки условного оформления? (по типу как мы создаем группировки в отборах)
Может быть есть способ указать "динамическое значение" цвета, которое будет зависить от остатка? Например как в пользовательском поле "выбор". Если количество < 5, то красный. Если количество > 10, то синий.

Какие еще есть варианты?
Создавать свою форму отчета - плохо, т.к. реальная (а не упрощенная задача) будет использоваться в нескольких отчетах. Делать каждому свою форму - ну такое себе решение.
Мб что то можно придумать расширением?
Merkalov; +1 Ответить
По теме из базы знаний
Найденные решения
13. SlavaKron 22.05.20 11:52 Сейчас в теме
(1)
Может быть есть способ указать "динамическое значение" цвета,

Можно использовать вычисляемое поле, которое будет возвращать значение типа Цвет. Потом это поле использовать в УО. Правда схему СКД придётся ручками подправить в xml.
Прикрепленные файлы:
Merkalov; work.sable; acanta; +3 Ответить
2. dhurricane 22.05.20 08:09 Сейчас в теме
(1) Могу предложить не самый изящный способ, но быть может он Вам подойдет.

Добавьте в СКД новый параметр, например "РаскрашиватьНоменклатуру". Тип: булево. Использование: всегда. В отборах условного оформления добавьте еще одно условие на равенство нового параметра значению Истина. Добавьте параметр в пользовательские настройки.

Теперь, когда пользователь будет устанавливать флажок "Расскрашивать номенклатуру", отборы УО сработают, и отчет окрасится.
work.sable; SeiOkami; +2 Ответить
9. work.sable 26 22.05.20 11:12 Сейчас в теме
(2) это просто и гениально одновременно!)

Проверять не буду, уверен что это сработает)

Сам же опытным путем нашёл ещё один способ (со своими плюсами и минусами):
При создании условного оформления программно можно всем строкам УО задать один и тот же идентификатор пользовательских настроек (вроде так, я уже не у компа).
При создании напрямую в суд, нигде такого поля у элемента УО не нашел.

Допустим мы так сделали, теперь у нас в шапкк формы на панели быстрых настрек два пункта "раскрашивать номенклатуру", но при изменении первого меняется и второй.

Итого:
1. при программной настройке создаём хоть 100 строк УО, с одним и тем же идинтификатором.
2. Первому ставим режим отображения "быстрый выбор", остальным "недоступный".
3. На форме создаётся одна галочка "раскрашивать номенклатуру", связанная с первой строкой УО, но при ее изменении - меняются все (даже скрытые) галочки.
Остальные ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. dhurricane 22.05.20 08:09 Сейчас в теме
(1) Могу предложить не самый изящный способ, но быть может он Вам подойдет.

Добавьте в СКД новый параметр, например "РаскрашиватьНоменклатуру". Тип: булево. Использование: всегда. В отборах условного оформления добавьте еще одно условие на равенство нового параметра значению Истина. Добавьте параметр в пользовательские настройки.

Теперь, когда пользователь будет устанавливать флажок "Расскрашивать номенклатуру", отборы УО сработают, и отчет окрасится.
work.sable; SeiOkami; +2 Ответить
3. SeiOkami 3423 22.05.20 09:18 Сейчас в теме
В (2) хорошее решение.
Единственное, я не понял пункт в (1)

Может быть есть способ указать "динамическое значение" цвета, которое будет зависить от остатка? Например как в пользовательском поле "выбор". Если количество < 5, то красный. Если количество > 10, то синий.


Это значит, что вы хотите вынести на выбор пользователю сам цвет? Или значение, с которым сравнивать Количество?
4. dhurricane 22.05.20 09:29 Сейчас в теме
(3) Как я понял, не столько вынести на выбор пользователю цвет, сколько сделать его вычисляемым.
7. work.sable 26 22.05.20 11:05 Сейчас в теме
(4)нет, процесс вычисления придуман и организован. Просто думал вдруг есть неизвестная мне возможность задать условное оформление одной строкой, но с множественными условиями и разными оформлениями для условий
8. dhurricane 22.05.20 11:11 Сейчас в теме
(7)
процесс вычисления придуман и организован
Процесс вычисления цвета?
10. work.sable 26 22.05.20 11:14 Сейчас в теме
(8) хранится в справочнике "цвета" у которого есть реквизиты "красный, зелёный, синий" и значения от 0 до 255.
Справочник косвенно связан с номенклатурой, мы можем понять какую номенклатуру каким цветом отображать.

Это уже запущено и работает)
11. work.sable 26 22.05.20 11:22 Сейчас в теме
(10)Если бы задача была более глубокая, в которой обсчитывается не только номенклатура и инлфрмация которую мы можем легко подтянуть имея ссылку на номенклатуру, а та которую я тут привел (в зависимости от остатка), то справочник был бы намного сложнее. Но пока этого не требуется.

Интересно вышло, что моя "упрощённая задача, чисто для примера" по факту оказалась сложнее реальной задачи)
12. acanta 22.05.20 11:43 Сейчас в теме
(10) мне было удобнее цвет представлять одним числом, но это уже дело вкуса (точнее привычки из журналов Бурда). И, да, это упрощает вычисления.
У мира моды та же проблема, что все дизайны привязаны к каталогу одного или двух производителей материалов. И если новый производитель захочет выйти на рынок, то использование уже запатентованных дизайнов запрещено.
9. work.sable 26 22.05.20 11:12 Сейчас в теме
(2) это просто и гениально одновременно!)

Проверять не буду, уверен что это сработает)

Сам же опытным путем нашёл ещё один способ (со своими плюсами и минусами):
При создании условного оформления программно можно всем строкам УО задать один и тот же идентификатор пользовательских настроек (вроде так, я уже не у компа).
При создании напрямую в суд, нигде такого поля у элемента УО не нашел.

Допустим мы так сделали, теперь у нас в шапкк формы на панели быстрых настрек два пункта "раскрашивать номенклатуру", но при изменении первого меняется и второй.

Итого:
1. при программной настройке создаём хоть 100 строк УО, с одним и тем же идинтификатором.
2. Первому ставим режим отображения "быстрый выбор", остальным "недоступный".
3. На форме создаётся одна галочка "раскрашивать номенклатуру", связанная с первой строкой УО, но при ее изменении - меняются все (даже скрытые) галочки.
13. SlavaKron 22.05.20 11:52 Сейчас в теме
(1)
Может быть есть способ указать "динамическое значение" цвета,

Можно использовать вычисляемое поле, которое будет возвращать значение типа Цвет. Потом это поле использовать в УО. Правда схему СКД придётся ручками подправить в xml.
Прикрепленные файлы:
Merkalov; work.sable; acanta; +3 Ответить
14. acanta 22.05.20 11:57 Сейчас в теме
(13) а можно ли схему СКД генерировать программно и загружать в зависимости от каких то галок?
Можно же записать свой файл в виде xml?
15. SlavaKron 22.05.20 12:10 Сейчас в теме
(14)
можно ли схему СКД генерировать программно и загружать в зависимости от каких то галок?

Типовая форма отчета даёт вроде бы какие-то подписки и возможность переопределения всего и вся.
Можно же записать свой файл в виде xml?

Я просто заменил в секции условного оформления источник значения цвета
было
<dcsset:appearance>
	<dcscor:item xsi:type="dcsset:SettingsParameterValue">
		<dcscor:parameter>ЦветФона</dcscor:parameter>
		<dcscor:value xsi:type="v8ui:Color">#FF0000</dcscor:value>
	</dcscor:item>
</dcsset:appearance>

стало
<dcsset:appearance>
	<dcscor:item xsi:type="dcsset:SettingsParameterValue">
		<dcscor:parameter>ЦветФона</dcscor:parameter>
		<dcscor:value xsi:type="dcscor:Field">Цвет</dcscor:value>
	</dcscor:item>
</dcsset:appearance>

Возможно это правильнее сделать при программной генерации УО.
work.sable; acanta; +2 Ответить
17. work.sable 26 22.05.20 12:59 Сейчас в теме
(15)интересный подход, но (имхо) это не правильно. Надо делать это программно работая с объектами 1с и самой СКД, а не менять файл настроек через xml. Тем более что все это там делается удобнее чем подмена xml
16. work.sable 26 22.05.20 12:57 Сейчас в теме
(13)
Тоже вариант, согласен)
Но это более сложное решение чем в постах 2 и 9: нам прийдется на каждую строку УО создавать вычисляемое поле (лучше наверное подойдёт пользовательское, но суть та же)
19. user1035175 2 16.12.20 11:05 Сейчас в теме
(13)
Можно использовать вычисляемое поле, которое будет возвращать значение типа Цвет.

А как получить значение в этом поле? Только через Общий модуль?
20. SlavaKron 16.12.20 11:09 Сейчас в теме
(19)
Только через Общий модуль?
Необязательно. Можно через внешний набор данных – таблицу значений: https://forum.infostart.ru/forum9/topic248690/
user1035175; +1 Ответить
5. acanta 22.05.20 09:46 Сейчас в теме
Программно можно при выводе секций назначать цвет (в моем случае цвет необходимо было суммировать, ну как "необходимо", это скорее моя прихоть). В СКД брать цвет из какого-то ресурса не получается:(, но никто же не мешает использовать обычный макет.
И еще я не помню, есть ли в СКД возможность назначать фоновый рисунок-паттерн.
work.sable; +1 Ответить
6. work.sable 26 22.05.20 11:04 Сейчас в теме
(5) это понятно, но это не то что требуется.
Спасибо за вариант
18. toypaul 63 22.05.20 18:14 Сейчас в теме
Управление срабатыванием УО как написали тут - через значение параметра.

Динамические цвета вполне себе просто реализовать через программное добавление УО. Специальные функции для этого по-моему даже в типовых конфигурациях есть. Точно также как добавляются отборы.
SlavaKron; +1 Ответить
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)