Помогите написать запрос на 8.0

  • Автор темы Guest
  • Дата начала
G

Guest

#1
Помогите пожалуйста! Написала функцию для определения д*цензура*а счета на начало периода(счет определяется в другой процедуре). Работает только для субсчета или счета у которого нет субсчетов. Что нужно изменить чтобы работало например для 10 счета?

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

KiR

НЕ шибка опытный програмер)
11.09.2007
1 581
0
#2
Не совсем понял что нужно. Если на 10 счете есть Начальный Д*цензура*овый остаток - то он будет в переменной Итог. Если нужна сумма с субсчетов или же с массива счетов то нужно заменить строку:

|ГДЕ
| ХозрасчетныйОстаткиИОбороты.Счет = &Счет";
На
|ГДЕ
| ХозрасчетныйОстаткиИОбороты.Счет В &Счет; // если передается массив счетов
ИЛИ
|ГДЕ
| ХозрасчетныйОстаткиИОбороты.Счет В иерархии &Счет"; // в случае если нужно с субсчетами