Переключение на Главную Страницу Страницы: 1 [2]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Запрос не выдает записей (число прочтений - 5643 )
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Запрос не выдает записей
Ответ #15 - 05. Сентября 2012 :: 07:18
Печать  
es3000 писал(а) 05. Сентября 2012 :: 07:12:
а как проверить на NULL количество?
Не на null, а на 0. Используй конструкцию CASE.

es3000 писал(а) 05. Сентября 2012 :: 07:12:
о блин! теперь из 1С-ки не вставляется текст запроса! вставляются каракули...
что за наваждение Печаль
Это стандартное поведение ОС Windows начиная с версии NT 5.0 (в простонародье "Windows 2000"). Пора бы уже знать...
  
Наверх
 
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: Запрос не выдает записей
Ответ #16 - 05. Сентября 2012 :: 07:33
Печать  
Dmitry The Wing писал(а) 05. Сентября 2012 :: 07:18:
es3000 писал(а) 05. Сентября 2012 :: 07:12:
о блин! теперь из 1С-ки не вставляется текст запроса! вставляются каракули...
что за наваждение Печаль
Это стандартное поведение ОС Windows начиная с версии NT 5.0 (в простонародье "Windows 2000"). Пора бы уже знать...

так ведь все предыдущие посты я копировал тексты запросов из 1С-ки и вставлял сюда в форум нормально, без каракулей...
воистину неисповедимы твои пути господи!

PS: у меня стоит Win7х64
  
Наверх
ICQ  
IP записан
 
Dmitry The Wing
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 839
Местоположение: Где-то в Сибири
Зарегистрирован: 18. Августа 2009
Пол: Мужской
Re: Запрос не выдает записей
Ответ #17 - 05. Сентября 2012 :: 07:37
Печать  
es3000 писал(а) 05. Сентября 2012 :: 07:33:
Dmitry The Wing писал(а) 05. Сентября 2012 :: 07:18:
es3000 писал(а) 05. Сентября 2012 :: 07:12:
о блин! теперь из 1С-ки не вставляется текст запроса! вставляются каракули...
что за наваждение Печаль
Это стандартное поведение ОС Windows начиная с версии NT 5.0 (в простонародье "Windows 2000"). Пора бы уже знать...
так ведь все предыдущие посты я копировал тексты запросов из 1С-ки и вставлял сюда в форум нормально, без каракулей...
воистину неисповедимы твои пути господи!
Для особо "продвинутых" пользователей ОС Windows намекну: раскладка в момент копирования...
  
Наверх
 
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: Запрос не выдает записей
Ответ #18 - 05. Сентября 2012 :: 07:39
Печать  
Dmitry The Wing писал(а) 05. Сентября 2012 :: 07:37:
Для особо "продвинутых" пользователей ОС Windows намекну: раскладка в момент копирования...

понятна Улыбка теперь работает Улыбка
  
Наверх
ICQ  
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: Запрос не выдает записей
Ответ #19 - 05. Сентября 2012 :: 07:41
Печать  
так вот...
следующая конструкция выдает синтаксическую ошибку:

Код
Выбрать все
	|				(CASE
	|					WHEN ($РегОст.Количество = 0) THEN 0
	|					ELSE ($РегОст.Сумма / $РегОст.Количество)
	|				END) as ЦенаОтп
 



в чем косяк?
  
Наверх
ICQ  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Запрос не выдает записей
Ответ #20 - 05. Сентября 2012 :: 07:50
Печать  
В фоксе нет Case, там есть icase и синтаксис другой.

ЗЫ: и проверка бестолковая, сумневаюсь, что в регистр пишут движения с нулевым количеством у вас.


  
Наверх
 
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: Запрос не выдает записей
Ответ #21 - 05. Сентября 2012 :: 08:00
Печать  
IIF сработал...
спасибо мужики за помощь!
теперь буду GROUP BY делать...
  
Наверх
ICQ  
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: Запрос не выдает записей
Ответ #22 - 05. Сентября 2012 :: 10:18
Печать  
Все работает,
теперь нужно как-то это оптимизировать

Ситуация такая.
Нужно сделать отчет по записям регистра в следующем виде:

группа движений регистра 1
    движение регистра 1.1
    движение регистра 1.2
    ...
группа движений регистра 2
    движение регистра 2.1
    движение регистра 2.2
    ...

То есть на первом уровне - это группировка движений, на втором уровне - сами движения.
Сейчас я это сделал двумя запросами: первый выбирает движения, второй такой же запрос но с GROUP BY для группировки.
Получается дважды выполняется выборка одних и тех же данных.

Можно ли это как-то оптимизировать?
Чтобы за одну выборку сформировать данные для отчета?
  
Наверх
ICQ  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Запрос не выдает записей
Ответ #23 - 05. Сентября 2012 :: 10:39
Печать  
Сделать один запрос. Результат удобнее через Индексированную ТЗ обрабатывать (или в классе, например, Класс.ИтогиПоГруппировкам)

Зачем вам два  запроса  - загадка природы.

На счет оптимизации запроса, смотреть в эту сторону:

http://www.1cpp.ru/forum/YaBB.pl?num=1184317705

запрос будет производительней в разы.


  
Наверх
 
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: Запрос не выдает записей
Ответ #24 - 05. Сентября 2012 :: 11:04
Печать  
Eprst писал(а) 05. Сентября 2012 :: 10:39:
Сделать один запрос. Результат удобнее через Индексированную ТЗ обрабатывать (или в классе, например, Класс.ИтогиПоГруппировкам)

Зачем вам два  запроса  - загадка природы.

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

Eprst писал(а) 05. Сентября 2012 :: 10:39:
На счет оптимизации запроса, смотреть в эту сторону:

http://www.1cpp.ru/forum/YaBB.pl?num=1184317705

запрос будет производительней в разы.

про оптимизацию понял, буду смотреть
  
Наверх
ICQ  
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Запрос не выдает записей
Ответ #25 - 05. Сентября 2012 :: 11:25
Печать  
es3000 писал(а) 05. Сентября 2012 :: 11:04:
Стандартные 1С-ные запросы такого недостатка не имеют.


Смех Смех Смех

ЗЫ: Дык не выгружай в ТЗ, обходи выборкой, топая по записям

и пофик, сколько там записей будет, мильён, али два.
  
Наверх
 
IP записан
 
es3000
God Member
*****
Отсутствует



Сообщений: 536
Зарегистрирован: 10. Июля 2006
Re: Запрос не выдает записей
Ответ #26 - 05. Сентября 2012 :: 13:06
Печать  
Eprst писал(а) 05. Сентября 2012 :: 11:25:
es3000 писал(а) 05. Сентября 2012 :: 11:04:
Стандартные 1С-ные запросы такого недостатка не имеют.


Смех Смех Смех

ЗЫ: Дык не выгружай в ТЗ, обходи выборкой, топая по записям

и пофик, сколько там записей будет, мильён, али два.


Дык...

1С-ный запрос работает гораздо медленнее, тем более что им нельзя выбрать отдельные записи регистра (по крайней мере у меня не получилось).
Поэтому я начал делать прямым запросом. А прямые запросы я привык использовать вместе с ИТ...

Как прямой запрос использовать с выборкой? Можно примерчик? или ссылочку на примерчик?
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1 [2] 
ОтправитьПечать