Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Как получить остатки в DBF-базе? (число прочтений - 3317 )
ReLock
Full Member
***
Отсутствует



Сообщений: 155
Местоположение: За компом
Зарегистрирован: 01. Февраля 2007
Пол: Мужской
Как получить остатки в DBF-базе?
05. Февраля 2007 :: 09:18
Печать  
Текст запроса:
Код
Выбрать все
Команда.УложитьСписокОбъектов(ВыбТовар,Товары,"Номенклатура");

Текст = "
|SELECT
|$Рег.Товар as [Товар $Справочник.Номенклатура]
|,SUM($Рег.ОстатокТовара) as Остаток
|FROM
|$РегистрИтоги.ОстаткиТоваров Рег
|WHERE
|$Рег.Товар IN (SELECT Val FROM " + Товары + ")
|GROUP BY
|$Рег.Товар
|";

Команда.Отладка(1);
ТЗ = Команда.ВыполнитьИнструкцию(ТекстЗапроса);
 



В итоговую таблицу попадают товары с нереальными остатками. Например, по одному из товаров сводный остаток равен 120 штук, а запрос возвращает - 7728 штук.

Что не так у меня в запросе? Или есть какие-то особенности при работе с регистрами в DBF-базе?
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Как получить остатки в DBF-базе?
Ответ #1 - 05. Февраля 2007 :: 09:21
Печать  
этим запросом ты получаешь сумму остатков всех периодов
фильтруй по полю period
  

1&&2&&3
Наверх
 
IP записан
 
ReLock
Full Member
***
Отсутствует



Сообщений: 155
Местоположение: За компом
Зарегистрирован: 01. Февраля 2007
Пол: Мужской
Re: Как получить остатки в DBF-базе?
Ответ #2 - 05. Февраля 2007 :: 09:29
Печать  
Фильтр по периоду я пробовал так:
Код
Выбрать все
Команда.УложитьСписокОбъектов(ВыбТовар,Товары,"Номенклатура");
Команда.УстановитьТекстовыйПараметр("ВыбДата",ПолучитьДатуТА());

Текст = "
|SELECT
|$Рег.Товар as [Товар $Справочник.Номенклатура]
|,SUM($Рег.ОстатокТовара) as Остаток
|FROM
|$РегистрИтоги.ОстаткиТоваров Рег
|WHERE
|$Рег.Товар IN (SELECT Val FROM " + Товары + ")
|AND (Рег.period = :ВыбДата~~)
|GROUP BY
|$Рег.Товар
 



Запрос вернул пустой набор данных
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Как получить остатки в DBF-базе?
Ответ #3 - 05. Февраля 2007 :: 09:33
Печать  
в поле period хранятся начальные даты периодов на конец которых хранятся остатки.
т.е. если у тебя периодичность хранения остатков - Месяц, то напиши Команда.УстановитьТекстовыйПараметр("ВыбДата",НачМесяца(ПолучитьДатуТА()));

  

1&&2&&3
Наверх
 
IP записан
 
ReLock
Full Member
***
Отсутствует



Сообщений: 155
Местоположение: За компом
Зарегистрирован: 01. Февраля 2007
Пол: Мужской
Re: Как получить остатки в DBF-базе?
Ответ #4 - 05. Февраля 2007 :: 09:36
Печать  
Спасибо. Сработало.  Подмигивание
  
Наверх
 
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как получить остатки в DBF-базе?
Ответ #5 - 05. Февраля 2007 :: 09:59
Печать  
Рекомендую посмотреть Конструктор запросов
  
Наверх
 
IP записан
 
pavel_tr
Senior Member
****
Отсутствует



Сообщений: 279
Местоположение: Казань
Зарегистрирован: 14. Октября 2006
Пол: Мужской
Re: Как получить остатки в DBF-базе?
Ответ #6 - 05. Февраля 2007 :: 11:58
Печать  
А проще всего - использовать виртуальную таблицу $РегистрОстатки
  
Наверх
 
IP записан
 
ReLock
Full Member
***
Отсутствует



Сообщений: 155
Местоположение: За компом
Зарегистрирован: 01. Февраля 2007
Пол: Мужской
Re: Как получить остатки в DBF-базе?
Ответ #7 - 05. Февраля 2007 :: 12:50
Печать  
pavel_tr писал(а) 05. Февраля 2007 :: 11:58:
А проще всего - использовать виртуальную таблицу $РегистрОстатки

А разве виртуальные таблицы работают в DBF? (читайте последний вопрос первого поста)
  
Наверх
 
IP записан
 
pavel_tr
Senior Member
****
Отсутствует



Сообщений: 279
Местоположение: Казань
Зарегистрирован: 14. Октября 2006
Пол: Мужской
Re: Как получить остатки в DBF-базе?
Ответ #8 - 05. Февраля 2007 :: 16:14
Печать  
ReLock писал(а) 05. Февраля 2007 :: 12:50:
pavel_tr писал(а) 05. Февраля 2007 :: 11:58:
А проще всего - использовать виртуальную таблицу $РегистрОстатки

А разве виртуальные таблицы работают в DBF? (читайте последний вопрос первого поста)

Упс. Про ДБФ не заметил, виноват  Круглые глаза
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать