С выходом обновления конфигурации «1С:Бухгалтерия предприятия» (начиная с релиза 3.0.170) пользователи и администраторы могут столкнуться с критической ошибкой на этапе старта программы: «Метод объекта не обнаружен (ИспользуетсяНеразрешенноеВзаимодействиеСЛидами)». При этом проверка конфигурации показывает, что общий модуль и сам метод физически присутствуют в дереве метаданных, а необходимые флаги компиляции выставлены правильно.
Проанализируем природу этой ошибки, разберем программный контекст вызова и рассмотрим пошаговые способы восстановления работоспособности информационной базы.
Разберем, в какой момент и почему инициируется исключительная ситуация. Ошибка возникает на этапе инициализации параметров сеанса тонкого клиента. В общем модуле ОбщегоНазначенияБП выполняется процедура подготовки параметров работы:
// См. ОбщегоНазначенияПереопределяемый.ПриДобавленииПараметровРаботыКлиентаПриЗапуске
Процедура ПриДобавленииПараметровРаботыКлиентаПриЗапуске(Параметры) Экспорт
// Вызовы подсистем конфигурации...
Если ТарификацияБПВызовСервераПовтИсп.ИспользуетсяНеразрешенноеВзаимодействиеСЛидами() Тогда
// Блокировка или переопределение параметров
КонецЕсли;
КонецПроцедуры
В конфигурации вызывается экспортный метод общего модуля ТарификацияБПВызовСервераПовтИсп:
Функция ИспользуетсяНеразрешенноеВзаимодействиеСЛидами() Экспорт
Возврат Не РазрешеноВзаимодействиеСЛидами()
И ПолучитьФункциональнуюОпцию(ФункциональностьПрограммыВызовСервера.НаименованиеОпцииЛиды());
КонецФункции
Свойства модуля настроены корректно: установлены свойства Сервер, Вызов сервера, а также опция Повторное использование возвращаемых значений (на время вызова или на время сеанса). Однако среда исполнения платформы 1С сообщает, что функция отсутствует.
Выясним причину такого поведения. Главный фактор — рассинхронизация кэша метаданных между клиентским приложением, процессами сервера 1С и базой данных. Чаще всего это происходит в следующих случаях:
rphost.ТарификацияБПВызовСервераПовтИсп заблокирован зависшим или фоновым сеансом.Рассмотрим самое быстрое и эффективное решение, если ошибка носит локальный характер и проявляется у конкретного пользователя. Разберем по шагам очистку временных файлов платформы:
1cv8c.exe и 1cv8.exe через диспетчер задач.%LOCALAPPDATA%\1C\1cv8\
%APPDATA%\1C\1cv8\
4f89d3a2-12bc-4e89.... Папки с пользовательскими настройками и списком баз (ibases.v8i) удалять не нужно.Для предотвращения подобных сбоев в свойствах информационной базы в окне запуска 1С можно добавить специальный параметр. Откроем список баз, нажмем кнопку Изменить, перейдем на последнюю страницу настроек и в поле Дополнительные параметры запуска укажем ключ /ClearCache. Этот ключ очищает изменяемый кэш модулей при каждом старте сеанса.
Также действенным и простым приемом является удаление информационной базы из списка запуска 1С и добавление ее заново с тем же путем подключения. В этом случае платформа автоматически создаст новый каталог сеансового кэша.
Если конфигурация развернута в клиент-серверном варианте (SQL), а ошибка возникает сразу у всех пользователей информационной базы, проблема кроется в кэше рабочих процессов сервера 1С. Выполним регламентные действия системного администратора:
1C:Enterprise 8.3 Server Agent или ragent).C:\Program Files\1cv8\srvinfo\).snaccache.Перезапуск процессов сервера гарантированно сбрасывает кэш модулей с повторным использованием возвращаемых значений (ПовтИсп) и принуждает компилятор платформы собрать модули заново из актуальной таблицы конфигурации БД.
Если после очистки кэша ошибка сохраняется, проанализируем влияние сторонних доработок. Модули расширений конфигурации, взаимодействующие с общим модулем ОбщегоНазначенияБП или механизмом лидов, могут блокировать запуск, если они были скомпилированы на версии до 3.0.170.
В ситуациях, когда обновление прерывалось аварийно, в таблицах метаданных базы может остаться несоответствие между основной конфигурацией и конфигурацией базы данных. Проверим базу встроенными механизмами платформы:
.dt или бэкап СУБД).— Реиндексация таблиц информационной базы;
— Проверка логической целостности информационной базы;
— Пересчет итогов.
После завершения процедур тестирования структура таблиц восстанавливается, и вызов функции ИспользуетсяНеразрешенноеВзаимодействиеСЛидами() отрабатывает в штатном режиме.