Имя: Пароль:
1C
1С v8
Странный результат запроса
0 DCKiller
 
30.06.14
13:08
Ситуация следующая: делается запрос к БД по счету 41 с фильтром по определенной организации, складу и номенклатуре. Запрос делается из модуля документа Купля-продажа. По товару фактически есть только 2 прихода - документом "Приходная накладная" и "Операция". Запрос делается в разрезе регистраторов. Так вот, этот запрос выдает результат - вместе с двумя документами прихода он также показывает и текущий документ Купля-продажа в качестве регистратора!

http://s018.radikal.ru/i510/1406/7b/7e187067750a.jpg

Это тем более странно, что данный документ хотя и проводится по регистру бухгалтерии, из которого берет данные запрос, но при этом пока еще не формирует по нему никаких движений. Других документов, использующих документ этот купли-продажи в сформированных ими движениях, в базе нет. Если делать запрос без разреза по регистраторам, то все нормально, остаток количества и суммы выводятся правильные. В чем м.б. проблема? ТИИ не помогло.
1 Крошка Ру
 
30.06.14
13:13
(0)В самом регистре-то по такому отбору на момент выполнения запроса какие данные?
2 DCKiller
 
30.06.14
13:20
(1) В регистре движений с Купля-продажа нет.
3 Крошка Ру
 
30.06.14
13:21
(2) Тогда давай запрос
4 Maxus43
 
30.06.14
13:21
Старые движения может?
В какой момент делается запрос? При проведении?
5 DCKiller
 
30.06.14
13:22
(4) Да, при проведении. Но документ пока еще никаких движений не формирует (не прописано в модуле в смысле).
6 DCKiller
 
30.06.14
13:22
(3)

Запрос = Новый Запрос("ВЫБРАТЬ
    |    КупляПродажаТовары.Номенклатура,
    |    СУММА(КупляПродажаТовары.Количество) КАК Количество,
    |    СУММА(КупляПродажаТовары.Сумма) КАК Сумма,
    |    КупляПродажа.ОрганизацияПоставщик,
    |    КупляПродажа.СкладПоставщик,
    |    КупляПродажа.ОрганизацияПокупатель,
    |    КупляПродажа.СкладПокупатель
    |ПОМЕСТИТЬ ВТ_ДанныеДокумента
    |ИЗ
    |    Документ.КупляПродажа.Товары КАК КупляПродажаТовары
    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.КупляПродажа КАК КупляПродажа
    |        ПО КупляПродажаТовары.Ссылка = КупляПродажа.Ссылка
    |ГДЕ
    |    КупляПродажаТовары.Ссылка = &Ссылка
    |
    |СГРУППИРОВАТЬ ПО
    |    КупляПродажаТовары.Номенклатура,
    |    КупляПродажа.ОрганизацияПоставщик,
    |    КупляПродажа.СкладПоставщик,
    |    КупляПродажа.ОрганизацияПокупатель,
    |    КупляПродажа.СкладПокупатель
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ВТ_ДанныеДокумента.Номенклатура,
    |    ВТ_ДанныеДокумента.Количество,
    |    ВТ_ДанныеДокумента.Сумма,
    |    ВТ_ДанныеДокумента.ОрганизацияПоставщик,
    |    ВТ_ДанныеДокумента.СкладПоставщик,
    |    ВТ_ДанныеДокумента.ОрганизацияПокупатель,
    |    ВТ_ДанныеДокумента.СкладПокупатель,
    |    УправленческийОстаткиИОбороты.Регистратор КАК Партия,
    |    УправленческийОстаткиИОбороты.СуммаКонечныйОстатокДт,
    |    УправленческийОстаткиИОбороты.КоличествоКонечныйОстатокДт
    |ИЗ
    |    ВТ_ДанныеДокумента КАК ВТ_ДанныеДокумента
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Управленческий.ОстаткиИОбороты(
    |                ,
    |                &КонДата,
    |                Регистратор,
    |                ,
    |                Счет В ИЕРАРХИИ (ЗНАЧЕНИЕ(ПланСчетов.Хозрасчетный.Товары)),
    |                ,
    |                Организация В
    |                        (ВЫБРАТЬ ПЕРВЫЕ 1
    |                            ВТ_ДанныеДокумента.ОрганизацияПоставщик
    |                        ИЗ
    |                            ВТ_ДанныеДокумента КАК ВТ_ДанныеДокумента)
    |                    И Субконто1 В
    |                        (ВЫБРАТЬ РАЗЛИЧНЫЕ
    |                            ВТ_ДанныеДокумента.Номенклатура
    |                        ИЗ
    |                            ВТ_ДанныеДокумента КАК ВТ_ДанныеДокумента)
    |                    И Субконто2 В
    |                        (ВЫБРАТЬ ПЕРВЫЕ 1
    |                            ВТ_ДанныеДокумента.СкладПоставщик
    |                        ИЗ
    |                            ВТ_ДанныеДокумента КАК ВТ_ДанныеДокумента)) КАК УправленческийОстаткиИОбороты
    |        ПО ВТ_ДанныеДокумента.ОрганизацияПоставщик = УправленческийОстаткиИОбороты.Организация
    |            И ВТ_ДанныеДокумента.СкладПоставщик = УправленческийОстаткиИОбороты.Субконто2
    |            И ВТ_ДанныеДокумента.Номенклатура = УправленческийОстаткиИОбороты.Субконто1");
    
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    Запрос.УстановитьПараметр("КонДата", МоментВремени());
7 Maxus43
 
30.06.14
13:26
(5) Юзай границу, потому что при перепроедении например могут быть старые данные ещё
8 DCKiller
 
30.06.14
13:27
Все, разобрался. Надо было в вирт. таблице регистра метод дополнения "Движения" использовать :)
9 Maxus43
 
30.06.14
13:28
надо было Границу юзать, а не с методами дополнения играть)
10 Maxus43
 
30.06.14
13:28
типа Новый Граница(ЭтотОбъект.Ссылка, ВидГраницы.Исключая)
11 DCKiller
 
30.06.14
13:28
(9) Покажи? ;) Пригодится.