Недокументированное использование стандартных форм

Опубликовал Максим Жохов (ZhokhovM) в раздел Программирование - Практика программирования

Вам не хватает возможностей в платформе 1С или у Вас нет времени на углубленное изучение платформы 1С?
Рассмотрены возможности использования стандартных форм, вызываемых из платформы.

В этой статье я буду писать про недокументированное использование стандартных форм.

LF - это стандартная компилированная форма, вызываемая платформой. В платформе 1с предприятия есть стандартные формы: "Все функции", "Все сообщения", "Выбрать цвет", "Выбрать тип документа", "Выбрать шрифт" и т.д. тому подобно.

Основная цель: Как из компилированной формы перенести данные в форму с модулями из внешней обработки? Все очень просто.

Порядок выполнения действий:

  1. Открыть и выполнить обработку "Преобразование стандартных форм", указав каталог и отметив необходимые формы.
  2. Открыть любую обработку из каталога в режиме конфигуратора.
  3. Открыть форму обработки, восстановить в ней связи между элементами и реквизитами, записать и закрыть.
  4. Открыть записанную обработку в режиме предприятия.

Что делает обработка "Преобразование стандартных форм":

  1. Получает встроенную в виде отдельного файла LF.
  2. Получает готовый шаблон внешней обработки из макета обработки и сохраняет его во временный файл.
  3. Распаковывает временный файл внешней обработки во временный каталог.
  4. Заменяет файл "<guid.0>" на содержимое файла LF.
  5. Упаковывает в обработку обратно в обычный каталог.

Можно ли сделать самому себе обработку "AllFunction.lf", имея на руках V8Unpack?  Конечно, можно. Вот, что Вам нужно:

  1. Создать в конфигураторе новую обработку.
  2. Создать в ней новую управляемую форму.
  3. Сохранить обработку.
  4. Распаковать получившуюся обработку с помощью V8Unpack.
  5. Там должен быть один файл с именем вида <guid>.0 - поменять его содержимое на содержимое файла "AllFunctions.lf".
  6. После этого обратно собрать обработку с помощью V8Unpack.

Чтобы получить встроенную в виде отдельного файла "AllFunctions.lf", нужно выполнить код:

КопироватьФайл("v8res://mngbase/AllFunctions.lf","C:\AllFunctions.lf");

Информация обо всех файлах в формате LF лежит в файле:

C:\Program Files (x86)\1cv8\хх.хх.хх.хх\bin\mngbase_root.res

Помимо этого была сделана внешняя обработка для теста. Все изменения касательно внешней обработки "Все функции":

  1. Восстановлена связь между элементами и реквизитами
  2. Закомментирован код закрытия формы обработки после выбора формы
  3. Изменено поведение Enter в форме обработки выбора

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

Здесь можно поддержать развитие публикации

InnocentЯндекс.Кошелек: 410012743280614Innocent

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

Наименование Файл Версия Размер
Преобразование стандартных форм
.epf 99,33Kb
22.07.16
15
.epf 99,33Kb 15 Скачать
Стандартная форма "Все функции"
.epf 9,55Kb
26.07.16
6
.epf 9,55Kb 6 Скачать

См. также

Комментарии
1. Валерий К (klinval) 193 26.07.16 13:41 Сейчас в теме
А "Все действия" - "Настроить список" - эту форму/обработку можно получить вашей обработкой?
2. Максим Жохов (ZhokhovM) 252 26.07.16 14:21 Сейчас в теме
(1) klinval, конечно, есть стандартная форма "UniversalListSettings.lf". В ней нужно восстанавливать связи между элементами и реквизитами непосредственно в обработке, такие как: Filter, Order, Group и т.д.
3. Сергей Лукиных (LSV79) 27.07.16 07:14 Сейчас в теме
А зачем такие сложности?
http://infostart.ru/public/369487/ тут вариант значительно проще
Yashazz; serg_infostart; Spacer; ardn; kraynev-navi; JohnyDeath; kuntashov; +7 2 Ответить 1
4. Максим Жохов (ZhokhovM) 252 27.07.16 09:24 Сейчас в теме
(3) LSV79, там нет вариантов со стандартными формами, только упоминания в комментариях
5. Serj (Serj1C) 460 28.07.16 07:38 Сейчас в теме
Ой, ой, ой... На фоне шумихи с вирусом для 1С... Т.е. теперь можно подложить файлы в каталог бин и пользователь сам когда-нибудь да откроет обработку.
А также можно обойти ограничение на открытие внешних обработок...
Большая-большая дыра в безопасности каждой компании, где у пользователей есть доступ на запись в каталог bin
Sergey-MX; ZhokhovM; AnryMc; the1; +4 Ответить 2
6. Maxim Kolkin (the1) 277 28.07.16 09:02 Сейчас в теме
7. Ivan Khorkov (vano-ekt) 816 29.07.16 05:19 Сейчас в теме
екарук писала уже, но плюсану за обработку, лень копаться :-)
8. Максим Жохов (ZhokhovM) 252 29.07.16 09:29 Сейчас в теме
10. Сергей Рудаков (fishca) 1039 30.08.16 14:11 Сейчас в теме
11. Максим Жохов (ZhokhovM) 252 30.08.16 15:06 Сейчас в теме
12. Андрей Вахрин (dolter) 116 21.01.17 22:47 Сейчас в теме
А действительно... можно ли вытянуть стандартную форму, слегка ее переделать (например вставить попытку открыть другую форму из состава конфигурации в случае ее там присутствия) и поместить ее обратно в bin?
13. Максим Жохов (ZhokhovM) 252 22.01.17 14:13 Сейчас в теме
(12)я знаю только вытянуть и переделать форму но поместить ее обратно в бин нет, не пробовал
14. Андрей Вахрин (dolter) 116 28.01.17 22:40 Сейчас в теме
Нашел инструмент у Орефкова на сайте... Полностью разобрать получилось, а вот собрать пока не очень...