1с как обратиться к реквизиту параметра в запросе

Доступ к реквизиту параметра запроса

Я
   ЭЦ

13.03.13 — 13:12

ГОСПОДА !

имеется запрос

ВЫБРАТЬ РАЗЛИЧНЫЕ

   ЕСТЬNULL(СотрудникиОрганизаций.Ссылка, ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо) КАК Сорудник,

   ЕСТЬNULL(СотрудникиОрганизаций.ТекущаяДолжностьОрганизации, &ТЕКСТ_НЕТ_СОТРУДНИКА) КАК Должность,

   ЗарплатаКВыплатеОрганизацийЗарплата.Начислено,

   ЗарплатаКВыплатеОрганизацийЗарплата.Удержано,

   ЗарплатаКВыплатеОрганизацийЗарплата.Сумма

ИЗ

   Документ.ЗарплатаКВыплатеОрганизаций.Зарплата КАК ЗарплатаКВыплатеОрганизацийЗарплата

ЛЕВОЕ СОЕДИНЕНИЕ

   Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций

ПО

   ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо = СотрудникиОрганизаций.Физлицо

ГДЕ

   ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка = &Ведомость

// ————-

Нужно добавить проверку :

   И СотрудникиОрганизаций.ПодразделениеОрганизации В ИЕРАРХИИ(&Ведомость.ПодразделениеОрганизации)

т.е. использовать реквизит параметра.

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

Спасибо

//

  

Партнерская программа EFSOL Oblako

   Maxus43

1 — 13.03.13 — 13:12

параметром епредавай реквизит параметра отдельно

   Волшебник

2 — 13.03.13 — 13:13

какую ошибку выдаёт?

   Ork

3 — 13.03.13 — 13:14

(0) Добавь еще один параметр и не делай людЯм моск.

   MSII

4 — 13.03.13 — 13:14

А жаль, кстати, что не работает. Можно бы было в любой запрос только один параметр передавать.

   ЭЦ

5 — 13.03.13 — 13:14

(2) Ожидается выражение

И СотрудникиОрганизаций.ПодразделениеОрганизации В ИЕРАРХИИ(&Ведомость<<?>>.ПодразделениеОрганизации

   ЭЦ

6 — 13.03.13 — 13:15

Хочет закрыть скобку после &Ведомость

   andreymongol82

7 — 13.03.13 — 13:25

(6) Ну правильно. Попробуй объявить переменную с именем «Ведомост.ПодразделениеОрганизации» тоже ошибка будет

   ЭЦ

8 — 13.03.13 — 13:27

не придумал ничего лучше вложенного запроса

ВЫБРАТЬ РАЗЛИЧНЫЕ

   ЕСТЬNULL(СотрудникиОрганизаций.Ссылка, ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо) КАК Сорудник,

   ЕСТЬNULL(СотрудникиОрганизаций.ТекущаяДолжностьОрганизации, &ТЕКСТ_НЕТ_СОТРУДНИКА) КАК Должность,

   ЗарплатаКВыплатеОрганизацийЗарплата.Начислено,

   ЗарплатаКВыплатеОрганизацийЗарплата.Удержано,

   ЗарплатаКВыплатеОрганизацийЗарплата.Сумма

ИЗ

   Документ.ЗарплатаКВыплатеОрганизаций.Зарплата КАК ЗарплатаКВыплатеОрганизацийЗарплата

ЛЕВОЕ СОЕДИНЕНИЕ

   Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций

ПО

   ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо = СотрудникиОрганизаций.Физлицо

ГДЕ

   ЗарплатаКВыплатеОрганизацийЗарплата.Ссылка = &Ведомость

   И СотрудникиОрганизаций.ПодразделениеОрганизации В ИЕРАРХИИ(

   ВЫБРАТЬ

       Ведомости.Ссылка.ПодразделениеОрганизации

   ИЗ    

       Документ.ЗарплатаКВыплатеОрганизаций.Зарплата КАК Ведомости

   ГДЕ    

         Ведомости.Ссылка = &Ведомость)

   Волшебник

9 — 13.03.13 — 13:28

(8) Можно сделать вторым параметром

   Maxus43

10 — 13.03.13 — 13:28

(8) параметр задать нормально не вариант чтоли? зачем запрос усложнять? в наше время даже железки нужно жалеть

   ЭЦ

11 — 13.03.13 — 13:30

(9,10) Это гемор для юзеров — вместо выбрать ведомость — придется ее открывать смотреть подразделение, запоминать и еще раз выбирать

   Maxus43

12 — 13.03.13 — 13:32

(11) что? параметр передать программно, при чём тут юзеры?

   ЭЦ

13 — 13.03.13 — 13:33

(12) при том что это параметр отчета выбираемый юзером

   mikecool

14 — 13.03.13 — 13:33

(9) ты же сам учил ,как создавать убийца конструкторам )))

(0) пробуй

В ИЕРАРХИИ((&Ведомость).ПодразделениеОрганизации)

   mikecool

15 — 13.03.13 — 13:33

+14 убийцу*

   Рэйв

16 — 13.03.13 — 13:36

(13)Ну и что мешает сделать

Запрос.УстановитьПараметр(«ПодразделениеОрганизации»,Ведомость.ПодразделениеОрганизации)

   ЭЦ

17 — 13.03.13 — 13:37

(14) И конструктр ругается и пр загрузке грит -ошибка в схеме компоновки данных

(16) Это можно но придется еще и форму отчета программировать.

   Maxus43

18 — 13.03.13 — 13:38

(17) попробуй в параметрах компановки через точку

   mikecool

19 — 13.03.13 — 13:39

(17) еще через 100500 постов узнаем, что это УФ или еще что

сразу надо говорить было, для обычных запросов работает на ура

   ЭЦ

20 — 13.03.13 — 13:42

(19) О каких «обычных запросах» речь?

   mikecool

21 — 13.03.13 — 13:43

(20) Запрос = Новый Запрос;

о таких

   ЭЦ

22 — 13.03.13 — 13:45

(18) Вот это прокатывает.

   Maxus43

23 — 13.03.13 — 13:47

(22) дак сразу говорить надо что СКД)

   ЭЦ

24 — 13.03.13 — 13:50

(23) А без СКД никак нельзя?

   mikecool

25 — 13.03.13 — 13:51

(24) ты определись уже — скд у тебя или нет…

   Maxus43

26 — 13.03.13 — 13:51

(24) зависит от того, чем делаешь. хотя вроде в простых запросах всё равно нельзя (0), но там и не надо, там параметр дополнительный пихай

   Defender aka LINN

27 — 13.03.13 — 13:59

(16) Уж лучше (8)

   Sammo

28 — 13.03.13 — 14:37

Хм, а добавить в ПО (чтобы не стало внутренним)

И СотрудникиОрганизаций.ПодразделениеОрганизации В ИЕРАРХИИ(ЗарплатаКВыплатеОрганизацийЗарплата.ПодразделениеОрганизации)

   Defender aka LINN

29 — 13.03.13 — 14:49

(28) Не взлетит. И слава богу

   Sammo

30 — 13.03.13 — 14:59

К слову, имхо вместо

ЕСТЬNULL(СотрудникиОрганизаций.Ссылка, ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо) КАК Сорудник

Лучше сделать

ЗарплатаКВыплатеОрганизацийЗарплата.Физлицо КАК Сотрудник

   Sammo

31 — 13.03.13 — 15:00

(29) Хм. А через временные?

В первую отобрать документ (ссылка и нужные реквизиты)

Во вторую подразделения, которые в иерархии

И потом сjoin-ить левым первую временную с РС + РС внутренним со второй

  

Defender aka LINN

32 — 13.03.13 — 15:31

(31) По чему джойнить будешь?

Добрый день. Есть два набора данных (запрос) и 3 параметра: ДокументПлан, НачалоПериода, КонецПериода. В выражение параметра НачалоПериода, пишу следующий код: &ДокументПлан.Дата вылазит ошибка: «Параметр не найден: ДокументПлан.Дата» (если просто написать &ДокументПлан то ошибки нет) подскажите как образом можно обратится к реквизиту параметра?

или создавай четвертый параметр &ДокументПланДата

что-то походу не так делаю, не получается <КОД> ВЫБРАТЬ     УстановкаПланПродаж.МенеджерПоПродажам,     &Дата ИЗ     Документ.УстановкаПланПродаж.ПланПродаж КАК УстановкаПланПродаж

хелп, кто знает в чем фишка?

Совсем не читатель? , Либо делаешь еще параметр, там прописываешь как он вычисляется. Либо присоединяешь таблицу с отбором по реквизиту и берешь из нее

УстановкаПланПродаж.Ссылка.Ссылка — два раза, чтобы точно понял?

Я не пойму почему вот так нельзя: ИЗ

нее, перебираю ТЧ документа

ВЫРАЗИТЬ(&ДокументПлан КАК Документ.ТипДокумента).Дата

Извините может туплю, но ничего не выходит… сделал вот так: ИЗ В выражение параметра СКД — НачалоПериода (имеет тип дата), добавил следующий текст: НужнаяДата. При формирование отчета вылазит ошибка: Ошибка в выражении «НужнаяДата». Подскажите пожалуйста, что не так делаю?

проблема в том, что несмотря на всю «объектность» данных СКД ни панимаит что это за тип ))

даже используя способ , При формирование отчета вылазит ошибка: Ошибка в выражении «НужнаяДата». ВЫРАЗИТЬ(ДокументПлан КАК Документ.ПланПродаж).Дата КАК НужнаяДата ИЗ     Документ.УстановкаПланПродаж.ПланПродаж КАК УстановкаПланПродаж

+ проблема может быть, из-за того что у конфигурации стоит режим совместимости 8.3.4?

Где ты там использовал ? Возьми И изучай до просветления.

использовал в наборе данных запрос, получил поле НД — НужнаяДата. В выражение параметра использую это поле. что не так делаю..

ВЫРАЗИТЬ(&ДокументПлан КАК Документ.ТипДокумента).Дата ВЫРАЗИТЬ(ДокументПлан КАК Документ.ПланПродаж).Дата Есть различия?

А что если.. Да ну,  бред какой-то.

Да реально бред даже с параметром в запросе ВЫРАЗИТЬ(&ДокументПлан КАК Документ.ПланПродаж).Дата КАК НужнаяДата Ошибка в выражении… хз где эта собака зарыта…(

попробуй вот это поместить в виртуальную таблицу ВЫБРАТЬ     УстановкаПланПродаж.МенеджерПоПродажам,     УстановкаПланПродаж.План, ВЫРАЗИТЬ(&ДокументПлан КАК Документ.ПланПродаж) как Документ ИЗ     Документ.УстановкаПланПродаж.ПланПродаж КАК УстановкаПланПродаж а затем из виртуальной таблицы от документа получи Дата

Тэги: 1С 8

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

Слушатель курса Разработка и оптимизация запросов в 1С:Предприятие 8.3 столкнулся с трудностями при обращении к конкретному объекту непосредственно в запросе. С аналогичной задачей может столкнуться каждый, поэтому мы решили опубликовать вопрос слушателя и ответ тренера из Мастер-группы курса.

Вопрос

В самом начале курса было показано, как найти объект на встроенном языке, например, НайтиПоНаименованию или НайтиПоКоду и передать его в запрос через параметр. А можно ли обратиться к объекту прямо в запросе, не используя параметр. Например, найти номенклатуру, зная её точное название  или артикул?

Ответ тренера

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

Выборка номенклатуры по конкретному значению артикула:

ВЫБРАТЬ
    Номенклатура.Ссылка
ИЗ
    Справочник.Номенклатура КАК Номенклатура
ГДЕ
    Номенклатура.Артикул = "Арт1234"

Если значение реквизита не является примитивным типом, требуется через точку перейти на следующий уровень детализации.

То есть, чтобы выбрать номенклатуру с единицей измерения “штука”, нельзя написать

Номенклатура.ЕдиницаИзмерения = "Шт" 

Правильным будет следующее условие:

Номенклатура.ЕдиницаИзмерения.Наименование = "Шт".

P.S.

Понимать, как работают запросы и уметь их строить — обязательный навык для всех, кто дорабатывает и внедряет 1С.

После курса Вы сможете:

  • Строить сложные запросы с несколькими источниками данных
  • Уверенно задействовать вложенные запросы и временные таблицы
  • Использовать встроенный язык для обработки результатов запроса
  • Учитывать особенности соединений и объединений нескольких таблиц.
  • Разрабатывать запросы на уровне задач Аттестации 1С:Специалист по платформе.

Содержание:

1.       Использование параметров в запросе в 8.3

2.       Значения параметров СКД   

1.     Использование параметров в запросе в 8.3

Когда необходимо получить массив определенных значений, мы всегда используем запросы. Это очень удобный инструмент, который выбирает данные по определенным условиям. Условия могут быть разные, но если мы имеем дело с условием ссылочного типа и нет возможности указать предопределенный элемент справочника, тогда необходимо передавать условие, через параметр. Этот тип условий передается через определенный символ и наименование параметра, например, «&Номенклатура». Таким образом можно передать условие в запрос. Но чтобы необходимое значение условия было подставлено в запрос, необходимо после создания (формирования) запроса установить значение параметра. Это делается при помощи следующей строчки кода:

«Запрос.УстановитьПараметр(«Номенклатура», ВашеЗначениеНоменклатуры);»

В «ВашеЗначениеНоменклатуры» необходимо установить значение отбора, по которому Вы хотите получить данные. Оно может быть получено как из цикла по определенным данным, так и из реквизита на форме.

Например, Вам необходимо выбрать список расходных накладных, в которых есть определенная номенклатура. Для этого необходимо вывести реквизит с нужным типом объекта на форму обработки и написать запрос, который получит этот список. Из этого реквизита мы и возьмем значение параметра для запроса в 1С.  

2.     Значения параметров СКД

Запросы также используются в отчетах. Для отчета, построенного при помощи системы компоновки данных (СКД), существует отдельная вкладка, в которой настраиваем эти параметры. Значение параметров СКД возможно заполнять предопределенными значениями, выводить их сразу на форму или заполнять их при компоновке результата, для этого необходимо будет во время выполнения процедуры найти нужный нам параметр и подставить в него нужное нам значение или массив значений.

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

Для того чтобы не забывать про параметры в запросе в 8.3, лучше всего пользоваться конструктором запроса с обходом результата. После создания запроса, уже будут установлены значения параметров в запросе в 1С 8.3, и единственное, на что придется обращать внимание – это наименования переменной, отвечающее за значение параметра: если оно будет отличаться, то необходимо будет корректно переименовать значение параметра в строке кода, которая устанавливает и значение параметра.

В параметр в запросе в 1С 8.3 можно передавать не только условие или метод для отбора данных, но и саму таблицу с данными. Она также передается при помощи той строки кода, которая описана выше. Но в этом случае нам необходимо будет передавать таблицу значений с данными, а не просто ссылку на какое-то значение справочника.

Чтобы не возникало трудностей с тем, как передать параметр в запрос, важно запомнить единственное главное правило – никогда не забывать устанавливать параметры для запроса, если они имеются в запросе.

Специалист компании «Кодерлайн»

Олег Мороз

Вступайте в мою группу помощник программиста.
В ней мы обсуждаем программирование в 1С.

2017-12-18T22:46:59+00:00<<< Основы Группировка Условия Упорядочивание Функции
<<< Итоги Соединение Объединение Параметры

Скачать эти примеры в виде тестовой базы (как загрузить, как исследовать)

Оглавление (нажмите, чтобы раскрыть)

/// Как передать в запрос параметры простых типов в 1с 8.3, 8.2
 
&НаСервере
Процедура КакПередатьВЗапросПараметрыПростыхТиповНаСервере()
 
    // Сделаем отбор продаж за 1 квартал 2014 года.
 
    Запрос = Новый Запрос(
        "ВЫБРАТЬ
        |   Ссылка
        |ИЗ
        |   Документ.ПродажаЕды
        |ГДЕ
        |   Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода
        |УПОРЯДОЧИТЬ ПО
        |   Дата ВОЗР"
    );
 
    Запрос.УстановитьПараметр("НачалоПериода", '20140101000000');
    Запрос.УстановитьПараметр("ОкончаниеПериода", '20140331235959');
 
    ВыполнитьЗапросИВывестиНаФорму(Запрос);
 
КонецПроцедуры
 
/// Как передать в запрос параметры ссылочных типов в 1с 8.3, 8.2
 
&НаСервере
Процедура КакПередатьВЗапросПараметрыСсылочныхТиповНаСервере()    
 
    // Сделаем отбор продуктов со сладким вкусом.
 
    Запрос = Новый Запрос(
        "ВЫБРАТЬ
        |   Наименование,
        |   Вкус
        |ИЗ
        |   Справочник.Номенклатура
        |ГДЕ
        |   Вкус = &ВыбВкус"
    );
 
    Запрос.УстановитьПараметр("ВыбВкус",
        Справочники.Вкусы.НайтиПоНаименованию("Сладкий")
    );
 
    ВыполнитьЗапросИВывестиНаФорму(Запрос);    
 
КонецПроцедуры
 
/// Как передать в запрос параметр списочного типа в 1с 8.3, 8.2
 
&НаСервере
Процедура КакПередатьВЗапросПараметрСписокНаСервере()
 
    // Сделаем отбор продуктов, вкусы которых входят в переданный
    // нами список.
 
    Запрос = Новый Запрос(
        "ВЫБРАТЬ
        |   Наименование,
        |   Вкус
        |ИЗ
        |   Справочник.Номенклатура
        |ГДЕ
        |   Вкус В (&СписокВкусов)"
    );
 
    Список = Новый Массив;
    Список.Добавить(
        Справочники.Вкусы.НайтиПоНаименованию("Сладкий")
    );
    Список.Добавить(
        Справочники.Вкусы.НайтиПоНаименованию("Солёный")
    );
 
    Запрос.УстановитьПараметр("СписокВкусов",
        Список
    );
 
    ВыполнитьЗапросИВывестиНаФорму(Запрос);
 
КонецПроцедуры
 
/// Как передать в запрос таблицу значений в качестве
/// параметра в 1с 8.3, 8.2
 
&НаСервере
Процедура КакПередатьТаблицуЗначенийВКачествеПараметраНаСервере()
 
    // Сделаем отбор продуктов в соответствии с переданной
    // в запрос таблицей сочетания цвета и вкуса.
 
    СочетанияЦветаИВкуса = новый ТаблицаЗначений;
 
    СочетанияЦветаИВкуса.Колонки.Добавить("Цвет",
        Новый ОписаниеТипов("СправочникСсылка.Цвета"));
    СочетанияЦветаИВкуса.Колонки.Добавить("Вкус", 
        Новый ОписаниеТипов("СправочникСсылка.Вкусы"));        
 
    // красный + сладкий
    Стр = СочетанияЦветаИВкуса.Добавить();
    Стр.Цвет = 
        Справочники.Цвета.НайтиПоНаименованию("Красный"); 
    Стр.Вкус = 
        Справочники.Вкусы.НайтиПоНаименованию("Сладкий");    
 
    // жёлтый + солёный
    Стр = СочетанияЦветаИВкуса.Добавить();
    Стр.Цвет = 
        Справочники.Цвета.НайтиПоНаименованию("Жёлтый"); 
    Стр.Вкус = 
        Справочники.Вкусы.НайтиПоНаименованию("Солёный");
 
    Запрос = Новый Запрос(
        "ВЫБРАТЬ
        |   Наименование,
        |   Цвет,
        |   Вкус
        |ИЗ
        |   Справочник.Номенклатура
        |ГДЕ
        |   (Цвет, Вкус) В (&СписокСочетаний)"
    );
 
    Запрос.УстановитьПараметр("СписокСочетаний", СочетанияЦветаИВкуса);
 
    ВыполнитьЗапросИВывестиНаФорму(Запрос);
 
КонецПроцедуры
 
/// Как использовать таблицу переданную в запрос в качестве 
/// источника в 1с 8.3, 8.2
 
&НаСервере
Процедура КакИспользоватьТаблицуПараметрВКачествеИсточникаНаСервере()    
 
    // Создадим и заполним таблицу значений в коде, а затем
    // передадим её в запрос.
 
    Страны = новый ТаблицаЗначений;
    Страны.Колонки.Добавить("Название", Новый ОписаниеТипов("Строка"));
    Страны.Колонки.Добавить("Численность", Новый ОписаниеТипов("Число"));
 
    НоваяСтрока = Страны.Добавить();
    НоваяСтрока.Название = "Россия";
    НоваяСтрока.Численность = 144000000;
 
    НоваяСтрока = Страны.Добавить();
    НоваяСтрока.Название = "Австралия";
    НоваяСтрока.Численность = 23000000;
 
    НоваяСтрока = Страны.Добавить();
    НоваяСтрока.Название = "Новая зеландия";
    НоваяСтрока.Численность = 4400000;
 
    // Сначала выбираем переданные значения во временную
    // таблицу, а уже затем работаем с временной таблицей
    // как с обычной.
 
    Запрос = Новый Запрос(
        "ВЫБРАТЬ
        |   Название,
        |   Численность
        |ПОМЕСТИТЬ
        |   ВременнаяТаблица
        |ИЗ
        |   &ТаблицаСтран КАК Страны
        |;
        |ВЫБРАТЬ
        |   Название,
        |   Численность
        |ИЗ
        |   ВременнаяТаблица
        |УПОРЯДОЧИТЬ ПО
        |   Численность УБЫВ"
    );
 
    Запрос.УстановитьПараметр("ТаблицаСтран", Страны);
 
    ВыполнитьЗапросИВывестиНаФорму(Запрос);
 
КонецПроцедуры
 
/// Скачать и выполнить эти примеры на компьютере

Скачать эти примеры в виде тестовой базы (как загрузить, как исследовать)

Параметры в запросах в языке 1С 8.3, 8.2 (в примерах)

<<< Основы Группировка Условия Упорядочивание Функции
<<< Итоги Соединение Объединение Параметры

С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Владимир Милькин

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Нажмите одну из кнопок, чтобы поделиться:

На чтение 3 мин Просмотров 3.5к. Опубликовано 12.08.2019

На практике в большинстве случаев необходимо ограничить результат запроса условиями. Рассмотрим как можно передать различные значения в запрос.

Значения в запрос можно передать несколькими способами:

  • при помощи параметров;
  • использовать ключевое слово языка запроса ЗНАЧЕНИЕ;
  • использовать ключевое слово языка запроса ДАТАВРЕМЯ (только для типа Дата);
  • использовать ключевое слово языка запроса ТИП (только для типа Тип);
  • напрямую написать значения типов Строка, Число, Булево, Неопределено.

Содержание

  1. Использование параметров запроса
  2. Ключевое слово ЗНАЧЕНИЕ
  3. Ключевое слово ДАТАВРЕМЯ
  4. Ключевое слово ТИП
  5. Обращение к примитивным типам в запросе

Использование параметров запроса

Данный способ наиболее универсален, т.к. позволяет передать в запрос любое значение.

В тексте запроса перед именем параметра ставится символ &. Установка значений параметров производится методом

УстановитьПараметр(<ИмяПараметра>, <ЗначениеПараметра>)

Пример передачи параметра в запрос:

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

Результатом запроса будут все договора, у которых реквизит «Контрагент» равен переданному значению параметра «КонтрагентСсылка».

Ключевое слово ЗНАЧЕНИЕ

В запросе можно обратиться к предопределенным данным конфигурации без использования параметров. При помощи ключевого слова ЗНАЧЕНИЕ в запрос можно передать такие данные, как:

  • значения перечислений;
  • предопределенные элементы справочников, планов видов характеристик, планов счетов, планов видов расчетов;
  • пустые ссылки;
  • значения точек маршрута бизнес-процессов;
  • значения системных перечислений (например, ВидДвиженияНакопления).

Пример обращения к предопределенным значениям в запросе:

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

Результатом запроса будут все элементы справочника Номенклатура с типом Услуга.

Более подробное описание использования ключевого слова ЗНАЧЕНИЕ с примерами.

Ключевое слово ДАТАВРЕМЯ

К значениям типа дата в запросе можно обратиться при помощи конструкции

ДАТАВРЕМЯ(<Год>, <Месяц>, <День>, <Час>, <Минута>, <Секунда>)

Все параметры здесь — целые числа. Последние три параметра (Час, Минута, Секунда) указывать не обязательно.
Максимальная дата, которую можно задать — 31.12.3999 23:59:59.

Пример обращения к пустой дате в запросе:

Запрос = Новый Запрос;
Запрос.Текст =
«ВЫБРАТЬ
| СоглашенияСПоставщиками.Ссылка КАК Ссылка
|ИЗ
| Справочник.СоглашенияСПоставщиками КАК СоглашенияСПоставщиками
|ГДЕ
| СоглашенияСПоставщиками.ДатаОкончанияДействия = ДАТАВРЕМЯ(1, 1, 1)»;

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

Ключевое слово ТИП

Обращение к типу ТИП в запросе осуществляется конструкцией

ТИП(<ИмяТипа>)

Здесь ИмяТипа может принимать имя примитивного типа или имя таблицы ссылочного типа.
Примеры использования в запросе:

ТИП(Строка)
ТИП(Число)
ТИП(Справочник.Пользователи)
ТИП(Документ.РасходныйКассовыйОрдер)
ТИП(ПланВидовХарактеристик.СтатьиРасходов)

Обращение к примитивным типам в запросе

Значения типов Булево, Число, Строка, Неопределено в языке запросов задаются так же, как и во встроенном языке.
Пример обращения к примитивным типам в запросе:

Запрос = Новый Запрос;
Запрос.Текст =
«ВЫБРАТЬ
| ПриходныйКассовыйОрдер.Ссылка КАК Ссылка
|ИЗ
| Документ.ПриходныйКассовыйОрдер КАК ПриходныйКассовыйОрдер
|ГДЕ
| ПриходныйКассовыйОрдер.Проведен = ИСТИНА
| И ПриходныйКассовыйОрдер.СуммаДокумента > 1000
| И ПриходныйКассовыйОрдер.ПринятоОт = «»Иванов И.И.»»»;

Результатом запроса будут все проведенные документы ПриходныйКассовыйОрдер с суммой документа больше 1000 и реквизитом «Принято от» равным «Иванов И.И.». Обратите внимание, что здесь переменная типа Строка указана в двух двойных кавычках. Необходимо использовать именно такой синтаксис.

Реквизиты формы в запросе

Автор denis-moscow1987, 27 июн 2014, 11:31

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

Здравствуйте, имеется форма документа в ней создан реквизит в самой форме, как в запросе достучаться до него?
Может кто то сталкивался и знает как?
Спасибо


Передать его значение как параметр в запрос.

xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь…

Мысль — это оргазм мозга. Кто способен его испытать — получают истинное наслаждение, остальным приходится имитировать



Передача ЗНАЧЕНИЯ реквизита формы в запрос:
В запросе используете параметр &ЮрАдрес, затем

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

xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь…

Мысль — это оргазм мозга. Кто способен его испытать — получают истинное наслаждение, остальным приходится имитировать


Цитата: Klyacksa от 27 июн 2014, 11:56
Передача ЗНАЧЕНИЯ реквизита формы в запрос:
В запросе используете параметр &ЮрАдрес, затем
Запрос.УстановитьПараметр("ЮрАдрес",ЮрАдрес);

Так я в консоле пишу…как там сделать?


Да посмотрите как в форме этот реквизит заполняется, вообще это скорее всего данные из РегистаСведений КонтактнаяИнформация, сторойте запрос к нему, с отбором по нужному контрагенту.

если помогло нажмите: Спасибо!


Цитата: LexaK от 27 июн 2014, 12:08
Да посмотрите как в форме этот реквизит заполняется, вообще это скорее всего данные из РегистаСведений КонтактнаяИнформация, сторойте запрос к нему, с отбором по нужному контрагенту.

Данные берет из адресного классификатора

Добавлено: 27 июн 2014, 12:28


Цитата: LexaK от 27 июн 2014, 12:08
Да посмотрите как в форме этот реквизит заполняется, вообще это скорее всего данные из РегистаСведений КонтактнаяИнформация, сторойте запрос к нему, с отбором по нужному контрагенту.

в БП 3.0 нет регистра контактная информация в этом и проблема


Помотрите еще, куда этот реквизит из формы записывается, при сохранении данных по контрагенту (нопка ОК на форме) ?

если помогло нажмите: Спасибо!


Цитата: LexaK от 27 июн 2014, 12:34
Помотрите еще, куда этот реквизит из формы записывается, при сохранении данных по контрагенту (нопка ОК на форме) ?

Поле юр адрес в Справочник.ВидыКонтактнойИнформации
А откудова получить сами значения Юр адреса?


В БП3.0 контактная информация хранится в самом справочнике Контрагенты, табличная часть КонтактнаяИнформация !!! :D

если помогло нажмите: Спасибо!


Понравилась статья? Поделить с друзьями:
  • 1с как обратиться к реквизиту регистра накопления
  • 1с как при копировании документа очищать реквизит
  • 1с как проверить есть ли реквизит табличной части
  • 1с как проверить существование реквизита на форме
  • 1с как программно изменить реквизит в справочнике