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

Установка параметра в запросе

Автор Константин163, 25 мар 2015, 19:35

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

Константин163

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

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

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

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

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


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

Во втором запросе система пишет: {Отчет.Отчет1.Форма.ФормаОтчета.Форма(25,37)}: Переменная не определена (Склад)
   Запрос.УстановитьПараметр("Склад", <<?>>Склад); (Проверка: Сервер).

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

дфтын

потому, что Ссылка она везде есть и всегда, а склад это переменная (ну очень обобщенно)
Ссылка у вас есть как системная переменная, а склад вы должны добавить сами.
Помог? Нажми - Спасибо :)
skype: Soprov1C

cska-fanat-kz

где это код расположен...
что за "Склад"... :trhregerhg:
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

blackmoon89


k_aleks80

Цитата: blackmoon89 от 26 мар 2015, 04:45
ссылка.Склад :lol:
Цитата: Константин163 от 25 мар 2015, 19:35
... Приход_РасходПоСкладамОстаткиИОбороты.Склад = &Склад"; ...

Может
ЦитироватьПриход_РасходПоСкладамОстаткиИОбороты.Склад.Ссылка = &Склад"; ...
B)

blackmoon89

Цитата: k_aleks80 от 26 мар 2015, 16:46
Цитата: blackmoon89 от 26 мар 2015, 04:45
ссылка.Склад :lol:
Цитата: Константин163 от 25 мар 2015, 19:35
... Приход_РасходПоСкладамОстаткиИОбороты.Склад = &Склад"; ...

Может
ЦитироватьПриход_РасходПоСкладамОстаткиИОбороты.Склад.Ссылка = &Склад"; ...
B)

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

потому как на ссылку у него не ругается, а значит она определена, вполне возможно в ней есть склад

k_aleks80

Цитата: blackmoon89 от 26 мар 2015, 16:55
... не не, как раз таки  Запрос.УстановитьПараметр("Склад", ссылка.Склад); (Проверка: Сервер).

потому как на ссылку у него не ругается, а значит она определена, вполне возможно в ней есть склад
вам не кажется, что мы гадаем на кофейной гуще ... :) но вы, возможно, правы ;)

дфтын

blackmoon89, k_aleks80, вы такие умные. сами придумали вопрос, решил на него ответить. Вопрос же был не о том, что вы решили обсудить. Изучите внимательнее :befhbt:
Помог? Нажми - Спасибо :)
skype: Soprov1C

blackmoon89

Цитата: дфтын от 29 мар 2015, 00:36
blackmoon89, k_aleks80, вы такие умные. сами придумали вопрос, решил на него ответить. Вопрос же был не о том, что вы решили обсудить. Изучите внимательнее :befhbt:

Ну тогда расскажите нам,  чем вопрос.
Вопрос у человека поставлен четко, о проблеме ругательства на строку:
Запрос.УстановитьПараметр("Склад", Склад);
Мы ему ответили, что склад, возможно, сидит в Ссылка.Склад
Что не так мы поняли? Разъясните :trhregerhg:
Добавлено: 29 мар 2015, 00:43


Цитата: дфтын от 25 мар 2015, 20:52а склад это переменная (ну очень обобщенно)
Склад это не переменная, а вполне возможно, это реквизит объекта в контексте данной формы. Изучите внимательнее ООП :befhbt:

дфтын

blackmoon89, Специально для вас, урок программирования.
Переменная это такая штука куда заносятся какие либо занчения. Мой ответ был в том, что у него отсутствуют переменные. у него не было в вопросе о том, где взять переменную, как вычислить её. вы вообще не в курсе из какого места вызывается этот код, и cska-fanat-kz, совершенно верно спросил - где, откуда? Вам же нужно просто пофлудить необоснованно. ну ок. флудите дальше. Только не надо пользователей с толку сбивать.
Добавлено: 29 мар 2015, 00:45


а. 1С это ООП. нуну
Помог? Нажми - Спасибо :)
skype: Soprov1C

Теги:

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

Рейтинг@Mail.ru

Поиск