Имя: Пароль:
1C
1С v8
Помогите разобраться с запросом !!
0 kasazanov
 
16.11.12
17:49
Делаю заполнение табличной части. Нужно по кнопке, заполнить табличную часть документа всеми позициями которые есть на остатке, но с условиями

ЭтотОбъект.Материалы.Очистить();
   Запрос = Новый Запрос(
   "ВЫБРАТЬ
   |    ХозрасчетныйОстатки.Счет КАК Счет,
   |    ХозрасчетныйОстатки.Субконто1 КАК Субконто1,
   |    ХозрасчетныйОстатки.КоличествоОстаток КАК КоличествоОстаток,
   |    ХозрасчетныйОстатки.Субконто2
   |ИЗ
   |    РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаОтчета, , , ) КАК ХозрасчетныйОстатки
   |ГДЕ
   |    ХозрасчетныйОстатки.Счет В(&Счета)
   |    И ХозрасчетныйОстатки.Субконто2 = &Субконто2
   |    И ХозрасчетныйОстатки.Субконто1 В(&Субконто1)");
   
   Счета = Новый СписокЗначений;
   Счета.Добавить(ПланыСчетов.Хозрасчетный.НайтиПоКоду("10.01"));
   Счета.Добавить(ПланыСчетов.Хозрасчетный.НайтиПоКоду("10.03"));
   Счета.Добавить(ПланыСчетов.Хозрасчетный.НайтиПоКоду("10.05"));
   Счета.Добавить(ПланыСчетов.Хозрасчетный.НайтиПоКоду("10.09"));
   Счета.ОтметитьЭлементы();
   
   МассивСчетов = Новый Массив;
   Для каждого Элемент из Счета цикл
       Если Элемент.Пометка тогда
           МассивСчетов.Добавить(Элемент.Значение);
       КонецЕсли;
   КонецЦикла;
   
   Если МассивСчетов.Количество()=0 тогда
       Предупреждение("Не Выбраны счета");
       Возврат;
   КонецЕсли;
   
   Запрос.УстановитьПараметр("Счета", МассивСчетов);
   Запрос.УстановитьПараметр("Субконто1", ЭтотОбъект.ОтборНоменклатура);
   Запрос.УстановитьПараметр("Субконто2", ЭтотОбъект.Склад);
   Запрос.УстановитьПараметр("ДатаОтчета", ЭтотОбъект.Дата);
   
   Выборка = Запрос.Выполнить().Выбрать();
   
   Пока Выборка.Следующий() Цикл
   СтрокаТЧ = ЭтотОбъект.Материалы.Добавить();
   СтрокаТЧ.Номенклатура = Выборка.Субконто1;
   СтрокаТЧ.Количество = Выборка.КоличествоОстаток;
   СтрокаТЧ.Счет = Выборка.Счет;
   КонецЦикла;

1-е условие это отбор остатков на дату документа
2-е условие это отбор по конкретному складу
3-е условие это отбор позиций по заданным счетам
это все работает
а 4-е условие это отбор по Номенклатура.Родитель (в реквизите выбираю нужный мне родитель номенклатуры и нужно чтобы заполнились остатки которые есть данной папке, но когда выполняю обработчик, ничего не происходит, но если в данном реквизите выбрать не Номенклатура.родитель а просто номенклатуру то в табличную часть заполняются остатки по этой номенклатуре (одна строчка))

Помогите люди добрые )))
1 zbv
 
16.11.12
17:51
в Иерархии(&Субконто1)
2 Maxus43
 
16.11.12
17:52
В ИЕРАРХИИ
3 Aprobator
 
16.11.12
17:52
за такое издевательство над вирутальной таблицей рука не поднимается помогать.
4 kasazanov
 
16.11.12
17:59
Спасибо большое (1), (2).

(3) а почему издевательство? я просто начинающий прогер ))
5 samozvanec
 
16.11.12
18:03
(4) возможно, ты пренебрег ее параметрами
6 zbv
 
16.11.12
18:23
ВЫБРАТЬ
   ХозрасчетныйОстатки.Счет,
   ХозрасчетныйОстатки.Субконто1,
   ХозрасчетныйОстатки.Субконто2,
   ХозрасчетныйОстатки.КоличествоОстаток
ИЗ
   РегистрБухгалтерии.Хозрасчетный.Остатки(
           &ДатаОтчета,
           Счет В (&Счета),
           ,
           Субконто2 = &Субконто2
               И Субконто1 В (&Субконто1)) КАК ХозрасчетныйОстатки

+ можно еще условие на субконто наложить...
7 Aprobator
 
16.11.12
18:29
на вид субконто.
Ошибка? Это не ошибка, это системная функция.