Декомпиляция и анализ форм с генерацией кода формы (обычное приложение)

19.06.15

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
ДекомпиляцияИАнализФорм_3.epf
.epf 34,60Kb
126
126 Скачать (1 SM) Купить за 1 850 руб.
ДекомпиляцияИАнализФорм_4.epf
.epf 34,89Kb
1551
1551 Скачать (1 SM) Купить за 1 850 руб.

Данная обработка является попыткой объединения двух замечательных проектов, которые, к сожалению, уже давно не развиваются:

Деструктивный анализ формы: //infostart.ru/projects/2412/

Декомпилятор форм: //infostart.ru/projects/1343/

Теоретическая база проекта: http://www.kb.mista.ru/article.php?id=650&

кроме объединения этих двух разработок в одну я добавил поддержку всех типов метаданных и улучшил "под себя" эргономичность использования.

Данная обработка позволяет декомпилировать как любые формы метаданных конфигурации, так и формы самой обработки (Если вы добавляете свои формы в данную обработку для декомпиляции, удалите или закомментируйте модуль формы, иначе возможны ошибки).

При открытии формируется дерево метаданных. Выбираем нужный тип метаданных, затем нужный объект, затем интересующую нас форму.

Во 2-м окне видим описание всех элементов выбранной формы.

При двойном щелчке мыши на интересующем нас элементе в 3-м окне получим свойства элемента.

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

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

 

Решения, созданные при помощи данной обработки:

//infostart.ru/public/99363/

//infostart.ru/public/65449/

См. также

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

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

10000 руб.

02.09.2020    152957    836    398    

846

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 руб.

20.08.2024    4614    30    16    

43

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

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    21018    60    43    

109

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

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

300000 руб.

03.03.2021    14304    12    27    

36

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

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

10000 руб.

10.11.2023    9506    35    10    

58

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

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

18000 руб.

06.10.2023    14228    36    7    

69

SALE! %

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

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

4800 3840 руб.

14.01.2013    185945    1127    0    

900

Инструментарий разработчика Программист 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

15000 руб.

07.10.2021    16882    6    32    

42
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. raiml 740 04.09.09 10:04 Сейчас в теме
Супер! Спасибо за труд.
8. MRAK 724 04.09.09 10:28 Сейчас в теме
(1), (2), (4), (6) обновил файл! теперь ошибок будет меньше!
2. sound 536 04.09.09 10:17 Сейчас в теме
Нормально! Тока на некоторых формах ашипка вылазит
СтраницаПанели = ЭлементНастройкиМакета.Страницы[ПеремЦикла-1];
3. MRAK 724 04.09.09 10:18 Сейчас в теме
(2) это я в курсе, в P.S. написал... начал копать в эту сторону, но времени слишком мало
7. sound 536 04.09.09 10:22 Сейчас в теме
(3) ага это я не дочитал, хотелось сразу пробовать :)
4. Душелов 4018 04.09.09 10:19 Сейчас в теме
Если рабочая, то плюс авансом. Посмотрю на досуге.
5. MRAK 724 04.09.09 10:20 Сейчас в теме
(4) не полностью рабочая, при разборе панелей пока могут вываливаться ошибки
6. Арчибальд 2709 04.09.09 10:20 Сейчас в теме
Редко плюсую восьмерочное. Но здесь не удержусь...
9. sound 536 04.09.09 10:29 Сейчас в теме
Думается надо
1) чтоб сразу форма максимизировалась
2) тока чтение
12. MRAK 724 04.09.09 10:59 Сейчас в теме
(9) точно, так лучше. подправил
10. Ish_2 1110 04.09.09 10:33 Сейчас в теме
11. Шёпот теней 1782 04.09.09 10:52 Сейчас в теме
предлагаю вернуть Гений 1С в лоно ИС ....

... комментарий не к теме: "но страна должна знать своих героев" ...

... спасибо за ссылки в описании обработки ...

... удАчи ...
13. MRAK 724 04.09.09 11:04 Сейчас в теме
(11) не ради славы, а ради того, штоб поделиться... ну и на развитие проекта надеюсь, не обязательно мною.

Тут еще много чего можно сделать, например сравнение двух форм и генерации кода различий для них.
14. Душелов 4018 04.09.09 11:08 Сейчас в теме
(13) А от меня отдельный респект ;), воспользуюсь в своих низменных целях, для компилятор 1С-кода, у меня как раз застопорилось на разборе и генерации win-форм на основе 1С-ных.
15. asady 127 04.09.09 13:27 Сейчас в теме
Молодец

только вот проект затух как бесперспективный, поскольку вышла 8.2. Зачем пытаться делать свою виртальную форму если уже есть управляемые формы. Кроме того, как быть с обработчиками событий у этих форм реализующих прикладную логику? их ведь динамически получить практически невозможно.
17. MRAK 724 04.09.09 13:37 Сейчас в теме
(15) ну эт не я молодец... насчет остального - типовые конфы под 8.1 еще. данную обработку как раз для них использую. Насчет обработчиков, да их практически невозможно вытащить, но это и не особо нужно, в режиме попроцедурном объединении модуля формы это все легко разруливается.
18. KapasMordorov 428 04.09.09 13:40 Сейчас в теме
2(15)
С обработчиками событий как раз всё нормально.

В 8.2 у элемента формы есть "Родитель" - могильщик текущего проекта.
16. KapasMordorov 428 04.09.09 13:32 Сейчас в теме
2(0)
По поводу ошибки
СтраницаПанели = ЭлементНастройкиМакета.Страницы[ПеремЦикла-1];

Ошибка в модуле формы.
""ФормаКопия = Форма;"" - нельзя так. Получается две ссылки на один и тот же объект.
19. MRAK 724 04.09.09 13:42 Сейчас в теме
(16) спасибо, как раз дошел сейчас до этого места
(18) так он про 8.1 говорит насчет обработчиков
20. KapasMordorov 428 04.09.09 13:43 Сейчас в теме
2(19)
ПолучитьДействие()
УстановитьДействие()
22. MRAK 724 04.09.09 17:28 Сейчас в теме
(20) Точно, есть такое, я просто в эту сторону не копал.

Мне этот функционал без надобности, хотя мож кому пригодится...

(21) Ок, спасибо за готовый код, можно опционально включить в обработку.
21. artbear 1562 04.09.09 15:12 Сейчас в теме
Я для себя дорабатывал
Деструктивный анализ формы - http://infostart.ru/projects/2412/
1. В текстовый макет "СвойстваЭлементовФормы" добавил свойства типа
ДействиеПриИзменении (Action_ПриИзменении)
ДействиеНажатие (Action_Нажатие)
ДействиеОбработкаВыбора (Action_ОбработкаВыбора)
2. Далее в цикле обработки строк макета выполняю проверку реквизита на то, что в начале его имени стоит Действие, и через ПолучитьДействие получаю имя обработчика.
// -- Артур -- 05.02.2009 - получим обработчики действий
лИмяДействия = "";
лДлинаСловаДействия = СтрДлина("Действие");
Если Лев(тИмя, лДлинаСловаДействия) = "Действие" Тогда
лИмяДействия = Сред(тИмя, лДлинаСловаДействия+1);
КонецЕсли;
Если лИмяДействия <> "" Тогда
Попытка
лДействие = Вычислить("тЭлемент.ПолучитьДействие("""+лИмяДействия+""")");
тЗнач = Строка(лДействие);
Исключение
Продолжить;
КонецПопытки;
Сообщить("лДействие = <"+?(лДействие = Неопределено, "Неопределено", лДействие)+">");
//Выполнить("тФорма."+лДействие+"(Неопределено)");
Иначе
// --завершение
Попытка
тЗнач=тЭлемент[тИмя];
Исключение
Продолжить;
КонецПопытки;
// -- Артур -- 05.02.2009 - получим обработчики действий
КонецЕсли;
adhocprog; MRAK; +2 Ответить
23. Istur 1474 06.09.09 18:33 Сейчас в теме
У меня все равно выдает эту ошибку((

"Индекс находится за границами массива
СтраницаПанели = ЭлементНастройкиМакета.Страницы[ПеремЦикла-1];"
24. MRAK 724 06.09.09 18:49 Сейчас в теме
(23) а последнюю обработку скачал? она называется "ДекомпиляцияИАнализФорм_2.epf "

Если ошибка на типовой конфе, то напиши, на какой форме вызывается, я проверю
25. Istur 1474 06.09.09 21:16 Сейчас в теме
(24) именно что скачал вторую. а выдает на моей обработке, http://infostart.ru/projects/5591/ , "Форма".
26. MRAK 724 07.09.09 08:24 Сейчас в теме
(25) Странно, у меня выдает другую ошибку... Попробуй закоментить весь свой модуль формы при переносе в данную обработку.
27. Istur 1474 07.09.09 20:31 Сейчас в теме
(26) Нет, не помогло(( Ну ладно, фиг с ним. Главное что со стандартными работает)))
28. stilet 50 08.09.09 10:19 Сейчас в теме
Все же выдает ошибку. Конфигурация Упр торговлей последний релиз. Документ Заказ покупателя, форма документа
29. MRAK 724 08.09.09 10:23 Сейчас в теме
(28) последнего нет... на 10.3.5.1 отработал без ошибки. Пока на последнем нет возможности проверить(((
32. MRAK 724 09.09.09 21:30 Сейчас в теме
(28), (30) специально последний релиз УТ поставил, ошибка не воспроизводится.
Навсякий случай сейчас файл на сайте обновлю, мож я че с этим накосячил...
30. glek 120 09.09.09 13:22 Сейчас в теме
На УПП для Украины выдает ту же ошибку. На любой форме
31. glek 120 09.09.09 13:29 Сейчас в теме
Судя по анализу, имеем следующее:
В первом анализе (строка 719 код КоличествоСтраниц = ЭлементНастройкиМакета.Страницы.Количество();) получаем общее количество страниц. Потом идет цикл для 1 по количество страниц. НО! в строке 725 в коде пФормаКопия.ЭлементыФормы[ЭлементНастройкиМакета.Имя].Страницы.Удалить(0); идет удаление сразу 1 страницы с панели
33. rasswet 82 15.09.09 11:10 Сейчас в теме
чтобы сравнить что добавили в релиз в типовой, надо запускать обработку в двух базах, новой и старой и визуально просматривать сформированый код? или как проще?
34. MRAK 724 15.09.09 11:14 Сейчас в теме
(33) думаю, проще добавить исследуемую форму в обработку. В дереве метаданных она будет доступна в ветке "ЭтотОбъект" в самом верху
35. rasswet 82 15.09.09 12:55 Сейчас в теме
жаль нельзя указать обе формы и прочитать различия
36. MRAK 724 15.09.09 20:44 Сейчас в теме
(35) хочу сделать, но пока нет времени.
пока можно юзать "Файл" - "Сравнить файлы", если формы не слишком сильно различаются
55. MRAK 724 06.01.10 20:31 Сейчас в теме
37. Borisych 503 18.09.09 21:59 Сейчас в теме
Занимательный подход и много труда! Плюс.
Правда иногда можно увидеть:
Код
{ВнешняяОбработка.ДекомпиляцияИАнализФорм(764)}: Поле объекта не обнаружено (ОсновнаяПанель)
         ЭлементНастройкиМакета = пФорма.ЭлементыФормы[ЭлементТаблицы.Имя];
Показать полностью
38. MRAK 724 19.09.09 07:59 Сейчас в теме
(37) это в типовой? в какой форме, проверю
39. Borisych 503 19.09.09 17:46 Сейчас в теме
40. Totoro 570 21.09.09 22:21 Сейчас в теме
(0) Замеченные недочеты по панелям (по собственному опыту генерации формы) :)
При формировании панели в режиме прокручиваемых страниц признак "РежимПрокручиваемыхСтраниц" нужно устанавливать после добавления всех элементов, иначе все будет в куче на первой странице.
+
1) при присвоении текущей страницы отсутствует ".Страница"
2) При прочтении свойств странице в дереве выдается ошибка
3) После создания панели 1 страница уже существует, т.ч. добавлять нужно только со второй страницы, первую заполнять.
4) Видимость страницы тоже не генерируется (видимость страницы тоже нужно устанавливать последней).
Все тестировалось в ПередОткрытии формы
41. MRAK 724 21.09.09 23:55 Сейчас в теме
(40) спасибо за комментарий, в ближайшее время постараюсь посмотреть.
42. Totoro 570 22.09.09 12:37 Сейчас в теме
(41) Как вариант:
1) для страниц добавить макет со свойствами страниц и проверка при при заполнении дерева на страницу.
2) При формировании кода самый простой способ добавить строчку удаления 0-вой страницы после всех строчек добавления страниц + добавить заполнение свойств каждой страницы.
ЗЫ Эта я вечером вчера смотрел. Вроде работало. Только с видимостью и прокручиваемыми страницами не разбирался.
43. lion11 144 23.09.09 11:25 Сейчас в теме
Большое спасибо за хорошую работу!
Присоединяюсь к пожеланиям: сделать сравнение двух почти одинаковых форм с выдачей кода расположения отличающихся реквизитов. Указанная по ссылке обработка Декомпилятор форм уже сильно упростила подготовку обновлений, а тут еще можно будет упростить.
(Надпись на транспаранте: Обновление нетиповой конфигурации за ОДИН день! :))
44. vadim1980 132 27.10.09 11:52 Сейчас в теме
Обработка очень нужная. Правда нашел пару недочетов, которые мешают при объединении с помощью merge
1) необходимо при сортировке ТаблицаЭлементовФормы.Сортировать("Панель,Страница,Тип");
добавить в конце сортировку по оригинальному индексу элемента, который необходимо заполнять при начальном заполнении таблицы элементов
ТаблицаЭлементовФормы.Сортировать("Панель,Страница,Тип,Индекс");

2) вместо вставки колонки в табличное поле необходимо делать обычное добавление, тогда merge не сбивается при вставке колонки

Непонятно только, почему отличается ширина в решиме Конфигуратор и в режиме Предприятие, поэтому я в комментарии ширины вывожу еще ширину * 6,875 чтобы забивать это значение в конфигуратор :)
45. vadim1980 132 28.10.09 15:44 Сейчас в теме
Обнаружились еще 2 проблемы:
1) Не отображаются общие формы
2) Метод по которому вы сортируете панели при декомпиляции формы неправильный. На некоторых объектах типовых конфигураций, которые имеют несколько вложенных друг в друга форм вылетает с ошибкой. Вам нужно сортировать панели по вложенности, а не по порядку выборки из коллекции элементов управления
46. e.kogan 1895 06.11.09 14:55 Сейчас в теме
Дописала для анализа внешних отчётов и обработок. Выслать?
47. MRAK 724 06.11.09 14:58 Сейчас в теме
(46) Давайте, объединим услилия. А то, если честно, сейчас времени на доработку нет.
48. e.kogan 1895 30.11.09 11:24 Сейчас в теме
(47) Посмотрите приложенный файл.
Прикрепленные файлы:
ДеструктивныйАнализФормы.epf
victor_k; Umka18; MRAK; +3 Ответить
49. MRAK 724 30.11.09 13:24 Сейчас в теме
(48) благодарю, в ближайшее время посмотрю и обновлю
50. vorlogo 09.12.09 03:52 Сейчас в теме
Вставляется лишняя скобка в строках.

ЭлементыФормы.ОсновнаяПанель.ТекущаяСтраница = ЭлементыФормы.ОсновнаяПанель.Дополнительно);
53. Dirk Diggler 14.12.09 07:43 Сейчас в теме
Кроме (50), еще обработка разбивает числа на триады, например
КоманднаяПанель.Ширина = 1 276;

вместо

КоманднаяПанель.Ширина = 1276;

Ругается проверка синтаксиса
51. vorlogo 09.12.09 04:11 Сейчас в теме
буквально один вопрос - как вы затем используете полученный текст? Если в тексте модуля самой формы, то не будет ли метод ЭлементыФормы.Добавить() конфликтовать с тем, что элементы уже существуют? Или вы удаляете все элементы с формы? но это же неудобно
52. MRAK 724 09.12.09 12:42 Сейчас в теме
(51) лично я визуально добавляю нужные мне элементы и меняю существующие. Затем копирую для использования код только измененных и новых элементов.
Конечно, е обработке не хватает сравнения форм, но можно заюзать типовое.
54. Dirk Diggler 14.12.09 08:01 Сейчас в теме
А также неверно декомпилит командные панели с автозаполнением:
Кнопка0 = ЭлементыФормы.ДействияФормы.Кнопки.Подменю.Кнопки.Вставить(5,"Действие4",ТипКнопкиКоманднойПанели.Действие,"Установить интервал дат...",Новый Действие("Установитьинтервалдат..."));

Как вы понимаете, процедуры "Установитьинтервалдат..." не существует
56. Dirk Diggler 07.01.10 12:27 Сейчас в теме
Блестяще!
Скажите, а нельзя формы извлекать из хранилища?
Скажем, сравнивать форму текущей конфы и такую же, но из "конфигурации поставщика"?
57. MRAK 724 07.01.10 12:32 Сейчас в теме
(56) насколько я знаю, стандартных функций доступа к конфе поставщика не существует.

пока предлагаю копировать нужную форму просто через буфер обмена и вставлять ее в данную обработку. Тогда можно будет сравнить новую форму из обработки со старой - из конфиги.



Да, еще, ошибки вышеуказанные не оследил, так как сам не сильно модифицирую формы, на моих задачах они не возникали.

Если будет время, то протестирую, но если будет указана типовая конфа и форма, на которой они проявляются. Так мне тестировать много быстрее.
58. Dirk Diggler 07.01.10 12:46 Сейчас в теме
Да, логические значения сейчас тоже отображаются неверно:

ПолеВвода = ЭлементыФормы.Добавить(Тип("ПолеВвода"),"КодПоОКПО",Истина,ЭлементыФормы.ПанельЮрФизЛицо);
ПолеВвода.Видимость = Нет;

Т.е. "нет" и "да" вместо истина и ложь
59. MRAK 724 07.01.10 13:10 Сейчас в теме
(58) странно, у меня такой проблемы не возникает...

локализация российская? конфа типовая? если да, то в какой форме? (я проверял на форме элемента "Контрагенты" в УТ 10.3)
63. vorlogo 07.01.10 17:40 Сейчас в теме
(59) у меня "да" и "нет" в режиме сравнения, в упп тоже на форме элемента "контрагенты".
Правда, я сконвертировал под 8.2.
64. MRAK 724 07.01.10 17:47 Сейчас в теме
(63) под 8.2 не тестил, думаю в этом косяк.
На 8.2 пока нет проектов, поэтому не тестил.

Если переведу свою конфу "Личный органайзер" под 8.2, мож еще здесь выложу, то будет смысл тестить...
65. MRAK 724 07.01.10 17:48 Сейчас в теме
(63) + но думаю, под 8.2 данная обработка не так актуальна, как под 8.1.
Там же управляемые формы...
66. Душелов 4018 07.01.10 18:21 Сейчас в теме
(65) На управляемых формах проще. Получаешь дерево элементов - и вперед...
67. MRAK 724 07.01.10 20:22 Сейчас в теме
(66) ну так добивай свой компилятор для 8.2 с форточками)))
68. Душелов 4018 07.01.10 20:59 Сейчас в теме
(67) Не успею :) Думаю, скорее 8.3 выйдет :D
69. Dirk Diggler 08.01.10 03:58 Сейчас в теме
(65) Там МОГУТ использоваться УФ. но бОльшая-то часть конф все еще на обычных.
60. artbear 1562 07.01.10 14:56 Сейчас в теме
Просьба в изменениях помимо даты изменения указывать также и версию.
Сейчас неудобно:
в изменениях написано про дату, а в файлах только файлы с номерами.
Переходи на версионирование, лады?
61. MRAK 724 07.01.10 14:59 Сейчас в теме
62. MRAK 724 07.01.10 17:00 Сейчас в теме
А проще - старые версии удалю. Последняя содержит функционал всех предыдущих.
70. Dirk Diggler 08.01.10 04:19 Сейчас в теме
Было бы здорово иметь режим генерации кода не создания формы, а её модификации.
Т.е. генерации строк не вида

ПолеВвода = ЭлементыФормы.Добавить(Тип("ПолеВвода"),"КодПоОКПО",Истина,ЭлементыФормы.ПанельЮрФизЛицо);


а вот таких:

ПолеВвода = ЭлементыФормы.КодПоОКПО; 

71. MRAK 724 08.01.10 09:05 Сейчас в теме
(70) над этим надо подумать, использую иногда. Можно сделать опционально
72. Dirk Diggler 08.01.10 09:43 Сейчас в теме
По поводу "Да"/"Нет"

Из хелпа по 8.2:

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

74. MRAK 724 08.01.10 09:56 Сейчас в теме
(72) понятно.

но пока под 8.2 переделывать не планирую.
77. Dirk Diggler 08.01.10 10:10 Сейчас в теме
(74) А не факт что это под 8.1 работает. Не исключено, что Строка() и в 8.1 зависит от региональных установок базы.
73. Dirk Diggler 08.01.10 09:47 Сейчас в теме
Короче, нельзя там функцию Строка() использовать.
75. Dirk Diggler 08.01.10 09:59 Сейчас в теме
строка 515 модуля объекта:

Текст.ДобавитьСтроку(Таб + ТекстЭлемент+"."+Свойство+ " = "+?(ТипЗначенияСвойства = Тип("Булево"),?(Элемент[Свойство],"Истина","Ложь"),Элемент[Свойство]) +";");

76. Dirk Diggler 08.01.10 10:09 Сейчас в теме
доработал пару строк. под себя, так что не обессудьте что под 8.2
Прикрепленные файлы:
ДекомпиляцияИАнализФорм_3.epf
79. MRAK 724 08.01.10 12:43 Сейчас в теме
(76) благодарю, добавлю в свою обработку
78. Dirk Diggler 08.01.10 12:41 Сейчас в теме
По поводу разделения триад. Тест на форме списка справочника номенклатуры:
     КоманднаяПанель = ЭлементыФормы.Добавить(Тип("КоманднаяПанель"),"ДействияФормы",Истина);
     КоманднаяПанель.Имя = "ДействияФормы";
     КоманднаяПанель.Верх = 0;
     КоманднаяПанель.Высота = 25;
     КоманднаяПанель.Ширина = 1 276;

Там же, чуть ниже(это к слову об автозаполняемых ком. панелях):
Кнопка1 = ЭлементыФормы.ДействияФормы.Кнопки.Подменю.Кнопки.Подменю.Кнопки.Вставить(2,"Действие1",ТипКнопкиКоманднойПанели.Действие,"",Новый Действие("(Историяотборов)"));
80. MRAK 724 08.01.10 13:05 Сейчас в теме
(78)
По поводу разделения триад. Тест на форме списка справочника номенклатуры:
Код

КоманднаяПанель = ЭлементыФормы.Добавить(Тип("КоманднаяПанель"),"ДействияФормы",Истина);
КоманднаяПанель.Имя = "ДействияФормы";
КоманднаяПанель.Верх = 0;
КоманднаяПанель.Высота = 25;
КоманднаяПанель.Ширина = 1 276;


нет у меня таких широких в УПП...
82. Dirk Diggler 08.01.10 13:14 Сейчас в теме
(80) А вы попробуйте это сделать сперва открыв эту форму и развернув на весь экран. Сразу появятся ))))
83. MRAK 724 08.01.10 13:17 Сейчас в теме
(82) Если только в режиме конфигуратора...
81. Dirk Diggler 08.01.10 13:13 Сейчас в теме
и последнее

СтрЗаменить(.....," ",""),
не сработает на конфигурациях, которые используют как разделитель что-то отличное от пробела(напр., неразрывный пробел).
84. alexer 1028 02.02.10 11:01 Сейчас в теме
Отличная штука, плюс +++.
85. alexer 1028 02.02.10 11:30 Сейчас в теме
если получится выложу свой вариант
Скриншот
86. MRAK 724 02.02.10 11:34 Сейчас в теме
(85) на скрине все выглядит красиво, буду ждать :)
88. alexer 1028 09.02.10 12:15 Сейчас в теме
87. Ish_2 1110 02.02.10 12:12 Сейчас в теме
89. sergejr 11.02.10 13:22 Сейчас в теме
Цвет не переносит, а в остальном плюс

и пожелание: в описании написано

Пользователь может в интерактивной форме выбрать любую форму любого документа любой конфигурации платформы 1С 8.1 . Иметь возможность выбрать конфигурацию из файла.
90. sergejr 17.02.10 15:52 Сейчас в теме
Нашел ошибку.

При декомпиляции формы на которой есть панель со страницами выдает такую строку: ЭлементыФормы.Панель.ТекущаяСтраница = ЭлементыФормы.Панель.ВыпускКакРасход);

здесь лишний знак ) и должно быть так

ЭлементыФормы.Панель.ТекущаяСтраница = ЭлементыФормы.Панель.Страницы.ВыпускКакРасход;
91. MRAK 724 17.02.10 16:39 Сейчас в теме
(90) Если это в типовой, то напишите, пожалуйста, в какой форме возникает ошибка.
92. sergejr 18.02.10 08:56 Сейчас в теме
Это документ Отчет мастера смены в УПП, я там добавил ещё одну страницу на панели, но ошибка выходит для всех панелей: лишний знак ) и не хватает слова СТРАНИЦЫ ЭлементыФормы.Панель.Страницы.ВыпускКакРасход;
93. Kiber_ 25.03.10 17:14 Сейчас в теме
Во-первых, огромное спасибо. :)
Во-вторых, лови багрепорт:
При декомпиляции формы в УПП (то-ли спецификации номенклатуры, толи статей затрат)

{ВнешняяОбработка.ДекомпиляцияИАнализФорм(747)}: Поле объекта не обнаружено (ПанельВыходноеИзделие)
пФормаКопия.ЭлементыФормы[ЭлементНастройкиМакета.Имя].УстановитьДействие("ПриСменеСтраницы", Неопределено);
94. sgromov@bk.ru 23.04.10 11:22 Сейчас в теме
От меня жирный плюс!

багрепорт:
запускал на БП 1.6.24, после названий страницы в результате декомпиляции рисует лишнюю закрывающую скобку, например:


ЭлементыФормы.ОсновнаяПанель.ТекущаяСтраница = ЭлементыФормы.ОсновнаяПанель.СчетФактура);


95. sgromov@bk.ru 23.04.10 11:37 Сейчас в теме
в дополнение к предыдущему куску кода: после названия панели не хватает разыменования Страниц, т.е. должно быть так:

лементыФормы.ОсновнаяПанель.ТекущаяСтраница = ЭлементыФормы.ОсновнаяПанель.СТРАНИЦЫ.СчетФактура;
96. _wlad_ 01.06.10 17:07 Сейчас в теме
Уже давно крутилась такая идея, т.к. обновление перепаханных типовых форм порой заставляет материться! К сожалению дальше первых подступов не дело не дошло. Попробуем вашу