Как исправить ошибку «Тип не определен (ДокументСсылка.ПроизвольныйЭД)» в БГУ 1.0 после обновления

Программист 1С v8.3 (Обычные формы) Бухгалтерский учет Сфера услуг, туризм и социальный сектор
← На главную

При обновлении конфигурации 1С:Бухгалтерия государственного учреждения 1.0 (особенно на релизы версии 1.0.51.х и выше) многие пользователи сталкиваются с критической ошибкой, которая блокирует работу практически со всеми документами системы, такими как Услуги сторонних организаций или Покупка материалов. Текст ошибки обычно выглядит следующим образом: {ОбщийМодуль.ЭлектронныеДокументыСлужебныйВызовСервера.Модуль(6291)}: Тип не определен (ДокументСсылка.ПроизвольныйЭД). Проанализируем причины возникновения этой проблемы и разберем по шагам методы её решения.

Выясним причину возникновения ошибки

Прежде всего, разберем ситуацию с технической стороны. Объект ПроизвольныйЭД (Произвольный электронный документ) является частью подсистемы Электронного документооборота (ЭДО). Даже если ваше учреждение не использует обмен электронными документами, программный код типовых конфигураций (включая БГУ 1.0 и БП 2.0) содержит процедуры инициализации этой подсистемы при открытии форм обычных документов.

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

  1. Конфликт кэша метаданных: Локальный кэш на компьютере пользователя хранит устаревшую структуру конфигурации, где данный объект еще существовал в старом виде или под другим идентификатором.
  2. Изменение состава Библиотеки электронных документов (БЭД): В новых релизах объект ПроизвольныйЭД мог быть заменен на ЭлектронныйДокументВходящий или ЭлектронныйДокументИсходящий, но старые ссылки в коде продолжают к нему обращаться.
  3. Несовместимость версии платформы: Использование версий платформы 8.3.10 или 8.3.11 с конфигурациями, находящимися в режиме совместимости с более ранними версиями, иногда приводит к некорректной работе функции Тип().

Решение 1: Полная очистка локального кэша (самый эффективный метод)

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

Выполним следующие действия:

  1. Закроем все сеансы работы с базой данных 1С.
  2. Откроем окно запуска 1С:Предприятия.
  3. Выберем проблемную информационную базу в списке.
  4. Нажмем кнопку Удалить. Не беспокойтесь, данные в базе останутся на месте, мы удаляем только ссылку на неё из списка и связанные с этой ссылкой временные файлы.
  5. Нажмем кнопку Добавить и заново пропишем путь к базе данных.
  6. Запустим базу и проверим работу документов.

При повторном добавлении базы в список платформа создаст новую папку для кэша с уникальным идентификатором, что заставит систему заново считать актуальную структуру метаданных из файла 1Cv8.1CD (или с сервера SQL) и ошибка Тип не определен исчезнет.

Решение 2: Подбор стабильной версии платформы «1С:Предприятие»

Иногда корень проблемы кроется в поведении конкретной сборки платформы. Разберем, какие версии платформы 8.3 демонстрировали стабильную работу с релизом БГУ 1.0.51:

Если очистка кэша не помогла, попробуем запустить базу на платформе версии 8.3.9. Это можно сделать, установив нужную версию и указав её в настройках запуска информационной базы (поле «Версия платформы»).

Решение 3: Проверка логической целостности конфигурации

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

Выполним процедуру проверки:

  1. Запустим 1С в режиме Конфигуратор.
  2. Перейдем в меню Конфигурация — Проверка конфигурации.
  3. Установим галочку Проверка логической целостности конфигурации.
  4. Нажмем «Выполнить».

Эта процедура заставляет систему пересчитать внутренние ссылки на типы данных. Если система обнаружит отсутствие типа ПроизвольныйЭД, на который ссылается общий модуль, она выведет сообщение об ошибке. В этом случае может потребоваться ручное исправление кода в общем модуле, например, добавление проверки на существование типа:


Если ТипЗнч(СсылкаНаВладельца) = Тип("ДокументСсылка.ПроизвольныйЭД") Тогда
    // Обработка логики
КонецЕсли;

Заменим данный участок кода на более безопасную конструкцию, предварительно проверив наличие метаданных через функцию Метаданные.Документы.Найти("ПроизвольныйЭД").

Решение 4: Отключение фоновых заданий ЭДО

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

Попробуем временно отключить эти задания, если они вызывают ошибку при фоновом выполнении, что в свою очередь «вешает» сеанс пользователя при попытке обращения к общим модулям.

Дополнительные рекомендации по обновлению

Рассмотрим ситуацию, когда обновление объектов требуется выполнить программно. Существует стандартная обработка «Обновление информационных параметров» (или аналогичные процедуры в составе БСП). Если после обновления релиз требует выполнения дополнительных процедур, запустим их в монопольном режиме.

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

Подведем итог: в 90% случаев проблему решает удаление базы из списка и её повторное добавление, что полностью обновляет локальные временные файлы и восстанавливает корректную работу типизации объектов в 1С:Предприятии 8.3.

← На главную