Имя: Пароль:
1C
1С v8
Запрос не выдает суммы
0 iojik_cry
 
16.01.15
10:58
Очень прошу мне, последнему идиоту, объяснить: почему в консоли запрос прекрасно отрабатывает и показывает все что нужно, а в документе получает в поле "сум" нуль? Я уже себе весь мозг взорвал...

Собственно сам запрос(ток не ругайте, я и сам знаю, что извращенец)

ВЫБРАТЬ
ХозрасчетныйОстатки.Счет,
ХозрасчетныйОстатки.Субконто1 КАК НоменклатурнаяГруппа,
ХозрасчетныйОстатки.СуммаОстаток КАК Сумма
ПОМЕСТИТЬ Откл_Выпуск
ИЗ
РегистрБухгалтерии.Хозрасчетный.Остатки(&КонДата, Счет В (&Счет1), , Организация = &Организация) КАК ХозрасчетныйОстатки
;
ВЫБРАТЬ
ХозрасчетныйДвиженияССубконто.СчетДт КАК Счет,
ХозрасчетныйДвиженияССубконто.СубконтоКт1 КАК НоменклатурнаяГруппа,
СУММА(ХозрасчетныйДвиженияССубконто.Сумма) КАК Сумма
ПОМЕСТИТЬ Откл_План
ИЗ
РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
&НачДата,
&КонДата,
СчетДт В (&Счет)
И СчетКт В (&Счет1)
И Организация = &Организация,,) КАК ХозрасчетныйДвиженияССубконто
СГРУППИРОВАТЬ ПО
ХозрасчетныйДвиженияССубконто.СчетДт,
ХозрасчетныйДвиженияССубконто.СубконтоКт1
;
ВЫБРАТЬ
откл_выпуск.НоменклатурнаяГруппа КАК номенклатурнаягруппа,
откл_выпуск.Сумма КАК Сумма_факт,
откл_план.Сумма КАК сумма_план,
откл_план.Сумма / откл_выпуск.Сумма * -1 КАК коэф
ПОМЕСТИТЬ Откл_коэф
ИЗ Откл_Выпуск КАК откл_выпуск
ЛЕВОЕ СОЕДИНЕНИЕ Откл_План КАК откл_план
ПО (откл_план.НоменклатурнаяГруппа = откл_выпуск.НоменклатурнаяГруппа)
СГРУППИРОВАТЬ ПО
откл_выпуск.НоменклатурнаяГруппа,
откл_выпуск.Сумма,
откл_план.Сумма
;
ВЫБРАТЬ
ХозрасчетныйДвиженияССубконто.СчетДт КАК Счет,
ХозрасчетныйДвиженияССубконто.СубконтоДт1 КАК Номенклатура,
ХозрасчетныйДвиженияССубконто.СубконтоКт1 КАК НоменклатурнаяГруппа,
СУММА(ХозрасчетныйДвиженияССубконто.Сумма) КАК Сумма
ПОМЕСТИТЬ Откл_План_суб
ИЗ
РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
&НачДата,
&КонДата,
СчетДт В (&Счет)
И СчетКт В (&Счет1)
И Организация = &Организация,,) КАК ХозрасчетныйДвиженияССубконто
СГРУППИРОВАТЬ ПО
ХозрасчетныйДвиженияССубконто.СчетДт,
ХозрасчетныйДвиженияССубконто.СубконтоДт1,
ХозрасчетныйДвиженияССубконто.СубконтоКт1
;
ВЫБРАТЬ
откл_план_суб.Номенклатура КАК номенклатура,
откл_коэф.коэф КАК коэф
ПОМЕСТИТЬ Коэф_ном
ИЗ Откл_План_суб КАК откл_план_суб
ЛЕВОЕ СОЕДИНЕНИЕ Откл_коэф КАК откл_коэф
ПО откл_план_суб.НоменклатурнаяГруппа = откл_коэф.номенклатурнаягруппа
СГРУППИРОВАТЬ ПО
откл_план_суб.Номенклатура,
откл_коэф.коэф
;
ВЫБРАТЬ РАЗЛИЧНЫЕ
ХозрасчетныйОбороты.КорСчет КАК корсчет
ПОМЕСТИТЬ выборка_сч
ИЗ
РегистрБухгалтерии.Хозрасчетный.Обороты(&НачДата, &КонДата, Период, Счет В (&Счет), , Организация = &Организация, , ) КАК ХозрасчетныйОбороты
;
ВЫБРАТЬ
ХозрасчетныйДвиженияССубконто.СчетДт,
ХозрасчетныйДвиженияССубконто.СубконтоДт1,
ХозрасчетныйДвиженияССубконто.СубконтоДт2,
ХозрасчетныйДвиженияССубконто.СубконтоДт3,
ХозрасчетныйДвиженияССубконто.СчетКт,
ХозрасчетныйДвиженияССубконто.СубконтоКт1,
ХозрасчетныйДвиженияССубконто.СубконтоКт2,
ХозрасчетныйДвиженияССубконто.СубконтоКт3,
ХозрасчетныйДвиженияССубконто.СубконтоКт1.НоменклатурнаяГруппа КАК номгр,
СУММА(ХозрасчетныйДвиженияССубконто.КоличествоДт) КАК Количество,
СУММА(ХозрасчетныйДвиженияССубконто.Сумма) КАК Сумма
ПОМЕСТИТЬ Проводки_для_4302
ИЗ
РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
&НачДата,
&КонДата,
Счеткт В (&Счет)
И Организация = &Организация,,) КАК ХозрасчетныйДвиженияССубконто
ВНУТРЕННЕЕ СОЕДИНЕНИЕ выборка_сч КАК выборка_сч
ПО ХозрасчетныйДвиженияССубконто.СчетДт = выборка_сч.корсчет
ГДЕ
ХозрасчетныйДвиженияССубконто.СчетДт <> ХозрасчетныйДвиженияССубконто.СчетКт
И ХозрасчетныйДвиженияССубконто.СчетДт <> &счет1
СГРУППИРОВАТЬ ПО
ХозрасчетныйДвиженияССубконто.СчетДт,
ХозрасчетныйДвиженияССубконто.СубконтоДт1,
ХозрасчетныйДвиженияССубконто.СубконтоДт2,
ХозрасчетныйДвиженияССубконто.СубконтоДт3,
ХозрасчетныйДвиженияССубконто.СчетКт,
ХозрасчетныйДвиженияССубконто.СубконтоКт1,
ХозрасчетныйДвиженияССубконто.СубконтоКт2,
ХозрасчетныйДвиженияССубконто.СубконтоКт3,
ХозрасчетныйДвиженияССубконто.СубконтоКт1.НоменклатурнаяГруппа
;
ВЫБРАТЬ
ХозрасчетныйДвиженияССубконто.СчетДт,
ХозрасчетныйДвиженияССубконто.СубконтоДт1,
ХозрасчетныйДвиженияССубконто.СубконтоДт2,
ХозрасчетныйДвиженияССубконто.СубконтоДт3,
ХозрасчетныйДвиженияССубконто.СчетКт,
ХозрасчетныйДвиженияССубконто.СубконтоКт1,
ХозрасчетныйДвиженияССубконто.СубконтоКт2,
ХозрасчетныйДвиженияССубконто.СубконтоКт3,
СУММА(ХозрасчетныйДвиженияССубконто.КоличествоДт) КАК Количество,
СУММА(ХозрасчетныйДвиженияССубконто.Сумма) КАК Сумма
ПОМЕСТИТЬ с2040на4302_прямые
ИЗ
РегистрБухгалтерии.Хозрасчетный.ДвиженияССубконто(
&НачДата,
&КонДата,
СчетДт В (&счет)
И СчетКт В (&счет1)
И Организация = &Организация,,) КАК ХозрасчетныйДвиженияССубконто
СГРУППИРОВАТЬ ПО
ХозрасчетныйДвиженияССубконто.СчетДт,
ХозрасчетныйДвиженияССубконто.СубконтоДт1,
ХозрасчетныйДвиженияССубконто.СубконтоДт2,
ХозрасчетныйДвиженияССубконто.СубконтоДт3,
ХозрасчетныйДвиженияССубконто.СчетКт,
ХозрасчетныйДвиженияССубконто.СубконтоКт1,
ХозрасчетныйДвиженияССубконто.СубконтоКт2,
ХозрасчетныйДвиженияССубконто.СубконтоКт3
;
ВЫБРАТЬ
с2040на4302_прямые.СчетДт,
с2040на4302_прямые.СубконтоДт1,
с2040на4302_прямые.СубконтоДт2,
с2040на4302_прямые.СубконтоДт3,
с2040на4302_прямые.СчетКт,
с2040на4302_прямые.СубконтоКт1,
с2040на4302_прямые.СубконтоКт2,
с2040на4302_прямые.СубконтоКт3,
с2040на4302_прямые.Сумма * Откл_коэф.коэф -с2040на4302_прямые.Сумма  КАК Суммаитог
ПОМЕСТИТЬ с2040на4302_итог
ИЗ с2040на4302_прямые КАК с2040на4302_прямые
ЛЕВОЕ СОЕДИНЕНИЕ Откл_коэф КАК Откл_коэф
ПО с2040на4302_прямые.СубконтоКт1 = Откл_коэф.номенклатурнаягруппа
СГРУППИРОВАТЬ ПО
с2040на4302_прямые.СчетДт,
с2040на4302_прямые.СубконтоДт1,
с2040на4302_прямые.СубконтоДт2,
с2040на4302_прямые.СубконтоДт3,
с2040на4302_прямые.СчетКт,
с2040на4302_прямые.СубконтоКт1,
с2040на4302_прямые.СубконтоКт2,
с2040на4302_прямые.СубконтоКт3,
с2040на4302_прямые.Сумма,
Откл_коэф.коэф
;
ВЫБРАТЬ
Проводки_для_4302.СчетДт,
Проводки_для_4302.СубконтоДт1,
Проводки_для_4302.СубконтоДт2,
Проводки_для_4302.СубконтоДт3,
Проводки_для_4302.СчетКт,
Проводки_для_4302.СубконтоКт1,
Проводки_для_4302.СубконтоКт2,
Проводки_для_4302.СубконтоКт3,
Проводки_для_4302.Количество,
Проводки_для_4302.Сумма * коэф_ном.коэф - Проводки_для_4302.Сумма  КАК суммаитог
ПОМЕСТИТЬ Проводки_1601
ИЗ Проводки_для_4302 КАК Проводки_для_4302
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Коэф_ном КАК коэф_ном
ПО Проводки_для_4302.СубконтоКт1 = коэф_ном.номенклатура
СГРУППИРОВАТЬ ПО
Проводки_для_4302.СчетДт,
Проводки_для_4302.СубконтоДт1,
Проводки_для_4302.СубконтоДт2,
Проводки_для_4302.СубконтоДт3,
Проводки_для_4302.СчетКт,
Проводки_для_4302.СубконтоКт1,
Проводки_для_4302.СубконтоКт2,
Проводки_для_4302.СубконтоКт3,
Проводки_для_4302.Количество,
Проводки_для_4302.Сумма,
коэф_ном.коэф
;
ВЫБРАТЬ
регистрсклад.склад КАК склад,
регистрсклад.Подр КАК подразделение
ПОМЕСТИТЬ склад_подр
ИЗ РегистрСведений.СкладПодразделение КАК регистрсклад
;
ВЫБРАТЬ
&счет43 как счетдт,
с2040на4302_итог.СубконтоДт1 как СубконтоДт1,
с2040на4302_итог.СубконтоДт2 как СубконтоДт2,
с2040на4302_итог.СубконтоДт3 как СубконтоДт3,
с2040на4302_итог.СчетКт как счеткт,
с2040на4302_итог.СубконтоКт1 как СубконтоКт1,
с2040на4302_итог.СубконтоКт2 как СубконтоКт2,
с2040на4302_итог.СубконтоКт3 как СубконтоКт3,
ВЫРАЗИТЬ(с2040на4302_итог.Суммаитог КАК ЧИСЛО(10, 2)) как сум
ИЗ
с2040на4302_итог КАК с2040на4302_итог
СГРУППИРОВАТЬ ПО
&счет43,
с2040на4302_итог.СубконтоДт1,
с2040на4302_итог.СубконтоДт2,
с2040на4302_итог.СубконтоДт3,
с2040на4302_итог.СчетКт,
с2040на4302_итог.СубконтоКт1,
с2040на4302_итог.СубконтоКт2,
с2040на4302_итог.СубконтоКт3,
с2040на4302_итог.Суммаитог
ОБЪЕДИНИТЬ
ВЫБРАТЬ
&счет16 КАК счетдт,
склад_подр.подразделение  КАК субконтодт1,
Проводки_1601.СубконтоДт2 КАК субконтодт2,
Проводки_1601.СубконтоДт3 КАК субконтодт3,
&счет43 КАК счеткт,
Проводки_1601.СубконтоКт1 КАК субконтокт1,
Проводки_1601.СубконтоКт2 КАК субконтокт2,
Проводки_1601.СубконтоКт3 КАК субконтокт3,
ВЫРАЗИТЬ(Проводки_1601.суммаитог КАК ЧИСЛО(10, 2)) как сум
ИЗ Проводки_1601 КАК Проводки_1601
ЛЕВОЕ СОЕДИНЕНИЕ склад_подр КАК склад_подр
ПО (склад_подр.склад = Проводки_1601.СубконтоКт2)
СГРУППИРОВАТЬ ПО
&счет16,
склад_подр.подразделение,
Проводки_1601.СубконтоДт2,
Проводки_1601.СубконтоДт3,
&счет43,
Проводки_1601.СубконтоКт1,
Проводки_1601.СубконтоКт2,
Проводки_1601.СубконтоКт3,
Проводки_1601.суммаитог
1 ktvladimir
 
16.01.15
11:03
Лень читать. По теме везде где соединения ставь проверки на NULL ЕстьNULL(, )
2 Fedor-1971
 
16.01.15
11:04
(0) Проверь типы параметров (и сами параметры), в консоли ты их выбираешь гарантированно, те что нужны, а программно?
3 iojik_cry
 
16.01.15
11:07
to    ktvladimir: Один черт...
4 ДенисЧ
 
16.01.15
11:08
даты неправильные
5 iojik_cry
 
16.01.15
11:10
to Fedor-1971:
сч16 =планысчетов.Хозрасчетный.ОтклонениеВСтоимостиТоваров;
    сч4301 = планысчетов.Хозрасчетный.ГотоваяПродукцияПлановаяСебестоимость;
сч4302 = планысчетов.Хозрасчетный.ГотоваяПродукцияОтклонения;
сч2040 = планысчетов.Хозрасчетный.ВыпускПродукции;
запрос.УстановитьПараметр("НачДата",началомесяца(ДокументОбъект.дата));
запрос.УстановитьПараметр("КонДата",конецмесяца(ДокументОбъект.дата));
запрос.УстановитьПараметр("организация",документобъект.организация.Ссылка);
запрос.УстановитьПараметр("счет",сч4301);
запрос.УстановитьПараметр("счет1",сч2040);
запрос.УстановитьПараметр("счет16",сч16);
Запрос.УстановитьПараметр("счет43",сч4302);
6 iojik_cry
 
16.01.15
11:12
Запрос возвращает все!!! Но в поле "Сум" стоит 0
Тип "число"
Все остальные данные получаю замечательно.
7 ktvladimir
 
16.01.15
11:15
а зачем кстати группировки в последнем запросе?
и нафига писать ссылка документобъект.организация.Ссылка?
считаете что Орагнизация это объект?
8 ktvladimir
 
16.01.15
11:17
точнее  вообще везде нафига нужны группировки? если нет функций
9 iojik_cry
 
16.01.15
11:18
to ktvladimir:
Группировки изначально не стояли, но на результат никак не влияют.
Организацию я выставлял и так, и так на результат не влияет совершенно.
10 ktvladimir
 
16.01.15
11:28
да понятно что на результат это не повлияет просто мешает чтению. в случае организации лишнее обращение к базе.

Вообще посмотрите все таки отладкой, перед запрос. выполнить() посмотреть что выдаст запрос.параметры. точно ли все параметры соответствуют тому что в консоли.
11 iojik_cry
 
16.01.15
11:56
to ktvladimir: Все параметры передаются верно.
12 iojik_cry
 
16.01.15
14:31
Все разобрался. Пока я тестил бухи руками суммы позакрывали и мне возвращался коэффициент 1. потому и сумма 0...