Имя: Пароль:
1C
1C 7.7
v7: Помогите с запросом
,
0 Aleksey1989
 
16.05.13
08:22
ДОбрый день. Помогите, пжл, составить запрос, который будет выбирать все документы, у которых реквизит Назначение имеет строго определенной значение, а реквизит "Клиент" может не иметь значение (и тогда должны быть отражены все клиенты), а может иметь значение (в этом случае должны будут отражены только информация по выбранному клиенту).
Я сам подготовил запрос, он имее следующий вид:

   ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)
   |Период с ДатаНач по ДатаКон;
   |Клиент = Документ.РасходныйОрдер.Клиент;
   |ДатаДок = Документ.РасходныйОрдер.ДатаДок;
   |Сумма = Документ.РасходныйОрдер.Сумма;
   |Назначение = Документ.РасходныйОрдер.Назначение;
   |Функция СуммаНачОст = НачОст(Сумма);
   |Группировка Клиент без групп без упорядочивания;
   |Группировка Документ;
   |Группировка ДатаДок без упорядочивания;
   |Группировка Сумма без упорядочивания;
   |Условие((Назначение = Перечисление.ВидыОплаты.ВСчетЗПл) и (Клиент = ""Сотрудник""));
   |"//}}ЗАПРОС

Но почему-то он вообще ничего не выводит. "Сотрудник" - это реквизит на форме отчета.
1 Mikeware
 
16.05.13
08:25
Открой для себя конструктор запросов.
2 Эмбеддер
 
16.05.13
08:27
вот это точно неправильно, клиент не строка
Клиент = ""Сотрудник""
3 1Сергей
 
16.05.13
08:29
В
4 PiterPrg
 
16.05.13
08:33
(3) Ты-б был по-красноречивие...
(0) Вместо Клиент = ""Сотрудник""  надо Клиент В Сорудник
5 1Сергей
 
16.05.13
08:34
(4) >>Ты-б был по-красноречивие...

поверь, я и так слишком много сказал постом (3)
6 Aleksey1989
 
16.05.13
08:38
Попробовал воспользоваться консолью запросов, в результате чего запрос выглядит следующим образом:

ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)
   |Период с ДатаНач по ДатаКон;
   |Клиент = Документ.РасходныйОрдер.Клиент;
   |ДатаДок = Документ.РасходныйОрдер.ДатаДок;
   |Сумма = Документ.РасходныйОрдер.Сумма;
   |Назначение = Документ.РасходныйОрдер.Назначение;
   |Функция СуммаНачОст = НачОст(Сумма);
   |Группировка Клиент без групп без упорядочивания;
   |Группировка Документ;
   |Группировка ДатаДок без упорядочивания;
   |Группировка Сумма без упорядочивания;
   |Условие(Клиент = Условия.ПолучитьЗначение(6,""Сотрудник""));
   |Условие(Назначение = Перечисление.ВидыОплаты.ВСчетЗПл);
   |"//}}ЗАПРОС

Но при попытке выполнить этот запрос возникает ошибка:

Переменная не определена (УСЛОВИЯ)
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
{Отчет.ОтчетПоВыданнойЗПл.Форма.Модуль(30)}: Условие(Клиент = Условия.ПолучитьЗначение(6,"Сотрудник") <<?>> );
Запрос[12] : Ошибка в выражении 'Условия'
7 Aleksey1989
 
16.05.13
08:41
Все, получилось. Надо использовать следующий запрос:
   ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)
   |Период с ДатаНач по ДатаКон;
   |Клиент = Документ.РасходныйОрдер.Клиент;
   |ДатаДок = Документ.РасходныйОрдер.ДатаДок;
   |Сумма = Документ.РасходныйОрдер.Сумма;
   |Назначение = Документ.РасходныйОрдер.Назначение;
   |Функция СуммаНачОст = НачОст(Сумма);
   |Группировка Клиент без групп без упорядочивания;
   |Группировка Документ;
   |Группировка ДатаДок без упорядочивания;
   |Группировка Сумма без упорядочивания;
   |Условие(Клиент В Сотрудник);
   |Условие(Назначение = Перечисление.ВидыОплаты.ВСчетЗПл);
   |"//}}ЗАПРОС
8 ivanov-i-i
 
16.05.13
08:42
(7) Тебе это ещё в (4) написали.
9 kudlach
 
16.05.13
08:42
молодец
10 Эмбеддер
 
16.05.13
08:51
Я сразу и не понял, что за Сотрудник

лучше такие элементы на форме называть ВыбСотрудник, как делает 1С
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.