Условное оформление в 1С
ฝัง
- เผยแพร่เมื่อ 27 ก.ย. 2024
- 🔴Из ролика вы узнаете как в 1С настроить условное оформление в списке заказов клиентов по цветам статусов.
💥 Записаться на курс "Программист 1С: с нуля до профи": ironskills.by/...
Поддержать канал:
donate.stream/...
✅Подписывайтесь на наш канал чтобы первыми получать новые видео.
#1с #ironskills
---
С уважением, команда IRONSKILLS
Иван, просто зашёл сказать огромное спасибо Вам за всё, что Вы делаете.
Спасибо большое)
Очень хорошо объясняешь. Особенно когда сразу показыаешь как это происходит в конструкторе и в коде (очень наглядно) 👍
Мне это всегда давалось не без труда, т.к. я постоянно путаюсь во всех этих элементах компоновки данных. А тут всё понятно и без лишних слов!!!!
Иван, премного благодарен!!!
Долгих лет Вашему Каналу👍
Очень грамотная речь, позитивная подача и полезная информация. Спасибо!
Ваня, топи!
Неделю назад решал подобную задачу. Цвет сохранял не через хранилище а через три реквизита с номерами состовляющих цвета. Справочник статусов был свой с обозначением цвета. Думал как с условным оформлением быть, но так и не придумал. В голову не пришло проглотить програмно запилить количество усл оформлений по количеству статусов. Хотя подобное для отборов раньше делал. Короче решил через ПриПолученииДанныхНаСервере через оформлениеячейки всё получилось. Вот про хранилище значений подробно бы у вас посмотреть. Видео годное. Спасибо
Как всегда отличное видео. Спасибо.
Респект, как всегда отличная подача материала !
МассивКомментариевВПоддержкуВидео.Добавить("Топ");
По поводу ДЗ думаю примерно так (наугад, без синтакс помошника):
В событие "При сохранении" справочника "Статусы" написать ОповеститьОбИзменении("Документы.ЗаказКлиента")
А если в справочник изменения вносит другой пользователь? Как оповестить всех, кто есть в базе?
@@klmitryоповеститьобизменении(). Параметром или ссылку или тип измененного объекта. Это работает на всю базу:)
@@TRIALEX3 работает в рамках одного сеанса. Других пользователей не оповещает.
@@klmitry тогда подпиской на события может? И подписываться в модуле клиента.
.спасибо большое. Очень полезный ролик и изложение как всегда очень доходчиво.
очень круто объясняет и показывает!!
Спасибо, как всегда быстро и точно.
Буквально вчера подумал что надо обновить свои знания по условному оформлению, а сегодня - Ваше видео. Спасибо!🙂
ваши уроки огонь)😍
лайк не глядя
Иван как всегда шикарно!!!
Го чё-нить посложнее.. Например - "Написание и отладка шаблонов RLS". Хочется адекватный видос по этой теме глянуть :)
Самый крутой!
Пример и содержание отличное. Но подобный подход может создавать конфликты с пользовательским оформлением. В типовых условное оформление на формах программно очищается и перезаполняется, поэтому иногда при ручном добавлении оформления в конфигураторе не применяется.
Очень интересно и познавательно) а вот допустим есть реквизит (один!) Фотография у обьекта справочника. Но нужно чтобы вот у этого конкретного элемента было 2 фотки. Как через кнопочку пользователю добавить 2й точно такой же реквизит....
лайк, но я подсмотрел )) как всегда - круто !!!
Спасибо за видео. Полезно и как всегда на высочайшем уровне!
Иван, сделай пожалуйста видео о том, как надо правильно обновлять нетиповую конфигурацию
Принял, сделаем)
Спасибо, очень интересно.
Расскажите пожалуйста об объекте конфигурации Критерии отбора.
Очень жду видео про обновление не типовой базы и добавление своего или типового документа в типовой универсальный обмен.
Для табличной части документа такое возможно реализовать?
Да, для этого нужно работать с условным оформлением формы.
Кто бьі еще посказал почему условное оформление не всегда работает? Например связать видимость поля или кнопки в зависимости от галочки не получается через условное оформление. Надо код писать.
эх, на самом интересном месте
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
ОбновитьИнтерфейс(); // Вставить содержимое обработчика.
КонецПроцедуры
Хорошая подача, но не показал, что будет, если цвет для статуса не задан, и таким образом нельзя выбрать черный цвет.
Спасибо, за полезный комментарий, действительно, есть такой момент)
Граждане!
Так как же правильно изменять условное оформление в уже открытых формах?
Единственное что у меня получилось - это просто закрыть и открыть форму повторно, но мне кажется это не самый правильный вариант.
Для тестов я не стал заморачиваться с отборами по статусам. Значение цвета храню в константе. И меняю значение ЦветТекста во всём справочнике "Номенклатура". Это код из формы редактирования цвета в константе:
&НаКлиенте
Процедура ПередЗаписью(Отказ, ПараметрыЗаписи)
ПередЗаписьюНаСервере(Цвет);
ФормаСпискаНоменклатора = ПолучитьФорму("Справочник.Номенклатура.ФормаСписка");
Если ФормаСпискаНоменклатора.Открыта() Тогда
ФормаСпискаНоменклатора.Закрыть();
ОткрытьФорму("Справочник.Номенклатура.ФормаСписка");
КонецЕсли;
КонецПроцедуры
Объясните, почему у вас такая аватарка, смотрел гайды и мысль, о значении авы, не дает мне покоя
Напишите ка цвет в форме заказов обновить
УсловноеОформление = Список.УсловноеОформление; - Так работает
Через Список.КомпоновщикНастроек.Настройки.УсловноеОформление не работает (форма списка справочника)
Как при помощи УО получить мин и макс значения?
15:54 Не получилось сделать.
Если бы можно программно установить стандартные настройки, проблем бы не было. Не понятно как это реализовать.
Как вы это сделали ? Спасибо.
Если при открытии формы после доработок оформление не работает, попробуйте установить стандартные настройки для списка) В рабочей базе этого можно добиться очисткой пользовательских настроек списка для всех пользователей.
@@ironskills-1c
Спасибо, попробую как только будет время ...
но это же можно типовым способом сделать, через настройки списка - условное оформление
Да, но эти настройки будут индивидуальны для каждого пользователя, в видео мы разбирали пример, когда у всех пользователей оформление списка по цветам статусов должно быть одинаковым) Плюс при добавлении нового статуса пользователю не нужно изменять условное оформление списка, т.к. оно программно устанавливается на основании всех существующих статусов в справочнике)
А если не выводить поле статус на форму списка, то тоже отработает?
Если у реквизита этого поля напротив будет стоять галочка "использовать всегда", то отработает
Ну, я на это и намекаю)))) Для новичков может стать трагедией если галочки нет и поля нет))))) Но, все равно автору респект!!!
Ну как то уж слишком тараторит.
Нормально, быстро и без нудной воды )))
Это все конечно красиво и круто, но на больших базах это будет вызывать нагрузку на списки….))
Да, но красота требует жертв :)
💥По идее если мы добавляем Элементы в оформление они сразу залетают в оформление. И первая строчка не нужна. (Список.КомпоновщикНастроек.....) Т.е. Можно сразу добавлять в оформление. Обращаясь к Условному Оформлению. Вот так.
ЭлементУО = УсловноеОформление.Элементы.Добавить();
ОтборУО = ЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Хотя согласен с первой строчкой красивее.
@pillowanalyst, Думаю разница в том, что в вашем примере вы добавите элемент в оформление формы, а не списка. Работать будет, но фокус с пустыми полями не прокатит, не раскрасит всю строку, хитрость - добавить в поля оформления саму таблицу.
@@Konstantin_Sher Я привел пример из рабочей базы. Где раскраска СПИСКА - Вида документа У документа.
УстановитьУсловноеОформление("ВидыДокументов", "Список.ВидДокумента", "ВидДокумента");
&НаСервере
Процедура УстановитьУсловноеОформление(ВидыДокументов, ПолеКомпоновки, ПолеВыбора)
Спр = Справочники[ВидыДокументов].Выбрать();
Пока Спр.Следующий() Цикл
ЭлементУО = УсловноеОформление.Элементы.Добавить();
ОтборУО = ЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборУО.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ПолеКомпоновки);
ОтборУО.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборУО.ПравоеЗначение = Спр.Ссылка ;
ОформляемоеПоле = ЭлементУО.Поля.Элементы.Добавить();
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(ПолеВыбора);
спЦвет = Спр.Цвет.Получить();
ЭлементУО.Оформление.УстановитьЗначениеПараметра("ЦветТекста", спЦвет);
КонецЦикла;
КонецПроцедуры
@@Konstantin_SherТак я и писал про раскраску всего списка.
ПриОткрытии
УстановитьУсловноеОформление("ВидыНачислений", "Список.ВидНачисления", "ВидНачисления");
***********
&НаСервере
Процедура УстановитьУсловноеОформление(ВидыДокументов, ПолеКомпоновки, ПолеВыбора)
ВнешняяКомпонента = ГенерацияШтрихкода.ПодключитьКомпонентуГенерацииИзображенияШтрихкода();
Спр = Справочники[ВидыДокументов].Выбрать();
Пока Спр.Следующий() Цикл
ЭлементУО = УсловноеОформление.Элементы.Добавить();
ОтборУО = ЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборУО.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ПолеКомпоновки);
//ОтборУО.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.ВидДокумента");
ОтборУО.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборУО.ПравоеЗначение = Спр.Ссылка ;
ОформляемоеПоле = ЭлементУО.Поля.Элементы.Добавить();
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных(ПолеВыбора);
//ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("ВидДокумента");
спЦвет = Спр.Цвет.Получить();
ЭлементУО.Оформление.УстановитьЗначениеПараметра("ЦветТекста", спЦвет);
КонецЦикла;
ЭлементУО = УсловноеОформление.Элементы.Добавить();
ОтборУО = ЭлементУО.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборУО.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Список.Сумма");
ОтборУО.ВидСравнения = ВидСравненияКомпоновкиДанных.Меньше;
ОтборУО.ПравоеЗначение = 0 ;
ОформляемоеПоле = ЭлементУО.Поля.Элементы.Добавить();
ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("Сумма");
спЦвет = Новый Цвет(255, 255, 153);
ЭлементУО.Оформление.УстановитьЗначениеПараметра("ЦветФона", спЦвет);
//ЭлементУО.Оформление.УстановитьЗначениеПараметра("ВыделятьОтрицательные", Истина);
КонецПроцедуры
Приятно слушать вас и полезно! Спасибо)
Напишите ка цвет в форме заказов обновить
Обновление цвета после записи статуса заказа через Оповестить и ОбработкаОповещения в списке заказов или я не туда дамаю?
Да, именно)
Спасибо за ваши видео! С нетерпением жду новых, прекрасно объясняте
Подписался
Спасибо, и добро пожаловать! :)
Спасибо!) А сделайте видео про Правила обмена?))
Как всегда в тему видео❤ спасибо
сразу лайк
👍👍👍
Как всегда, круто!
Хотелось бы видеть на канале более взрослые видео. В тех же типовых условное оформление разработано на порядок сложнее. И вот как на основе более сложного уже разработанного доработать под свою задачу - это уже было бы более комплексное видео и о теме занятия и о, хотя бы вскользь, доработке типовых.
Это 18+, кино для взрослых с БСП? 😂😂😂