Управление платформенными обработками (расширение + обработка выгрузки) [update 8.3.24]

29.11.23

Разработка - Инструментарий разработчика

Расширение использует недокументированную возможность для управления платформенными обработками. Например, чтобы подменить "Активные пользователи" или доработать "Конструктор запросов".

Вас как-то не устраивают платформенные обработки? Не хватает какой-то удобной кнопки или раздражает назойлевый баг?

Это всё можно исправить.

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

Что позволяет вообще подменить обработки, можно прочитать в статье: Недокументированное использование стандартных обработок из меню "Все функции".

 

На данный момент расширение может работать с обработками:

  • Активные пользователи
  • Журнал регистрации
  • История изменений данных
  • Конструктор запросов на управляемых формах
  • Поиск ссылок на объект
  • Проведение документов
  • Удаление помеченных объектов
  • Управление внешними источниками данных
  • Управление итогами
  • Управление копиями базы данных
  • Управление настройками обработки ошибок
  • Управление полнотекстовым поиском
  • Управление расширениями конфигурации
  • Управление серверами
  • Управление сервисами интеграции
  • Управление системой аналитики
  • Управление системой взаимодействия
  • Список блокировок аутентификаций пользователей
  • Дополнительные настройки аутентификации
  • Лицензирование конфигурации
  • Настройка журнала регистрации
  • Параметры информационной базы
  • Получение лицензии
  • Список пользователей
  • Региональные установки информационной базы
  • Сервис сборки мобильных приложений
  • Управление распознаванием речи
  • Управление табличными пространствами базы данных
  • Управление хранилищем двоичных данных

 

Установка

Для подключения необходимо добавить расширение со снятыми флагами "Безопасный режим" и "Защита от опасных действий". После перезапуска сеанса будет сообщено об обновлении версий платформенных обработок.

Так же отдельно можно использовать обработку, если вам нужно просто выгрузить платформенные инструменты в каталог. Обработка не требует расширения и может быть открыта как внешняя или доп. обработка БСП

 

Поддерживаемые конфигурации

Расширение поддерживает русскоязычные и англоязычные конфигурации. В релизе выкладываются три версии: общая, только русский язык и только английский язык. Отличаются они исключительно основным языком интерфейса и отсутствием второго языка в дереве конфигурации. Это позволяет проще произвести установку.

В любом случае, механизм расширений содержит много нюансов и может потребоваться изменение каких-то корневых свойств непосредственно в вашей ситуации

 

Состав объектов

Для использования

  • Версии платформенных обработок (УПО) - справочник хранит непосредственно двоичные данные обработок и содержит основное меню по настройке. На каждую версию платформы создается отдельная версия обработки. И на основе каждой версии обработки можно создавать свою доработанную версию и совершать подмену
  • Выгрузка платформенных обработок (УПО) - обработка, которая позволяет массово выгрузить инструменты текущей версии платформы в каталог. Обработка приложена как внешняя к релизу и может использоваться независимо от расширения.

Служебные

  • Платформенные обработки (УПО) - служебный справочник хранит имена и адреса извлечения платформенных обработок
  • Подмена платформенных обработок (УПО) - служебный регистр содержит информацию о версиях обработок, которые нужно запускать взамен платформенной.
  • Обновленные версии приложения (УПО) - служебный регистр, который хранит информацию о версиях платформы, по которым уже были добыты версии платформенных обработок. Необходим для автоматического обновления версий при переходе на новую версию платформы

 

Использование

Вся настройка происходит в справочнике "Версии платформенных обработок"

Версию из справочника можно выгрузить.

 

Изменить под свои нужды. И создать новую (доработанную) версию обработки в справочнике. Для этого необходимо на основе оригинальной версии создать новую:

 

Далее, сохранив элемент справочника, можно подменить в нем файл обработки на свой доработанный:

 

Теперь уже доработанную обработку можно:

  1. Запустить. Она просто запустится (как обычная внешняя обработка)
  2. Подключить для текущего сеанса. Тогда в рамках сеанса платформенная обработка будет заменена на выбранную.
  3. Установить подменяемой. Можно для себя, можно для кого-то другого. Или для всех. После этого выбранная обработка будет каждый раз заменять платформенную при старте сеанса. 

 

Все настройки подмены обработок лежат в регистре на отдельной вкладке:

 

В любой момент можно отключить расширение и все станет "как раньше".

Последняя обновленная версия платформы: 8.3.24

 

UPDATE 29.11.2023 (ver. 1.4.1)

  • Добавлена поддержка англоязычных конфигураций

  • Полнью убрана зависимость от БСП

  • Код по извлечению платформенных инструментов вынесен в отдельную независимую от расширения обработку, которую можно использовать как внешнюю в любой базе

 

UPDATE 28.12.2022 (ver. 1.3.1)

  • Добавлены новые обработки из платформы
     
     Список
  • Уменьшена зависимость от БСП. Осталось только наличие справочника Пользователи и для работы в разрезе пользователей типовой метод Пользователи.ТекущийПользователь()

  • Проект выложен на GitHub
     
  • Исправлен ряд внутренних ошибок

     

UPDATE 09.12.2021 (ver. 1.2.1.2)

  • Добавлены новые обработки из платформы 8.3.20
     
     Список
  • Из-за смены внутреннего имени некоторых обработок, добавлена возможность указания списка имен. Например, Поиск ссылок на объект: StandardFindByRef и StandardFindByReference
     
  • Добавлено автоматическое обновление версий обработок при старте сеанса. Происходит один раз на каждую версию платформы. Т.е. при первоначальной установке расширения и последующих обновлениях платформы

 

Понравилась публикация? 

Поставьте лайк плюс, оставьте комментарий. И переходите к другим публикациям от автора:

 

КАК СКАЧАТЬ

Проект выложен в открытом доступе на GitHub. Там же можете оставлять предложения, замечания и регистрировать ошибки. 

 

 

Платформа Обработка Консоль Запросов Расширение Типовой

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    136303    755    391    

781

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

18000 руб.

06.10.2023    10803    26    6    

55

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 руб.

10.11.2023    6721    19    2    

44

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

5400 руб.

17.05.2024    8030    21    14    

53

Инструментарий разработчика Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

3600 руб.

14.01.2013    180951    1102    0    

874

Инструментарий разработчика Программист 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

15000 руб.

07.10.2021    15761    3    12    

38

Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    100798    241    97    

300

Инструментарий разработчика Перенос данных 1C Программист Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    24266    17    15    

34
Отзывы
10. SeiOkami 3471 08.10.21 07:46 Сейчас в теме
Почему вообще возможна подмена легче понять, если заглянуть "под капот" в обработку "все функции".

	If AccessRight("ActiveUsers", Metadata) Then
		ActiveUsers = Undefined;
		Try
			ActiveUsers = New("ExternalDataProcessorObject.StandardActiveUsers");
		Except
			Try
				ExternalDataProcessors.Connect("v8res://mngbase/StandardActiveUsers.epf", "StandardActiveUsers", false);
				ActiveUsers = New("ExternalDataProcessorObject.StandardActiveUsers");
			Except
            	Message(ErrorDescription());
			EndTry;
		EndTry;
		If ActiveUsers <> Undefined Then
			SubString = Table.Rows.Add();	
			SubString.Name = NStr("ru = 'Активные пользователи'; SYS = 'AllFunctions.ActiveUsers'", "ru");
			SubString.Form = "ExternalDataProcessor.StandardActiveUsers.Form";
			SubString.Picture = PictureLib.Form;
			SubString.Type = "ExternalForm";
		EndIf;
	EndIf;
Показать


Сначала "все функции" пытается создать внешнюю обработку с именем StandardActiveUsers
Если не удалось, значит, что такая обработка ещё не была подключена. И тогда происходит подключение этой самой обработки по адресу внутреннего ресурса.

Выходит, что если подменяемая обработка будет вызывать ошибку при создании, то 1С её заменит на стандартную
Прикрепленные файлы:
Artem-B; BaphoBush; nsirotkin@mail.ru; JohnyDeath; DrAku1a; artbear; +6 Ответить
Остальные комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. RustIG 1694 07.10.21 18:35 Сейчас в теме
(0) как всегда что-то неординарное :)
shoy; CyberCerber; SeiOkami; +3 Ответить
2. Yashazz 4761 07.10.21 20:08 Сейчас в теме
А как технически происходит подмена, если не секрет? Я ещё понимаю выдрать их и как внешки юзать, но обратно как пихнуть? Или это и есть внешки?
3. SeiOkami 3471 07.10.21 20:13 Сейчас в теме
(2) по этой ссылке рассказывается.
Там всё просто. Например:

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


В расширении при старте сеанса используется такой способ указания адреса:


СсылкаНаДанные = ПолучитьНавигационнуюСсылку(ВерсияОбработки, "ДанныеВерсии");
	
ОписаниеЗащиты = Новый ОписаниеЗащитыОтОпасныхДействий;
ОписаниеЗащиты.ПредупреждатьОбОпасныхДействиях = Ложь;
	
ВнешниеОбработки.Подключить(СсылкаНаДанные, КлючевоеИмя, Ложь, ОписаниеЗащиты);
Показать

Здесь в качестве адреса берется навигационная ссылка на реквизит. Но принцип тот же.
mitia.mackarevich; +1 Ответить
4. SeiOkami 3471 07.10.21 20:15 Сейчас в теме
(2) смысл в том, что каждая вшитая обработка имеет свое "ключевое" имя. По которому можно подключить любую другую обработку и платформа будет юзать уже её
13. Yashazz 4761 08.10.21 10:16 Сейчас в теме
(4) Чёрт, а у меня в своё время не получилось ((
Спасибо.
5. ixijixi 1828 07.10.21 21:11 Сейчас в теме
Коллеги, кто-нибудь нашел платформенную форму "Избранное"?
6. SeiOkami 3471 07.10.21 21:18 Сейчас в теме
(5)

ОткрытьФорму("sysForm:FavoritesDlg", Новый Структура("alias", 1));
Прикрепленные файлы:
FavoritesDlg.lf.epf
Artem-B; mitia.mackarevich; RustIG; ixijixi; +4 Ответить
7. Malfarion 257 08.10.21 02:19 Сейчас в теме
(6) Не получается ее подменить, у кого-то получилось?
9. SeiOkami 3471 08.10.21 06:13 Сейчас в теме
(7) нет, это только как-то менять файлы платформы. Но это уже точно попахивает нарушением лицензии)

Я использую только доступные из кода возможности
8. cleaner_it 221 08.10.21 04:15 Сейчас в теме
Потрясающее решение) Порой - да что там, частенько - задумывался о неудобстве типовых платформенных обработок
10. SeiOkami 3471 08.10.21 07:46 Сейчас в теме
Почему вообще возможна подмена легче понять, если заглянуть "под капот" в обработку "все функции".

	If AccessRight("ActiveUsers", Metadata) Then
		ActiveUsers = Undefined;
		Try
			ActiveUsers = New("ExternalDataProcessorObject.StandardActiveUsers");
		Except
			Try
				ExternalDataProcessors.Connect("v8res://mngbase/StandardActiveUsers.epf", "StandardActiveUsers", false);
				ActiveUsers = New("ExternalDataProcessorObject.StandardActiveUsers");
			Except
            	Message(ErrorDescription());
			EndTry;
		EndTry;
		If ActiveUsers <> Undefined Then
			SubString = Table.Rows.Add();	
			SubString.Name = NStr("ru = 'Активные пользователи'; SYS = 'AllFunctions.ActiveUsers'", "ru");
			SubString.Form = "ExternalDataProcessor.StandardActiveUsers.Form";
			SubString.Picture = PictureLib.Form;
			SubString.Type = "ExternalForm";
		EndIf;
	EndIf;
Показать


Сначала "все функции" пытается создать внешнюю обработку с именем StandardActiveUsers
Если не удалось, значит, что такая обработка ещё не была подключена. И тогда происходит подключение этой самой обработки по адресу внутреннего ресурса.

Выходит, что если подменяемая обработка будет вызывать ошибку при создании, то 1С её заменит на стандартную
Прикрепленные файлы:
Artem-B; BaphoBush; nsirotkin@mail.ru; JohnyDeath; DrAku1a; artbear; +6 Ответить
11. RustIG 1694 08.10.21 09:12 Сейчас в теме
(10) да ты просто 1с-хакер! :) думаю, скоро, некоторые модули конфигураций начнут закрывать от глаз и анализа 1с-разработчиков-внедренцев...
12. SeiOkami 3471 08.10.21 09:15 Сейчас в теме
(11) на самом деле, на Инфостарте уже писалось это всё по несколько раз. Там куча прикольных внутренностей можно посмотреть. Но, к сожалению, "переподключить" можно только тот список обработок, что я вписал в расширение. Или мы пока чего-то ещё не знаем 😁
14. Yashazz 4761 08.10.21 10:17 Сейчас в теме
(11) Всё это Евгения Карук давным-давно расписала. А вот как подцепить - это да, круто сделано, автору респект.
Дмитрий74Чел; +1 Ответить
16. Evil Beaver 8160 08.10.21 10:18 Сейчас в теме
(14) Коллективное творчество и общественный прогресс налицо. Для того мы тут и собрались
15. Evil Beaver 8160 08.10.21 10:18 Сейчас в теме
О, ВсеФункции сама по себе тоже обработка! Реквестирую тогда в ней сортировку по "последним открытым" и поиск. Кто бы сделал такое... Бесит при отладке многократно заходить в один и тот же объект через ВсеФункции и там его искать
Evg-Lylyk; artbear; +2 Ответить
17. SeiOkami 3471 08.10.21 10:21 Сейчас в теме
(15) если точнее, то ВсеФункции - это форма.
В платформе есть зашитые обработки - это те, что указаны в публикации.
А есть формы. Их намного больше. Например, та же "О программе" - это форма.
Но как их подменить пока неизвестно. Точнее, есть способ - подменить его в файлах платформы. Но это уже слишком сурово и скорее всего не совсем легально 😅
18. Evil Beaver 8160 08.10.21 10:23 Сейчас в теме
(17) На ИС тоже писалось, как подменять формы, но это, если не изменяет память, правка файлов ресурсов в каталоге платформы. Там контейнерный формат, как в CF
19. ixijixi 1828 08.10.21 11:09 Сейчас в теме
22. artbear 1556 08.10.21 12:43 Сейчас в теме
(15) Так история для этого есть.
я ей пользуюсь, если помню, что не так давно открывал
20. Evg-Lylyk 4724 08.10.21 12:03 Сейчас в теме
Спасибо, хорошая работа
В 20 платформе появилось много новых обработок, хотелось бы чтобы была поддержка
Пример доработки конструктора запросов https://infostart.ru/1c/articles/1278855/
improg; artbear; +2 Ответить
21. SeiOkami 3471 08.10.21 12:14 Сейчас в теме
(20) интересно, посмотрю 20ую и добавлю новые обработки.

Но, кстати, забыл в статье упоминуть, что при появлении новых платформенных обработок, их можно вручную добавить в подсистему. Для этого просто нужно создать элемент справочника Платформенные обработки и указать ключевое имя. Далее при обновлении версии они будут учитывать и добавленную обработку
frkbvfnjh; Evg-Lylyk; artbear; +3 Ответить
23. Evg-Lylyk 4724 21.10.21 13:46 Сейчас в теме
(15) Как вариант можно добавить объект в избранное
24. SeiOkami 3471 09.12.21 17:14 Сейчас в теме
Выложил новую версию расширения по подмене "встроенных" в платформу обработок.

• Добавлены новые обработки из платформы 8.3.20 (9 шт)

• В новой версии платформы изменили внутренние имена обработок. Поэтому, теперь в расширении хранится список имен. Например, Поиск ссылок на объект: StandardFindByRef и StandardFindByReference.

• Добавлено автоматическое обновление версий обработок при старте сеанса. Происходит один раз на каждую версию платформы. Т.е. при первоначальной установке расширения и последующих обновлениях платформы
25. sasha_r 28.12.22 16:23 Сейчас в теме
"назойлевый " пишется как " назойливый "

спасибо за статью!
26. Светлый ум 406 30.06.23 10:03 Сейчас в теме
27. Alexwarsis 10.08.23 12:17 Сейчас в теме
а как то можно достучаться до extobj из некоторый платформенных обработок? типо той же блокировки? что бы к примеру разблокировать нужный тебе объект кодом, а не интерактивно?
Оставьте свое сообщение