Генерация кода управляемой формы (декомпиляция элементов)

20.12.15

Разработка - Инструментарий разработчика

Изменение форм типовых конфигураций лучше выполнять программно.
Эта обработка упрощает добавление элементов на форму, генерируя код создания элементов, реквизитов и команд формы.

Скачать файлы

Наименование Файл Версия Размер
ДекомпиляцияУправляемыхФорм_v2.epf
.epf 16,45Kb
1844
.epf 16,45Kb 1844 Скачать бесплатно
Декомпиляция управляемых форм 3.0 (с 8.2)
.epf 20,26Kb
1806
.epf 20,26Kb 1806 Скачать бесплатно
Декомпиляция управляемых форм 3.0 (с 8.3.5)
.epf 21,52Kb
2667
.epf 21,52Kb 2667 Скачать бесплатно
Декомпиляция управляемых форм 3.0.1 (с 8.3.5) (3.0 + разбор командной панели + клиент-сервер)
.epf 22,14Kb
4420
.epf 22,14Kb 4420 Скачать бесплатно

Достаточно в копии базы конструктором расположить новые элементы так, как удобно пользователю и обработкой сгенерировать нужный код. Сгенерированный код помещаем в процедуру "ПриСозданииНаСервере" модуля формы рабочей базы и получаем все необходимые элементы, реквизиты и команды без модификации форм.  

Идея и часть кода взята из этой обработки //infostart.ru/public/99363/

Аналогичной корректно работающей для управляемых форм не встречала.

Порядок работы

1. Добавляем все нужные элементы конструктором.

2. Запускаем обработку. Выбираем двойным кликом нужную нам форму в левой части обработки. При этом правая часть заполняется элементами выбранной формы.

3. Отмечаем нужные нам элементы (те, что мы добавили).

4. Нажимаем "Сформировать код".

5. Сформированный код переносим в событие "ПриСозданииНаСервереФормы" и удаляем из формы сами элементы. Теперь они формируются программно.

В типовых с применением БСП код для генерации реквизитов достаточно разместить в общем модуле "МодификацияКонфигурацииПереопределяемый". В этом случае типовая форма остается неизмененной, но нужные реквизиты на ней отображаются. Подробнее это описано в статье "Типовой механизм упрощенного изменения конфигурации в ERP 2.0 и УТ 11"

Для общего понимания, как вообще работает управляемая форма, рекоммендую почитать статью "Под капотом управляемых форм"

Технические моменты.

Для версии 2:

1. Обработка работает только в толстом клиенте.

2. Генерирует только код создания элементов. Не определяет значение свойства "ПутьКДанным" и обработчики событий.

3. Не требует изменения конфигурации для генерации кода. Просто запускается как внешняя.

Для версии 3.0:

1. Работает в любом режиме (толстый и тонкий клиент)

2. Генерирует код создания элементов, реквизитов и команд.

3. Для генерации кода обязательно включение в процедуру "ПриСозданииНаСервере" модуля декомпилируемой формы следующего кода. 

	Если Форма.Параметры.Свойство("ДекомпиляцияЭлементов") Тогда
		ВнешниеОбработки.Создать(Форма.Параметры.ДекомпиляцияЭлементов.ИмяПодключеннойОбработки,Ложь).ОпределитьВнутренниеСвойстваЭлементов(Форма);
	КонецЕсли; 


Для конфигураций на основе БСП достаточно прописать вызов один раз для всех форм в общем модуле "МодификацияКонфигурацииПереопределяемый". Для нетиповых конфигураций необходимо модифицировать модуль формы.  

По обеим версиям:

4. С формами внешних обработок и отчетов не работает. Только с встроенными в конфигурацию.

5. Свойства элементов заполняются не все, хотя и достаточно большой перечень. Если нужно что-то еще, пишите в комментариях, чего по-вашему не хватает. 

По развитию обработки: 

Возможно будет отдельная версия по 8.3.6 (если это останется актуальным с учетом расширений конфигураций), так как в ней расширен набор свойств элементов. Может еще что-то изменится и по взаимодействию с формой, так как немного изменили идеологию отображения на клиенте.

Постараюсь добавить поддержку максимально возможного числа свойств. В идеале хотелось бы получать полностью работоспособный код без необходимости ручных изменений. В принципе, он и сейчас рабочий, но какие-то свойства могут быть пропущены.

Про пожелания использовать обработку без предварительного изменения кода формы помню. Сделаю, если кто-то предложит вариант, как получить, например, для элементов свойство "ПутьКДанным" не меняя саму форму. Пока при невозможности модификации кода формы можно использовать версию 2.0 обработки и дописывать при необходимости недостающие свойства вручную.

Если есть еще какие-либо пожелания или замечания по работе, то пишите в комментариях.

UPD 02.10.2014

Добавила обновленную версию 3.0.

Отличия выше по тексту. 

UPD 18.10.2014

Обработка поддерживает свойства элементов для релиза 8.3.5. В более ранних релизах каких-то свойств может не быть. Например, в 8.3.4 нет системных перечислений и свойств ПоложениеСтрокиПоискаПоложениеСостоянияПросмотраПоложениеУправленияПоиском.  Подробнее в комментариях (28)-(32). Добавила отдельную версию для платформы 8.2 (проверялась на 8.2.16, более стрые релизы, думаю, не актуальны). Её же можно использовать для релизов 8.3 до 8.3.5.  Это полный аналог стандартной обработки 3.0 в которой закомментирована работа с новыми свойствами.

UPD 18.01.2015

Версия 3.0.1 beta. Добавлено формирование кнопок командной панели формы. Расширен перечень обрабатываемых свойств.  Исправлена работа в клиент-серверном варианте.

Рекоммендую из других моих обработок:

1. Комплексная проверка ведения учета в УТ10, УТ11, КА, УПП, ERP - простая обработка для проверки корректности ведения учета по всем разделам учета.
2. Дерево объектной модели схемы запроса (декомпиляция текста запроса) - программная модификация запроса через схему запроса.
3. Универсальная выгрузка/загрузка данных в формате JSON для отличающихся конфигураций (Такси+ОФ) - перенос данных между любыми конфигурациями на любых платформах (8.2-8.3) с любым интерфейсом.

декомпиляция форм генерация кода управляемая форма

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 10400 руб.

02.09.2020    122133    670    389    

714

SALE! 25%

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 15300 руб.

06.10.2023    7288    21    6    

39

SALE! 20%

Infostart УДиФ: Управление данными и формами

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

10000 8000 руб.

10.11.2023    3530    11    1    

34

SALE! 30%

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 2520 руб.

14.01.2013    177741    1073    0    

849

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99345    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18109    6    8    

39

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28108    3    10    

15

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23601    15    15    

32
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
97. as7815 31.03.16 15:41 Сейчас в теме
Спасибо автору, вышел на новый уровень работы.
98. zekrus 151 11.05.16 08:50 Сейчас в теме
Доброе утро!
Идеи де компиляции давно на рынке (и под 7.7 и под 8.Х):
http://infostart.ru/public/158687/
Все реализации останавливались на интерпретаторе языка.
В этой не достает только добавить пару штрихов.
Если цель скажем обновление релиза, то
по идее надо делать де компиляцию дельты и
ее уже предлагать отдельным куском для переноса.
Если же цели иные то, тоже нужна четкая последовательность..
(скажем вести разработку конфигурации только из внешней конфы).
С уважением
99. movis08 23.06.16 12:39 Сейчас в теме
Не знал что есть такое
100. as7815 09.08.16 11:15 Сейчас в теме
1С:Предприятие 8.3 (8.3.7.2027) Управление торговлей, редакция 11.1 (11.1.4.14) не видит командную панель табличной части любого документа.
102. buzzzard 51 17.10.16 22:49 Сейчас в теме
(100) as7815, подтверждаю. Тоже сейчас уперся в это.
101. olbir 09.09.16 15:29 Сейчас в теме
Добрый день!
Как доступные типы элемента прописать?
103. Anchoret 60 26.12.16 17:09 Сейчас в теме
Никак не соображу, можно ли добавить кнопку в командную панель табличной части формы документа
105. ekaruk 4896 26.12.16 19:13 Сейчас в теме
(103) Насколько я понимаю, можно добавить команду.
106. Anchoret 60 27.12.16 08:55 Сейчас в теме
(105)
Команду можно добавить, но как ее добавить в командную панель табличной части?
104. artem_from_minsk 26.12.16 18:51 Сейчас в теме
Интересно поюзать конечно
107. Spacer 355 24.01.17 10:02 Сейчас в теме
Обработка очень хорошая и нужная, но есть одна недоработочка.
Когда генерируется код добавления двух и более элементов формы, то указывается элемент формы перед которым вставлять.
Т.е. добавляется первый элемент, и в коде прописано что его нужно вставлять перед вторым.
А второго то еще нет! И возникает ошибка.
108. ekaruk 4896 24.01.17 12:42 Сейчас в теме
(107) Добавление элементов выполняются, начиная с последнего.
Поэтому при добавлении первого второй уже есть.
Если, конечно, в сформированном обработкой коде самостоятельно строки местами не меняете.
109. Spacer 355 24.01.17 15:25 Сейчас в теме
(108)С последнего? Это как-то все равно что писать справа налево.
Смысл то какой в этом? Просто потом приходится ручками лишние куски кода убирать.
110. buzzzard 51 24.01.17 16:45 Сейчас в теме
(109) Возможно потому, что добавление любого элемента выполняется вставкой, которая предполагает указание элемента перед которым нужно вставить, а не добавлением. Это предположение, могу ошибаться.
111. Spacer 355 24.01.17 19:59 Сейчас в теме
(110)Добавлять элементы можно как добавлением, так и вставкой. При этом указание элемента перед которым нужно вставить не является обязательным.
112. ekaruk 4896 24.01.17 20:30 Сейчас в теме
(109) Смысл в том, чтобы вставить элемент на нужное место.
Добавлять можно. Но добавление всегда добавляет элемент последним. Это удобно, если рисуем форму программно полностью с нуля. Но чаще мы не рисуем форму с нуля, а добавляем программно несколько элементов между имеющимися типовыми. В данном случае применима только вставка. А вставка требует указания места вставки.
113. Spacer 355 30.01.17 08:58 Сейчас в теме
Маленькое пожелание. Хорошо было бы еще общие формы добавить.
114. karewka 12.02.17 16:25 Сейчас в теме
115. bsbbur 02.03.17 14:59 Сейчас в теме
Замечательная вещь, очень удобно, большое спасибо!
Надо было в Заказ добавить с десяток вкладок с каким-то немыслимым количеством элементов на них. В итоге, модификация формы - одна строчка, ну и дополнительный общий модуль (в т.ч. и для прочих нужд)! Знай себе копипасти - красота!
(на платформе 8.3.9.2170, в УНФ 1.6.7.43, при анализе ЗаказаПокупателя, в конце СформироватьДеревоСЭлементамиФормы(), споткнулось об ПутьБезТочек, когда она приняла значение "ОбъектПлатежныйКалендарь[0]" - поправил для себя, исключив недопустимые символы)
117. Sanario 26 22.05.17 12:33 Сейчас в теме
Добрый день. Решил попробовать обработку. Для 3.0 поправил процедуру ПриСозданииНаСервере() в глобальном модуле, как было сказано в тексте описания, но обработка ругается:

{Документ.РаспределительнаяСетка.Форма.ФормаДокумента.Форма(445)}: Значение не является значением объектного типа (Параметры)
Если Форма.Параметры.Свойство("ДекомпиляцияЭлементов") Тогда


Подскажите, что я забыл сделать. Тапками не кидайтесь - не шибко еще опытный
118. Sanario 26 22.05.17 12:51 Сейчас в теме
Решил) Если в документе, то надо ставить "ЭтаФорма", если в глобальнике - то оставляем "Форма"
itoptimum; +1 Ответить
120. AllexSoft 06.02.19 00:13 Сейчас в теме
Интересная обработка, в копилку.. Похоже она умеет отличать измененные свойства элементов формы еще.. интересно как это сделано
121. unichkin 1559 12.03.19 09:59 Сейчас в теме
Добрый день! Только что опробовал на 8.3.13.1644. Очень помогло, большое спасибо)
Что заметил (создаю таблицу формы из дерева):
- НовыйЭлемент.ПоложениеКоманднойПанели = ПоложениеКоманднойПанелиЭлементаФормы.Нет; -автоматически не добавилось
- НовыйЭлемент.СохраняемыеДанные = Ложь; - зачем-то добавляется, этот флаг и так по-умолчанию Ложь
122. unichkin 1559 12.03.19 19:03 Сейчас в теме
Еще заметил что не выгружается условное оформление формы. Не хватает возможности подцеплять внешнюю обработку.
123. user701287_darkowntheworld 07.04.19 21:46 Сейчас в теме
В "Декомпиляция управляемых форм 3.0.1 (с 8.3.5) (3.0 + разбор командной панели + клиент-сервер)" ошибка... Модуль формы
&НаКлиенте
Процедура ДеревоФормВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
	
	Если ВыбраннаяСтрока = Неопределено Тогда
	
		Возврат;
	
	КонецЕсли; 
	
	ТекСтрока = Объект.ДеревоФорм.НайтиПоИдентификатору(ВыбраннаяСтрока);
	Если НЕ ПустаяСтрока(ТекСтрока.ПолныйПутьКФорме) Тогда
		//Имя справочника, имя документа, ....
		РодительФормы = ТекСтрока.ПолучитьРодителя();
		//Справочник, документ,....
		ТипОбъекта = РодительФормы.ПолучитьРодителя();
		
		СтруктИнфыОМетаданном = Новый Структура;
		СтруктИнфыОМетаданном.Вставить("ТипОбъекта",ТипОбъекта.Имя);
		СтруктИнфыОМетаданном.Вставить("ИмяОбъекта",РодительФормы.Имя);
		СтруктИнфыОМетаданном.Вставить("ИмяФормы",ТекСтрока.Имя);
		
		//Объект.ПолноеИмяФормы = ТекСтрока.ПолныйПутьКФорме;
		
		ДекомпиляцияЭлементов = Новый Структура("АдресВоВременномХранилище,ИмяПодключеннойОбработки,ИмяВременногоФайла",Объект.АдресВоВременномХранилище,Объект.ИмяПодключеннойОбработки,Объект.ИмяВременногоФайла);
		ПараметрыФормы = Новый Структура("ДекомпиляцияЭлементов",ДекомпиляцияЭлементов);
		
		Объект.ПолныйПутьКФорме = ТекСтрока.ПолныйПутьКФорме;
		ПолучитьФорму(ТекСтрока.ПолныйПутьКФорме,ПараметрыФормы);
		
		ЗаполнитьДанныеПоХранилищуНаСервере();
		
		//Развернуть дерево
		Для Каждого Строка Из Объект.ДеревоФорм.ПолучитьЭлементы() Цикл    
			Если Строка.Имя = СтруктИнфыОМетаданном.ТипОбъекта Тогда
				//Ищем объект
				Для Каждого СтрокаОбъект Из Строка.ПолучитьЭлементы() Цикл    
					Если СтрокаОбъект.Имя = СтруктИнфыОМетаданном.ИмяОбъекта Тогда
						//Ищем форму
						Для Каждого СтрокаФормы Из СтрокаОбъект.ПолучитьЭлементы() Цикл    
							Если СтрокаФормы.Имя = СтруктИнфыОМетаданном.ИмяФормы Тогда
								ИдентификаторСтроки = СтрокаФормы.ПолучитьИдентификатор();
// Было
//Элементы.ДревоФорм.ТекущаяСтрока = ИдентификаторСтроки;								
// Надо
Элементы.ДревоФорм.ТекущаяСтрока = Объект.ДеревоФорм.НайтиПоИдентификатору(ИдентификаторСтроки);	
							КонецЕсли; 
						КонецЦикла;
					КонецЕсли; 
				КонецЦикла;
			КонецЕсли; 
		КонецЦикла;
		
	КонецЕсли;
	
КонецПроцедуры
Показать
124. NoRazum 29 19.06.19 16:19 Сейчас в теме
Если в реквизите есть такое "Изображения[0].Адрес"
та падает с ошибкой.

Стандартная УНФ ((
Кто мог подумать что так сделают ?!?!
125. sh_progr 28.01.20 22:39 Сейчас в теме
Можно ли при программном добавлении команды в Действие = "..." указать процедуру из общего модуля? Чтобы в форме вообще не было никаких изменений
126. ekaruk 4896 28.01.20 22:43 Сейчас в теме
(125) Процедуру из общего модуля нельзя.
Однако во многих типовых есть как раз на такой случай отдельная процедура в форме "Подключаемый.....", которая из себя вызывает процедуру общего модуля. Можно попробовать подключить её и внести изменения в общий модуль.
127. sh_progr 29.01.20 21:01 Сейчас в теме
128. Hatson 528 20.05.20 11:38 Сейчас в теме
Необходимо исправить ошибку. Слетает параметр ИмяПодключеннойОбработки
Нужно закомментировать строчку:


Процедура ПоместитьПустыеДанныеВХранилище() Экспорт

	СохраненноеДеревоЭлементов = ЭтотОбъект.ДеревоЭлементов.Скопировать();
	СохраненноеДеревоЭлементов.Строки.Очистить();
	СохраненноеДеревоРеквизитов = ЭтотОбъект.ДеревоРеквизитов.Скопировать();
	СохраненноеДеревоРеквизитов.Строки.Очистить();
	СохраненнаяТаблицаКоманд = ЭтотОбъект.ТаблицаКоманд.ВыгрузитьКолонки();
	
	ЗаполнитьСоответствиеТекстовыхПредставлений();
	ЗаполнитьСоответствиеПредставленийТипов();
	
	ПараметрыДекомпиляции = Новый Структура("СоответствиеТекстовыхПредставлений,СоответствиеПредставленийТипов,ДеревоЭлементов,ДеревоРеквизитов,ТаблицаКоманд",
	СоответствиеТекстовыхПредставлений,СоответствиеПредставленийТипов,СохраненноеДеревоЭлементов,СохраненноеДеревоРеквизитов,СохраненнаяТаблицаКоманд);
	
	ЭтотОбъект.АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(ПараметрыДекомпиляции,ЭтотОбъект.АдресВоВременномХранилище);
	//ЭтотОбъект.ИмяПодключеннойОбработки = ЭтотОбъект.ИспользуемоеИмяФайла; // - ЭТА строчка лишняя!!
	ЭтотОбъект.ИмяВременногоФайла = ПолучитьИмяВременногоФайла(); 

Показать
129. itoptimum 24 26.08.20 11:51 Сейчас в теме
Не взяла кнопки командной панели,заключенной в группу, табличной части Товары документа РеализацияТоваровУслуг.ФормаДокументаТовары БП3, при добавлении строк
		НоваяСтрока = ПараметрыДекомпиляции.ДеревоЭлементов.Строки.Добавить();
			НоваяСтрока.Тип = Тип(Форма.Элементы.Товары.КоманднаяПанель.ПодчиненныеЭлементы.ТоварыДействия);
			НоваяСтрока.Имя = "ТоварыКоманднаяПанель";
СформироватьДеревоСЭлементамиФормы(НоваяСтрока,Форма.Элементы.Товары.КоманднаяПанель.ПодчиненныеЭлементы.ТоварыДействия.ПодчиненныеЭлементы);
начинает их видеть и корректно обрабатывать.

В БП3 для вызова без изменения модуля форм необходимых документов можно добавить блок в ОбщиеМодули.УправлениеСвойствами:
Процедура ПриСозданииНаСервере(Форма, ДополнительныеПараметры = Неопределено) Экспорт
	
	Если Форма.Параметры.Свойство("ДекомпиляцияЭлементов") Тогда
	    ВнешниеОбработки.Создать(Форма.Параметры.ДекомпиляцияЭлементов.ИмяПодключеннойОбработки,Ложь).ОпределитьВнутренниеСвойстваЭлементов(Форма);
	КонецЕсли; 


просуммировал тут все комментарии что были ранее, внес небольшие изменения, отправлю файл так же комментарием дальше
130. itoptimum 24 26.08.20 11:52 Сейчас в теме
131. cprit 874 14.09.20 10:42 Сейчас в теме
(0)Добрый день!
Прошу разрешения на включение вашего инструмента в свободно распространяемый набор "Универсальные инструменты 1С" https://github.com/cpr1c/tools_ui_1c.

Обработка сейчас бесплатна для скачивания. По идее лицензия должна быть подходящей, но хотелось бы уточнить.
Поддержку и дальнейшее развитие готовы взять на себя.

Буду благодарен за любой ответ
babys; AnddnA; GarickRus; itoptimum; +4 1 Ответить
132. K_A_O 538 15.09.20 09:10 Сейчас в теме
Судя по тому, что обработка бесплатна для скачивания - файл можно здесь прикрепить.
Добавлен анализ некоторых новых свойств реквизитов для последних платформ.
И платформенные картинки разбираются.
Прикрепленные файлы:
ДекомпиляцияУправляемыхФорм_kao.epf
itoptimum; +1 Ответить
135. Drivingblind 227 28.01.21 19:38 Сейчас в теме
(132) скачал вашу версию. Невозможно открыть, невозможно подключить.
Выдаёт ошибку: "Архив не является набором вариантов картинки, либо содержит некорректные варианты.".
Платформа 8.3.17.1549
133. user592773_demon1995.27 29.09.20 16:36 Сейчас в теме
(132) Немного доработал и добавил добавление кнопок на командную панель табличной части (106)
Прикрепленные файлы:
ДекомпиляцияУправляемыхФорм_kao.epf
ubnkfl; Anchoret; K_A_O; +3 Ответить
134. triviumfan 92 26.10.20 15:26 Сейчас в теме
(133) Чего ты там нагородил, что полеввода вставляется в командную панель?!
136. Spacer 355 08.07.21 21:17 Сейчас в теме
Заметил некоторые недоработочки при декомпиляции элементов типа "ГруппаФормы" подчиненных элементу "ТаблицаФормы".
Не анализируются и не прописываются в сформированном коде свойства "Группировка" и "ОтображатьВШапке".
А это весьма важно.
140. K_A_O 538 03.09.21 14:17 Сейчас в теме
(136)
Добавил некторые исправления.
Но это всего одна функция в модуле обработки: ПолучитьСвойстваЭлемента(ЭлементОбразец)

В синтакс помощнике перечисляются свойства. Их нужно добавить в структуру в функции.

Они постоянно добавляются.

Если кто-нибудь не поленится добавить - хорошо бы здесь публиковать.
138. Hatson 528 27.08.21 12:26 Сейчас в теме
В тонком клиенте не рабботает, тк в типовых конфигурациях везде используется ЭтаФорма, вместо ЭтотОбъект
Командные панели, например табличных частей, не декомпилирует. Доработал, прикладываю.
Прикрепленные файлы:
ДекомпиляцияУправляемыхФорм_v3.0.2_tune.epf
belyakooov; +1 Ответить
139. K_A_O 538 03.09.21 14:09 Сейчас в теме
Оказалось нужно создать несколько страниц, поэтому в формирование имен добавил префиксы. По умолчанию это пустая строка, поэтому мешать не должно.
Заодно подправил код, сейчас шрифт, фонт, картинка разбирается через xml сериализацию.
Прикрепленные файлы:
ДекомпиляцияУправляемыхФорм_kao.epf
kpp1c; Hatson; +2 Ответить
141. Cthulhu 1 24.11.21 17:10 Сейчас в теме
стесняюсь спросить.
а командные панели табличных полей (табличной части, например - не дефолных команд, само-собой) - никак?
142. Ch1nee 18.04.22 09:12 Сейчас в теме
ERP 2.5, 8.3.19.1264.
Неизвестный идентификатор формы
{ВнешняяОбработка.ДекомпиляцияУправляемыхФорм3.Форма.Форма.Форма(113)}: ЗаполнитьДанныеПоХранилищуНаСервере();

по причине:
Неизвестный идентификатор формы

Так же есть ошибка при попытке открытия форм, у которых в модуле объекта задана обработка заполнения. В общем не разобрался, начинаю накидывать файлик шаблонов для добавления реквизитов :(
143. K_A_O 538 18.04.22 13:55 Сейчас в теме
У меня изменения есть небольшие в обработке
Прикрепленные файлы:
ДекомпиляцияУправляемыхФорм_kao.epf
NorraSaltolinen; Ch1nee; +2 Ответить
151. AbadaTouro 10 22.09.22 08:07 Сейчас в теме
(143)
Кстати не разгребает вот такие конструкции при попытки получить данные
ИмяНабора = "БизнесПроцесс_" +
БизнесПроцесс.Метаданные().Имя
+ "_"
+ Объект.ТочкаМаршрута.Имя;
Или
ЭтоБизнесПроцесс = ОбщегоНазначения.ЭтоБизнесПроцесс(Объект.ВладелецФайла.Метаданные());
В общем если где встречается конструкция Метаданные() валится с ошибкой.
Значение не является значением объектного типа (Метаданные)
144. babys 90 09.05.22 17:39 Сейчас в теме
А что за
Форма.Параметры.Свойство("ДекомпиляцияЭлементов") 
, у меня в ЕРПУХ 31, нет такого. Кто что скажет куда смотреть?
145. K_A_O 538 09.05.22 20:01 Сейчас в теме
(144)
При создании на сервере нужно добавить код. Можно расширением.
146. babys 90 10.05.22 17:51 Сейчас в теме
(145) Простите за тупость, в УправлениеСвойствами добавил
Если Форма.Параметры.Свойство("ДекомпиляцияЭлементов") Тогда
		ДинамическоеФормирование.ДобавитьДинамическиеЭлементыРеквизиты(Форма);
	КонецЕсли;

Но у меня нет параметра ДекомпиляцияЭлементов. Всё что я смог найти в инете там есть такая проверка.
147. K_A_O 538 10.05.22 19:44 Сейчас в теме
(146)
Если открывать декомпилируемую форму из обработки - как раз этот параметр придет.
148. babys 90 10.05.22 21:38 Сейчас в теме
(147) С параметром я так и не разобрался :(
Переделал без него.
149. Mikov_Evgeniy 2 13.07.22 12:11 Сейчас в теме
Добрый день. с расширений возможно убрать пароль? Как с автором обработки можно связаться?
Есть два расширения на конфигурации, поставщик услуг делал доработки в виде расширений, после переехал, и потерялась связь.
Модули расширений - закрыты паролем, могу отправить вам?
150. MIKE_V 06.09.22 20:19 Сейчас в теме
УНФ 1.6, тонкий клиент, упр. формы. Не работает ! платформа 8.3.19.
в проц. "ПриСозданииНаСервере" - добавлял код, не помогло. Расширения все удалил в копии, не помогло.
152. isn 15 31.07.23 15:06 Сейчас в теме
Используйте

Если ЭтотОбъект.Параметры.Свойство("ДекомпиляцияЭлементов") Тогда

ВнешниеОбработки.Создать(ЭтотОбъект.Параметры.ДекомпиляцияЭлементов.ИмяПодключеннойОбработки,Ложь).ОпределитьВнутренниеСвойстваЭлементов(ЭтотОбъект);
КонецЕсли;

Можно вместо "ЭтотОбъект" использовать "ЭтаФорма""
153. NorraSaltolinen 24.01.24 13:57 Сейчас в теме
Оставьте свое сообщение