Почему в журнале регистрации 1С перестали открываться документы и как это исправить?

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

При обновлении платформы 1С:Предприятие на некоторые версии ветки 8.3.10 (в частности, 8.3.10.2252) пользователи и администраторы сталкиваются с неприятным поведением: в журнале регистрации при попытке открыть документ или справочник двойным кликом по ячейке ничего не происходит. В колонке Данные вместо привычной гиперссылки отображается многоточие (...), а переход к объекту базы данных становится недоступен.

Разберем причины такого поведения платформы и рассмотрим подробные варианты решения данной проблемы.

Причины сбоя открытия ссылочных объектов

Проанализируем технические предпосылки, вызвавшие данную неполадку:

  1. Переход на новый формат журнала (SQLite 1Cv8.lgd). Для оптимизации быстродействия и отрисовки тяжелых списков платформа применяет отложенное чтение данных. В ряде сборок разыменование ссылок на лету отключено, из-за чего в системном окне не формируется интерактивный элемент управления ссылкой.
  2. Ошибки интерактивного интерфейса в ранних версиях 8.3.10. В толстом клиенте обычного приложения стандартное окно журнала регистрации платформы теряет контекст связывания клика мыши с метаданными конкретного документа.
  3. Особенности программной записи событий. Если события в журнал записываются программно с помощью метода ЗаписьЖурналаРегистрации(), но в параметрах не передано явное строковое представление объекта, платформа при оптимизированном чтении не может корректно сформировать ссылку в интерфейсе.

Способ 1. Использование встроенной конфигурационной обработки

В конфигурациях на обычных формах (таких как Управление торговым предприятием, Управление торговлей 10.3, Управление производственным предприятием) предусмотрена собственная интерфейсная обработка для просмотра журнала регистрации. В отличие от стандартного окна платформы, обработка использует программные методы выгрузки и принудительно открывает форму объекта.

Рассмотрим по шагам, как запустить и использовать эту обработку:

  1. Перейдем в главное меню программы: Операции — Обработки.
  2. В появившемся списке обработок найдем и откроем элемент Журнал регистрации.
  3. Установим необходимый интервал дат и параметры фильтрации.
  4. При просмотре записей через данную обработку двойной клик по строке события или ячейке с данными вызовет стандартный метод открытия формы документа.

Способ 2. Использование внешней обработки с прямым вызовом ОткрытьЗначение()

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

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


Процедура ТаблицаЖурналаВыбор(Элемент, ВыбраннаяСтрока, Колонка, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
    
    // Проверяем наличие данных в текущей строке таблицы
    Если ЗначениеЗаполнено(ВыбраннаяСтрока.Данные) Тогда
        // В обычном приложении вызываем открытие ссылки
        ОткрытьЗначение(ВыбраннаяСтрока.Данные);
    ИначеЕсли ЗначениеЗаполнено(ВыбраннаяСтрока.ПредставлениеДанных) Тогда
        Сообщить("Объект удален или не является ссылочным типом: " + ВыбраннаяСтрока.ПредставлениеДанных);
    КонецЕсли;
    
КонецПроцедуры

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

Способ 3. Корректное заполнение параметров при программной записи событий

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

Разберем пример корректной записи произвольного события:


ПараметрыЗаписи = Новый Структура;
СсылкаНаДокумент = ДокументОбъект.Ссылка;

// Явно формируем строковое представление объекта
СтроковоеПредставление = Строка(СсылкаНаДокумент);

ЗаписьЖурналаРегистрации(
    "ПроведениеДокумента",
    УровеньЖурналаРегистрации.Информация,
    СсылкаНаДокумент.Метаданные(),
    СсылкаНаДокумент,
    "Документ успешно перепроведен",
    РежимЗаписиЖурналаРегистрации.Нерегистрируемый,
    СтроковоеПредставление
);

Явная передача строкового представления гарантирует, что журнал регистрации свяжет метаданные с текстовым представлением и ссылкой даже в оптимизированном режиме чтения.

Способ 4. Обновление платформы и обслуживание журнала регистрации

Поскольку проблема связана с ошибками конкретных сборок ветки 8.3.10 в толстом клиенте, рекомендуется выполнить следующие действия:

  1. Обновить платформу. Выполним переход на более поздние стабильные версии технологической платформы 1С:Предприятие 8.3, где ошибка интерактивного взаимодействия с колонкой данных была исправлена разработчиками.
  2. Выполнить сжатие журнала регистрации. Большой объем файла 1Cv8.lgd приводит к задержкам при разыменовании ссылок. Откроем базу в режиме Конфигуратор, перейдем в меню Администрирование — Настройка журнала регистрации и нажмем кнопку Сократить, удалив устаревшие события.
← На главную