1. work.sable 20 22.05.20 07:31 Сейчас в теме

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

Существует ли способ несколько строк условного оформления объединить в одну?

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

Можно использовать вычисляемое поле, которое будет возвращать значение типа Цвет. Потом это поле использовать в УО. Правда схему СКД придётся ручками подправить в xml.
Прикрепленные файлы:
work.sable; acanta; +2 Ответить
14. acanta 74 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 20 22.05.20 12:59 Сейчас в теме
(15)интересный подход, но (имхо) это не правильно. Надо делать это программно работая с объектами 1с и самой СКД, а не менять файл настроек через xml. Тем более что все это там делается удобнее чем подмена xml
16. work.sable 20 22.05.20 12:57 Сейчас в теме
(13)
Тоже вариант, согласен)
Но это более сложное решение чем в постах 2 и 9: нам прийдется на каждую строку УО создавать вычисляемое поле (лучше наверное подойдёт пользовательское, но суть та же)
5. acanta 74 22.05.20 09:46 Сейчас в теме
Программно можно при выводе секций назначать цвет (в моем случае цвет необходимо было суммировать, ну как "необходимо", это скорее моя прихоть). В СКД брать цвет из какого-то ресурса не получается:(, но никто же не мешает использовать обычный макет.
И еще я не помню, есть ли в СКД возможность назначать фоновый рисунок-паттерн.
work.sable; +1 Ответить
6. work.sable 20 22.05.20 11:04 Сейчас в теме
(5) это понятно, но это не то что требуется.
Спасибо за вариант
18. toypaul 67 22.05.20 18:14 Сейчас в теме
Управление срабатыванием УО как написали тут - через значение параметра.

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

Вакансии

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

Ведущий программист 1С
Санкт-Петербург
зарплата от 130 000 руб.
Полный день

Специалист 1 категории (Программист 1С ФЗД)
Фрязино
зарплата от 110 000 руб.
Полный день

Специалист 1 категории (Программист 1С)
Фрязино
зарплата от 110 000 руб.
Полный день

Автор новостных обзоров на тему 1С и бухучета
Санкт-Петербург
По совместительству