Помогите. Ошибка в запросе при работе с РегистромБухгалтерии по остаткам

Новая тема
Всем привет. Помогите, пожалуйста, с простым вроде как запросом. Это мой первый запрос, до этого я только по книжкам пробовал.

ЦЕЛЬ СОЗДАНИЯ ЗАПРОСА

Необходимо в 1С Бухгалтерия 8.1 создать отчёт, который выводил бы количественное движение номенклатуры и отображал бы соответствующие документы. В отчете должны отображаться сами документы и номенклатура, а так же начальный и конечный остатоки плюс обороты (приход, расход)

ЗАТРУДНЕНИЯ

Остатки не выводятся верно, почему-то не правильно считаются остатки по номенклатуре, хотя по документам идут верно. Так же, если для списка документов первый из начальных остатков НЕ нулевой, то он всегда неправильный.


ПРИМЕР

http://s002.radikal.ru/i198/1008/f1/379f257ef1ad.jpg

ЗАПРОС

ВЫБРАТЬ
;  ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Номенклатура,
 ХозрасчетныйОстаткиИОбороты.Регистратор КАК Документ,
 СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоНачальныйОстаток) КАК ОстатокНачальный,
 СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоОборотДт) КАК КоличествоПриход,
 СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоОборотКт) КАК КоличествоРасход,
 СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток) КАК ОстатокКонечный
ИЗ
 РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(, , Регистратор, , , , ) КАК ХозрасчетныйОстаткиИОбороты

СГРУППИРОВАТЬ ПО
 ХозрасчетныйОстаткиИОбороты.Субконто1,
 ХозрасчетныйОстаткиИОбороты.Регистратор

УПОРЯДОЧИТЬ ПО
 Номенклатура
Привет.
Обязательно нужно определиться с датами , даже посекундно
Делаю через СКД он вроде и так дату учитывает. Но даже когда я поставил дату явно, ничего не изменилось. :( Запрос теперь выглядит так:

ВЫБРАТЬ
   ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Номенклатура,
   ХозрасчетныйОстаткиИОбороты.Регистратор КАК Документ,
  ХозрасчетныйОстаткиИОбороты.КоличествоНачальныйОстаток КАК ОстатокНачальный,
  ХозрасчетныйОстаткиИОбороты.КоличествоОборотДт КАК КоличествоПриход,
  ХозрасчетныйОстаткиИОбороты.КоличествоОборотКт КАК КоличествоРасход,
   ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток КАК ОстатокКонечный
ИЗ
   РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор, , Счет В ИЕРАРХИИ (&Счет), , ) КАК ХозрасчетныйОстаткиИОбороты
ГДЕ
   (НЕ ХозрасчетныйОстаткиИОбороты.Регистратор = &ПустойДокумент)

СГРУППИРОВАТЬ ПО
   ХозрасчетныйОстаткиИОбороты.Субконто1,
   ХозрасчетныйОстаткиИОбороты.Регистратор,
   ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток,
   ХозрасчетныйОстаткиИОбороты.КоличествоОборотДт,
   ХозрасчетныйОстаткиИОбороты.КоличествоОборотКт,
   ХозрасчетныйОстаткиИОбороты.КоличествоНачальныйОстаток

УПОРЯДОЧИТЬ ПО
   Номенклатура,
   Документ
Проверила на своей базе, запрос работает, только не понимаю смысла условия:
ГДЕ (НЕ ХозрасчетныйОстаткиИОбороты.Регистратор = &ПустойДокумент)
Для регистра бухгалтерии регистратор все равно будет заполнен (условие я закоммент). Запустите запрос в обработке Консоль запросов, самый удобный способ для отладки запросов. Успехов!
Спасибо за совет. Попробовал я через консоль. Только через консоль не видать глюков, которые в иерархии происходят. Если ты попробуешь через СКД прогнать запрос и поставишь номенклатуру в Иерархия, то увидишь ошибки.
"Итак, текст самого запроса:
ВЫБРАТЬ
ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Номенклатура,
ХозрасчетныйОстаткиИОбороты.Регистратор КАК Документ,
ХозрасчетныйОстаткиИОбороты.КоличествоНачальныйОстаток КАК ОстатокНачальный,
ХозрасчетныйОстаткиИОбороты.КоличествоОборотДт КАК КоличествоПриход,
ХозрасчетныйОстаткиИОбороты.КоличествоОборотКт КАК КоличествоРасход,
ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток КАК ОстатокКонечный
ИЗ
РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор, , Счет В ИЕРАРХИИ (&Счет), , ) КАК ХозрасчетныйОстаткиИОбороты
ГДЕ
(НЕ ХозрасчетныйОстаткиИОбороты.Регистратор = &ПустойДокумент)

УПОРЯДОЧИТЬ ПО
Номенклатура,
Документ

Далее на вкладке Ресурсы необходимо обязательно указать КоличествоПриход, КоличествоРасход, ОстатокКонечный, ОстатокНачальный; во всех строчках в колонке "Рассчитать по" укажите Документ, Номенклатура.

Затем на вкладке настройки создаем таблицу, строки: номенклатура, документ; колонки (значение "поле" оставляем пустым). Выделяем колонку Детальные записи, в нижней части окна "Выбранные поля" указываем КоличествоПриход, КоличествоРасход, ОстатокКонечный, ОстатокНачальный. Все, отчет готов и формируется все верно. Смысл в том, что группировки в СКД не указываем и обязательно прописываем в разделе ресурсы все значения полей, по которым хотим получить итоги.

Отчет:
http://rapidshare.com/files/415037301/VheshnOtchet1.erf;"
Маркиза, спасибо, я тронут. Был приятно удивлён, увидев, что ты сама создала ДЛЯ МЕНЯ отчет в СКД и даже залила этот отчет на рапиду. Я проверил, но вышло не совсем верно. Вот скрин твоего отчета не демке бухгалтерии
http://s58.radikal.ru/i161/1008/37/295764fe3065.jpg
Видишь
, по документам у конфет начальный остаток дожен быть начальный нулевым, а конечный - 320. Но в самой номенклатуре он в итоге НО - 320, а КО - 350. То есть это явная ошибка. Я, к счастью, уже решил эту задачю.  

ВЫБРАТЬ
СУММА(ВЫБОР
КОГДА ХозрасчетныйОстаткиИОбороты.Регистратор.Ссылка ЕСТЬ NULL
И ОстаткиНоменклатура.СуммаОборот <= 0
ТОГДА ХозрасчетныйОстаткиИОбороты.КоличествоНачальныйОстаток / 2
ИНАЧЕ ХозрасчетныйОстаткиИОбороты.КоличествоНачальныйОстаток
КОНЕЦ) КАК НачальныйОстаток,
СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоОборотДт) КАК Приход,
СУММА(ХозрасчетныйОстаткиИОбороты.КоличествоОборотКт) КАК Расход,
СУММА(ВЫБОР
КОГДА ХозрасчетныйОстаткиИОбороты.Регистратор.Ссылка ЕСТЬ NULL
И ОстаткиНоменклатура.СуммаОборот <= 0
ТОГДА ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток / 2
ИНАЧЕ ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток
КОНЕЦ) КАК КонечныйОстаток,
ХозрасчетныйОстаткиИОбороты.Регистратор КАК Документ,
ОстаткиНоменклатура.НачальныйОстаток КАК НачОстатокНомен,
ОстаткиНоменклатура.КонечныйОстаток КАК КонОстатокНомен,
ОстаткиНоменклатура.Номенклатура
ИЗ
(ВЫБРАТЬ
ХозрасчетныйОстаткиИОбороты.КоличествоНачальныйОстаток КАК НачальныйОстаток,
ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток КАК КонечныйОстаток,
ХозрасчетныйОстаткиИОбороты.Субконто1 КАК Номенклатура,
СУММА(ХозрасчетныйОстаткиИОбороты.СуммаОборот) КАК СуммаОборот
ИЗ
РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаНач, &ДатаКон, , , Счет В ИЕРАРХИИ (&Счёт), , Организация = &Организация) КАК ХозрасчетныйОстаткиИОбороты

СГРУППИРОВАТЬ ПО
ХозрасчетныйОстаткиИОбороты.Субконто1,
ХозрасчетныйОстаткиИОбороты.КоличествоНачальныйОстаток,
ХозрасчетныйОстаткиИОбороты.КоличествоКонечныйОстаток) КАК ОстаткиНоменклатура
ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&ДатаНач, &ДатаКон, Регистратор, , Счет В ИЕРАРХИИ (&Счёт), , Организация = &Организация) КАК ХозрасчетныйОстаткиИОбороты
ПО (ХозрасчетныйОстаткиИОбороты.Субконто1 = ОстаткиНоменклатура.Номенклатура)
ГДЕ
(ОстаткиНоменклатура.Номенклатура В ИЕРАРХИИ (&Номенклатура)
ИЛИ ХозрасчетныйОстаткиИОбороты.Субконто1 В ИЕРАРХИИ (&Номенклатура))
И (ОстаткиНоменклатура.НачальныйОстаток = ОстаткиНоменклатура.КонечныйОстаток
ИЛИ ХозрасчетныйОстаткиИОбороты.Регистратор.Представление ЕСТЬ НЕ NULL )

СГРУППИРОВАТЬ ПО
ХозрасчетныйОстаткиИОбороты.Регистратор,
ОстаткиНоменклатура.Номенклатура,
ОстаткиНоменклатура.НачальныйОстаток,
ОстаткиНоменклатура.КонечныйОстаток

УПОРЯДОЧИТЬ ПО
Документ

Как видишь, я делал расчитывал остатки отдельно по номенклатуре и отдельно по документам.  И то этот запрос не решил задачи, пришлос в "Ресурсы" для поля Конечный остаток ставить выражение: НачОстатокНомен+Сумма(Приход)-Сумма(Расход)

Теперь у меня всё работает, чему я очень рад.

Ещё раз спасибо тебе Маркиза за отзывчивость и желание помочь, я тронут и я восхищён тобой.

"Очень рада, что все получилось, молодец :-) Так что дерзай дальше, все будет гуд, удачи ;-)"
> ОстаткиНоменклатура.Номенклатура В ИЕРАРХИИ (&Номенклатура)
ИЛИ ХозрасчетныйОстаткиИОбороты.Субконто1 В ИЕРАРХИИ (&Номенклатура))

вот это лучше вынести в параметры виртуальной таблицы
Читают тему
(гостей: 1)

Быстрый переход