После штатного обновления конфигурации «1С:Бухгалтерия предприятия 8.3» многие сталкиваются с неприятной ситуацией: при попытке открыть форму документа (например, «Реализация (акты, накладные, УПД)») программа внезапно выдает непредвиденную ошибку. В подробном отчете об ошибке можно увидеть следующий текст:
{ОбщийМодуль.ИнтерфейсДокументовЭДО.Модуль(419)}: Метод объекта не обнаружен (ИсточникиКомандПечати)
ScriptRuntimeError
ScriptUseError
Проанализируем эту ситуацию и разберем по шагам, как эффективно избавиться от сбоя и вернуть базу в рабочее состояние малой кровью.
Прежде чем приступать к исправлению, выясним причину такого поведения системы. Ошибка вида Метод объекта не обнаружен является классическим проявлением рассинхронизации программного кода. В нашем случае происходит конфликт между двумя фундаментальными подсистемами конфигурации: Библиотекой стандартных подсистем (БСП) и Библиотекой электронных документов (БЭД).
За взаимодействие этих механизмов отвечает общий модуль ИнтеграцияБСПБЭД. В новых релизах конфигурации разработчики 1С часто оптимизируют архитектуру, меняют, удаляют или переносят устаревшие функции. Так произошло и с методом ИсточникиКомандПечати. Новый код платформы требует актуальных алгоритмов, а из-за внутреннего сбоя система продолжает обращаться к старым методам, которых уже не существует в обновленной структуре. Рассмотрим основные факторы, почему это происходит.
Одной из самых частых причин описанного сбоя являются активные патчи — официальные расширения с исправлениями ошибок для предыдущих версий конфигурации. Если вы обновляете 1С «поверх» установленных патчей, старый код из такого расширения может перекрыть новый функционал основного релиза.
Сделаем следующее:
Если используется базовая (файловая) версия базы данных, нельзя исключать микроповреждения структуры файла 1Cv8.1CD. Выполним проверку базы специальной служебной утилитой.
bin установленной платформы (обычно это путь вида C:\Program Files\1cv8\8.3.xx.xxxx\bin) утилиту chdbfl.exe.Для ускорения работы платформа 1С кэширует скомпилированные модули конфигурации в системных папках пользователя (в каталогах AppData\Local и AppData\Roaming). Если в процессе обновления кэш не был корректно очищен, 1С продолжает вызывать старый код модуля ИнтеграцияБСПБЭД, что и вызывает ошибку отсутствия метода.
Часто обычная чистка кэша не дает результата. Рассмотрим подробнее, почему так происходит:
1cv8.exe, которые держат файлы открытыми.Именно поэтому решающим фактором в устранении ошибки является перезагрузка компьютера или сервера. Перезагрузка принудительно завершает все скрытые процессы 1С, снимает любые файловые блокировки. Сразу после перезагрузки следует удалить папки с кэшем 1С и запустить базу — в этот момент платформа сформирует чистый, актуальный кэш без следов старого кода.
Если после выполнения всех вышеописанных действий форма документа все еще не открывается, обратим внимание на внешние файлы. Поскольку сбой происходит в момент инициализации команд печати и электронного документооборота, проблема может быть спровоцирована подключенными внешними печатными формами или обработками заполнения.
Внешние формы, написанные программистами под старые стандарты БСП, могут конфликтовать с новыми алгоритмами вывода кнопок ЭДО на форму. Чтобы проверить эту гипотезу, временно отключите (снимите галочки активности) все внешние печатные формы, привязанные к документу «Реализация товаров и услуг». Если форма документа откроется без ошибок, потребуется адаптация внешних обработок под новые стандарты обновленного релиза.
Мы проанализировали ситуацию и выяснили, что ошибка с пропавшим методом ИсточникиКомандПечати — это следствие конфликта старого закэшированного кода или неактуальных патчей с новыми механизмами конфигурации. Как показывает практика, комплексное выполнение очистки базы от патчей, проверки утилитой тестирования файлов, чистки кэша и — что самое главное — перезагрузки компьютера гарантированно восстанавливает штатную работу 1С без потери данных.