Снегопат
https://snegopat.ru/forum/

Метод замены внутренних форм на свои
https://snegopat.ru/forum/viewtopic.php?f=6&t=619
Страница 1 из 1

Автор:  Ndochp [ 11 июн 2014, 10:02 ]
Заголовок сообщения:  Метод замены внутренних форм на свои

Может конечно это всем тут известно, но я раньше не встречал. Оставлю здесь, потому что можно из этого сделать много хорошего, а у меня руки не дойдут. Сам не проверял, зарылся на этапе "ВнешниеОбработки.Подключить", а времени разбираться долго нету. Но нет основания не доверять.
Далее копипаста с партнерки с купюрами.

https://partners.v8.1c.ru/forum/topic/1252472
Платформа 8.3 → 8.3.5 - в режиме отладки открыл "Все функции" - Конфигуратор выдает "внутренние" ошибки.
[...] Оказывается можно много интересно найти, если покопаться в файлах типа "mngbase_ru.res".
Похоже многие системные формы, отображаемые в Предприятии - это обычные управляемые формы, код которых сохранен в платформе, а не конфигурации.
[...] Прикольно.. всплыл интересный метод переопределения системных форм.

Подключаем свою обработку с правильным идентификатором:
ДД = Новый ДвоичныеДанные("C:\Users\Alex\Desktop\ВнешняяОбработка1.epf");

НовЭлемент = Справочники.Обработка.СоздатьЭлемент();
НовЭлемент.Хранилище = Новый ХранилищеЗначения(ДД);
НовЭлемент.Записать();

ExternalDataProcessors.Connect(ПолучитьНавигационнуюСсылку(НовЭлемент.Ссылка, "Хранилище"), "StandardActiveUsers", false);

и вуаля - место нормального списка активных пользователей получаем свою обработку :).

С точки зрения кастомизируемости приложения - это отличная возможность.

Надеюсь, что она не будет закрыта.


[...]
Это даже в 8.2 работает))
ДвоичныеДанные = Новый ДвоичныеДанные("C:\ВнешняяОбработка1.epf");
Адрес = ПоместитьВоВременноеХранилище(ДвоичныеДанные);
ВнешниеОбработки.Подключить(Адрес, "StandardActiveUsers", false);

Считаю нужно разгласить все стандартные имена обработок.
[...] Я нашел вот эти:

QueryWizard.epf
StandardActiveUsers.epf
StandardDeleteMarkedObjects.epf
StandardDocumentsPosting.epf
StandardEventLog.epf
StandardExternalDataSourcesManagement.epf
StandardFindByRef.epf
StandardFullTextSearchManagement.epf
StandardTotalsManagement.epf
[...]

Автор:  artbear [ 11 июн 2014, 15:22 ]
Заголовок сообщения:  Re: Метод замены внутренних форм на свои

Спасибо за очень полезную инфу.
Пригодится.

Автор:  DrAku1a [ 16 июн 2014, 05:59 ]
Заголовок сообщения:  Re: Метод замены внутренних форм на свои

Платформа 8.2.19.83, пробую в режиме "Предприятие":
Код:
ОчиститьСообщения();
ДвоичныеДанные = Новый ДвоичныеДанные("D:\QueryWizard.epf");
УИД = новый УникальныйИдентификатор;
Адрес = ПоместитьВоВременноеХранилище(ДвоичныеДанные, УИД); //Пробовал с УИД и без него
Сообщить(Адрес);
ВнешниеОбработки.Подключить(Адрес, "QueryWizard", false);

на последней строке выдаёт ошибку:
Цитата:
Ошибка при вызове метода контекста (Подключить): Ошибка подключения внешних метаданных
по причине:
Неправильный путь к файлу 'e1cib/tempstorage/b5c92284-a97a-4e77-b6ee-a33d77b0492b'

Автор:  Ndochp [ 16 июн 2014, 10:44 ]
Заголовок сообщения:  Re: Метод замены внутренних форм на свои

А вообще нормально подключается, с "обычным" именем? У меня потому что тоже не взлетело в том же месте, но не взлетело совсем, то есть я не смог подобрать способа заставить сработать метод "подключить" вообще. Но я не долго пытался. Думаю, тестить замену надо только после успешного подключения внешней обработки.

Автор:  vladnet [ 18 июн 2014, 16:33 ]
Заголовок сообщения:  Re: Метод замены внутренних форм на свои

А как вы раскапывали имена? Мне вот сейчас нужно заменить форму для "Вывести список..."

Автор:  Ndochp [ 18 июн 2014, 17:42 ]
Заголовок сообщения:  Re: Метод замены внутренних форм на свои

Я никак, это копипаста с партнерки. Но вообще говоря, если включить просмотр *.res в текстовом виде, то в начале файла есть имена чего-то в явном виде. В том числе обработок.

Автор:  vladnet [ 19 июн 2014, 10:13 ]
Заголовок сообщения:  Re: Метод замены внутренних форм на свои

Покопал res файлы. Больше в них ничего нет (( Возможно как то по другому остальные подключаются...

Страница 1 из 1 Часовой пояс: UTC + 3 часа
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/