Как исправить ошибку «Метод объекта не обнаружен (ПолучитьСсылкуНового)» в 1С:Управление торговлей 11.4?

Программист 1С v8.3 (Управляемые формы) 1С:Управление торговлей Торговля и дистрибуция
← На главную

При работе с конфигурацией «1С:Управление торговлей» редакции 11.4 (особенно в релизах ветки 11.4.8.x) пользователи часто сталкиваются с неприятной ситуацией. Во время использования «Помощника настройки программы» или при редактировании контактной информации система внезапно прерывает работу с диагностикой: «Метод объекта не обнаружен (ПолучитьСсылкуНового)». Рассмотрим подробнее, почему это происходит и как мы можем исправить эту проблему несколькими способами.

Выясним причину возникновения ошибки

Для начала проанализируем техническую сторону вопроса. Метод ПолучитьСсылкуНового() является специфическим методом объектов типа СправочникОбъект, ДокументОбъект и других прикладных типов. Согласно синтакс-помощнику, данный метод доступен только на сервере, в толстом клиенте или во внешнем соединении.

В типовом решении УТ 11.4 в общем модуле УправлениеКонтактнойИнформацией или связанных с ним формах код пытается вызвать этот метод в контексте Тонкого клиента. Проблема часто заключается в том, что объект на стороне клиента представлен типом ДанныеФормыСтруктура, который не содержит и не может содержать метода ПолучитьСсылкуНового(). Это программная недоработка разработчиков типового решения, которая проявляется при инициализации новых элементов (например, при попытке системы заранее получить уникальный идентификатор для записи адреса или телефона еще не созданного контрагента).

Решение 1: Запуск системы в режиме «Толстого клиента»

Это самый быстрый и эффективный способ «обхода» проблемы, если нам нужно срочно завершить работу помощника настройки, а вносить изменения в код или ждать обновления нет возможности. Разберем по шагам, как переключить режим запуска:

  1. Закроем полностью программу 1С:Предприятие.
  2. В окне запуска (список информационных баз) выделим нашу базу и нажмем кнопку «Изменить».
  3. Перейдем на последнюю закладку настроек (где указывается версия платформы и параметры запуска).
  4. Найдем поле «Основной режим запуска». По умолчанию там обычно стоит «Выбирать автоматически» или «Тонкий клиент».
  5. Установим значение «Толстый клиент».
  6. Нажмем «Готово» и запустим базу.

Поскольку в режиме ТолстыйКлиентУправляемоеПриложение метод ПолучитьСсылкуНового() доступен непосредственно на стороне клиента, ошибка исчезнет, и «Помощник настройки» отработает корректно. После завершения всех настроек режим запуска можно вернуть обратно на «Тонкий клиент».

Решение 2: Установка официальных патчей (исправлений)

Фирма «1С» оперативно выпускает исправления для критических ошибок релизов. Если ваша база находится на официальной поддержке, мы можем воспользоваться механизмом автоматической загрузки патчей. Проанализируем, как это сделать:

  1. Зайдем в раздел «НСИ и администрирование» — «Обслуживание».
  2. Раскроем подраздел «Обновление программы».
  3. Перейдем по ссылке «Установленные исправления (патчи)».
  4. Если у нас настроена интернет-поддержка, нажмем «Поиск и установка исправлений». Система сама найдет патч для вашей версии УТ, исправляющий работу с контактной информацией или помощником настроек.

Важный момент: если у вас «Базовая» версия конфигурации, ручное создание расширений может быть заблокировано, но автоматическая установка патчей через интернет-поддержку работает в штатном режиме.

Решение 3: Обновление конфигурации

Как показывает практика и обсуждения специалистов, данная ошибка была массовой в релизе 11.4.8.84. Разберем стратегию обновления: начиная с релиза 11.4.9 и выше, логика работы с объектами в модулях управления контактной информацией была пересмотрена. Разработчики перенесли вызовы методов, требующих серверного контекста, в соответствующие процедуры с директивой &НаСервере. Если есть возможность, рекомендуется обновить конфигурацию до актуального релиза, что полностью снимет вопрос данной ошибки.

Решение 4: Программное исправление (для разработчиков)

Если нам необходимо исправить код самостоятельно и конфигурация позволяет использовать расширения, мы можем применить механизм &Вместо. Посмотрим на пример того, как локализовать проблему. Проанализируем место возникновения ошибки через отладчик. Скорее всего, вы обнаружите код, похожий на этот:


// Ошибочный фрагмент в типовом модуле на стороне клиента
СсылкаНового = Объект.ПолучитьСсылкуНового(); 

Для исправления ситуации нам необходимо перенести получение ссылки на сервер. В расширении мы можем создать функцию, которая будет выполняться в серверном контексте и возвращать нужную ссылку. Рассмотрим пример реализации:


&НаСервере
Функция ПолучитьСсылкуДляНовогоОбъекта(Объект)
    Возврат Справочники.Контрагенты.ПолучитьСсылку();
    // Или вызов метода у переданного объекта, если он типизирован на сервере
КонецФункции

Однако, прежде чем приступать к написанию кода, обязательно проверьте наличие других общих модулей. Часто в конфигурации существуют модули-двойники, например, УправлениеКонтактнойИнформациейКлиент и УправлениеКонтактнойИнформациейСервер. Убедимся, что вызов метода происходит в логически верном слое приложения.

Дополнительные рекомендации

Иногда ошибка может возникать из-за некорректного состояния кэша конфигурации, хотя в данном случае это редко является основной причиной. Тем не менее, если вышеперечисленные методы не помогают, попробуем очистить локальный кэш пользователя. Также обратим внимание на версию платформы: для стабильной работы релизов 11.4.x рекомендуется использовать версию 8.3.14 или выше, так как в них улучшена работа с контекстом управляемых форм.

Подведем итог: наиболее стабильным решением является обновление программы или установка патчей. В качестве временной меры используем запуск через Толстый клиент. Это позволит обойти ограничение платформы на вызов метода ПолучитьСсылкуНового() и успешно завершить настройку системы.

← На главную