gifts2017

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

Опубликовал Максим Жохов (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

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

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

См. также

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