Недокументированное использование стандартных обработок из меню "Все функции".

09.02.18

Разработка - Механизмы платформы 1С

Рассмотрены возможности произвольного использования стандартных функций, вызываемых из меню платформы "Все функции" - "Стандартные" (Активные пользователи, Журнал регистрации, Поиск ссылок на объект, Проведение документов ...).

В платформе 1С предприятие есть очень удобные стандартные функции:

1. Активные пользователи;
2. Журнал регистрации;
3. Поиск ссылок на объект;
4. Проведение документов;
5. Удаление помеченных объектов;
6. Управление внешними источниками данных;
7. Управление итогами;
8. Управление полнотекстовым поиском;
9. Управление расширениями конфигурации;

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

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

Рассмотрим несколько способов их использования на примере стандартной обработки "Поиск ссылок на объекты".

1. Вызов стандартной обработки из любого пункта меню. Обработка "Поиск ссылок на объекты" достаточно удобна и может пригодиться обычным пользователям. Однако не всегда возможно давать им доступ к меню "Все функции" из-за ограниченного уровня доступа пользователя. В этом случае можно добавить вызов обработки из стандартного меню.

Добавляем в конфигурацию новую команду и в модуле команды прописываем текст:

&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
    ПодключитьВнешнююОбработкуНаСервере();
    ОткрытьФорму("ВнешняяОбработка.StandardFindByRef.Форма");
КонецПроцедуры

&НаСервере
Процедура ПодключитьВнешнююОбработкуНаСервере()
    ВнешниеОбработки.Подключить("v8res://mngbase/StandardFindByRef.epf", "StandardFindByRef", false);
КонецПроцедуры

При выборе этой команды у пользователя запустится обработка "Поиск ссылок на объекты" из обычного меню. 

2. Подмена стандартной обработки. Допустим, по какой-то причине нас не устраивает стандартная обработка. В этом случае мы можем ее подменить любой другой. Выполняем на сервере следующий код (например в "ПриЗапуске()" конфигурации) и после этого из стандартного меню "Все функции" - "Поиск ссылок на объект" будет вызываться наша собственная внешняя либо встроенная в конфигурацию обработка. 

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

3. Изменение стандартной обработки. Стандартные обработки очень удобны, однако иногда в них не хватает какой-то мелочи. Например, нам может понадобиться добавить в обработку "Поиск ссылок на объект" фильтр для поиска только по документам. Можно, конечно, написать такую же обработку самостоятельно, а можно просто взять встроенную и немного изменить. Чтобы получить встроенную в виде отдельно файла, выполняем код:

КопироватьФайл("v8res://mngbase/StandardFindByRef.epf","C:\ВнешняяОбработка.epf");

Теперь у нас есть стандартный 1С-ный файл "C:\ВнешняяОбработка.epf" с встроенной обработкой. Его можно открыть в конфигураторе и внести любые нужные изменения. В дальнейшем модифицированную обработку можно использовать просто как внешнюю либо подключить обратно вместо встроеной.

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

1. Активные пользователи - "v8res://mngbase/StandardActiveUsers.epf";
2. Журнал регистрации - "v8res://mngbase/StandardEventLog.epf";
3. Поиск ссылок на объект - "v8res://mngbase/StandardFindByRef.epf";
4. Проведение документов - "v8res://mngbase/StandardDocumentsPosting.epf";
5. Удаление помеченных объектов - "v8res://mngbase/StandardDeleteMarkedObjects.epf";
6. Управление внешними источниками данных - "v8res://mngbase/StandardExternalDataSourcesManagement.epf";
7. Управление итогами - "v8res://mngbase/StandardTotalsManagement.epf";
8. Управление полнотекстовым поиском - "v8res://mngbase/StandardFullTextSearchManagement.epf";
9. Управление расширениями конфигурации - "v8res://mngbase/StandardExtensionsManagement.epf";
10. upd. с 8.3.11. Управление системой взаимодействия  - "v8res://mngbase/StandardECSRegister.epf"

И еще одна обработочка. Не входит в стандартные, но тоже полезна для ознакомления.

11. Конструктор запросов на управляемых формах - "v8res://mngbase/QueryWizard.epf";

Не стоит забывать, что такое использование стандартных функций является недокументированным. Т.е. на текущий момент на платформах 8.2 - 8.3.6 такие варианты вызовов работают вполне корректно. Но могут перестать работать в любой момент, поэтому злоупотреблять ими не стоит. 

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

 

Активные пользователи Журнал регистрации Поиск ссылок на объект Проведение документов Удаление помеченных объектов Управление внешними источниками данных Управление итогами Управление полнотекстовым поиском Управление расширениями конфигурации

См. также

1С-ная магия

Механизмы платформы 1С Бесплатно (free)

Язык программирования 1С содержит много нюансов и особенностей, которые могут приводить к неожиданным для разработчика результатам. Сталкиваясь с ними, программист начинает лучше понимать логику платформы, а значит, быстрее выявлять ошибки и видеть потенциальные узкие места своего кода там, где позже можно было бы ещё долго медитировать с отладчиком в поисках источника проблемы. Мы рассмотрим разные примеры поведения кода 1С. Разберём результаты выполнения и ответим на вопросы «Почему?», «Как же так?» и «Зачем нам это знать?». 

06.10.2023    14542    SeiOkami    46    

111

Дефрагментация и реиндексация после перехода на платформу 8.3.22

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Начиная с версии платформы 8.3.22 1С снимает стандартные блокировки БД на уровне страниц. Делаем рабочий скрипт, как раньше.

14.09.2023    8848    human_new    27    

67

Валидация JSON через XDTO (включая массивы)

WEB-интеграция Универсальные функции Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    5415    YA_418728146    6    

118

Внешние компоненты Native API на языке Rust - Просто!

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

20.08.2023    5024    sebekerga    54    

88

Все скопируем и вставим! (Буфер обмена в 1С 8.3.24)

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Рассмотрим новую возможность 8.3.24 и как её можно эффективно использовать

27.06.2023    11006    SeiOkami    24    

90

Методы работы с универсальным отчетом в подсистеме "Варианты отчетов" на БСП

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данной статье рассмотрим типовую подсистему "Варианты отчетов" БСП на примере применения в универсальном отчете любой современной конфигурации.

30.05.2023    3994    quazare    4    

85

Расширение глобального поиска 1С, или Глобальный поиск "на максималках"

Механизмы платформы 1С Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Мало кто знает, что поле "Глобального поиска" в 1С можно доработать. Добавить свои варианты поиска, кнопочки в результатах и даже целые пользовательские меню.

27.03.2023    6043    SeiOkami    10    

133

Версионирование объектов VS История данных

Механизмы платформы 1С Платформа 1С v8.3 Бесплатно (free)

Давайте разберемся в механизме «История данных» и поэкспериментируем для наглядности. Сравним «Версионирование объектов» и «Историю данных».

06.03.2023    13168    dsdred    48    

154
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
93. daho 8 14.02.17 14:09 Сейчас в теме
(92) Да, спасибо.. Так в принципе и мыслил. Думал может кто уже наковырял. )
94. Aphanas 92 01.03.17 15:47 Сейчас в теме
Коллеги, подскажите кто знает, возможно ли выдернуть подобным образом обработку конструктора запроса?
95. mszsuz 308 05.03.17 22:34 Сейчас в теме
(94) Да. Именно она и упомянута в описании под номером 10.
96. fishca 1252 28.03.17 16:48 Сейчас в теме
666 звезд набрано
97. Aprobator 21.06.17 10:07 Сейчас в теме
Обалденно, у меня просто других слов нет )
98. sss999 48 24.07.17 08:41 Сейчас в теме
Это ты сама написала?
99. vladismi 168 14.09.17 10:27 Сейчас в теме
Полезно. Запомним.
100. vs84 09.11.17 15:39 Сейчас в теме
А можно выдернуть форму поиска в динсписке, которая по Ctrl+F?
101. jif 20.11.17 17:47 Сейчас в теме
Добрый день, а которая Shift+F11 ? Спасибо
103. ekaruk 4834 11.12.17 17:21 Сейчас в теме
(101) Это уже к стандартным не относится. Про неё не знаю :(
102. b-dm 171 11.12.17 16:51 Сейчас в теме
Оригинальный и нестандартный подход.
104. JohnyDeath 301 09.02.18 08:17 Сейчас в теме
Обработку по просмотру встроенной истории из 8.3.11 никто не находил?
romankoav; +1 Ответить
105. ekaruk 4834 09.02.18 11:07 Сейчас в теме
(104) А в каком релизе она появилась?
Вроде только "Управление системой взаимодействия" добавилось.
106. JohnyDeath 301 09.02.18 12:28 Сейчас в теме
(105) там как-то мутно. В файлике ресурсов нет прям отдельной обработки, но есть код формы (скорее всего она как бы "общая форма" получается)
Я смотрю в платформе 8.3.11.2867
107. ekaruk 4834 09.02.18 13:01 Сейчас в теме
(106) Да, похоже, это общая форма.
Называется DataHistoryVersions.lf
Где-то был пост о том, как эти формы преобразовывать в нормальный читабельный вид. Но не могу сейчас найти.
108. JohnyDeath 301 09.02.18 14:14 Сейчас в теме
(107) Если найдешь - поделись, а то мы уже начинаем свою рисовать
109. VKislitsin 931 14.03.18 15:42 Сейчас в теме
ZhokhovM; sashocq; romankoav; Огонек; JohnyDeath; +5 Ответить
110. ekaruk 4834 14.03.18 18:46 Сейчас в теме
(109) Да, вторая ссылка как раз оно.
Работа с формами платформы.
ZhokhovM; romankoav; +2 Ответить
129. Leon29 13.10.20 16:11 Сейчас в теме
(104) Я искал и нашёл неожиданно для себя здесь: в конфигурации общие формы - добавить. В списке выбрать нужную форму истории, например, "Форма истории изменений истории данных" и готово.
112. RoleXX 31.05.18 17:13 Сейчас в теме
В платформе явно вшиты и обработки с обычными формами (самописная конфа на обычных формах и через меню вызываются эти обработки с обычными формами) вопрос только где их искать...
113. ekaruk 4834 04.06.18 15:12 Сейчас в теме
(112) Может, это те же самые? Не проверяла, может в этих два варианта форм.
114. Alex10166 28 24.07.18 14:54 Сейчас в теме
Круто!!!!!
115. unknown181538 142 13.10.18 20:02 Сейчас в теме
С настройкой панели навигации можно что-нибудь сделать? отключить в частности?
116. unknown181538 142 13.10.18 23:27 Сейчас в теме
(115)
В ПриНачалеРаботыСистемы:
ЭА_Сервер.ПереопределитьНастройкуНавигации();



В модуле ЭА_Сервер:
Процедура ПереопределитьНастройкуНавигации()Экспорт

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

КонецПроцедуры


Что-то не подменяется форма
118. AlexO 135 26.01.19 14:41 Сейчас в теме
Я, ребята, может и ошибаюсь, или все эти "стандартные обработки, вшитые в платформу, и с таким трудом вытащенные" - выкладываются на диске ИТС? И их смело можно оттуда взять?
119. nomadon 365 27.01.19 07:25 Сейчас в теме
Форму блокировки приложения находили?
120. Simonov_NPM 04.09.19 08:07 Сейчас в теме
Подскажите как вытащить обработку проведения с обычной формой, вытаскиваю "StandardDocumentsPosting.epf", она на управляемых.
121. ekaruk 4834 04.09.19 09:19 Сейчас в теме
(120) Подозреваю, что она существует в платформе только в варианте на управляемых формах.
122. Simonov_NPM 04.09.19 09:43 Сейчас в теме
(121) Все верно, в файле mngbase_ru.res лежат управляемые, обычные (судя по содержимому) лежат в basicui_ru.res, вот только как их от туда вытащить. Пробовал
КопироватьФайл("v8res://basicui/StandardFindByRef.epf","C:\ВнешняяОбработка.epf");
, но там нет строк с расширением epf. Все что удалось вытащить так это форму )))
КопироватьФайл("v8res://basicui/DocumentsPostingDlg.f","D:\Новая папка\DocumentsPosting81.epf"); и все на этом.
tormozit; +1 Ответить
123. ZhokhovM 811 08.11.19 00:11 Сейчас в теме
В публикации добавлена ссылка на второисточник.
Недокументированное использование стандартных форм
Реализовал преобразование стандартных обычных форм без модуля.
124. TreeDogNight 22 31.01.20 15:14 Сейчас в теме
Можно ли таким образом выгрузить стандартную форму Обсуждений Системы взаимодействий?
125. andryandry 94 26.02.20 09:16 Сейчас в теме
подскажите, а как получить двоичные данные встроенной обработки? хочу заменить стандартный поиск в расширении конфигурации, предварительно сохранив в нем измененную форму обработки
126. user1279577 18.03.20 13:40 Сейчас в теме
Про обычные формы и не только есть отдельная публикация: https://infostart.ru/public/538300/
127. Trise 139 09.04.20 08:26 Сейчас в теме
Подскажите, может знает кто как вытащить форму справки... Прям так и охота туда всяких кнопочек понавтыкат=))
130. adva 45 24.12.20 16:22 Сейчас в теме
А нельзя случайно открыть программно Все функции?

p.s. Кажется нашел в ответах выше, попробую
131. androidT1C 76 25.02.21 12:46 Сейчас в теме
8.3.12

Делаю:
КопироватьФайл("v8res://mngbase/StandardECSRegister.epf", "D:\StandardECSRegister.epf");

Результат:
{ВнешняяОбработка.КопироватьФайл_v8res_mngbase.Форма.Форма.Форма(14)}: Ошибка при вызове метода контекста (КопироватьФайл)
КопироватьФайл("v8res://mngbase/StandardECSRegister.epf", "D:\StandardECSRegister.epf");
по причине:
Ошибка копирования файлов
по причине:
Каталог не обнаружен 'v8res://mngbase/StandardECSRegister.epf'

Почему? Аналогичная ошибка с StandardFindByRef и другими.
Что на клиенте, что на сервере.
132. M_Volkov 5 14.04.21 09:23 Сейчас в теме
При выборе константы из "Все функции" отрывается форма константы. Можно ли ее как-то достать, посмотреть, доработать для типа ХранилищеЗначения?
135. mszsuz 308 07.07.21 11:49 Сейчас в теме
в 8.3.20 прикрыли лавочку.
136. tormozit 7074 07.07.21 12:00 Сейчас в теме
(135) Где доказательство?
137. mszsuz 308 07.07.21 12:04 Сейчас в теме
(136) Поторопился. Просто переименовали некоторые, н-р:
StandardFindByRef -> StandardFindByReference
138. mszsuz 308 07.07.21 12:10 Сейчас в теме
StandardExtensionsManagement -> StandardConfigurationExtensionsManagement
139. Necessitudo 23.11.21 14:29 Сейчас в теме
Управление серверами - "StandartServersControl"
140. alexander-lubich 24 31.05.22 00:04 Сейчас в теме
Файл не обнаружен 'v8res://mngbase/StandardActiveUsers.epf' ресурс не найден платформа 8.3.20.1789

видимо обработки теперь называются по другому или вызывать их надо иначе
141. alexander-lubich 24 31.05.22 00:17 Сейчас в теме
(137) да , я тоже . работает в новых платформах
имя другое (Поторопился. Просто переименовали некоторые, н-р:
StandardFindByRef -> StandardFindByReference)

тут раскрыто https://infostart.ru/public/538300/
142. ZhokhovM 811 04.08.22 09:49 Сейчас в теме
на всякий если вдруг переименовали имена файлов ресурса возьмите к примеру публикацию
https://infostart.ru/public/1691321/
выбрать файл mngbase_ru.res и нажать "Распаковать", в папке распаковки будут распакованы файлы-контейнеры. Приложил скриншот.
Прикрепленные файлы:
143. user1395119 01.09.22 13:02 Сейчас в теме
Добрый день!

Спасибо, работает.
144. user1486489 15.12.22 08:39 Сейчас в теме
Добрый день! Спасибо) Спустя столько лет все еще актуально!
145. user958974 30.01.23 17:52 Сейчас в теме
Коллеги, подскажите, а какой адресс нужно вставить в
ВнешниеОбработки.Подключить("v8res://mngbase/StandardFindByRef.epf", "StandardFindByRef", false);

Что бы таким образом открывались "Функции для технического специалиста" (Все функции)?
147. user958974 31.01.23 16:05 Сейчас в теме
Коллеги а какое наименование у "Все функции" ? Что нужно подставить в "ВнешниеОбработки.Подключить(" первым параметром , что бы подключить именно "Все функции" и потом открыть?
149. Alexwarsis 11.04.23 13:42 Сейчас в теме
// Инициализация внешнего объекта
&AtClient
Procedure Init(extObject)
HelpExtObj = extObject;
EndProcedure

А можно как-то получить extObject, никто не знает?
Оставьте свое сообщение