При обновлении платформы 1С:Предприятие на некоторые версии ветки 8.3.10 (в частности, 8.3.10.2252) пользователи и администраторы сталкиваются с неприятным поведением: в журнале регистрации при попытке открыть документ или справочник двойным кликом по ячейке ничего не происходит. В колонке Данные вместо привычной гиперссылки отображается многоточие (...), а переход к объекту базы данных становится недоступен.
Разберем причины такого поведения платформы и рассмотрим подробные варианты решения данной проблемы.
Проанализируем технические предпосылки, вызвавшие данную неполадку:
1Cv8.lgd). Для оптимизации быстродействия и отрисовки тяжелых списков платформа применяет отложенное чтение данных. В ряде сборок разыменование ссылок на лету отключено, из-за чего в системном окне не формируется интерактивный элемент управления ссылкой.ЗаписьЖурналаРегистрации(), но в параметрах не передано явное строковое представление объекта, платформа при оптимизированном чтении не может корректно сформировать ссылку в интерфейсе.В конфигурациях на обычных формах (таких как Управление торговым предприятием, Управление торговлей 10.3, Управление производственным предприятием) предусмотрена собственная интерфейсная обработка для просмотра журнала регистрации. В отличие от стандартного окна платформы, обработка использует программные методы выгрузки и принудительно открывает форму объекта.
Рассмотрим по шагам, как запустить и использовать эту обработку:
Если в конфигурации отсутствует типовая обработка или требуется универсальный инструмент администратора, разберем создание и применение внешней обработки журнала регистрации.
В таких обработках получение данных выполняется методом глобального контекста ВыгрузитьЖурналРегистрации() в таблицу значений. При обработке события выбора ячейки таблицы пишется следующий код:
Процедура ТаблицаЖурналаВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
// Проверяем наличие данных в текущей строке таблицы
Если ЗначениеЗаполнено(ВыбраннаяСтрока.Данные) Тогда
// В обычном приложении вызываем открытие ссылки
ОткрытьЗначение(ВыбраннаяСтрока.Данные);
ИначеЕсли ЗначениеЗаполнено(ВыбраннаяСтрока.ПредставлениеДанных) Тогда
Сообщить("Объект удален или не является ссылочным типом: " + ВыбраннаяСтрока.ПредставлениеДанных);
КонецЕсли;
КонецПроцедуры
Если база работает в режиме управляемого приложения, вместо ОткрытьЗначение() вызывается асинхронный платформенный метод ПоказатьЗначение().
Посмотрим на частую ошибку разработчиков при логировании действий пользователей. Если при вызове метода ЗаписьЖурналаРегистрации() передается только ссылка, но опускается строковое представление, новые механизмы платформы могут не отобразить ссылку в журнале.
Разберем пример корректной записи произвольного события:
ПараметрыЗаписи = Новый Структура;
СсылкаНаДокумент = ДокументОбъект.Ссылка;
// Явно формируем строковое представление объекта
СтроковоеПредставление = Строка(СсылкаНаДокумент);
ЗаписьЖурналаРегистрации(
"ПроведениеДокумента",
УровеньЖурналаРегистрации.Информация,
СсылкаНаДокумент.Метаданные(),
СсылкаНаДокумент,
"Документ успешно перепроведен",
РежимЗаписиЖурналаРегистрации.Нерегистрируемый,
СтроковоеПредставление
);
Явная передача строкового представления гарантирует, что журнал регистрации свяжет метаданные с текстовым представлением и ссылкой даже в оптимизированном режиме чтения.
Поскольку проблема связана с ошибками конкретных сборок ветки 8.3.10 в толстом клиенте, рекомендуется выполнить следующие действия:
1Cv8.lgd приводит к задержкам при разыменовании ссылок. Откроем базу в режиме Конфигуратор, перейдем в меню Администрирование — Настройка журнала регистрации и нажмем кнопку Сократить, удалив устаревшие события.