При работе в рабочем месте кассира (РМК) в конфигурации 1С:Управление нашей фирмой (УНФ) версии 1.6.15.44 пользователи часто сталкиваются с неприятной ситуацией. При попытке нажать кнопку «Подбор» система аварийно завершает операцию, выдавая ошибку: Метод объекта не обнаружен (ИспользуетсяРегистрацияРозничныхПродажВЕГАИС). Примечательно, что эта ошибка возникает даже в тех случаях, когда интеграция с ЕГАИС полностью отключена в настройках системы.
В этой статье мы подробно разберем, почему возникает эта проблема, проанализируем программный код и рассмотрим несколько вариантов решения — от простых пользовательских настроек до внесения правок через механизм расширений.
Рассмотрим подробнее техническую сторону вопроса. Исходя из данных отладки, ошибка возникает в модуле формы подбора. Конкретная строка, вызывающая сбой, выглядит следующим образом:
ИспользуетсяРегистрацияРозничныхПродажВЕГАИС = УправлениеНебольшойФирмойСервер.ИспользуетсяРегистрацияРозничныхПродажВЕГАИС();
Суть проблемы заключается в том, что в релизе 1.6.15.44 разработчики внесли изменения в состав общих модулей, связанных с учетом алкогольной продукции. Функция ИспользуетсяРегистрацияРозничныхПродажВЕГАИС была либо удалена из общего модуля УправлениеНебольшойФирмойСервер, либо у нее был снят флаг «Экспортная», либо она была перенесена в специализированный модуль интеграции с ЕГАИС. Однако в коде обработки ПодборРеализация (форма КорзинаЦенаОстатокРезервХарактеристика) остался вызов старого метода без проверки его существования.
Таким образом, программа пытается выполнить команду, которой физически не существует в структуре конфигурации, что и приводит к мгновенной остановке процесса подбора товаров.
Поскольку данная проблема носит массовый характер и является признанной ошибкой релиза, компания «1С» выпустила оперативные исправления. Если ваша база подключена к интернету и находится на поддержке, разберем по шагам, как проверить наличие патчей:
Если система найдет патч, исправляющий работу модуля ПодборРеализация, он будет установлен автоматически. Это самый простой и безопасный способ, не требующий вмешательства в код программы.
Разберем ситуацию, когда патчи по какой-то причине недоступны. Ошибка ИспользуетсяРегистрацияРозничныхПродажВЕГАИС была полностью исправлена в последующих минорных обновлениях. Переход на версию 1.6.16 или переход на современную ветку 3.0 гарантированно решает проблему. Если бизнес-процессы позволяют произвести обновление, мы рекомендуем выбрать именно этот путь, так как он устраняет первопричину — несоответствие кода в типовом решении.
Если вы не можете обновить конфигурацию (например, она сильно доработана) или не хотите снимать базу с поддержки, оптимальным вариантом будет использование Расширения конфигурации. Посмотрим на пример того, как можно создать «заглушку», чтобы система перестала выдавать ошибку.
Нам необходимо добавить в расширение общий модуль УправлениеНебольшойФирмойСервер и реализовать в нем недостающую функцию. Рассмотрим пример кода, который нужно поместить в расширение:
&После("ИспользуетсяРегистрацияРозничныхПродажВЕГАИС") // Если метод существует, но не экспортный
Функция Расш_ИспользуетсяРегистрацияРозничныхПродажВЕГАИС()
Возврат Ложь; // Возвращаем Ложь, так как ЕГАИС у клиента отключен
КонецФункции
// Либо, если метода вообще нет в модуле:
Функция ИспользуетсяРегистрацияРозничныхПродажВЕГАИС() Экспорт
Возврат Ложь;
КонецФункции
После подключения такого расширения форма подбора при обращении к серверному модулю получит ответ Ложь, успешно пропустит проверку условий ЕГАИС и откроет окно подбора товаров без каких-либо ошибок.
Иногда система может вести себя некорректно из-за «зависших» настроек в регистрах. Хотя это редко исправляет ошибку отсутствующего метода, проанализируем ситуацию с настройками для профилактики:
Важный момент: если ошибка Метод объекта не обнаружен сохраняется, значит, проблема исключительно в программном коде, и поможет только Способ 2 или Способ 3.
Посмотрим на ситуацию со стороны кэширования. В некоторых случаях, даже после внесения правок или установки патчей, 1С может продолжать использовать старые версии скомпилированных модулей. Проанализируем, как правильно очистить кэш:
/ClearCache.Резюмируя, можно сказать, что данная проблема является классическим примером «забытого» вызова при рефакторинге кода разработчиками 1С. Для быстрого исправления ситуации мы рекомендуем воспользоваться механизмом Расширений, так как это позволяет сохранить конфигурацию на поддержке и при этом оперативно вернуть работоспособность кнопке «Подбор» в РМК.