Метод замены внутренних форм на свои

Обсуждение различных вопросов, связанных с разработкой и эксплуатацией 1С-Предприятия 8.X
Ответить
Ndochp
Сообщения: 64
Зарегистрирован: 19 фев 2013, 10:29

Метод замены внутренних форм на свои

Сообщение Ndochp »

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

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
Сообщения: 1085
Зарегистрирован: 24 авг 2011, 15:36
Контактная информация:

Re: Метод замены внутренних форм на свои

Сообщение artbear »

Спасибо за очень полезную инфу.
Пригодится.
Аватара пользователя
DrAku1a
Сообщения: 31
Зарегистрирован: 03 ноя 2011, 13:34
Откуда: Владивосток

Re: Метод замены внутренних форм на свои

Сообщение DrAku1a »

Платформа 8.2.19.83, пробую в режиме "Предприятие":

Код: Выделить всё

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

на последней строке выдаёт ошибку:
Ошибка при вызове метода контекста (Подключить): Ошибка подключения внешних метаданных
по причине:
Неправильный путь к файлу 'e1cib/tempstorage/b5c92284-a97a-4e77-b6ee-a33d77b0492b'
Ndochp
Сообщения: 64
Зарегистрирован: 19 фев 2013, 10:29

Re: Метод замены внутренних форм на свои

Сообщение Ndochp »

А вообще нормально подключается, с "обычным" именем? У меня потому что тоже не взлетело в том же месте, но не взлетело совсем, то есть я не смог подобрать способа заставить сработать метод "подключить" вообще. Но я не долго пытался. Думаю, тестить замену надо только после успешного подключения внешней обработки.
vladnet
Сообщения: 388
Зарегистрирован: 24 авг 2011, 15:57
Контактная информация:

Re: Метод замены внутренних форм на свои

Сообщение vladnet »

А как вы раскапывали имена? Мне вот сейчас нужно заменить форму для "Вывести список..."
ИТ учет http://tunesoft.ru
Ndochp
Сообщения: 64
Зарегистрирован: 19 фев 2013, 10:29

Re: Метод замены внутренних форм на свои

Сообщение Ndochp »

Я никак, это копипаста с партнерки. Но вообще говоря, если включить просмотр *.res в текстовом виде, то в начале файла есть имена чего-то в явном виде. В том числе обработок.
vladnet
Сообщения: 388
Зарегистрирован: 24 авг 2011, 15:57
Контактная информация:

Re: Метод замены внутренних форм на свои

Сообщение vladnet »

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