Декомпиляция условного оформления

0. 337 23.12.19 09:16 Сейчас в теме
Обработка автоматически генерирует полный код создания условного оформления формы любой сложности. Достаточно настроить для формы в конфигураторе условное оформление, а затем выбрать данную форму в обработке. В результате будет сгенерирован программный код создания условного оформления.

Перейти к публикации

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. batsy66 61 23.12.19 15:00 Сейчас в теме
https://infostart.ru/public/304736/ Похожая работа, но не всегда для всего полностью выводит

ЗЫ. Поспешил с выводами. Совершенно другой функционал
2. XilDen 337 23.12.19 15:15 Сейчас в теме
(1)Знаком с данной обработкой) именно она меня и вдохновила в своё время на написание данного функционала, поскольку в ней отсутствует декомпиляция условного оформления
3. batsy66 61 23.12.19 15:21 Сейчас в теме
(2) Очень удобно закинуть в расширение и через расширение в нужные формы добавлять
4. MVK80 30.07.20 23:27 Сейчас в теме
(0), отличная обработка! Странно, что так мало скачиваний.

Пару наблюдений:
Чтобы обработка работала после добавления в метаданные (в основную конфигурацию или в расширение) надо:
1. Как минимум надо закомментировать пару строк в модуле объекта:
1.1 В процедуре ЗаполнитьДеревоФорм закомментировать строку ЭтотОбъект.ИмяПодключеннойОбработки = ЭтотОбъект.ИспользуемоеИмяФайла;
1.2 В процедуре ПоместитьПустыеДанныеВХранилище закомментировать строку ЭтотОбъект.ИмяПодключеннойОбработки = ЭтотОбъект.ИспользуемоеИмяФайла;
2. При доработке типовых форм современных конфигураций в процедуре модуля формы УстановитьУсловноеОФормление() надо временно (на время разработки своего условного оформления) комментировать строку УсловноеОформление.Элементы.Очистить();
3. Прописать в основной конфигурации либо в расширении в модуле МодификацияКонфигурацииПереопределяемый в процедуре ПриСозданииНаСервере следующий код:
Если Параметры.Свойство("ДекомпиляцияУсловногоОформления") Тогда
Обработки.<ИмяОбработки>.Создать().ОпределитьКодУсловногоОформления(Форма);
КонецЕсли;

Ошибка:
ВидСравненияКомпоновкиДанных.ВСписке принимает не только список значений, но и массив.
В типовых я видел добавляют через массив программно, а потом обработка спотыкается об этот массив.
Решается это добавлением следующего кода в процедуру модуля объекта ОбработатьЭлементОтбора после проверки на тип значения СписокЗначений проверяем еще и на массив:
....
ИначеЕсли ТипЗнч(ЭлементОтбора.ПравоеЗначение) = Тип("Массив") Тогда
МассивЗначений = ЭлементОтбора.ПравоеЗначение;
Текст = Текст + "Массив = Новый Массив;" + Символы.ПС;
Для НомСписка = 0 По МассивЗначений.Количество()-1 Цикл
ПолученноеЗначение = ПолучитьЗначение(МассивЗначений[НомСписка]);
Текст = Текст +"Массив.Добавить(" + ПолученноеЗначение + ");" + Символы.ПС;
КонецЦикла;
Текст = Текст + "ЭлементОтбора.ПравоеЗначение = Массив;" + Символы.ПС;
....
5. XilDen 337 21.10.20 06:28 Сейчас в теме
(4) Спасибо за высокую оценку!
Касательно наблюдений полностью согласен, для добавления в конфигурацию нужно внести соответствующие доработки, в моём же релизе сделана ставка на запуск через внешнюю обработку, для большей автономности.
Отдельное спасибо за выявление и исправление ошибки, внёс это исправление в версии 1.0.2)
6. Danil.Potapov 501 26.10.20 13:23 Сейчас в теме
для полного счастья не хватает "представление".
7. the1 1105 04.01.21 21:07 Сейчас в теме
Достойная обработка! Если можно, добавь в дерево метаданных список уже открытых форм. Так можно отлавливать формы внешних обработок без необходимости включения их в конфу.
Оставьте свое сообщение
Вакансии
Программист, аналитик, эксперт 1С
Санкт-Петербург
По совместительству

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

Начальник отдела архитектуры
Москва
зарплата от 300 000 руб.
Полный день

Эксперт по технологическим вопросам
Москва
зарплата от 250 000 руб.
Полный день

Ведущий разработчик 1С
Ростов-на-Дону
зарплата от 200 000 руб.
Полный день