Бух. итоги
Показывать по
10
20
40
сообщений
- 1
- 2
26.02.2006
11:08
#1
Может, кто сталкивался - в бух. запросе по субконто Номенклатура нужно не учитывать определенную группу справочника. Что для этого сделать?
26.02.2006
13:31
#2
" СписокНужныхЭлементов = СоздатьОбъект("СписокЗначений");
Ном = СоздатьОбъект("Справочник.Номенклатура");
Ном.ВыбратьЭлементы();
Пока Ном.ПолучитьЭлемент() = 1 Цикл
Если Ном.Код = "000000004" Тогда
Продолжить;
КонецЕсли;
СписокНужныхЭлементов.ДобавитьЗначение(Ном.ТекущийЭлемент());
КонецЦикла;
Итоги = СоздатьОбъект("БухгалтерскиеИтоги");
Итоги.ИспользоватьСубконто("Номенклатура", СписокНужныхЭлементов, 2);
Итоги.ВыполнитьЗапрос();
"
Ном = СоздатьОбъект("Справочник.Номенклатура");
Ном.ВыбратьЭлементы();
Пока Ном.ПолучитьЭлемент() = 1 Цикл
Если Ном.Код = "000000004" Тогда
Продолжить;
КонецЕсли;
СписокНужныхЭлементов.ДобавитьЗначение(Ном.ТекущийЭлемент());
КонецЦикла;
Итоги = СоздатьОбъект("БухгалтерскиеИтоги");
Итоги.ИспользоватьСубконто("Номенклатура", СписокНужныхЭлементов, 2);
Итоги.ВыполнитьЗапрос();
"
26.02.2006
17:41
#3
"нужно не учитывать определенную группу справочника"
Тогда нужно подправить:
Если Ном.Родитель.Код =
(А может справочник многоуровневый?
)
Тогда нужно подправить:
Если Ном.Родитель.Код =
(А может справочник многоуровневый?
27.02.2006
07:44
#4
"Сделала так:
спис=СоздатьОбъект("СписокЗначений");
спис.УдалитьВсе();
спрНом=СоздатьОбъект("Справочник.Номенклатура");
спрНом.НайтиПоКоду("111",0);
спрНом.ИспользоватьРодителя(спрНом.ТекущийЭлемент());
спрНом.ВыбратьЭлементы();
Пока спрНом.ПолучитьЭлемент()=1 Цикл
спис.ДобавитьЗначение(спрНом.ТекущийЭлемент());
КонецЦикла;
спрНом.НайтиПоКоду("112",0);
спрНом.ИспользоватьРодителя(спрНом.ТекущийЭлемент());
спрНом.ВыбратьЭлементы();
Пока спрНом.ПолучитьЭлемент()=1 Цикл
спис.ДобавитьЗначение(спрНом.ТекущийЭлемент());
КонецЦикла;
спрНом.НайтиПоКоду("113",0);
спрНом.ИспользоватьРодителя(спрНом.ТекущийЭлемент());
спрНом.ВыбратьЭлементы();
Пока спрНом.ПолучитьЭлемент()=1 Цикл
спис.ДобавитьЗначение(спрНом.ТекущийЭлемент());
КонецЦикла;
Ит.ИспользоватьСубконто(ВидыСубконто.Номенклатура, спис,1,1);
Но дело в том, что всей номенклатуры у меня порядка 10 тыс., а той, которая участвует в запросе 5 тыс. Поэтому пока все 5 тыс. элементов переберутся и запишутся в ТЗ, проходит очень много времени.
"
спис=СоздатьОбъект("СписокЗначений");
спис.УдалитьВсе();
спрНом=СоздатьОбъект("Справочник.Номенклатура");
спрНом.НайтиПоКоду("111",0);
спрНом.ИспользоватьРодителя(спрНом.ТекущийЭлемент());
спрНом.ВыбратьЭлементы();
Пока спрНом.ПолучитьЭлемент()=1 Цикл
спис.ДобавитьЗначение(спрНом.ТекущийЭлемент());
КонецЦикла;
спрНом.НайтиПоКоду("112",0);
спрНом.ИспользоватьРодителя(спрНом.ТекущийЭлемент());
спрНом.ВыбратьЭлементы();
Пока спрНом.ПолучитьЭлемент()=1 Цикл
спис.ДобавитьЗначение(спрНом.ТекущийЭлемент());
КонецЦикла;
спрНом.НайтиПоКоду("113",0);
спрНом.ИспользоватьРодителя(спрНом.ТекущийЭлемент());
спрНом.ВыбратьЭлементы();
Пока спрНом.ПолучитьЭлемент()=1 Цикл
спис.ДобавитьЗначение(спрНом.ТекущийЭлемент());
КонецЦикла;
Ит.ИспользоватьСубконто(ВидыСубконто.Номенклатура, спис,1,1);
Но дело в том, что всей номенклатуры у меня порядка 10 тыс., а той, которая участвует в запросе 5 тыс. Поэтому пока все 5 тыс. элементов переберутся и запишутся в ТЗ, проходит очень много времени.
"
27.02.2006
09:17
#5
Через запрос наверно быстрее будет...
А в условии поставить проверку на код Родителя
А в условии поставить проверку на код Родителя
27.02.2006
10:12
#6
Люди! Что вы огород городите?
ИспользоватьСубконто(<ВидСубконто>,<Субконто>,<ТипФильтра>,<ПоГруппам>)
<ТипФильтра> - число - тип фильтра по субконто. Может принимать следующие значения:
1 - разворачивать по данному субконто,
2 - отбирать по данному субконто,
3 - не учитывать это субконто вообще.
По умолчанию 1.
ИспользоватьСубконто(<ВидСубконто>,<Субконто>,<ТипФильтра>,<ПоГруппам>)
<ТипФильтра> - число - тип фильтра по субконто. Может принимать следующие значения:
1 - разворачивать по данному субконто,
2 - отбирать по данному субконто,
3 - не учитывать это субконто вообще.
По умолчанию 1.
27.02.2006
10:51
#7
Насколько я поняла, вы предлагаете сделать 3, но ведь в этом случае получится, что субконто Номенклатура вообще не будет участвоватьв запросе. Или я не так поняла?
27.02.2006
11:31
#8
Номенклатура - это вид субконто. А конкретное значение, по которому что-либо делаем - это второй параметр
- 1
- 2
Читают тему
(гостей: 1)