Условное оформление формы документа в расширении 1С УТ
Всем доброго вечера.
Казалось бы безобидная ситуация.
Есть документ, есть форма документа. - добавил эту форму в расширение, там сделал некоторые косметические изменения - все работает.
Затем решил сделать условное оформление.
Сначала сделал через интерфейс (спозиционировался на форме и перешел во вкладку условное оформление - далее все интуитивно заполняется), НО!!!
Никакое условное оформление не применилось. Ну и затем интереснее - начал копать интернет на предмет -ПРОГРАММНОГО условного оформления.
Много вариантов пробовал - ни один не заработал. Там конечно (лично для меня) путаница, но старался разобраться и вроде бы все правильно делал.
В итоге никак не могу добиться работоспособности условного оформления.
Все это отрабатывал на 1с 8.3.13 (УТ 11.4)
Если есть ссылки на нормальный обучающий материал по данной тематике - буду рад.
Казалось бы безобидная ситуация.
Есть документ, есть форма документа. - добавил эту форму в расширение, там сделал некоторые косметические изменения - все работает.
Затем решил сделать условное оформление.
Сначала сделал через интерфейс (спозиционировался на форме и перешел во вкладку условное оформление - далее все интуитивно заполняется), НО!!!
Никакое условное оформление не применилось. Ну и затем интереснее - начал копать интернет на предмет -ПРОГРАММНОГО условного оформления.
Много вариантов пробовал - ни один не заработал. Там конечно (лично для меня) путаница, но старался разобраться и вроде бы все правильно делал.
В итоге никак не могу добиться работоспособности условного оформления.
Все это отрабатывал на 1с 8.3.13 (УТ 11.4)
Если есть ссылки на нормальный обучающий материал по данной тематике - буду рад.
По теме из базы знаний
- Разные хм... неожиданности при работе с УТ 11 и платформой
- Расширенная настройка УТ 10.3 [Расширение]
- Вывод веса и объема номенклатуры в заказе клиента (УТ 11)
- Пример перевода УТ 10.3 на УФ (тонкий клиент) через расширение
- Интеграции с маркетплейсами из одного окна: Озон, ВБ, Яндекс, Сбер, Али, ЛаМода для 1С:УНФ, УТ, КА, ERP
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(1) Уточните, пожалуйста, что именно у Вас не заработало. Условное оформление вовсе не применилось?
У конфигурации УТ11 как правило во всех объектах конфигурации условное оформление реализуется программно. Т.е. настраивается не в свойствах конфигурации, а есть отдельная процедура "УстановитьУсловноеОформление" в модуле формы элемента/документа, которая вызывается в обработчике "ПриСозданииНаСервере", и в которой описан алгоритм настройки условного оформления. Кстати, первой инструкцией этой процедуры является очистка свойства УсловноеОформление формы. Т.о., если Вы настраивали оформление в свойствах формы, то оно могло не примениться просто потому, что оно очищается при создании формы.
Для реализации собственного оформления расширьте процедуру "УстановитьУсловноеОформление" с директивой &После, и впишите свой алгоритм настройки условного оформления аналогично тому, как оно реализовано в типовой процедуре формы.
У конфигурации УТ11 как правило во всех объектах конфигурации условное оформление реализуется программно. Т.е. настраивается не в свойствах конфигурации, а есть отдельная процедура "УстановитьУсловноеОформление" в модуле формы элемента/документа, которая вызывается в обработчике "ПриСозданииНаСервере", и в которой описан алгоритм настройки условного оформления. Кстати, первой инструкцией этой процедуры является очистка свойства УсловноеОформление формы. Т.о., если Вы настраивали оформление в свойствах формы, то оно могло не примениться просто потому, что оно очищается при создании формы.
Для реализации собственного оформления расширьте процедуру "УстановитьУсловноеОформление" с директивой &После, и впишите свой алгоритм настройки условного оформления аналогично тому, как оно реализовано в типовой процедуре формы.
(2)не получилось именно применить условное оформление к форме документа в расширении. Если создать новый документ в конфигурации , затем его форму ( не добавляют в расширение) потом настроить в пользовательском интерфейсе УО - все работает. Все тоже самое но уже в форме расширения - не работает. Я бы конечно хотел бы поподробнее разобраться в процессе программного создания УО. Для понимания , чтобы бездумно не копипастить.
По УО в расширении. Есть документ и форма списка. В форме списка в основной конфигурации настроено УО для динамического списка. Все работало отлично для всех пользователей в режиме предприятия. Пока я не завел еще один статус в перечислении. Форма списка добавлена в расширение, перечисления с новым статусом аналогично. Седьмой пункт УО на скриншоте добавлен по аналогии с верхними шестью, которые отлично работали. Так вот этот седьмой пункт УО не работает в принципе. Добавлял подобное и в форму списка в основной конфигурации, и в форме списка в расширении - эффекта 0. Пришлось добавлять в коде через УсловноеОформление.Элементы.Добавить(). Так и должно быть или я что-то не знаю о расширениях?
Прикрепленные файлы:
(5) На снимке экрана я вижу, что настраивается условное оформление динамического списка. Когда Вы добавили седьмой элемент, запустили режим Предприятия и не обнаружили там раскрашенного нужным цветом статуса, Вы проверяли настройки условного оформления списка в пользовательском режиме?
(6) Проверил, там были только первые шесть, как и раньше. Седьмой не появился. Ранее я пробовал настраивать УО из режима Предприятия, но подобные настройки ограничиваются каждым конкретным пользователем, а у меня их больше 30, поэтому использовал настройку ДС из конфигуратора.
(7) Тогда логично предположить, что настройки из Конфигуратора на самом деле были применены, но их "затерли" пользовательские настройки. Глядя в режиме Предприятия на 6 элементов условного оформления попробуйте установить стандартные настройки списка. Появится ли седьмой элемент?
(8) Вы были правы, после применения стандартных настроек седьмая строка из настроек ДС в конфигураторе, применилась и в режиме Предприятия. То есть подобное надо проделать у всех пользователей при первом входе в режим предприятия? Автоматизировать сие обновление есть возможность? Или пусть ручками делают? Все же хотелось оградить дорогих юзеров от лишних действий руками...
(9) Первое, что приходит на ум, это воспользоваться обработкой "Настройки пользователей", что есть в типовых конфигурациях в разделе "Администрирования", панель "Настройки пользователей и прав". С помощью нее можно очистить настройки формы и/или списка у нужных пользователей.
Спасибо автору, разобрался, и выставляю готовое решение:
&НаСервере
Процедура УстановитьУсловноеОформление()
... // чего то там уже есть, Добавляем текст в конце процедуры:
// Красим строчку в карсный цвет если стоит галочка "Нельзя проводить"
// У вас в программе ее нет, Это галочка добавленная мною. Но как пример кода пойдет.
Элемент = УсловноеОформление.Элементы.Добавить();
Элемент.Использование = Истина;
// перечисляем поля, котрые красим
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Использование = Истина;
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыДатаОтгрузки.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Использование = Истина;
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыКоличествоУпаковок.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Использование = Истина;
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыНоменклатураАртикул.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Использование = Истина;
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыНоменклатураЕдиницаИзмерения.Имя);
...
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Использование = Истина;
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыВидЦены.Имя);
ПолеЭлемента = Элемент.Поля.Элементы.Добавить();
ПолеЭлемента.Использование = Истина;
ПолеЭлемента.Поле = Новый ПолеКомпоновкиДанных(Элементы.ТоварыСуммаАвтоматическойСкидки.Имя);
// добавляем условие
ОтборЭлемента = Элемент.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлемента.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.Товары.ЗапретПроведения"); // тут уточняем что с чем сравниваем.
ОтборЭлемента.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлемента.ПравоеЗначение =Истина;
ОтборЭлемента.Использование = Истина;
// если надо еще одно условие, копируем эти 5 сточек и подставляем нужные условия
//Указываем цвет
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветТекста", Новый Цвет(175, 0, 0)); // темно-красный
Элемент.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(255, 235, 222)); // светло-розовый
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот