Добрый день!) КА, в расширении написал код, вчера все работало, сегодня перезапускаю, не работает. В параметрах запуска стоит Толстый клиент Управляемое приложение. Подскажите пожалуйста, в чем причина ошибки?
Ниже сам код и ошибка по нему:
&НаСервере
Процедура Расш1_ПриОткрытииПередНаСервере()
СсылкаДок = Объект.Ссылка;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Партнеры.ОсновнойМенеджер КАК ОсновнойМенеджер
|ИЗ
| Документ.эсЗаданиеСотруднику КАК эсЗаданиеСотруднику
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Партнеры КАК Партнеры
| ПО эсЗаданиеСотруднику.Партнер = Партнеры.Ссылка
|ГДЕ
| эсЗаданиеСотруднику.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", СсылкаДок);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Выборка.Следующий();
Если Объект.ОтветственныйМенеджер <> Выборка.ОсновнойМенеджер Тогда
Объект.ОтветственныйМенеджер = Выборка.ОсновнойМенеджер;
ЭтотОбъект.Записать();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Расш1_ПриОткрытииПеред(Отказ)
Если ЗначениеЗаполнено(Объект.Партнер) Тогда
Расш1_ПриОткрытииПередНаСервере();
КонецЕсли;
КонецПроцедуры
Ошибка:
Ошибка инициализации модуля: КнопкаСотруднику Документ.эсЗаданиеСотруднику.Форма.ФормаДокумента.Форма
по причине:
{КнопкаСотруднику Документ.эсЗаданиеСотруднику.Форма.ФормаДокумента.Форма(4,1)}: Неопознанный оператор
<<?>>&НаСервере
В самом конфигураторе текст ошибки:
{КнопкаСотруднику Документ.эсЗаданиеСотруднику.Форма.ФормаДокумента.Форма(3,1)}: Неопознанный оператор
<<?>>&НаСервере (Проверка: Сервер)
{КнопкаСотруднику Документ.эсЗаданиеСотруднику.Форма.ФормаДокумента.Форма(3,1)}: Неопознанный оператор
<<?>>&НаСервере (Проверка: Тонкий клиент)
Ниже сам код и ошибка по нему:
&НаСервере
Процедура Расш1_ПриОткрытииПередНаСервере()
СсылкаДок = Объект.Ссылка;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Партнеры.ОсновнойМенеджер КАК ОсновнойМенеджер
|ИЗ
| Документ.эсЗаданиеСотруднику КАК эсЗаданиеСотруднику
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Партнеры КАК Партнеры
| ПО эсЗаданиеСотруднику.Партнер = Партнеры.Ссылка
|ГДЕ
| эсЗаданиеСотруднику.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", СсылкаДок);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Выборка.Следующий();
Если Объект.ОтветственныйМенеджер <> Выборка.ОсновнойМенеджер Тогда
Объект.ОтветственныйМенеджер = Выборка.ОсновнойМенеджер;
ЭтотОбъект.Записать();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Расш1_ПриОткрытииПеред(Отказ)
Если ЗначениеЗаполнено(Объект.Партнер) Тогда
Расш1_ПриОткрытииПередНаСервере();
КонецЕсли;
КонецПроцедуры
Ошибка:
Ошибка инициализации модуля: КнопкаСотруднику Документ.эсЗаданиеСотруднику.Форма.ФормаДокумента.Форма
по причине:
{КнопкаСотруднику Документ.эсЗаданиеСотруднику.Форма.ФормаДокумента.Форма(4,1)}: Неопознанный оператор
<<?>>&НаСервере
В самом конфигураторе текст ошибки:
{КнопкаСотруднику Документ.эсЗаданиеСотруднику.Форма.ФормаДокумента.Форма(3,1)}: Неопознанный оператор
<<?>>&НаСервере (Проверка: Сервер)
{КнопкаСотруднику Документ.эсЗаданиеСотруднику.Форма.ФормаДокумента.Форма(3,1)}: Неопознанный оператор
<<?>>&НаСервере (Проверка: Тонкий клиент)
Найденные решения
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)Перезаписывать документ мы будем только в том случае, если Отв.Менеджер будет не совпадать в документе и справочнике, но вопрос в другом - почему появилась ошибка "Неопознанный оператор &НаСервере " и "Неопознанный оператор &НаКлиенте" хотя до этого этих ошибок не было
(1) Вроде не хватает строчки, говорящей, что её нужно "перед" вызывать.
А вообще, если отступить от темы, то было бы правильно запихнуть это всё в регламентное задание, которое бы прочёсывало все документы. Это если вообще хранение основного менеджера в документе имеет смысл. Его же и так можно в любой момент получить из партнёра.
А вообще, если отступить от темы, то было бы правильно запихнуть это всё в регламентное задание, которое бы прочёсывало все документы. Это если вообще хранение основного менеджера в документе имеет смысл. Его же и так можно в любой момент получить из партнёра.
(11)&НаСервере
Процедура Расш1_ПриОткрытииПослеНаСервере()
СсылкаДок = Объект.Ссылка;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Партнеры.ОсновнойМенеджер КАК ОсновнойМенеджер
|ИЗ
| Документ.эсЗаданиеСотруднику КАК эсЗаданиеСотруднику
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Партнеры КАК Партнеры
| ПО эсЗаданиеСотруднику.Партнер = Партнеры.Ссылка
|ГДЕ
| эсЗаданиеСотруднику.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", СсылкаДок);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Выборка.Следующий();
Если Объект.ОтветственныйМенеджер <> Выборка.ОсновнойМенеджер Тогда
Объект.ОтветственныйМенеджер = Выборка.ОсновнойМенеджер;
КонецЕсли;
КонецПроцедуры
Вот так имеете ввиду и именно в ПриСоздании?
Процедура Расш1_ПриОткрытииПослеНаСервере()
СсылкаДок = Объект.Ссылка;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Партнеры.ОсновнойМенеджер КАК ОсновнойМенеджер
|ИЗ
| Документ.эсЗаданиеСотруднику КАК эсЗаданиеСотруднику
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Партнеры КАК Партнеры
| ПО эсЗаданиеСотруднику.Партнер = Партнеры.Ссылка
|ГДЕ
| эсЗаданиеСотруднику.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", СсылкаДок);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Выборка.Следующий();
Если Объект.ОтветственныйМенеджер <> Выборка.ОсновнойМенеджер Тогда
Объект.ОтветственныйМенеджер = Выборка.ОсновнойМенеджер;
КонецЕсли;
КонецПроцедуры
Вот так имеете ввиду и именно в ПриСоздании?
(12) Может всё-таки удовлетворите наше любопытство и подскажете, для чего в документе храните ответственного?
В запросе, кстати, партнёров можно не присоединять, а взять менеджера "через точку".
В запросе, кстати, партнёров можно не присоединять, а взять менеджера "через точку".
"ВЫБРАТЬ
| эсЗаданиеСотруднику.Партнер.ОсновнойМенеджер КАК ОсновнойМенеджер
|ИЗ
| Документ.эсЗаданиеСотруднику КАК эсЗаданиеСотруднику
|ГДЕ
| эсЗаданиеСотруднику.Ссылка = &Ссылка"
| эсЗаданиеСотруднику.Партнер.ОсновнойМенеджер КАК ОсновнойМенеджер
|ИЗ
| Документ.эсЗаданиеСотруднику КАК эсЗаданиеСотруднику
|ГДЕ
| эсЗаданиеСотруднику.Ссылка = &Ссылка"
(13)Изначально, в справочнике партнеры устанавливается ответственный менеджер, который работает с этим партнером и затем создается Задание сотруднику, в котором указывается партнер, ответственный сотрудник и ответственный менеджер. Менеджер ранее проставлялся руками. Могла возникнуть ошибка, что в Справочнике Партнеры отв. менеджер изменился, а в задании сотруднику он остался прежним и все свои отчеты сотрудник присылает не тому менеджеру, поэтому нужно подтянуть отв.менеджера именно из Справочника Партнеры. Надеюсь смог более менее объяснить)
(13)
(13)
(19) Нет, выберет только одно поле. И само собой, неявно соединит с партнёрами. Но при одинаковом результате читается легче.
Сейчас попрообовал. Вот такой запрос 1с
превращается вот в такой на SQL
Сейчас попрообовал. Вот такой запрос 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
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
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот