public object ПолучитьОстатокПоСчету(/*Организация,Период,Счет,Валюта=Неопределено ,Субконто1=Неопределено, Субконто2=Неопределено,Субконто3=Неопределено,ЗнакФильтрПоОстаткам=0*/)
{
//ВидПланаСчетов = Счет.Метаданные().Имя;
//Субконто = Новый Массив(3);
//Субконто[0] = Субконто1;
//Субконто[1] = Субконто2;
//Субконто[2] = Субконто3;
//ФильтрПоСубконто = "";
//ВыбиратьВалюту = (не Счет.Метаданные().ПризнакиУчета.Найти("Валютный")= Неопределено);
//ВыбиратьВалютнуюСумму = (не Метаданные.РегистрыБухгалтерии[ВидПланаСчетов].Ресурсы.Найти("ВалютнаяСумма")= Неопределено);
//ОтборПоОрганизации = (не Метаданные.РегистрыБухгалтерии[ВидПланаСчетов].Измерения.Найти("Организация")= Неопределено);
//Запрос = Новый Запрос;
//Запрос.УстановитьПараметр("Период" , Период);
//Запрос.УстановитьПараметр("Счет" , Счет);
//Запрос.УстановитьПараметр("Организация" , Организация);
//Запрос.УстановитьПараметр("Субконто1" , Субконто[0]);
//Запрос.УстановитьПараметр("Субконто2" , Субконто[1]);
//Запрос.УстановитьПараметр("Субконто3" , Субконто[2]);
//Запрос.УстановитьПараметр("Валюта" , Валюта);
//ВидыСубконто = Счет.ВидыСубконто.ВыгрузитьКолонку("ВидСубконто");
//Запрос.УстановитьПараметр("ВидыСубконто", ВидыСубконто);
//ЗнакОстатков = ?(ТипЗнч(ЗнакФильтрПоОстаткам) = Тип("Число"), ЗнакФильтрПоОстаткам, 0);
//Запрос.УстановитьПараметр("Множитель", ?(ЗнакОстатков < 0, -1, 1));
//КоличествоСубконто = ВидыСубконто.Количество();
/*Запрос.Текст = "
|ВЫБРАТЬ
| Счет,"
+ ?(КоличествоСубконто > 0, "
| Субконто1,", "НЕОПРЕДЕЛЕНО КАК Субконто1,")
+ ?(КоличествоСубконто > 1, "
| Субконто2,", "НЕОПРЕДЕЛЕНО КАК Субконто2,")
+ ?(КоличествоСубконто > 2, "
| Субконто3,", "НЕОПРЕДЕЛЕНО КАК Субконто3,")
+ "
| ЕСТЬNULL(СуммаОстаток, 0) * &Множитель КАК СуммаОстаток"
+ ?(ВыбиратьВалюту, ",
| ЕСТЬNULL(Валюта, НЕОПРЕДЕЛЕНО) КАК Валюта", "")
+ ?(ВыбиратьВалютнуюСумму, ",
| ЕСТЬNULL(ВалютнаяСуммаОстаток, 0) * &Множитель КАК ВалютнаяСуммаОстаток", ",
| ЕСТЬNULL(СуммаОстаток, 0) * &Множитель КАК ВалютнаяСуммаОстаток")
+ "
|ИЗ
| РегистрБухгалтерии." + ВидПланаСчетов + ".Остатки(&Период, Счет = &Счет, &ВидыСубконто, #Фильтр#) КАК Остатки"
+ ?(ЗнакОстатков <> 0, "
|
|ГДЕ
| "
+ ?(НЕ ЗначениеЗаполнено(Валюта),
"ЕСТЬNULL(Остатки.СуммаОстаток, 0) * &Множитель > 0", "ЕСТЬNULL(Остатки.ВалютнаяСуммаОстаток, 0) * &Множитель > 0"), "")
+ "
|
|ДЛЯ ИЗМЕНЕНИЯ
|
|УПОРЯДОЧИТЬ ПО
| Счет,
| Субконто1,
| Субконто2,
| Субконто3"
+ ?(ВыбиратьВалюту,",
| Валюта","");*/
//Фильтр = "";
if(true/*ОтборПоОрганизации*/)
{
//Фильтр = Фильтр + " И Организация = &Организация";
}
if(true/*ЗначениеЗаполнено(Валюта) И Счет.Валютный*/)
{
//Фильтр = Фильтр + " И Валюта = &Валюта";
}
//Фильтр = Фильтр + ФильтрПоСубконто;
if(true/*Не ПустаяСтрока(Фильтр)*/)
{
/*// Убираем первое "И"
*/
//Фильтр = Сред(Фильтр, 3);
}
if(true/*глЗначениеПеременной("ИспользоватьБлокировкуДанных")*/)
{
/*СтруктураПараметровБлокировки = Новый Структура(
"ТипТаблицы, ИмяТаблицы", "РегистрБухгалтерии", "Хозрасчетный");*/
//СтруктураЗначенийБлокировки = Новый Структура;
if(true/*ТипЗнч(Период) = Тип("МоментВремени")*/)
{
//СтруктураЗначенийБлокировки.Вставить("Период", Период.Дата);
}
//СтруктураЗначенийБлокировки.Вставить("Счет", Счет);
if(true/*ОтборПоОрганизации*/)
{
//СтруктураЗначенийБлокировки.Вставить("Организация", Организация);
}
if(true/*ЗначениеЗаполнено(Валюта) И Счет.Валютный*/)
{
//СтруктураЗначенийБлокировки.Вставить("Валюта", Валюта);
}
//Отказ = Ложь;
//Заголовок = "";
//ОбщегоНазначения.УстановитьУправляемуюБлокировку(СтруктураПараметровБлокировки, СтруктураЗначенийБлокировки, , Отказ, Заголовок);
}
//Запрос.Текст = СтрЗаменить(Запрос.Текст, "#Фильтр#", Фильтр);
//Остатки = Запрос.Выполнить().Выгрузить();
return null;
}