Ошибка при вызове метода контекста выполнить неверные параметры

Запрос =>

з.Текст = «ВЫБРАТЬ

|   ПартииТоваровНаСкладахОстатки.Склад КАК Склад,

|   ПартииТоваровНаСкладахОстатки.Номенклатура КАК Номенклатура,

|   ПартииТоваровНаСкладахОстатки.Номенклатура.БиТ_КодЮжногоРегиона КАК Код,

|   ПартииТоваровНаСкладахОстатки.КоличествоОстаток КАК Количество

|ИЗ

|   РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&Дата, ) КАК ПартииТоваровНаСкладахОстатки

|ГДЕ

|   ПартииТоваровНаСкладахОстатки.Склад В (&Склад)

|   И ПартииТоваровНаСкладахОстатки.Номенклатура В ИЕРАРХИИ(&Родитель)»;

з.УстановитьПараметр(«Дата», КонецДня(ДатаКон));

з.УстановитьПараметр(«Склад», СписокСкладов);

з.УстановитьПараметр(«Родитель», Номенклатура);

ф= з.Выполнить().Выгрузить();

Ошибка при вызове метода контекста (Выполнить): {(9, 40)}: Неверные параметры

ПартииТоваровНаСкладахОстатки.Склад <<?>>В (&Склад)

ф=з.Выполнить().Выгрузить();

Почему в консоли отрабатывает, а на практике ругается?

В параметрах запроса пишу ЭтотОбъект.Пользователи.Ссылка

bless18
13.04.2010 10:31 Прочитано: 6441

Имеется запрос:
Код 1C v 8.х

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

Запрос.УстановитьПараметр("Ссылка", ЭтотОбъект.Пользователи.Получить("Ссылка"));

При выполнении выдается ошибка Поле объекта не обнаружено (Ссылка)

Yandex
Возможно, вас также заинтересует

Реклама на портале

E_Migachev
13.04.2010 10:59 Ответ № 1

Этотобъект — это что?
и что такое Пользователи? ТабПоле ?

bless18
13.04.2010 11:07 Ответ № 2

Простите, код немного другой Код 1C v 8.х

 Процедура ПриОткрытии()
СтрокаТЧ = ЭлементыФормы.Пользователи.ТекущиеДанные;

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Ссылка.Дата,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Ссылка.Исполнитель,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.НаименованиеЗадачи,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.ДатаВыполнения,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Приоритет
|ИЗ
| Справочник.Пользователи КАК Пользователи
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РаспределениеЗадачи.РаспределениеЗадачиСотрудникам КАК РаспределениеЗадачиРаспределениеЗадачиСотрудникам
| ПО Пользователи.Сотрудник = РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Ссылка.Исполнитель
|ГДЕ
| Пользователи.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка", ЭтотОбъект.Пользователи.Ссылка);

ВыборкаСтрок = Запрос.Выполнить().Выгрузить();

И ошибка: Поле объекта не обнаружено (Ссылка)
Запрос.УстановитьПараметр(«Ссылка», ЭтотОбъект.Пользователи.Ссылка);

bless18
13.04.2010 11:08 Ответ № 3

Пользователи — это табличная часть обработки

bless18
13.04.2010 11:09 Ответ № 4

Пользователи — это так же справочник, в котром хранятся имя пользователя и сотрудника

bless18
13.04.2010 11:13 Ответ № 5

При дебаге Код 1C v 8.х

 ЭтотОбъект.Пользователи   

дает тип Код 1C v 8.х

 ОбработкаТабличнаяЧасть.РаботаПользователей.Пользователи   
E_Migachev
13.04.2010 11:17 Ответ № 6

Тогда тебе нужно писать в запросе условие Пользователи.Ссылка В( &СписокПользоват) и далее выгружать из табличного поляполя список пользоватлейКод 1C v 8.х

 Запрос.УстановитьПараметр("СписокПользоват", Пользователи.ВыгрузитьКолонку("Ссылка"));   
bless18
13.04.2010 11:21 Ответ № 7

Попробовала, выдает ошибку:
Ошибка при вызове метода контекста (ВыгрузитьКолонку): Недопустимое значение параметра (параметр номер ‘1’) (Колонка не принадлежит коллекции)
Запрос.УстановитьПараметр(«СписокПользоват», Пользователи.ВыгрузитьКолонку(«Ссылка»));

bless18
13.04.2010 12:17 Ответ № 8

Пользователи у меня ТЗ, в которой есть колонки:
ДатаВыполнения
Исполнитель
Пользователь

А как параметр мне нужно передать пользователя системы
Пишу:

Код 1C v 8.х

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

Система сообщает, что Ошибка при вызове метода контекста (Выполнить): {(12, 22)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля
неограниченной длины и поля несовместимых типов.
Пользователи.Ссылка <<?>>= &Ссылка
ВыборкаСтрок = Запрос.Выполнить().Выгрузить();

E_Migachev
13.04.2010 13:05 Ответ № 9

Правильно что ругается, так как нужно писать: Пользователи.Ссылка В (&Ссылка)

bless18
13.04.2010 18:48 Ответ № 10

Спасибо, заработало ))
Но в цикл заходить не хочет (( Хотя обхожу его по результатам запроса
Код 1C v 8.х

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

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

Для Каждого ТекСтрокаПользователи Из ВыборкаСтрок Цикл

//НоваяСтрока = Пользователи.Добавить();
ВыборкаСтрок.Пользователь = ТекСтрокаПользователи.Пользователь;
ВыборкаСтрок.Приоритет = ТекСтрокаПользователи.Приоритет;
ВыборкаСтрок.ДатаНачалаВыполнения = ТекСтрокаПользователи.ДатаНачалаВыполнения;
ВыборкаСтрок.ДатаВыполненияПоПлану = ТекСтрокаПользователи.ДатаВыполненияПоПлану;
ВыборкаСтрок.Исполнитель = ТекСтрокаПользователи.ИсполнительЗадачи;
//Выборка.ПроцентЗавершенности = ТекСтрокаПользователи.ПроцентЗавершенности;

КонецЦикла;

E_Migachev
13.04.2010 19:19 Ответ № 11

А чему равно Запрос.Выполнить().Выгрузить().Количество();

bless18
14.04.2010 08:18 Ответ № 12

Запрос.Выполнить().Выгрузить().Количество()
Значение = 0

E_Migachev
14.04.2010 08:45 Ответ № 13

Значить либо нет данных к выборке, либо неправильно составлен запрос *09

bless18
14.04.2010 09:01 Ответ № 14

Если пишу
РезультатЗапроса = Запрос.Выполнить().Колонки.Количество(), то результат = 7

E_Migachev
14.04.2010 09:11 Ответ № 15

Правильно, Таблице результата у тебя 7 колонок, но строк 0. т.е. не данных соответствующих заданной выборке *11
Может так получится, попробуй *13:
Код 1C v 8.х

 Запрос.Текст = "ВЫБРАТЬ
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Дата,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Исполнитель,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.НаименованиеЗадачи,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.ДатаВыполнения,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Приоритет
|ГДЕ
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Исполнитель В (&Ссылка)";
bless18
14.04.2010 09:22 Ответ № 16

К сожалению не получается, выдается ошибка
Ошибка при вызове метода контекста (Выполнить): {(2, 2)}: Таблица не найдена «РаспределениеЗадачиРаспределениеЗадачиСотрудникам»
<<?>>РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Дата,
РезультатЗапроса = Запрос.Выполнить();

E_Migachev
14.04.2010 09:25 Ответ № 17

ой, забыл по КАК )
вот так надо
Запрос.Текст = «ВЫБРАТЬ
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Дата,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Исполнитель,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.НаименованиеЗадачи,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.ДатаВыполнения,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Приоритет
|ИЗ
|Документ.РаспределениеЗадачи.РаспределениеЗадачиСотрудникам КАК РаспределениеЗадачиРаспределениеЗадачиСотрудникам
|ГДЕ
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Исполнитель В (&Ссылка)»;

bless18
14.04.2010 09:33 Ответ № 18

Странно, все равно в цикл не заходит. В чем же может быть дело? *09

E_Migachev
14.04.2010 09:37 Ответ № 19

это значит что нет документов РаспределениеЗадачи в которых в табличном поле РаспределениеЗадачиСотрудникам в поле Исполнитель стоит пользователь из списка ссылка *09

А что за конфигурация?

bless18
14.04.2010 09:40 Ответ № 20

конфигурация 1С:Предприятие 8.1 (8.1.9.57)

E_Migachev
14.04.2010 09:48 Ответ № 21

Это номер Платформы, причем очень устаревшей, уже давно есть — 8.1.15.14. обновиться бы лучше.
А конфигурация какая, в ней кто-нибудь работает? или ты создала новую пустую?

bless18
14.04.2010 09:54 Ответ № 22

конфигурация 1С:Предприятие 8.1 (8.1.9.57)

bless18
14.04.2010 09:55 Ответ № 23

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

E_Migachev
14.04.2010 10:08 Ответ № 24

Зайди Справка о программе, там первой строчкой буде твое 1С:Предприятие 8.1 (8.1.9.57)
а ниже Конфигурация:
и название… какое?

bless18
14.04.2010 11:14 Ответ № 25

Просто «Конфигурация» написано

Попробовала убрать в запросе параметры, все заработало. Видимо проблема все-таки в передаче параметра *09

Код 1C v 8.х

 Процедура ПриОткрытии()

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Ссылка.Дата,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Ссылка.Исполнитель,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.НаименованиеЗадачи,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.ДатаВыполнения,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Приоритет
|ИЗ
| Справочник.Пользователи КАК Пользователи
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РаспределениеЗадачи.РаспределениеЗадачиСотрудникам КАК РаспределениеЗадачиРаспределениеЗадачиСотрудникам
| ПО Пользователи.Сотрудник = РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Ссылка.Исполнитель" ;
//|ГДЕ
//| Пользователи.Ссылка В (&Ссылка)";
//
//Запрос.УстановитьПараметр("Ссылка", Пользователи.ВыгрузитьКолонку("Пользователь"));

РезультатЗапроса = Запрос.Выполнить().Выгрузить();
Для Каждого СтрокаРаспределениеЗадачиСотрудникам Из РезультатЗапроса Цикл
СтрокаТабличнойЧасти = ЭтотОбъект.Пользователи.Добавить();
//СтрокаТабличнойЧасти.Пользователь = СтрокаРаспределениеЗадачиСотрудникам.Пользователь;
СтрокаТабличнойЧасти.ТекущаяЗадача = СтрокаРаспределениеЗадачиСотрудникам.НаименованиеЗадачи;
СтрокаТабличнойЧасти.Приоритет = СтрокаРаспределениеЗадачиСотрудникам.Приоритет;
СтрокаТабличнойЧасти.ДатаНачалаВыполнения = СтрокаРаспределениеЗадачиСотрудникам.Дата;
СтрокаТабличнойЧасти.ДатаВыполненияПоПлану = СтрокаРаспределениеЗадачиСотрудникам.ДатаВыполнения;
СтрокаТабличнойЧасти.ИсполнительЗадачи = СтрокаРаспределениеЗадачиСотрудникам.Исполнитель;
КонецЦикла;

bless18
14.04.2010 11:51 Ответ № 26

Только через параметры запроса мне нужно получить пользователя, работающего с системой. Пользователь находится в справочнике Пользователи

E_Migachev
14.04.2010 11:53 Ответ № 27

В таком случае правильнее использовать запрос вида:
Код 1C v 8.х

 апрос.Текст = "ВЫБРАТЬ
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Дата,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Исполнитель,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.НаименованиеЗадачи,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.ДатаВыполнения,
| РаспределениеЗадачиРаспределениеЗадачиСотрудникам.Приоритет
|ИЗ
|Документ.РаспределениеЗадачи.РаспределениеЗадачиСотрудникам КАК РаспределениеЗадачиРаспределениеЗадачиСотрудникам";

Так как в левом соединении нет смысла — пользователи и так есть в реквизите Исполнитель

И тепереь у тебя получается вообще по всем пользователям которые есть документах РаспределениеЗадачи!

E_Migachev
25.04.2010 23:35 Ответ № 28

Вопрос закрыт!

Подсказка: Для выделения Кода используйте (в редакторе).

В платформе 1С сообщения об ошибках бывают достаточно запутаны, и без должных навыков разобраться в причинах достаточно сложно. Вот и сообщение об ошибке при вызове контекста может ввести в ступор начинающего разработчика. Однако в подавляющем большинстве случаев мы видим подобное сообщение, если разработчик допустил ошибку в своем коде. Причем речь зачастую идет не об орфографических ошибках, а о логических.

Исправляем ситуацию

Чтобы избавиться от этого неприятного сообщения об ошибке при вызове метода контекста, следует понимать, что контекстом называют методы платформы 1С. Значит в определенной строке кода воспользовались методом с неверными параметрами или вызвали его не от того владельца. Всегда внимательно и полностью читайте сообщения об ошибках – часто в них содержится указание на строку и метод, вызвавший ошибку. Это поможет сэкономить время на отладку и поиск проблемного места в коде.

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


	 Запрос = Новый Запрос;
	 Запрос.Текст =
	         "ВЫБРАТЬ
	          |        Номенклатура.Ссылка КАК Ссылка,
	          |        Номенклатура.ВерсияДанных КАК ВерсияДанных,
	          |        Номенклатура.ПометкаУдаления КАК ПометкаУдаления,
	          |        Номенклатура.Родитель КАК Родитель,
	          |        Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
	          |        Номенклатура.Код КАК Код,
	          |        Номенклатура.Наименование КАК Наименование,
	          |        Номенклатура.Артикул КАК Артикул,
	          |        Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	          |        Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
	          |        Номенклатура.Предопределенный КАК Предопределенный,
	          |        Номенклатура.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
	          |ИЗ
	          |        Справочник.Номенклатура КАК Номенклатура
	          |ГДЕ
	          |         ";
	 РезультатЗапроса = Запрос.Выполнить();
	 ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	 Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
	 КонецЦикла;
Рис.1 Запускаем на исполнение нижеприведенный кусок кода с запросом, в котором забыли дописать условие отбора
Рис.1 Запускаем на исполнение нижеприведенный кусок кода с запросом, в котором забыли дописать условие отбора

Приведенный текст ошибки программисту 1С скажет, что в модуле формы обработки «ЧтениеЗаписьXML на 152 строчке кода не может выполниться запрос. Причина в том, что на 17 строчке запроса нет чего-то, что ждал компилятор. Таким образом, чтобы убрать подобное сообщение, необходимо выяснить, что там должно быть и написать недостающий код.

Увидев вышеприведенный кусок кода, разработчик заметит, что в запросе есть служебное слово «ГДЕ», дающее сигнал 1С, что дальше будет условие. Но мы забыли дописать его и, естественно, система с помощью сообщения об ошибке спрашивает нас – «а где условие?». Чтобы исправить эту ситуацию необходимо либо убрать оператор «ГДЕ» из запроса, либо добавить условие.

Но ошибки могут быть не только в текстах запросов. Допустим, мы хотим выбрать всю номенклатуру и узнать, входит ли она в определенную группу. Проверка происходит с помощью метода «ПринадлежитЭлементу» и его параметра, который должен быть типа СправочникСсылка. Мы опять допускаем ошибку и вместо ссылки в параметр метода помещаем строку, содержащую имя переменной.


	 Запрос = Новый Запрос;
	            Запрос.Текст =
	                       "ВЫБРАТЬ
	                        |          Номенклатура.Ссылка КАК Ссылка,
	                        |          Номенклатура.ВерсияДанных КАК ВерсияДанных,
	                        |          Номенклатура.ПометкаУдаления КАК ПометкаУдаления,
	                        |          Номенклатура.Родитель КАК Родитель,
	                        |          Номенклатура.ЭтоГруппа КАК ЭтоГруппа,
	                        |          Номенклатура.Код КАК Код,
	                        |          Номенклатура.Наименование КАК Наименование,
	                        |          Номенклатура.Артикул КАК Артикул,
	                        |          Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
	                        |          Номенклатура.ТипНоменклатуры КАК ТипНоменклатуры,
	                        |          Номенклатура.Предопределенный КАК Предопределенный,
	                        |          Номенклатура.ИмяПредопределенныхДанных КАК ИмяПредопределенныхДанных
	                        |ИЗ
	                        |          Справочник.Номенклатура КАК Номенклатура
	                        |ГДЕ
	                        |          НЕ Номенклатура.ЭтоГруппа ";
	 НужнаяГруппаЭлементов = Справочники.Номенклатура.НайтиПоНаименованию("Мебель");
	 РезультатЗапроса = Запрос.Выполнить();
	 ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	 Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
	 Сообщить(ВыборкаДетальныеЗаписи.Ссылка.ПринадлежитЭлементу("НужнаяГруппаЭлементов"));
	 КонецЦикла;
Рис.2 Мы опять допускаем ошибку и вместо ссылки в параметр метода помещаем строку, содержащую имя переменной
Рис.2 Мы опять допускаем ошибку и вместо ссылки в параметр метода помещаем строку, содержащую имя переменной

1С выдает настолько же информативное сообщение, из которого мы понимаем, что на 158 строке у 1 параметра неправильный тип. Но что же делать, если мы не знаем, какой тип должен быть? В этом нам поможет Синтакс-помощник, встроенный в платформу 1С.

Рис.3 Синтакс-помощник
Рис.3 Синтакс-помощник

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

Рис.4 Сверив пример с нашим кодом, приходит понимание, что кавычки не нужны и без них все работает
Рис.4 Сверив пример с нашим кодом, приходит понимание, что кавычки не нужны и без них все работает

Чаще всего причиной подобных ошибок выступают следующие факторы:

  1. Невнимательность;
  2. Отсутствие опыта или знаний;
  3. Несогласованность действий разработчиков друг с другом;
  4. Изменения в методах контекста в новых версиях платформы.

Но ошибки при разработке ПО случаются постоянно, поскольку иногда ошибаются даже специалисты с многолетним опытом. Самое главное – уметь исправлять их и учиться на них. Постепенно вы будете видеть сообщения об ошибках все реже и научитесь замечать подобные «опечатки» еще до запуска 1С.

Logo
MurCode

  • Форумы
  • Поиск
  • О проекте

Неверные параметры в операции сравнения

sway

Дата: 05.04.2010 13:04:29

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

Запрос.УстановитьПараметр("Корректировка", Источник);

ОписаниеОшибки = Ошибка при вызове метода контекста (Выполнить): Неверные параметры в операции сравнения. Нельзя сравнивать поля неограниченной длины и поля несовместимых типов. Продажи.Регистратор <<?>>= &Корректировка

Через внешнюю обработку от КД работает, а через внутренние настройки обмена выдает ошибку.
Подскажите, плиз

Программист 1с

Дата: 05.04.2010 13:17:11

1. А точно в Источник кидаете ссылку? Подозреваю что нет.
2. А зачем в запросе вот эта строка?
Продажи.Регистратор КАК Регистратор

sway

Дата: 05.04.2010 13:50:42

Программист 1с
1. А точно в Источник кидаете ссылку? Подозреваю что нет.
2. А зачем в запросе вот эта строка?
Продажи.Регистратор КАК Регистратор

Источник в конвертации данных понимается как Источник объект.

Программист 1с
2. А зачем в запросе вот эта строка?
Продажи.Регистратор КАК Регистратор

«Продажи.Регистратор КАК Регистратор» это в консоли запросов автоматически так написалось. Прошу не обращать на такие вещи внимение.

mista2009

Дата: 05.04.2010 14:57:29

sway

Источник в конвертации данных понимается как Источник объект.

А если попробовать вот так

Источник.Ссылка

Запросы же с объектами не работают.

sway

Дата: 06.04.2010 06:29:22

mista2009
sway

Источник в конвертации данных понимается как Источник объект.

А если попробовать вот так

Источник.Ссылка

Запросы же с объектами не работают.

Так тож не получается. И если даже в условие добавить еще, что регистратор является ссылкой именно на документ требуемого типа, тож не работает.

leaf

Дата: 06.04.2010 09:35:26

а детализация по регистратору в регистре когда появляется?
когда заданы параметры виртуальной таблицы или есть всегда …
8.1 под рукой счас нет проверить не могу
попробуйте в регистре задать период
и вообще подобное условие на регистратор можно задать в параметрах таблицы
вроде как …

Программист 1с

Дата: 06.04.2010 10:42:55

А так тоже нет? Источник.Объект.Ссылка

Может он просто не создаете или не находит объект?

KuzEv

Дата: 06.04.2010 19:49:58

sway,

Запрос=Новый Запрос(«
|ВЫБРАТЬ
| РеализацияУслуг.Регистратор,
| РеализацияУслуг.Сумма
|ИЗ
| РегистрНакопления.РеализацияУслуг КАК РеализацияУслуг
|ГДЕ
| Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг»);

KuzEv

Дата: 06.04.2010 19:51:46

sway,

Плюс выведи результат запроса без использования «ГДЕ…». Может у тебя Регистритор=<пусто>/NULL и т.п.

Проблема в следующем. Имеется документ с табличной частью из которой надо выбрать записи определенного вида. В таблице есть поле «ОтветственныйИсполнитель» с типом «СправочникСсылка.Сотрудники». Из этого справочника «Содтрудники» выбирается сотрудник (наименование) и передается в запрос. Надо выбрать записи соответствующие выбранному сотруднику….ИначеВыдает такую ошибку: Ошибка при вызове метода контекста (Выполнить): {(16, 4)}: Неверные параметры «ПОДОБНО»И <<?>>КорректирующиеМероприятия.ОтветственныйИсполнитель ПОДОБНО (&Отв)Подскажите что не так?

Неужели никто не знает??? Я уже всю голову сломал :(Помогите кто может.

Спасибо за ответы!!!Надо было так:

Тэги:

Комментарии доступны только авторизированным пользователям

Понравилась статья? Поделить с друзьями:
  • Ошибка при вызове метода контекста в 1с при печати
  • Ошибка при вызове метода контекста выполнить зуп
  • Ошибка при вызове метода контекста в 1с как исправить
  • Ошибка при вызове метода контекста выпол
  • Ошибка при вызове метода контекста wsпрокси