Добрый день!) КА, в расширении написал код, вчера все работало, сегодня перезапускаю, не работает. В параметрах запуска стоит Толстый клиент Управляемое приложение. Подскажите пожалуйста, в чем причина ошибки?
Ниже сам код и ошибка по нему:

&НаСервере
Процедура Расш1_ПриОткрытииПередНаСервере()
 СсылкаДок = Объект.Ссылка;

 Запрос = Новый Запрос;
 Запрос.Текст =
 "ВЫБРАТЬ
 | Партнеры.ОсновнойМенеджер КАК ОсновнойМенеджер
 |ИЗ
 | Документ.эсЗаданиеСотруднику КАК эсЗаданиеСотруднику
 | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Партнеры КАК Партнеры
 | ПО эсЗаданиеСотруднику.Партнер = Партнеры.Ссылка
 |ГДЕ
 | эсЗаданиеСотруднику.Ссылка = &Ссылка";

 Запрос.УстановитьПараметр("Ссылка", СсылкаДок);
 РезультатЗапроса = Запрос.Выполнить();

 Выборка = РезультатЗапроса.Выбрать();

 Выборка.Следующий();

 Если Объект.ОтветственныйМенеджер <> Выборка.ОсновнойМенеджер Тогда

  Объект.ОтветственныйМенеджер = Выборка.ОсновнойМенеджер;
  ЭтотОбъект.Записать();
 КонецЕсли;

КонецПроцедуры

&НаКлиенте
Процедура Расш1_ПриОткрытииПеред(Отказ)
 Если ЗначениеЗаполнено(Объект.Партнер) Тогда
  Расш1_ПриОткрытииПередНаСервере();
 КонецЕсли;
КонецПроцедуры

Ошибка:

Ошибка инициализации модуля: КнопкаСотруднику Документ.эсЗаданиеСотруднику.Форма.ФормаДокумента.Форма
по причине:
{КнопкаСотруднику Документ.эсЗаданиеСотруднику.Форма.ФормаДокумента.Форма(4,1)}: Неопознанный оператор
<<?>>&НаСервере

В самом конфигураторе текст ошибки:
{КнопкаСотруднику Документ.эсЗаданиеСотруднику.Форма.ФормаДокумента.Форма(3,1)}: Неопознанный оператор
<<?>>&НаСервере (Проверка: Сервер)
{КнопкаСотруднику Документ.эсЗаданиеСотруднику.Форма.ФормаДокумента.Форма(3,1)}: Неопознанный оператор
<<?>>&НаСервере (Проверка: Тонкий клиент)
---
Где-то перед &НаСервере случайно поставил какой-то знак
---
При открытии перезаписывать документ - это моветон! А как же "я только посмотреть"? А если период закрыт, то никто не сможет открыть этот документ?
---
Перезаписывать документ мы будем только в том случае, если Отв.Менеджер будет не совпадать в документе и справочнике, но вопрос в другом - почему появилась ошибка "Неопознанный оператор &НаСервере " и "Неопознанный оператор &НаКлиенте" хотя до этого этих ошибок не было
---
Через 5 лет откроют документ, менеджер кто тогда работал с партнером уже уволился, работает новый и мы перезапишем документ. Так по вашему должно быть?
По теме в этом месте ошибки не может быть
---
Вроде не хватает строчки, говорящей, что её нужно "перед" вызывать.

А вообще, если отступить от темы, то было бы правильно запихнуть это всё в регламентное задание, которое бы прочёсывало все документы. Это если вообще хранение основного менеджера в документе имеет смысл. Его же и так можно в любой момент получить из партнёра.
---
Обычно, если хранят в документе, то нужны исторические данные. Ну и заполнять в управляемых формах нужно ПриСоздании, а не как здесь ПриОткрытии, но автору все это объяснять похоже бесполезно.
---
Если бы нужны были исторические данные, то этот реквизит наоборот бы берегли от изменений, а не сбивали бы при каждом открытии.
---
(8) Подскажите пожалуйста, как тогда это правильно было бы реализовать? Т.е. запрос делать именно в ПриСоздании, а как тогда записать в документ значение из Выборки в сам реквизит Объект.ОтветственныйМенеджер ? Тоже в ПриСоздании или как правильно?
---
Правильно не хранить в документе, а показывать из справочника Партнеры, если ответственный постоянно меняется.
---
&НаСервере
Процедура Расш1_ПриОткрытииПослеНаСервере()

  СсылкаДок = Объект.Ссылка;

  Запрос = Новый Запрос;
  Запрос.Текст =
  "ВЫБРАТЬ
  | Партнеры.ОсновнойМенеджер КАК ОсновнойМенеджер
  |ИЗ
  | Документ.эсЗаданиеСотруднику КАК эсЗаданиеСотруднику
  | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Партнеры КАК Партнеры
  | ПО эсЗаданиеСотруднику.Партнер = Партнеры.Ссылка
  |ГДЕ
  | эсЗаданиеСотруднику.Ссылка = &Ссылка";

  Запрос.УстановитьПараметр("Ссылка", СсылкаДок);
  РезультатЗапроса = Запрос.Выполнить();

  Выборка = РезультатЗапроса.Выбрать();

  Выборка.Следующий();

  Если Объект.ОтветственныйМенеджер <> Выборка.ОсновнойМенеджер Тогда

    Объект.ОтветственныйМенеджер = Выборка.ОсновнойМенеджер;
  КонецЕсли;

КонецПроцедуры

Вот так имеете ввиду и именно в ПриСоздании?
---
Может всё-таки удовлетворите наше любопытство и подскажете, для чего в документе храните ответственного?

В запросе, кстати, партнёров можно не присоединять, а взять менеджера "через точку".
"ВЫБРАТЬ
| эсЗаданиеСотруднику.Партнер.ОсновнойМенеджер КАК ОсновнойМенеджер
|ИЗ
| Документ.эсЗаданиеСотруднику КАК эсЗаданиеСотруднику
|ГДЕ
| эсЗаданиеСотруднику.Ссылка = &Ссылка"
---
Изначально, в справочнике партнеры устанавливается ответственный менеджер, который работает с этим партнером и затем создается Задание сотруднику, в котором указывается партнер, ответственный сотрудник и ответственный менеджер. Менеджер ранее проставлялся руками. Могла возникнуть ошибка, что в Справочнике Партнеры отв. менеджер изменился, а в задании сотруднику он остался прежним и все свои отчеты сотрудник присылает не тому менеджеру, поэтому нужно подтянуть отв.менеджера именно из Справочника Партнеры. Надеюсь смог более менее объяснить)
(13)
---
То есть, ответственный нужен только как информация в момент открытия документа? Тогда в (14) вам подсказали верно.
---
а взять менеджера "через точку".Не очень идея брать в запросе через точку.
---
Почему? Думаете, партнёр там - составное поле?
---
Почему?Потому что в запросе будет неявна выбрано все что через точку, просто это не оптимально. Насколько я помню за это даже снижают оценку на экзамене специалиста по платформе
---
Нет, выберет только одно поле. И само собой, неявно соединит с партнёрами. Но при одинаковом результате читается легче.

Сейчас попрообовал. Вот такой запрос 1с
ВЫБРАТЬ
 ПриобретениеТоваровУслуг.Партнер.Наименование КАК Партнер
ИЗ
 Документ.ПриобретениеТоваровУслуг КАК ПриобретениеТоваровУслуг
ГДЕ
 ПриобретениеТоваровУслуг.Ссылка = &Приобретение

превращается вот в такой на SQL
exec sp_executesql N'SEL ECT
T2._Description
FR OM dbo._Document1267 T1
LEFT OUTER JOIN dbo._Reference471 T2
ON (T1._Fld27539RRef = T2._IDRRef) AND (T2._Fld2739 = @P1)
WHERE ((T1._Fld2739 = @P2)) AND ((T1._IDRRef = @P3))',N'@P1 numeric(10),@P2 numeric(10),@P3 varbinary(16)',0,0,0xAD111C1B0D60385911ECEC5628D9EB97
---
В форме раскрыть Партнера выбрать поле Ответственный и перенести в нужное место. Код писать не нужно.
---
Где-то перед &НаСервере случайно поставил какой-то знак
---
Благодарю Вас!) Начал удалять перед &НаСервере и оказалась какая-то левая строка, действительно,видимо, случайно нажал! Благодарю Вас и всех отозвавшихся!)