Функционал не доступен в бесплатной версии, необходим ключ защиты
Объекты конфигурации представляют из себя текстовые записи или MXL, HTML и XML файлы. Иногда текстовые записи состоят из 2 блоков, как например форма - состоит из модуля формы и непосредственно самой формы, которую видит пользователь.
В этом случае форма встроенного языка обретает черты консоли, поскольку в левой части отображается структура элемента.
В контекстом меню строки "form.data" можно выбрать:
- Пункт меню Показать форму который, на основе текстовых данных формирует представление формы;
- Пункт меню Построить форму который, на основе текстовых данных формирует выражение создания данной формы
Пример...
эфДеревоЗначений.Шрифт = Новый Шрифт();
эфДеревоЗначений.ШрифтПодвала = ШрифтыСтиля.ШрифтТекста;
эфДеревоЗначений.ШрифтШапки = ШрифтыСтиля.ШрифтТекста;
Попытка эфДеревоЗначений.УстановитьДействие("ПередНачаломДобавления",Новый Действие("ДеревоЗначенийПередНачаломДобавления")); Исключение КонецПопытки;
Попытка эфДеревоЗначений.УстановитьДействие("ПередНачаломИзменения",Новый Действие("ДеревоЗначенийПередНачаломИзменения")); Исключение КонецПопытки;
Попытка эфДеревоЗначений.УстановитьДействие("ПередОкончаниемРедактирования",Новый Действие("ДеревоЗначенийПередОкончаниемРедактирования")); Исключение КонецПопытки;
Попытка эфДеревоЗначений.УстановитьДействие("ПередУдалением",Новый Действие("ДеревоЗначенийПередНачаломИзменения")); Исключение КонецПопытки;
Попытка эфДеревоЗначений.УстановитьДействие("ПриАктивизацииСтроки",Новый Действие("ДеревоЗначенийПриАктивизацииСтроки")); Исключение КонецПопытки;
Попытка эфДеревоЗначений.УстановитьДействие("ПриВыводеСтроки",Новый Действие("ДеревоЗначенийПриВыводеСтроки")); Исключение КонецПопытки;
Попытка эфДеревоЗначений.УстановитьДействие("ПриНачалеРедактирования",Новый Действие("ДеревоЗначенийПриНачалеРедактирования")); Исключение КонецПопытки;
эфДеревоЗначений.УстановитьПривязку(ГраницаЭлементаУправления.Верх,Неопределено,Неопределено,Неопределено,Неопределено);
эфДеревоЗначений.УстановитьПривязку(ГраницаЭлементаУправления.Лево,Неопределено,Неопределено,Неопределено,Неопределено);
эфДеревоЗначений.УстановитьПривязку(ГраницаЭлементаУправления.Низ,ЭтаФорма.Панель,ГраницаЭлементаУправления.Низ,Неопределено,Неопределено);
эфДеревоЗначений.УстановитьПривязку(ГраницаЭлементаУправления.Право,ЭтаФорма.Панель,ГраницаЭлементаУправления.Право,Неопределено,Неопределено);
эфПуть = ЭтаФорма.ЭлементыФормы.Добавить(Тип("Полеввода"),"Путь");
эфПуть.Имя = "Путь";
эфПуть.АвтоКонтекстноеМеню = Истина;
эфПуть.Данные = "Путь";
эфПуть.ИзменяетДанные = Ложь;
эфПуть.КонтекстноеМеню = Неопределено;
эфПуть.ПервыйВГруппе = Ложь;
эфПуть.ПропускатьПриВводе = Ложь;
Попытка эфПуть.ТипЗначения = Новый ОписаниеТипов("Строка"); Исключение КонецПопытки;
эфПуть.АктивизироватьПоУмолчанию = Ложь;
эфПуть.Верх = 352;
эфПуть.Видимость = Истина;
эфПуть.Высота = 19;
эфПуть.Лево = 8;
эфПуть.ПорядокОбхода = 3;
эфПуть.ПорядокОтображения = 2;
эфПуть.Свертка = РежимСверткиЭлементаУправления.Нет;
...
в отличии от существующих аналогов данной операции учитывается:
- Все элементы оформления (картинки, шрифты, цвета, рамки);
- Зависимости элементов, как в привязках так и источниках действий и связях по типу.
Из-за ограничений платформы невозможно:
- Создать кнопку со стандартными действиями (установить отбор, удалить и т.д.);
- Определить подменю контекстного меню типа Кнопка(!!);
- Определить порядок элементов при наложении друг на друга.
В том случае если текст модуля запоролен в структуре будет существовать строка "image.data",
а вместо ожидаемого кода в правой части вы увидите псевдокод, или как еще его называют "байткод".
Псевдокод достаточно легко преобразовать в нормальный вид, для этого вам необходимо найти один из декомпиляторов (ДекодированиеМодуля81.epf), положить его в каталог обработки, и вызвать пункт контекстного меню Декомпилировать.
ВажноДекомпилятор не распространяется в составе дистрибутива. Имя обработки декомпилятора должно быть Decode.epf, В обработке функции:
- Декодировать;
- Форматировать
должны быть экспортированы.
В результате работы будет добавлен еще один пункт text.data, который и будет содержать декомпилированный текст модуля.
Однако для того что бы с этим модулем нормально можно было работать в текущей конфигурации нужно поправить еще запись info.data. Именно по этой записи ориентируется конфигуратор.
Запись может содержать следующие данные:
- {3,2,0,"",0}
- {3,2,0,"jijaiidsd\sdkjdkajldskdla",0}
Для того что бы конфигуратор понимал что к чему эта запись должна заканчиваться на
Так же не забываем удалять запись image.data, так же использую контекстное меню
При открытии объектов конфигурации из одноименной формы, становится доступно дерево Обозреватель объектов (расположен в правой части формы)
Обозреватель будет заполнен, если была открыта запись метаданных, объекта конфигурации. Более подробно о том что представляют из себя записи метаданных можно посмотреть здесь.
В контекстном меню обозревателя доступны следующие действия:
Примечание.
Все записи объектов конфигурации при открытии, вначале распакованными сохраняются на диск в папку .\MyScripts\Conf\ , а потом отображаются в форме встроенного языка или табличного документа (в зависимости от типа данных). |
Данные объектов конфигурации можно изменить и сохранить. Или выбрать пункт меню Действия - Сохранить Копию и сохранить запись в другую таблицу или на диск.
|