Почему не работает поиск в меню Все функции и как починить Ctrl + Break в 1С:Предприятие 8.3.12

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Разбираем проблему поиска в окне «Все функции»

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

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

  1. Использование сочетания Ctrl + F. Теперь это единственный штатный способ поиска. Находясь в окне Все функции, необходимо нажать Ctrl + F. Появится стандартная строка поиска, в которую нужно ввести наименование объекта. Это не баг, а изменение логики работы платформы, направленное на унификацию интерфейса между тонким, веб-клиентом и мобильными приложениями.
  2. Переход к «Функциям для технического специалиста». В более современных релизах (8.3.15+) этот режим был переименован. Там строка поиска встроена в само окно по умолчанию и работает как динамический фильтр: дерево метаданных сокращается, оставляя только подходящие под строку поиска узлы.

Если же стандартный поиск через Ctrl + F кажется вам неудобным, разберем вариант создания собственного расширения для замены этого функционала. Проанализируем программный подход к решению задачи.

Создание альтернативного окна поиска через расширение

Рассмотрим вариант реализации собственного дерева метаданных с удобным поиском. Один из продвинутых способов — использование недокументированных ресурсов платформы. Для этого мы можем прочитать файл локализации, который содержит структуру меню. Посмотрим на пример кода, который позволяет считать данные из ресурсов платформы:


Процедура ИнициализироватьДеревоМетаданных()
    ПутьКРесурсу = КаталогПрограммы() + "mngbase_ru.res";
    ТекстовыйДокумент = Новый ТекстовыйДокумент;
    Попытка
        ТекстовыйДокумент.Прочитать(ПутьКРесурсу, КодировкаТекста.UTF8);
        // Выполняем поиск процедур создания дерева
        ТекстПроцедуры = НайтиТекстПроцедурыВРесурсе(ТекстовыйДокумент, "Procedure FillTree(Row, TableRows)");
        // Здесь можно программно выполнить код или воссоздать структуру метаданных
    Исключение
        Сообщить("Файл ресурсов не найден или недоступен.");
    КонецПопытки;
КонецПроцедуры

Однако, использование недокументированных функций (чтение res-файлов) сопряжено с рисками при обновлении платформы. Более надежным методом будет использование объекта Метаданные для ручного заполнения дерева значений и привязка этого дерева к глобальной команде, вызываемой по горячей клавише (например, F12).

Исправляем работу сочетания клавиш Ctrl + Break

Вторая проблема куда более серьезна — невозможность прервать выполнение длительной операции или бесконечного цикла в Конфигураторе или в режиме Предприятия. Это действительно признанный баг платформы 8.3.12.1685. Выясним причину: ошибка связана с некорректным перехватом системных прерываний (ID ошибки 10202758). Особенно часто это проявляется при работе через RDP (удаленный рабочий стол).

Разберем способы решения по шагам:

  1. Обновление платформы. Это основной и самый правильный путь. Данная ошибка была исправлена в следующих релизах:
    • В ветке 8.3.12 — начиная с версии 8.3.12.1790.
    • В ветке 8.3.13 — начиная с версии 8.3.13.1649 (стабильно работает в 8.3.13.1690).
    • Во всех версиях начиная с 8.3.14.1565 и выше.
  2. Использование альтернативных клавиш. На некоторых клавиатурах (особенно ноутбучных) следует попробовать сочетания Fn + Ctrl + Break или Ctrl + Scroll Lock. Однако, если проблема в платформе 1685, это помогает редко.
  3. Программная защита от зависания. Если вы пишете код на этой версии платформы, рекомендуется временно внедрять в длительные циклы проверку на необходимость прерывания, хотя стандартный метод ОбработкаПрерыванияПользователя() в «глючных» релизах также может игнорировать нажатие клавиш.

Рекомендации по работе с платформой 8.3.12.1685

Проанализируем дополнительные нюансы данного релиза. Сообщество разработчиков отмечает, что версия 1685 отличается нестабильностью не только в интерфейсных вещах. Рассмотрим, на что еще стоит обратить внимание:

Очистка кэша: Часто «залипание» интерфейсных функций лечится полной очисткой кэша конфигурации. Выясним, как это сделать правильно. Удалите папки из каталогов:

%AppData%\1C\1cv8\
%LocalAppData%\1C\1cv8\

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

Проблема с RDP: Если вы работаете в терминальной сессии, убедитесь, что сочетание Ctrl + Break не перехватывается самой оболочкой удаленного стола. Иногда помогает переключение раскладки клавиатуры перед нажатием прерывания, но в случае с релизом 8.3.12.1685 единственным надежным выходом остается апгрейд платформы.

Заключение

Подведем итоги нашего анализа. Проблема с поиском во Всех функциях — это сознательное изменение интерфейса 1С. Привыкаем нажимать Ctrl + F. Проблема с Ctrl + Break — это критическая ошибка кода платформы. Если у вас нет возможности немедленно обновить серверную и клиентские части до версии 8.3.12.1790 или выше, будьте предельно осторожны при запуске тяжелых запросов и циклов, так как штатного способа их остановить без убийства процесса rphost или клиентского сеанса не существует.

← На главную