Имя: Пароль:
1C
1С v8
Помогите разобраться с запросом и регистрами бухгалтерии
0 Emillion
 
28.11.14
10:44
Добрый день. Поскажите, пожалуйста! Написал запрос, чтобы получить обороты, которые формирует документ типа "ОперацияБух".
Текст запроса:
Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
                   |    ХозрасчетныйОбороты.Регистратор,
                   |    ХозрасчетныйОбороты.Счет,
                   |    ХозрасчетныйОбороты.Субконто1,
                   |    ХозрасчетныйОбороты.Субконто2,
                   |    ХозрасчетныйОбороты.Субконто3,
                   |    ХозрасчетныйОбороты.КорСчет,
                   |    ХозрасчетныйОбороты.КорСубконто1,
                   |    ХозрасчетныйОбороты.КорСубконто2,
                   |    ХозрасчетныйОбороты.КорСубконто3,
                   |    ХозрасчетныйОбороты.СуммаОборот,
                   |    ХозрасчетныйОбороты.СуммаОборотДт,
                   |    ХозрасчетныйОбороты.СуммаОборотКт,
                   |    ХозрасчетныйОбороты.ВалютнаяСуммаКорОборот,
                   |    ХозрасчетныйОбороты.ВалютнаяСуммаКорОборотДт,
                   |    ХозрасчетныйОбороты.ВалютнаяСуммаКорОборотКт,
                   |    ХозрасчетныйОбороты.КоличествоОборот,
                   |    ХозрасчетныйОбороты.КоличествоОборотДт,
                   |    ХозрасчетныйОбороты.КоличествоОборотКт
                   |ИЗ
                   |    РегистрБухгалтерии.Хозрасчетный.Обороты(&НачПериода, &КонПериода, Регистратор, , , , , ) КАК ХозрасчетныйОбороты
                   |ГДЕ
                   |    ХозрасчетныйОбороты.КорСубконто1 = &Материал
                   |    И ХозрасчетныйОбороты.Счет В(&Счет)
                   |    И ХозрасчетныйОбороты.КорСчет В(&КорСчет)";
НО! Вместо того чтобы получить одну строку как в документе, запрос возвращает три строки разного вида. В первой только счета, во второй счета и сумма, в третьей счета, субконто и количество.
1 Maxus43
 
28.11.14
10:47
По условию задачи тебе надо:
                   |ГДЕ
                   |    ХозрасчетныйОбороты.Регистратор = &ХозОперация
2 RomanYS
 
28.11.14
10:49
если хочешь "как в документе" - бери таблицу движения с субконто
3 asady
 
28.11.14
10:50
(0) открой для себя ПВТ
4 RomanYS
 
28.11.14
10:51
(0) результат по таблице "обороты" зависит от настроек субконто (галочки "суммовой", "количественный" учет)
5 Emillion
 
28.11.14
11:26
если хочешь "как в документе" - бери таблицу движения с субконто

попробовал этот метод, выводит так же три строки, НО в последней есть все необходимые данные. ПРАВДА возникла одна проблема, оооооооочень догло обрабатывается такой запрос. К оборотам обращение мгновенное.

Может что в коде не так:
Запрос.Текст = "ВЫБРАТЬ
                   |    ХозрасчетныйДвиженияССубконто.Регистратор,
                   |    ХозрасчетныйДвиженияССубконто.СчетДт,
                   |    ХозрасчетныйДвиженияССубконто.СубконтоДт1,
                   |    ХозрасчетныйДвиженияССубконто.СубконтоДт2,
                   |    ХозрасчетныйДвиженияССубконто.СубконтоДт3,
                   |    ХозрасчетныйДвиженияССубконто.СчетКт,
                   |    ХозрасчетныйДвиженияССубконто.СубконтоКт1,
                   |    ХозрасчетныйДвиженияССубконто.СубконтоКт2,
                   |    ХозрасчетныйДвиженияССубконто.СубконтоКт3,
                   |    ХозрасчетныйДвиженияССубконто.Сумма,
                   |    ХозрасчетныйДвиженияССубконто.КоличествоДт,
                   |    ХозрасчетныйДвиженияССубконто.КоличествоКт,
                   |    ХозрасчетныйДвиженияССубконто.Содержание
                   |ИЗ
                   |    РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто КАК ХозрасчетныйДвиженияССубконто
                   |ГДЕ
                   |    ХозрасчетныйДвиженияССубконто.СубконтоКт1 = &Материал
                   |    И ХозрасчетныйДвиженияССубконто.СчетДт В(&Счет)
                   |    И ХозрасчетныйДвиженияССубконто.СчетКт В(&КорСчет)
                   |    И ХозрасчетныйДвиженияССубконто.Период МЕЖДУ &НачПериода И &КонПериода
                   |    И ХозрасчетныйДвиженияССубконто.Активность = ИСТИНА
                   |    И ХозрасчетныйДвиженияССубконто.Сумма <> 0";
6 RomanYS
 
28.11.14
14:03
ДвиженияССубконто - тоже виртуальная, засунь все условия в параметры
7 Borteg
 
28.11.14
14:07
(5) не слушай 2, слушай 1 и все условия в параметры
8 Borteg
 
28.11.14
14:10
(7) и на регистратор поставь условие на операциябух  а то запрос будет очень долго выполняться