Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
13 дек 2024, 22:10

При запросе выдает ошибку.

Автор Серега16, 09 авг 2014, 13:54

0 Пользователей и 1 гость просматривают эту тему.

Серега16

 в 1с 8.2 Почему выдает ошибку
Запрос.УстановитьПараметр("Наименование"<<?>>Наименование); (Проверка: Сервер)
а вот сам код
Запрос = Новый Запрос;
   Запрос.Текст ="ВЫБРАТЬ
                             | Покупатель.Наименование
                             |ИЗ
                             | Справочник.Покупатель КАК Покупатель
|Где
|Покупатель.Наименование = &Наименование" ;
   
       Запрос.УстановитьПараметр("Наименование"Наименование);
       Результат = Запрос.Выполнить();
       Если НЕ Результат.Пустой() Тогда
           
        Сообщить( "Данный покупатель уже существует!");

              КонецЕсли;

РS Пробывал и на сервере и на клиенте везде выдает ошибку. Роботает только в модуле объекта. ПередЗаписью
А я хочу при НаименованиеОкончаниеВводаТекста.

GRADUS

Посмотрите описание этого события, по-моему из него запрещено обращаться на сервер.
Используйте событие ПриИзменении

Серега16

Цитата: GRADUS от 09 авг 2014, 14:07
Посмотрите описание этого события, по-моему из него запрещено обращаться на сервер.
Используйте событие ПриИзменении
ПриИзменении вот такая ошибка.
Тип не определен (Запрос)
   Запрос = Новый <<?>>Запрос; (Проверка: Тонкий клиент)

GRADUS

Цитата: Серега16 от 09 авг 2014, 16:12
Цитата: GRADUS от 09 авг 2014, 14:07
Посмотрите описание этого события, по-моему из него запрещено обращаться на сервер.
Используйте событие ПриИзменении
ПриИзменении вот такая ошибка.
Тип не определен (Запрос)
   Запрос = Новый <<?>>Запрос; (Проверка: Тонкий клиент)

Запросы нужно на сервере создавать

pavl_vs

Серега16, после "Наименование" в УстановитьПараметр вообще-то следует ставить запятую.

GRADUS

Цитата: pavl_vs от 09 авг 2014, 17:42
Серега16, после "Наименование" в УстановитьПараметр вообще-то следует ставить запятую.

Ну он писал, что в модуле у него работает :bleh:

pavl_vs

ЦитироватьРоботает только в модуле объекта
Это я видел;

а прежде сообщение об ошибке:
ЦитироватьЗапрос.УстановитьПараметр("Наименование"<<?>>Наименование); (Проверка: Сервер)
и далее код с этой ошибкой.

Тогда реально с чем работает автор темы? И что мы обсуждаем?

Серега16

Цитата: pavl_vs от 09 авг 2014, 18:14
ЦитироватьРоботает только в модуле объекта
Это я видел;

а прежде сообщение об ошибке:
ЦитироватьЗапрос.УстановитьПараметр("Наименование"<<?>>Наименование); (Проверка: Сервер)
и далее код с этой ошибкой.

Тогда реально с чем работает автор темы? И что мы обсуждаем?
Запятую я потерял чуть позже когда пытался поменять параметры. Ща перепроверю все свои эксперименты с запятой.
Добавлено: 09 авг 2014, 19:41


&НаКлиенте
Процедура НаименованиеПриИзменении(Элемент)
Проверка();
КонецПроцедуры
&НаСервере
Процедура Проверка()экспорт

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

              КонецЕсли;

{Справочник.Покупатель.Форма.ФормаЭлемента.Форма(17,49)}: Переменная не определена (Наименование)
       Запрос.УстановитьПараметр("Наименование",<<?>>Наименование); (Проверка: Сервер).
Может есть другой способ проверки на уникальность при создании. Хотелось чтоб при заполнении первого регистра была проверка, а не после заполнения всех данных.

GRADUS

И что же у нас в переменной наименование, выложите скрин значения переменной "Наименование" в отладчике. После скрина продолжаем разговор.

Codokopatel

В форме элемента просто так ссылаться на поле по его названию нельзя.
Ссылка на значение поля идет через объект, то есть код будет таким:

Запрос.УстановитьПараметр("Наименование", Объект.Наименование);

И, к тому же, если у вас весь код в модуле формы элемента справочника, а обращаться к серверной процедуре вы из других мест конфигурации не собираетесь, то слово "Экспорт" можно не писать.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск