При переходе на платформу версии 8.3.12.1685 и смежные релизы многие разработчики и администраторы столкнулись с неожиданным поведением системы. Традиционные методы работы, такие как быстрый поиск в окне метаданных и экстренное прерывание зависших циклов, внезапно перестали функционировать. В данной статье мы подробно разберем, являются ли эти изменения ошибками платформы или новой «фичей», а также найдем конкретные способы решения возникших трудностей.
Первая сложность, с которой сталкиваются пользователи, — это невозможность найти нужный объект метаданных (справочник, документ или отчет) простым набором первых букв его наименования в окне Все функции. Раньше фокус автоматически прыгал на подходящую строку, теперь же система никак не реагирует на ввод текста.
Проанализируем ситуацию: начиная с версии платформы 8.3.11, компания 1С начала планомерный переход к новой концепции интерфейса Такси. В рамках этой концепции стандартный Windows-поиск по спискам «по первым буквам» признан устаревшим и заменяется на полноценные механизмы фильтрации. Рассмотрим основные способы работы в новых реалиях:
Ctrl + F. Появится стандартная строка поиска, в которую нужно ввести наименование объекта. Это не баг, а изменение логики работы платформы, направленное на унификацию интерфейса между тонким, веб-клиентом и мобильными приложениями.Если же стандартный поиск через Ctrl + F кажется вам неудобным, разберем вариант создания собственного расширения для замены этого функционала. Проанализируем программный подход к решению задачи.
Рассмотрим вариант реализации собственного дерева метаданных с удобным поиском. Один из продвинутых способов — использование недокументированных ресурсов платформы. Для этого мы можем прочитать файл локализации, который содержит структуру меню. Посмотрим на пример кода, который позволяет считать данные из ресурсов платформы:
Процедура ИнициализироватьДеревоМетаданных()
ПутьКРесурсу = КаталогПрограммы() + "mngbase_ru.res";
ТекстовыйДокумент = Новый ТекстовыйДокумент;
Попытка
ТекстовыйДокумент.Прочитать(ПутьКРесурсу, КодировкаТекста.UTF8);
// Выполняем поиск процедур создания дерева
ТекстПроцедуры = НайтиТекстПроцедурыВРесурсе(ТекстовыйДокумент, "Procedure FillTree(Row, TableRows)");
// Здесь можно программно выполнить код или воссоздать структуру метаданных
Исключение
Сообщить("Файл ресурсов не найден или недоступен.");
КонецПопытки;
КонецПроцедуры
Однако, использование недокументированных функций (чтение res-файлов) сопряжено с рисками при обновлении платформы. Более надежным методом будет использование объекта Метаданные для ручного заполнения дерева значений и привязка этого дерева к глобальной команде, вызываемой по горячей клавише (например, F12).
Вторая проблема куда более серьезна — невозможность прервать выполнение длительной операции или бесконечного цикла в Конфигураторе или в режиме Предприятия. Это действительно признанный баг платформы 8.3.12.1685. Выясним причину: ошибка связана с некорректным перехватом системных прерываний (ID ошибки 10202758). Особенно часто это проявляется при работе через RDP (удаленный рабочий стол).
Разберем способы решения по шагам:
Fn + Ctrl + Break или Ctrl + Scroll Lock. Однако, если проблема в платформе 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 или клиентского сеанса не существует.