Вход | Регистрация

1С:Предприятие ::

Метки: 

Как правильно написать запрос?

Я
   devochka_1c
 
12.01.13 - 21:49
Здравствуйте, подскажите, пожалуйста!

Пишу запрос на выборку данных из регистра расходы УСН (БП 2.0):

ВЫБРАТЬ
СУММА(ТаблицаРегистра.КоличествоОстаток) КАК Количество,
СУММА(ТаблицаРегистра.СуммаОстаток) КАК Сумма,
СУММА(ТаблицаРегистра.НДСОстаток) КАК СуммаНУДт,
ТаблицаРегистра.Партия КАК Субконто2,
ТаблицаРегистра.СчетУчета КАК СчетДт,
ТаблицаРегистра.ЭлементРасхода КАК Субконто1,
ТаблицаРегистра.Партия КАК Субконто2Кт,
ТаблицаРегистра.ДоговорКонтрагента.Владелец КАК Субконто1Кт,
ТаблицаРегистра.Партия.Склад КАК Субконто3
{ВЫБРАТЬ
ТаблицаРегистра.Организация.* КАК Организация,
ТаблицаРегистра.СтатусыОплатыРасходовУСН.* КАК СтатусыОплатыРасходовУСН,
ТаблицаРегистра.РасчетныйДокумент.* КАК РасчетныйДокумент,
ТаблицаРегистра.Партия.* КАК Партия,
ТаблицаРегистра.ВидРасхода.* КАК ВидРасхода,
ТаблицаРегистра.ЭлементРасхода.* КАК ЭлементРасхода,
ТаблицаРегистра.СтатусыПартийУСН.* КАК СтатусыПартийУСН,
ТаблицаРегистра.СчетУчета.* КАК СчетУчета,
ТаблицаРегистра.Валюта.* КАК Валюта,
ТаблицаРегистра.ДоговорКонтрагента.* КАК ДоговорКонтрагента,
ТаблицаРегистра.ОтражениеВУСН.* КАК ОтражениеВУСН,
ТаблицаРегистра.НомерСтрокиДокумента КАК НомерСтрокиДокумента,
ТаблицаРегистра.РеквизитыДокументаОплаты.* КАК РеквизитыДокументаОплаты,
(СУММА(ТаблицаРегистра.КоличествоОстаток)) КАК Количество,
(СУММА(ТаблицаРегистра.СуммаОстаток)) КАК Сумма,
(СУММА(ТаблицаРегистра.НДСОстаток)) КАК НДС}
ИЗ
РегистрНакопления.РасходыПриУСН.Остатки(&ДатаКон, {(Организация).* КАК Организация, (СтатусыОплатыРасходовУСН).* КАК СтатусыОплатыРасходовУСН, (РасчетныйДокумент).* КАК РасчетныйДокумент, (Партия).* КАК Партия, (ВидРасхода).* КАК ВидРасхода, (ЭлементРасхода).* КАК ЭлементРасхода, (СтатусыПартийУСН).* КАК СтатусыПартийУСН, (СчетУчета).* КАК СчетУчета, (Валюта).* КАК Валюта, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (ОтражениеВУСН).* КАК ОтражениеВУСН, (НомерСтрокиДокумента) КАК НомерСтрокиДокумента, (РеквизитыДокументаОплаты).* КАК РеквизитыДокументаОплаты}) КАК ТаблицаРегистра
ГДЕ
ТаблицаРегистра.СчетУчета = &СчетУчета
И ТаблицаРегистра.СтатусыОплатыРасходовУСН = &СтатусыОплатыРасходовУСН
И ТаблицаРегистра.Организация = &Организация
И ТаблицаРегистра.НДСОстаток ЕСТЬ НЕ NULL
И НЕ ТаблицаРегистра.НДСОстаток = 0
И НЕ ТаблицаРегистра.ДоговорКонтрагента = &ДоговорКонтрагента
{ГДЕ
ТаблицаРегистра.Организация.* КАК Организация,
ТаблицаРегистра.СтатусыОплатыРасходовУСН.* КАК СтатусыОплатыРасходовУСН,
ТаблицаРегистра.РасчетныйДокумент.* КАК РасчетныйДокумент,
ТаблицаРегистра.Партия.* КАК Партия,
ТаблицаРегистра.ВидРасхода.* КАК ВидРасхода,
ТаблицаРегистра.ЭлементРасхода.* КАК ЭлементРасхода,
ТаблицаРегистра.СтатусыПартийУСН.* КАК СтатусыПартийУСН,
ТаблицаРегистра.СчетУчета.* КАК СчетУчета,
ТаблицаРегистра.Валюта.* КАК Валюта,
ТаблицаРегистра.ДоговорКонтрагента.* КАК ДоговорКонтрагента,
ТаблицаРегистра.ОтражениеВУСН.* КАК ОтражениеВУСН,
ТаблицаРегистра.НомерСтрокиДокумента КАК НомерСтрокиДокумента,
ТаблицаРегистра.РеквизитыДокументаОплаты.* КАК РеквизитыДокументаОплаты}
СГРУППИРОВАТЬ ПО
ТаблицаРегистра.Партия,
ТаблицаРегистра.ЭлементРасхода,
ТаблицаРегистра.СчетУчета,
ТаблицаРегистра.ДоговорКонтрагента.Владелец,
ТаблицаРегистра.Партия.Склад,
ТаблицаРегистра.Партия


Нужно данные по складу выбрать из ОСВ. Написала вот такой запрос


ВЫБРАТЬ
СУММА(ТаблицаРегистра.КоличествоОстаток) КАК Количество,
СУММА(ТаблицаРегистра.СуммаОстаток) КАК Сумма,
СУММА(ТаблицаРегистра.НДСОстаток) КАК СуммаНУДт,
ТаблицаРегистра.Партия КАК Субконто2,
ТаблицаРегистра.СчетУчета КАК СчетДт,
ТаблицаРегистра.ЭлементРасхода КАК Субконто1,
ТаблицаРегистра.Партия КАК Субконто2Кт,
ТаблицаРегистра.ДоговорКонтрагента.Владелец КАК Субконто1Кт,
ТаблицаРегистра.Партия.Склад КАК Субконто3,
ХозрасчетныйОстатки.Субконто3 КАК Субконто31
{ВЫБРАТЬ
ТаблицаРегистра.Организация.* КАК Организация,
ТаблицаРегистра.СтатусыОплатыРасходовУСН.* КАК СтатусыОплатыРасходовУСН,
ТаблицаРегистра.РасчетныйДокумент.* КАК РасчетныйДокумент,
ТаблицаРегистра.Партия.* КАК Партия,
ТаблицаРегистра.ВидРасхода.* КАК ВидРасхода,
ТаблицаРегистра.ЭлементРасхода.* КАК ЭлементРасхода,
ТаблицаРегистра.СтатусыПартийУСН.* КАК СтатусыПартийУСН,
ТаблицаРегистра.СчетУчета.* КАК СчетУчета,
ТаблицаРегистра.Валюта.* КАК Валюта,
ТаблицаРегистра.ДоговорКонтрагента.* КАК ДоговорКонтрагента,
ТаблицаРегистра.ОтражениеВУСН.* КАК ОтражениеВУСН,
ТаблицаРегистра.НомерСтрокиДокумента КАК НомерСтрокиДокумента,
ТаблицаРегистра.РеквизитыДокументаОплаты.* КАК РеквизитыДокументаОплаты,
(СУММА(ТаблицаРегистра.КоличествоОстаток)) КАК Количество,
(СУММА(ТаблицаРегистра.СуммаОстаток)) КАК Сумма,
(СУММА(ТаблицаРегистра.НДСОстаток)) КАК НДС}
ИЗ
РегистрНакопления.РасходыПриУСН.Остатки(&ДатаКон, {(Организация).* КАК Организация, (СтатусыОплатыРасходовУСН).* КАК СтатусыОплатыРасходовУСН, (РасчетныйДокумент).* КАК РасчетныйДокумент, (Партия).* КАК Партия, (ВидРасхода).* КАК ВидРасхода, (ЭлементРасхода).* КАК ЭлементРасхода, (СтатусыПартийУСН).* КАК СтатусыПартийУСН, (СчетУчета).* КАК СчетУчета, (Валюта).* КАК Валюта, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (ОтражениеВУСН).* КАК ОтражениеВУСН, (НомерСтрокиДокумента) КАК НомерСтрокиДокумента, (РеквизитыДокументаОплаты).* КАК РеквизитыДокументаОплаты}) КАК ТаблицаРегистра
  ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаКон, Счет = &Счет, , Организация = &Организация) КАК ХозрасчетныйОстатки
  ПО ТаблицаРегистра.ЭлементРасхода = ХозрасчетныйОстатки.Субконто1
   И ТаблицаРегистра.Партия = ХозрасчетныйОстатки.Субконто2
ГДЕ
ТаблицаРегистра.СчетУчета = &СчетУчета
И ТаблицаРегистра.СтатусыОплатыРасходовУСН = &СтатусыОплатыРасходовУСН
И ТаблицаРегистра.Организация = &Организация
И ТаблицаРегистра.НДСОстаток ЕСТЬ НЕ NULL
И НЕ ТаблицаРегистра.НДСОстаток = 0
И НЕ ТаблицаРегистра.ДоговорКонтрагента = &ДоговорКонтрагента
{ГДЕ
ТаблицаРегистра.Организация.* КАК Организация,
ТаблицаРегистра.СтатусыОплатыРасходовУСН.* КАК СтатусыОплатыРасходовУСН,
ТаблицаРегистра.РасчетныйДокумент.* КАК РасчетныйДокумент,
ТаблицаРегистра.Партия.* КАК Партия,
ТаблицаРегистра.ВидРасхода.* КАК ВидРасхода,
ТаблицаРегистра.ЭлементРасхода.* КАК ЭлементРасхода,
ТаблицаРегистра.СтатусыПартийУСН.* КАК СтатусыПартийУСН,
ТаблицаРегистра.СчетУчета.* КАК СчетУчета,
ТаблицаРегистра.Валюта.* КАК Валюта,
ТаблицаРегистра.ДоговорКонтрагента.* КАК ДоговорКонтрагента,
ТаблицаРегистра.ОтражениеВУСН.* КАК ОтражениеВУСН,
ТаблицаРегистра.НомерСтрокиДокумента КАК НомерСтрокиДокумента,
ТаблицаРегистра.РеквизитыДокументаОплаты.* КАК РеквизитыДокументаОплаты}
СГРУППИРОВАТЬ ПО
ТаблицаРегистра.Партия,
ТаблицаРегистра.ЭлементРасхода,
ТаблицаРегистра.СчетУчета,
ТаблицаРегистра.ДоговорКонтрагента.Владелец,
ТаблицаРегистра.Партия.Склад,
ТаблицаРегистра.Партия,
ХозрасчетныйОстатки.Субконто3

Но в итоге выборка по 1 запросу и по второму не совпадают, а должны совпадать.
В чем моя ошибка? Помогите, пожалуйста.
 
 
   hhhh
 
1 - 12.01.13 - 22:31
Вроде не должны совпадать. Когда вручную смотрю этот регистр, не совпадает обычно с проводками.
   devochka_1c
 
2 - 12.01.13 - 22:54
(1)Но мне нужно взять все данные из регистра и подцепить склад, к-й в остатках по оборотке. Как это сделать?
   hhhh
 
3 - 13.01.13 - 02:45
ну возможно перемещения были со склада на склад. или Ручные операции.
   devochka_1c
 
4 - 13.01.13 - 12:03
(3) Абсолютно верно, были перемещения. И как в таком случае мне получить достоверную выборку?
   hhhh
 
5 - 13.01.13 - 13:48
(4) ну может брать   ТаблицаТоваров.Партия.Склад? Зачем вам ХозрасчетныйОстатки.Субконто3 ?
   devochka_1c
 
6 - 13.01.13 - 13:50
(5)Так нельзя, потому что на остатках на другом складе...
   devochka_1c
 
7 - 13.01.13 - 17:44
Кто что подскажет?
   hhhh
 
8 - 13.01.13 - 18:06
(6) тогда может ситуация быть, когда например 3 штуки, 1шт на одном складе, вторая на другом, а третья на третьем. В этом случае ваш запрос только в мусорную корзину выбросить.
   devochka_1c
 
9 - 13.01.13 - 18:28
(8) Вот именно, у меня как раз такая ситуация. И как исправить это?


Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует