8.х Условия в Запрос

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Dem0lisher, 19 май 2010.

  1. TopicStarter Overlay
    Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.023
    Симпатии:
    51
    Баллы:
    54
    Помогите вставить условия в запрос, а именно ссылки на документы, если эти документы являются источниками выбираемых данных "&ДокПлан" и "&ДокНорм"
    Мое первое предположение относительно их размещения в тексте запроса оказалось слишком наивным..
  2. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Не компасируйте людям мозги.. :unsure: В прошлой теме же вам посоветовал - воспользуйтесь поиском по форуму или в гугле.
    Код:
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    Номер,
    |    Дата,
    |    ДатаПоступления,
    |    ДоговорКонтрагента,
    |    Контрагент КАК Поставщик,
    |    Организация,
    |    СуммаДокумента,
    |    ВалютаДокумента,
    |    УчитыватьНДС,
    |    СуммаВключаетНДС
    |ИЗ
    |    Документ.ЗаказПоставщику КАК ЗаказПоставщику
    |
    |ГДЕ
    |    ЗаказПоставщику.Ссылка = &ТекущийДокумент";
    Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка);
    Шапка = Запрос.Выполнить().Выбрать();
    
    
    
    вот вам пример запроса, так понятнее как устанавливаются параметры?
  3. TopicStarter Overlay
    Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.023
    Симпатии:
    51
    Баллы:
    54
    Делаю так.. ошибка. "Ожидается выражение ")" ГДЕ (Документ.НормыВыработки.Ссылка=&ДокНорм<<?>>.ссылка) И (Документ.ПланПроизводства.Ссылка=&ДокПлан.Ссылка)";"

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

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Код:
    Запрос.Текст="ВЫБРАТЬ
    |    ПланПроизводстваПлан.Номенклатура,
    |    ПланПроизводстваПлан.ЕдиницаИзмерения,
    |    ПланПроизводстваПлан.количество,
    |    НормыВыработкиНорма.Должность,
    |    НормыВыработкиНорма.Номенклатура КАК Номенклатура1,
    |    НормыВыработкиНорма.ЕдИзм,
    |    НормыВыработкиНорма.НормаВыработки
    |ИЗ
    |    Документ.ПланПроизводства.План КАК ПланПроизводстваПлан
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.НормыВыработки.Норма КАК НормыВыработкиНорма
    |        ПО ПланПроизводстваПлан.Номенклатура = НормыВыработкиНорма.Номенклатура
    |            И ПланПроизводстваПлан.ЕдиницаИзмерения = НормыВыработкиНорма.ЕдИзм
    |ГДЕ (Документ.НормыВыработки.Ссылка=&ДокНорм) И (Документ.ПланПроизводства.Ссылка=&ДокПлан)";
    Запрос.УстановитьПараметр("ДокНорм",ДокНорм.Ссылка);
    Запрос.УстановитьПараметр("ДокПлан",ДокПлан.Ссылка);
    
    
    
    так напишите.
    Сколько у вас весит сжатая база?
  5. TopicStarter Overlay
    Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.023
    Симпатии:
    51
    Баллы:
    54
    Так пишу-ошибка, а базу чем сжимать?
    Не в том ли ошибка, что для сравнения передается параметр-сслыка на документ, а с ним сравнивается табличная часть, ведь в запросе определен псевдоним

    "Документ.ПланПроизводства.План КАК ПланПроизводстваПлан"
    А сравнивается Документ.ПланПроизводства.Ссылка=&ДокПлан или нет??
  6. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    В том.
    Код:
    "ГДЕ (Документ.НормыВыработки.Норма.Ссылка=&ДокНорм) И (Документ.ПланПроизводства.План.Ссылка=&ДокПлан)"
    
    
    
    
    так напишите.

    До этого у вас ругалось на параметры. Какую ошибку теперь выдает?

    любым архиватором файл 1Cv8.1CD.
  7. gosn1ck
    Offline

    gosn1ck Опытный в 1С

    Регистрация:
    13 авг 2009
    Сообщения:
    1.329
    Симпатии:
    1
    Баллы:
    26
    быть может тип переменных ДокНорм и ДокПлан ссылка документов?
  8. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Ну так и должно быть. ДокНорм.Ссылка и ДокПлан.Ссылка слово "Ссылка" действительно можно убрать.
  9. TopicStarter Overlay
    Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.023
    Симпатии:
    51
    Баллы:
    54
    Такая же ошибка почему-то "Ожидается выражение ")" ГДЕ (Документ.НормыВыработки.Норма.Ссылка=&ДокНорм<<?>>.ссылка) И (Документ.ПланПроизводства.План.Ссылка=&ДокПлан.Ссылка";
  10. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    &ДокНорм.ссылка - для чего у вас в тексте запроса? я же написал просто &ДокНорм, без ссылка.
  11. TopicStarter Overlay
    Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.023
    Симпатии:
    51
    Баллы:
    54
    Слово ссылка убрать везде? не только в тексте запроса но и в Установитьпараметр("ДокНорм",ДокНорм.Сылка)??
  12. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Код:
    Запрос.Текст="ВЫБРАТЬ
    |    ПланПроизводстваПлан.Номенклатура,
    |    ПланПроизводстваПлан.ЕдиницаИзмерения,
    |    ПланПроизводстваПлан.количество,
    |    НормыВыработкиНорма.Должность,
    |    НормыВыработкиНорма.Номенклатура КАК Номенклатура1,
    |    НормыВыработкиНорма.ЕдИзм,
    |    НормыВыработкиНорма.НормаВыработки
    |ИЗ
    |    Документ.ПланПроизводства.План КАК ПланПроизводстваПлан
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.НормыВыработки.Норма КАК НормыВыработкиНорма
    |        ПО ПланПроизводстваПлан.Номенклатура = НормыВыработкиНорма.Номенклатура
    |            И ПланПроизводстваПлан.ЕдиницаИзмерения = НормыВыработкиНорма.ЕдИзм
    |ГДЕ (Документ.НормыВыработки.Норма.Ссылка=&ДокНорм) И (Документ.ПланПроизводства.План.Ссылка=&ДокПлан)";
    Запрос.УстановитьПараметр("ДокНорм",ДокНорм);
    Запрос.УстановитьПараметр("ДокПлан",ДокПлан);
    
    
  13. TopicStarter Overlay
    Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.023
    Симпатии:
    51
    Баллы:
    54
    На Этот раз пишет Ошибка при вызове метода контекста (Выполнить) . ПОле не найдено "ГДЕ(<<?>>Документ.НормыВыработки.Норма.Ссылка=&ДокНорм)" И (Документ.ПланПроизводства.План.Ссылка=&ДокПлан)"; "

    Делаю именно так и выскакивает такая ошибка Поле не найдено "ГДЕ (<<?>>Документ.НормыВыработки.Норма.Ссылка=&ДокНорм)"
  14. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Да, прошу прощения.
    Код:
    Запрос.Текст="ВЫБРАТЬ
    |    ПланПроизводстваПлан.Номенклатура,
    |    ПланПроизводстваПлан.ЕдиницаИзмерения,
    |    ПланПроизводстваПлан.количество,
    |    НормыВыработкиНорма.Должность,
    |    НормыВыработкиНорма.Номенклатура КАК Номенклатура1,
    |    НормыВыработкиНорма.ЕдИзм,
    |    НормыВыработкиНорма.НормаВыработки
    |ИЗ
    |    Документ.ПланПроизводства.План КАК ПланПроизводстваПлан
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.НормыВыработки.Норма КАК НормыВыработкиНорма
    |        ПО ПланПроизводстваПлан.Номенклатура = НормыВыработкиНорма.Номенклатура
    |            И ПланПроизводстваПлан.ЕдиницаИзмерения = НормыВыработкиНорма.ЕдИзм
    |ГДЕ (НормыВыработкиНорма.Ссылка=&ДокНорм) И (ПланПроизводстваПлан.Ссылка=&ДокПлан)";
    Запрос.УстановитьПараметр("ДокНорм",ДокНорм);
    Запрос.УстановитьПараметр("ДокПлан",ДокПлан);
    
    
  15. TopicStarter Overlay
    Dem0lisher
    Offline

    Dem0lisher Профессионал в 1С

    Регистрация:
    4 авг 2009
    Сообщения:
    1.023
    Симпатии:
    51
    Баллы:
    54
    У-ф-ф! Последний вариант оказался верным! Спасибо всем огромное за терпение и железные нервы! =)
  16. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Эххх... Почему же вы не пользовались конструктором? Сделали бы уже сами час назад без подсказок.

Поделиться этой страницей