При работе с конфигурацией «1С:Управление торговлей» редакции 11.4 (особенно в релизах ветки 11.4.8.x) пользователи часто сталкиваются с неприятной ситуацией. Во время использования «Помощника настройки программы» или при редактировании контактной информации система внезапно прерывает работу с диагностикой: «Метод объекта не обнаружен (ПолучитьСсылкуНового)». Рассмотрим подробнее, почему это происходит и как мы можем исправить эту проблему несколькими способами.
Для начала проанализируем техническую сторону вопроса. Метод ПолучитьСсылкуНового() является специфическим методом объектов типа СправочникОбъект, ДокументОбъект и других прикладных типов. Согласно синтакс-помощнику, данный метод доступен только на сервере, в толстом клиенте или во внешнем соединении.
В типовом решении УТ 11.4 в общем модуле УправлениеКонтактнойИнформацией или связанных с ним формах код пытается вызвать этот метод в контексте Тонкого клиента. Проблема часто заключается в том, что объект на стороне клиента представлен типом ДанныеФормыСтруктура, который не содержит и не может содержать метода ПолучитьСсылкуНового(). Это программная недоработка разработчиков типового решения, которая проявляется при инициализации новых элементов (например, при попытке системы заранее получить уникальный идентификатор для записи адреса или телефона еще не созданного контрагента).
Это самый быстрый и эффективный способ «обхода» проблемы, если нам нужно срочно завершить работу помощника настройки, а вносить изменения в код или ждать обновления нет возможности. Разберем по шагам, как переключить режим запуска:
Поскольку в режиме ТолстыйКлиентУправляемоеПриложение метод ПолучитьСсылкуНового() доступен непосредственно на стороне клиента, ошибка исчезнет, и «Помощник настройки» отработает корректно. После завершения всех настроек режим запуска можно вернуть обратно на «Тонкий клиент».
Фирма «1С» оперативно выпускает исправления для критических ошибок релизов. Если ваша база находится на официальной поддержке, мы можем воспользоваться механизмом автоматической загрузки патчей. Проанализируем, как это сделать:
Важный момент: если у вас «Базовая» версия конфигурации, ручное создание расширений может быть заблокировано, но автоматическая установка патчей через интернет-поддержку работает в штатном режиме.
Как показывает практика и обсуждения специалистов, данная ошибка была массовой в релизе 11.4.8.84. Разберем стратегию обновления: начиная с релиза 11.4.9 и выше, логика работы с объектами в модулях управления контактной информацией была пересмотрена. Разработчики перенесли вызовы методов, требующих серверного контекста, в соответствующие процедуры с директивой &НаСервере. Если есть возможность, рекомендуется обновить конфигурацию до актуального релиза, что полностью снимет вопрос данной ошибки.
Если нам необходимо исправить код самостоятельно и конфигурация позволяет использовать расширения, мы можем применить механизм &Вместо. Посмотрим на пример того, как локализовать проблему. Проанализируем место возникновения ошибки через отладчик. Скорее всего, вы обнаружите код, похожий на этот:
// Ошибочный фрагмент в типовом модуле на стороне клиента
СсылкаНового = Объект.ПолучитьСсылкуНового();
Для исправления ситуации нам необходимо перенести получение ссылки на сервер. В расширении мы можем создать функцию, которая будет выполняться в серверном контексте и возвращать нужную ссылку. Рассмотрим пример реализации:
&НаСервере
Функция ПолучитьСсылкуДляНовогоОбъекта(Объект)
Возврат Справочники.Контрагенты.ПолучитьСсылку();
// Или вызов метода у переданного объекта, если он типизирован на сервере
КонецФункции
Однако, прежде чем приступать к написанию кода, обязательно проверьте наличие других общих модулей. Часто в конфигурации существуют модули-двойники, например, УправлениеКонтактнойИнформациейКлиент и УправлениеКонтактнойИнформациейСервер. Убедимся, что вызов метода происходит в логически верном слое приложения.
Иногда ошибка может возникать из-за некорректного состояния кэша конфигурации, хотя в данном случае это редко является основной причиной. Тем не менее, если вышеперечисленные методы не помогают, попробуем очистить локальный кэш пользователя. Также обратим внимание на версию платформы: для стабильной работы релизов 11.4.x рекомендуется использовать версию 8.3.14 или выше, так как в них улучшена работа с контекстом управляемых форм.
Подведем итог: наиболее стабильным решением является обновление программы или установка патчей. В качестве временной меры используем запуск через Толстый клиент. Это позволит обойти ограничение платформы на вызов метода ПолучитьСсылкуНового() и успешно завершить настройку системы.