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

Опубликовал Максим Жохов (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С: Предприятия 8. Все изменения касательно внешней обработки "Все функции":

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

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

Выражаю благодарность awa за оказанную помощь.

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

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

См. также

Комментарии
1. Валерий К (klinval) 198 26.07.16 13:41 Сейчас в теме
А "Все действия" - "Настроить список" - эту форму/обработку можно получить вашей обработкой?
2. Максим Жохов (ZhokhovM) 273 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 3 Ответить 1
4. Максим Жохов (ZhokhovM) 273 27.07.16 09:24 Сейчас в теме
(3) LSV79, там нет вариантов со стандартными формами, только упоминания в комментариях
5. Serj (Serj1C) 461 28.07.16 07:38 Сейчас в теме
Ой, ой, ой... На фоне шумихи с вирусом для 1С... Т.е. теперь можно подложить файлы в каталог бин и пользователь сам когда-нибудь да откроет обработку.
А также можно обойти ограничение на открытие внешних обработок...
Большая-большая дыра в безопасности каждой компании, где у пользователей есть доступ на запись в каталог bin
uncle_Vasya; kiv1c; Sergey-MX; ZhokhovM; AnryMc; the1; +6 Ответить 2
6. Maxim Kolkin (the1) 279 28.07.16 09:02 Сейчас в теме
7. Ivan Khorkov (vano-ekt) 850 29.07.16 05:19 Сейчас в теме
екарук писала уже, но плюсану за обработку, лень копаться :-)
8. Максим Жохов (ZhokhovM) 273 29.07.16 09:29 Сейчас в теме
10. Сергей Рудаков (fishca) 1050 30.08.16 14:11 Сейчас в теме
11. Максим Жохов (ZhokhovM) 273 30.08.16 15:06 Сейчас в теме
12. Андрей Вахрин (dolter) 117 21.01.17 22:47 Сейчас в теме
А действительно... можно ли вытянуть стандартную форму, слегка ее переделать (например вставить попытку открыть другую форму из состава конфигурации в случае ее там присутствия) и поместить ее обратно в bin?
13. Максим Жохов (ZhokhovM) 273 22.01.17 14:13 Сейчас в теме
(12)я знаю только вытянуть и переделать форму но поместить ее обратно в бин нет, не пробовал
14. Андрей Вахрин (dolter) 117 28.01.17 22:40 Сейчас в теме
Нашел инструмент у Орефкова на сайте... Полностью разобрать получилось, а вот собрать пока не очень...
15. Андрей Казанцев (ander_) 18.05.17 05:55 Сейчас в теме
Что-то я не в теме. А зачем все это? Поясните плиз где и как это может пригодиться
16. Максим Жохов (ZhokhovM) 273 18.05.17 09:51 Сейчас в теме
(15)
где и как это может пригодиться

Мне она пригодилась для тестирования для конфигураций: "Управление торговлей, редакция 11" и "Управление предприятием, редакция 2". На всякий случай указал первоисточник.
17. Андрей Казанцев (ander_) 18.05.17 16:35 Сейчас в теме
(16)
а еще чуть подробней.. :)
что здесь имеется ввиду под "тестированием"?
может пример тестового сценария, в котором это используется... может так понятнее будет :(
18. Максим Жохов (ZhokhovM) 273 18.05.17 17:26 Сейчас в теме
(17)ну изначально я тестировал руками все формы, вызываемые через меню все функции, например, открыть и закрыть формы документа или справочника, но после длительного использования были проблемы, что автоматически закрывается стандартная форма "Все функции" после выбора любой формы и деактивируется строка дерева значений "Table" после переоткрытия стандартной формы "Все функции", что практически невозможно было выбрать следующую форму нажатием стрелочки "вниз" или "вверх", так вот решил создать тему https://partners.v8.1c.ru/forum/topic/1510855, но ответа там до сих пор не дали, затем вспомнил про статью "Недокументированное использование стандартных обработок из меню "Все функции"" на инфостарте от автора екарук и мне нужно было придумать как стандартную форму "Все функции" вызываемую из платформы перенести во внешнюю обработку с формой для этого и была придумана мной статья. Все изменения касательно внешней обработки "Все функции" я писал выше.
19. Андрей Казанцев (ander_) 19.05.17 07:20 Сейчас в теме
(18)
Спасибо, теперь более-менее понятно.
20. Максим Жохов (ZhokhovM) 273 19.05.17 09:15 Сейчас в теме
Оставьте свое сообщение