При обновлении конфигурации 1С:Бухгалтерия государственного учреждения 1.0 (особенно на релизы версии 1.0.51.х и выше) многие пользователи сталкиваются с критической ошибкой, которая блокирует работу практически со всеми документами системы, такими как Услуги сторонних организаций или Покупка материалов. Текст ошибки обычно выглядит следующим образом: {ОбщийМодуль.ЭлектронныеДокументыСлужебныйВызовСервера.Модуль(6291)}: Тип не определен (ДокументСсылка.ПроизвольныйЭД). Проанализируем причины возникновения этой проблемы и разберем по шагам методы её решения.
Прежде всего, разберем ситуацию с технической стороны. Объект ПроизвольныйЭД (Произвольный электронный документ) является частью подсистемы Электронного документооборота (ЭДО). Даже если ваше учреждение не использует обмен электронными документами, программный код типовых конфигураций (включая БГУ 1.0 и БП 2.0) содержит процедуры инициализации этой подсистемы при открытии форм обычных документов.
Рассмотрим подробнее механизм сбоя. При открытии формы документа система обращается к общему модулю ЭлектронныеДокументыСлужебныйВызовСервера. В коде выполняется проверка типа владельца или статуса версии через функцию Тип(). Если платформа не может сопоставить строковое представление типа ДокументСсылка.ПроизвольныйЭД с реальным объектом в метаданных, работа программы прерывается. Это происходит по нескольким причинам:
ПроизвольныйЭД мог быть заменен на ЭлектронныйДокументВходящий или ЭлектронныйДокументИсходящий, но старые ссылки в коде продолжают к нему обращаться.Тип().Как показывает практика и сообщения пользователей, самым быстрым и надежным способом устранения ошибки является полная очистка кэша конфигурации. Платформа 1С «запоминает» описания типов, и простое обновление конфигурации базы данных не всегда принудительно обновляет эти записи на стороне клиента.
Выполним следующие действия:
При повторном добавлении базы в список платформа создаст новую папку для кэша с уникальным идентификатором, что заставит систему заново считать актуальную структуру метаданных из файла 1Cv8.1CD (или с сервера SQL) и ошибка Тип не определен исчезнет.
Иногда корень проблемы кроется в поведении конкретной сборки платформы. Разберем, какие версии платформы 8.3 демонстрировали стабильную работу с релизом БГУ 1.0.51:
Если очистка кэша не помогла, попробуем запустить базу на платформе версии 8.3.9. Это можно сделать, установив нужную версию и указав её в настройках запуска информационной базы (поле «Версия платформы»).
Если конфигурация открыта для изменений (находится «на поддержке с возможностью редактирования»), проанализируем ситуацию через Конфигуратор. Возможно, в процессе обновления произошел сбой в таблице идентификаторов объектов.
Выполним процедуру проверки:
Эта процедура заставляет систему пересчитать внутренние ссылки на типы данных. Если система обнаружит отсутствие типа ПроизвольныйЭД, на который ссылается общий модуль, она выведет сообщение об ошибке. В этом случае может потребоваться ручное исправление кода в общем модуле, например, добавление проверки на существование типа:
Если ТипЗнч(СсылкаНаВладельца) = Тип("ДокументСсылка.ПроизвольныйЭД") Тогда
// Обработка логики
КонецЕсли;
Заменим данный участок кода на более безопасную конструкцию, предварительно проверив наличие метаданных через функцию Метаданные.Документы.Найти("ПроизвольныйЭД").
Даже если вы не используете ЭДО, система может пытаться выполнять регламентные задания, связанные с этой подсистемой. Проанализируем список активных заданий. Посмотрим через консоль заданий, нет ли процессов, инициирующих обращение к ПроизвольныйЭД. К таким заданиям относятся:
Извлечение текстов для поиска.Проверка новых электронных документов.Обмен с контролирующими органами.Попробуем временно отключить эти задания, если они вызывают ошибку при фоновом выполнении, что в свою очередь «вешает» сеанс пользователя при попытке обращения к общим модулям.
Рассмотрим ситуацию, когда обновление объектов требуется выполнить программно. Существует стандартная обработка «Обновление информационных параметров» (или аналогичные процедуры в составе БСП). Если после обновления релиз требует выполнения дополнительных процедур, запустим их в монопольном режиме.
Важно: Если вы используете доработанную конфигурацию, убедитесь, что при объединении метаданных объекты подсистемы Электронного документооборота не были случайно исключены из сборки. Ошибка Тип не определен однозначно указывает на физическое отсутствие объекта в пространстве имен ДокументСсылка или на блокировку доступа к нему со стороны платформы из-за поврежденного кэша.
Подведем итог: в 90% случаев проблему решает удаление базы из списка и её повторное добавление, что полностью обновляет локальные временные файлы и восстанавливает корректную работу типизации объектов в 1С:Предприятии 8.3.