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

Не передается параметр в запрос

Автор Сергей190000, 01 ноя 2017, 14:59

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

Сергей190000

Приветствую всех форумчан!
У меня не передается параметр в запрос 1с
Вот код:
&НаСервере
Процедура СохранениеЗначенияEmail(СсылкаАбонента,ЛСабонента, Email, СвойствоEmail)

Результат = истина;
Абонент   = СсылкаАбонента;


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


Запрос.УстановитьПараметр("ЛC", ЛСабонента );
Запрос.УстановитьПараметр("Свойство", СвойствоEmail);


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

Если Выборка.Количество() = 0 тогда
Результат = Ложь;
КонецЕсли;

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

    Если Выборка.Значение <> Email тогда
Результат = Ложь;
КонецЕсли;
КонецЦикла;


// сохранить значение Email
Если не Результат тогда
   НаборЗаписей = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();

   НаборЗаписей.Отбор.Объект.Установить(Абонент);
   НаборЗаписей.Отбор.Свойство.Установить(СвойствоEmail);

   НоваяЗапись = НаборЗаписей.Добавить();
   НоваяЗапись.Период = ТекущаяДата();
   НоваяЗапись.Объект = Абонент;
   НоваяЗапись.Свойство = СвойствоEmail;
   НоваяЗапись.Значение = Истина;

   НаборЗаписей.Записать();
КонецЕсли;

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


Ругается на параметр &ЛС. Он строковый, передается в процедуру из другой процедуры.
Когда смотрю в отладчике значение переменной ЛСабонента, то с ней все в порядке - значение есть, оно строкового типа.

MuI_I_Ika


Сергей190000

Вот так:

{ВнешняяОбработка.ВнешняяОбработка1.Форма.Форма.Форма(43)}: Ошибка при вызове метода контекста (Выполнить)
Выборка = Запрос.Выполнить().Выбрать();
по причине:
{(9, 60)}: Не задано значение параметра "ЛС"
ЗначенияСвойствОбъектовСрезПоследних.Объект.ЛицевойСчет = <<?>>&ЛС

MuI_I_Ika


Сергей190000

Переименовал.  Оно заработало! Но я не понял, почему это помогло?

MuI_I_Ika

Все дело в клавиатуре и раскладке.
Вообще чтобы не допускать таких ошибок лучше всегда следовать стандартам разработки. Для этого они и придуманы.

https://its.1c.ru/db/v8std#content:-2145783193:hdoc

Сергей190000


Теги:

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

Рейтинг@Mail.ru

Поиск