Имя: Пароль:
1C
1С v8
Помогите с запросом по остаткам в подборе номенклатуры в КА
0 curys
 
15.12.11
00:30
Доброе время суток.

Помогите с запросом по остаткам в бух учете.Необходимо получать остатки не только по Управл. учету, но и по бух.

Так вот подскажите куда мне его вставить в основной запрос, а то я что-то не могу сообразить?

Вот текст Запроса текущего кода:

ТекстЗапроса = "
       |ВЫБРАТЬ РАЗРЕШЕННЫЕ
       |    ТоварыНаСкладах.Номенклатура                                КАК Номенклатура,
       |    СУММА(  ЕСТЬNULL(ТоварыНаСкладах.КоличествоОстаток, 0.00)
       |          " + ?(СтруктураЗаказов = Неопределено,"","+ ЕСТЬNULL(ТоварыВРезерве.КоличествоОстаток, 0.00)") + "
       |    )                                                           КАК КоличествоСвободныйОстаток,
       |    0.00 КАК КоличествоОстатокОрганизации
       |ИЗ
       |    (ВЫБРАТЬ
       |        ОбщиеОстатки.Номенклатура               КАК Номенклатура,
       |        ОбщиеОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
       |        ОбщиеОстатки.Качество                   КАК Качество,
       |        СУММА(ОбщиеОстатки.КоличествоОстаток)   КАК КоличествоОстаток
       |    ИЗ
       |        (";

       //Формируем запрос по свободным остаткам
       ТекстЗапроса = ТекстЗапроса + ПолучитьСтрокуЗапросаСвободныеОстаткиУПП(Новый Структура("СвободныеОстатки,ТоварыВНТТ"), ТекстУсловияКачества, Истина);

       ТекстЗапроса = ТекстЗапроса + "
       |        ) КАК ОбщиеОстатки
       |
       |    СГРУППИРОВАТЬ ПО
       |        ОбщиеОстатки.Номенклатура, ОбщиеОстатки.ХарактеристикаНоменклатуры, ОбщиеОстатки.Качество
       |    ) КАК ТоварыНаСкладах
       |";

       Если НЕ СтруктураЗаказов = Неопределено Тогда
           Если ЗаказИзШапки Тогда
               Если ВидРегистраПлюсСвободныйОстаток = "ТоварыВРезервеНаСкладах" Тогда
                   ТекстЗапроса = ТекстЗапроса +"
                   |ЛЕВОЕ СОЕДИНЕНИЕ
                   |    РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Дата, " + мУсловиеНоменклатураСклад + ?(мУсловиеНоменклатураСклад = "", "", " И ") + "ДокументРезерва = &ДокументРезерва) КАК ТоварыВРезерве
                   |ПО
                   |    ТоварыВРезерве.Номенклатура = ТоварыНаСкладах.Номенклатура
                   |    И ТоварыВРезерве.ХарактеристикаНоменклатуры = ТоварыНаСкладах.ХарактеристикаНоменклатуры
                   |    И ТоварыНаСкладах.Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый)
                   |";
               ИначеЕсли ВидРегистраПлюсСвободныйОстаток = "ТоварыКПередачеСоСкладов" Тогда
                   ТекстЗапроса = ТекстЗапроса +"
                   |ЛЕВОЕ СОЕДИНЕНИЕ
                   |    РегистрНакопления.ТоварыКПередачеСоСкладов.Остатки(&Дата, " + мУсловиеНоменклатураСклад + ?(мУсловиеНоменклатураСклад = "", "", " И ") + "ДокументПередачи = &ДокументРезерва) КАК ТоварыВРезерве
                   |ПО ТоварыВРезерве.Номенклатура = ТоварыНаСкладах.Номенклатура
                   |    И ТоварыВРезерве.ХарактеристикаНоменклатуры = ТоварыНаСкладах.ХарактеристикаНоменклатуры
                   |    И ТоварыВРезерве.Качество = ТоварыНаСкладах.Качество
                   |";
               КонецЕсли;
           Иначе
               //временная таблица товаров в резерве
               Запрос.Текст = "
               |ВЫБРАТЬ РАЗРЕШЕННЫЕ
               |    ТоварыВРезервеНаСкладах.Номенклатура               КАК Номенклатура,
               |    ТоварыВРезервеНаСкладах.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
               |    СУММА(ТоварыВРезервеНаСкладах.КоличествоОстаток)   КАК КоличествоОстаток
               |ПОМЕСТИТЬ ТоварыВРезерве
               |ИЗ
               |    РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Дата, " + мУсловиеНоменклатураСклад + ") КАК ТоварыВРезервеНаСкладах

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

А это, то что надо добавить:
ВЫБРАТЬ
   ПартииТоваровНаСкладахБухгалтерскийУчетОстатки.Организация,
   ПРЕДСТАВЛЕНИЕ(ПартииТоваровНаСкладахБухгалтерскийУчетОстатки.Организация),
   ПартииТоваровНаСкладахБухгалтерскийУчетОстатки.Номенклатура,
   ПРЕДСТАВЛЕНИЕ(ПартииТоваровНаСкладахБухгалтерскийУчетОстатки.Номенклатура),
   ПартииТоваровНаСкладахБухгалтерскийУчетОстатки.Склад,
   ПРЕДСТАВЛЕНИЕ(ПартииТоваровНаСкладахБухгалтерскийУчетОстатки.Склад),
   ПартииТоваровНаСкладахБухгалтерскийУчетОстатки.КоличествоОстаток
ИЗ
   РегистрНакопления.ПартииТоваровНаСкладахБухгалтерскийУчет.Остатки КАК ПартииТоваровНаСкладахБухгалтерскийУчетОстатки

Буду очень благодарен за помощь, а то мозг уже не особо соображает(((
1 Reaper_1c
 
15.12.11
00:38
Зачем? (с)
2 DrShad
 
15.12.11
00:42
(1) +100500
3 curys
 
15.12.11
00:43
В конторе хотят видеть в подборе номенклатуры остатки по управ и бух учету.
4 curys
 
15.12.11
00:43
реализации они просто проводят некоторые только по бух учету.
5 Reaper_1c
 
15.12.11
00:52
(4) Ну так и объясни им, что они идиоты. По какому учету будут инвентаризацию делать? Да ни по какому, потому что учета нет. Достоверность учета это кит, без которого земля не устоит.
6 curys
 
15.12.11
00:59
Да я уже объяснял, толку нету. Мне впринципе пофигу, что у них потом все через одно место будет, там руководство просто такое, ничего не докажешь, хотят видеть остатки и все.
Реально помогите с этой фигней разобраться, у меня уже 5 утра, а надо чтобы до завтра было готово.
7 Reaper_1c
 
15.12.11
01:04
(6) Беги, дядь Мить! (с)
8 curys
 
15.12.11
01:14
Спасибо.
9 curys
 
15.12.11
01:49
ВЫБРАТЬ РАЗРЕШЕННЫЕ
   ТоварыНаСкладах.Номенклатура КАК Номенклатура,
   0 КАК КоличествоОстатокОрганизации,
   ТоварыНаСкладах.КоличествоОстаток,
   ТоварыНаСкладах.КоличествоОстатокБУ
ИЗ
   (ВЫБРАТЬ
       ОбщиеОстатки.Номенклатура КАК Номенклатура,
       ОбщиеОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
       ОбщиеОстатки.Качество КАК Качество,
       СУММА(ОбщиеОстатки.КоличествоОстаток) КАК КоличествоОстаток,
       ПартииМатериаловВЭксплуатацииБухгалтерскийУчетОстатки.КоличествоОстаток КАК КоличествоОстатокБУ,
       ПартииМатериаловВЭксплуатацииБухгалтерскийУчетОстатки.Номенклатура КАК НоменклатураБУ,
       ПартииМатериаловВЭксплуатацииБухгалтерскийУчетОстатки.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатурыБУ
   ИЗ
       (ВЫБРАТЬ
           ТаблицаОстатков.Номенклатура КАК Номенклатура,
           ТаблицаОстатков.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
           ТаблицаОстатков.Качество КАК Качество,
           ТаблицаОстатков.КоличествоОстаток КАК КоличествоОстаток
       ИЗ
           РегистрНакопления.СвободныеОстатки.Остатки(
                   &Дата,
                   Номенклатура В
                           (ВЫБРАТЬ
                               Справочник.Номенклатура.Ссылка
                           ИЗ
                               Справочник.Номенклатура
                           ГДЕ
                               Справочник.Номенклатура.Родитель = &Родитель)
                       И Склад В (&Склад)
                       И ВЫБОР
                           КОГДА &РазворачиватьДоКачества
                               ТОГДА ИСТИНА
                           ИНАЧЕ Качество = ЗНАЧЕНИЕ(Справочник.Качество.Новый)
                       КОНЕЦ) КАК ТаблицаОстатков
       
       ОБЪЕДИНИТЬ ВСЕ
       
       ВЫБРАТЬ
           ТаблицаОстатков.Номенклатура,
           ТаблицаОстатков.ХарактеристикаНоменклатуры,
           ЗНАЧЕНИЕ(Справочник.Качество.Новый),
           ТаблицаОстатков.КоличествоОстаток
       ИЗ
           РегистрНакопления.ТоварыВНТТ.Остатки(
                   &Дата,
                   Номенклатура В
                           (ВЫБРАТЬ
                               Справочник.Номенклатура.Ссылка
                           ИЗ
                               Справочник.Номенклатура
                           ГДЕ
                               Справочник.Номенклатура.Родитель = &Родитель)
                       И Склад В (&Склад)) КАК ТаблицаОстатков) КАК ОбщиеОстатки
           ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииМатериаловВЭксплуатацииБухгалтерскийУчет.Остатки КАК ПартииМатериаловВЭксплуатацииБухгалтерскийУчетОстатки
           ПО ОбщиеОстатки.Номенклатура = ПартииМатериаловВЭксплуатацииБухгалтерскийУчетОстатки.Номенклатура
   
   СГРУППИРОВАТЬ ПО
       ОбщиеОстатки.Номенклатура,
       ОбщиеОстатки.ХарактеристикаНоменклатуры,
       ОбщиеОстатки.Качество,
       ПартииМатериаловВЭксплуатацииБухгалтерскийУчетОстатки.КоличествоОстаток,
       ПартииМатериаловВЭксплуатацииБухгалтерскийУчетОстатки.Номенклатура,
       ПартииМатериаловВЭксплуатацииБухгалтерскийУчетОстатки.ХарактеристикаНоменклатуры) КАК ТоварыНаСкладах

СГРУППИРОВАТЬ ПО
   ТоварыНаСкладах.Номенклатура,
   ТоварыНаСкладах.КоличествоОстаток,
   ТоварыНаСкладах.КоличествоОстатокБУ

Подскажите, почему не выводит результат?
10 Reaper_1c
 
15.12.11
09:42
Потому, что его нет.