При работе в многопользовательском режиме с файловой базой данных «1С:Предприятие 8» технические специалисты и пользователи часто сталкиваются с загадочными сбоями. На одном компьютере программа функционирует без нареканий, а на втором — при попытке открыть документы Реализация (акты, накладные) или Поступление (акты, накладные) система внезапно аварийно завершает работу и выдает ошибку:
{ОбщийМодуль.ОбменСКонтрагентами.Модуль(745)}: Метод объекта не обнаружен (ПравоВыполненияОбменаДокументами)
В этой статье мы подробно разберем, почему возникает этот сбой, проанализируем внутренние механизмы платформы 1С, приводящие к нему, и рассмотрим по шагам методы его гарантированного устранения.
Для начала проанализируем ситуацию и обратимся к программному коду конфигурации, на котором спотыкается система. Ошибка происходит в общем модуле ОбменСКонтрагентами. Посмотрим на пример кода, вызывающий сбой:
ЕстьПодсистемаБизнесСеть = ОбщегоНазначения.ПодсистемаСуществует("ЭлектронноеВзаимодействие.БизнесСеть");
ЕстьПравоОбменаБизнесСеть = Ложь;
Если ЕстьПодсистемаБизнесСеть Тогда
МодульБизнесСеть = ОбщегоНазначения.ОбщийМодуль("БизнесСеть");
ЗначениеФОИспользоватьОбменБизнесСеть = МодульБизнесСеть.ИспользоватьОбменБизнесСеть();
ЕстьПравоОбменаБизнесСеть = МодульБизнесСеть.ПравоВыполненияОбменаДокументами();
Иначе
ЗначениеФОИспользоватьОбменБизнесСеть = Ложь;
КонецЕсли;
Платформа успешно определяет, что подсистема БизнесСеть существует в конфигурации, и заходит внутрь условия Если ЕстьПодсистемаБизнесСеть Тогда. Однако при попытке вызвать экспортный метод ПравоВыполненияОбменаДокументами() из общего модуля БизнесСеть происходит аварийный останов.
Почему это происходит только на одном из компьютеров, если база данных общая? Дело в локальном кэше метаданных конфигурации. Когда база данных работает в сетевом режиме (например, через общую сетевую папку по протоколу SMB), каждый клиентский компьютер создает локальные копии скомпилированных модулей конфигурации на своем жестком диске. Это необходимо для ускорения запуска и работы программы.
Если базу данных обновили (например, с релиза 3.0.60.46 до более нового), на главном компьютере кэш обновился корректно. На втором же компьютере сетевая платформа 1С не получила сигнал об изменении конфигурации и продолжила использовать старые версии скомпилированных файлов из своего локального кэша, в которых метод ПравоВыполненияОбменаДокументами() еще не был описан как экспортный или отсутствовал вовсе. Произошла классическая рассинхронизация кэша.
Рассмотрим подробнее четыре эффективных решения этой проблемы — от быстрых «пожарных» действий до фундаментальной настройки сетевой работы.
---
Самый простой и быстрый способ вернуть программу в рабочее состояние — заставить платформу 1С полностью пересобрать локальный кэш метаданных на проблемном компьютере. Разберем по шагам, как выполнить это правильно, так как обычное удаление базы из списка не всегда помогает на 100%.
%USERPROFILE%\AppData\Local\1C\1cv8%USERPROFILE%\AppData\Roaming\1C\1cv82c4ef69d-2b9a-41d3...). Смело удаляйте их. Это временные файлы кэша. Сама база данных при этом никак не пострадает.
/ClearCache. При каждом запуске программа будет принудительно очищать кэш вызовов.---
Иногда проблема кроется в ошибках конкретного релиза конфигурации. В релизе «1С:Бухгалтерия предприятия» 3.0.60.46 механизмы интеграции с 1С:Бизнес-сетью и ЭДО претерпевали изменения, что могло вызывать подобные коллизии.
Проанализируем ситуацию с настройками программного интерфейса:
Администрирование, выберите пункт Обмен электронными документами.Реализация и Поступление, предотвращая возникновение ошибки даже в случае проблем с кэшем.---
Работа с файловой базой 1С напрямую через общий сетевой ресурс (сетевую папку) по протоколу SMB — это устаревший метод, который постоянно будет генерировать ошибки динамического обновления, рассинхронизации кэша и приводить к медленной работе программы.
Выясним причину: при сетевом доступе к файлу 1cv8.1CD через общую папку СУБД 1С работает непосредственно на компьютере пользователя, прокачивая огромные объемы данных по локальной сети. Любой сбой сети (особенно при использовании Wi-Fi) или задержка чтения приводят к порче кэша или всей базы данных.
Разберем по шагам, как кардинально решить эту проблему с помощью публикации базы на бесплатном веб-сервере:
1cv8.1CD, установите веб-сервер. Мы рекомендуем использовать бесплатный и надежный веб-сервер Apache или встроенную службу Windows IIS (Internet Information Services).Администрирование -> Публикация на веб-сервере....buh_base), выберите установленный веб-сервер, укажите каталог для публикации и нажмите кнопку «Опубликовать». При необходимости программа сама предложит перезапустить веб-сервер для применения настроек.http://[Имя_Или_IP_Адрес_Сервера]/buh_base.После этого второй компьютер будет подключаться к базе по протоколу HTTP/HTTPS. Клиентское приложение больше не будет кэшировать тяжелые файлы метаданных локально, так как всю работу с конфигурацией возьмет на себя веб-сервер. Скорость работы программы вырастет в несколько раз, а проблема с кэшем исчезнет навсегда.
---
Если очистка кэша помогает лишь на короткое время, а затем ошибка Метод объекта не обнаружен возвращается снова, это сигнализирует о возможном физическом повреждении файла базы данных. Внутри таблицы конфигурации могли сбиться индексы.
Проанализируем процедуру восстановления базы:
1cv8.1CD в безопасное место перед проведением любых восстановительных работ.C:\Program Files\1cv8\[Версия_Платформы]\bin\).chdbfl.exe.1cv8.1CD, установите галочку «Исправлять обнаруженные ошибки» и нажмите кнопку «Выполнить».Администрирование -> Тестирование и исправление....Выполнение этих рекомендаций позволит полностью избавиться от системных ошибок при открытии документов, ускорит работу программы 1С и обеспечит надежность хранения данных вашей бухгалтерии.