Имя: Пароль:
1C
1С v8
правильная ли выборка из регистра накопления
0 LivingStar
 
03.04.13
14:28
Нужно получить оборот за день
|
   Запрос       = Новый Запрос;
   Запрос.Текст = "
       |ВЫБРАТЬ
       |    РозничнаяВыручкаОбороты.Период,
       |    РозничнаяВыручкаОбороты.РозничнаяТочка КАК РозничнаяТочка,
       |    РозничнаяВыручкаОбороты.СуммаОборот КАК СуммаОборот
       |ИЗ
       |    РегистрНакопления.РозничнаяВыручка.Обороты(&НачДата, &КонДата, День, ) КАК РозничнаяВыручкаОбороты
       |ГДЕ
       |    РозничнаяВыручкаОбороты.РозничнаяТочка = &Магазин
       |ИТОГИ
       |    СУММА(СуммаОборот)
       |ПО
       |    РозничнаяТочка";
   Запрос.УстановитьПараметр("&НачДата", НачалоДня(Дата));
   Запрос.УстановитьПараметр("&КонДата", КонецДня(Дата));
   Запрос.УстановитьПараметр("&Магазин", Склад;
1 exwill
 
03.04.13
14:29
(0) Вобщем правильно, но без ГДЕ кошернее.
2 LivingStar
 
03.04.13
14:30
Функцией хочу получить результат:
|
Функция ВыручкаПоМагазинуЗаДень()
   Запрос       = Новый Запрос;
   Запрос.Текст = "
       |ВЫБРАТЬ
       |    РозничнаяВыручкаОбороты.Период,
       |    РозничнаяВыручкаОбороты.РозничнаяТочка КАК РозничнаяТочка,
       |    РозничнаяВыручкаОбороты.СуммаОборот КАК СуммаОборот
       |ИЗ
       |    РегистрНакопления.РозничнаяВыручка.Обороты(&НачДата, &КонДата, День, ) КАК РозничнаяВыручкаОбороты
       |ГДЕ
       |    РозничнаяВыручкаОбороты.РозничнаяТочка = &Магазин
       |ИТОГИ
       |    СУММА(СуммаОборот)
       |ПО
       |    РозничнаяТочка";
   Запрос.УстановитьПараметр("&НачДата", НачалоДня(Дата));
   Запрос.УстановитьПараметр("&КонДата", КонецДня(Дата));
   Запрос.УстановитьПараметр("&Магазин", Склад;
   Рез = Запрос.Выполнить();
   Если Не Рез.Пустой() Тогда
       Выборка = Рез.Выбрать();
       Выборка.Следующий();
       Результат = Выборка.СуммаОборот;
   КонецЕсли;
   Возврат Результат;
КонецФункции
3 SherifSP
 
03.04.13
14:30
(0) Ну да
4 LivingStar
 
03.04.13
14:30
(1) Nfr f ult 'nj ;t jn,jh gj vfufpbye? bkb ye;yj d htubcnht gfhfvtnh gthtlfdfnm&
5 LivingStar
 
03.04.13
14:31
(1) так Где это же фильтр по магазину, или нужно в регистр параметр передавать!
6 Wobland
 
03.04.13
14:31
запрашиваешь три поля, а используешь одно
7 exwill
 
03.04.13
14:31
(0) А не посмотрел. ИТОГИ то убери. Зачем они тебе?
8 SherifSP
 
03.04.13
14:31
(5) В параметрах регистра условие делай
9 azernot
 
03.04.13
14:31
Нет.
1. Условие перенсти в параметры виртуальной таблицы (поле полсле третьей запятой)
2. Если в парметрах одна и та же дата, то периодичность "День" не имеет смысла. Ставь "Период"
3. Итоги по розничной точке не нужны, т.к. она одна.
10 SherifSP
 
03.04.13
14:32
(2) Зачем так? оО

Если Не Рез.Пустой() Тогда
       Выборка = Рез.Выбрать();
       Выборка.Следующий();
       Результат = Выборка.СуммаОборот;
   КонецЕсли;
11 SherifSP
 
03.04.13
14:34
+(10) Почему сразу не выгрузить, и не манипулировать с тз?
12 LivingStar
 
03.04.13
14:34
(7) а если там несколько записей будет?
(10) а как? надеюсь что там одна строка и получаю её
13 LivingStar
 
03.04.13
14:34
(11) так а в запросе нельзя все сделать и вернуть одну строку?
14 SherifSP
 
03.04.13
14:36
(12)  Рез = Запрос.Выполнить().Выгрузить();
     Если Рез.Количество() > 0 Тогда
          Возврат Рез[0].СуммаОборот;
     КонецЕсли;

На тебе быдло кодинг)
15 exwill
 
03.04.13
14:37
(12) Не будет там несколько записей. Ты ж к виртуальной таблице обращаешься.
16 salvator
 
03.04.13
14:38
(12) Для этого есть группировка, но никак не итоги.
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс