Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
12 дек 2024, 21:46

Отбор номенклатуры в форме справочника по наличию в 1с77 ТИС

Автор immortal59, 03 ноя 2012, 19:52

0 Пользователей и 1 гость просматривают эту тему.

immortal59

Помогите, пожалуйста в 1с77 тис. Сделан фильтр Справочник.Номенклатура по наличию на складе с использованием иерархии. Для этого каждый раз при переходе из группы в группу запрашиваются все элементы с положительным остатком. Это занимает много времени. Можно как-то ускорить этот процесс не отключая иерархию. Вот код в списке справочника:

Процедура СменаРежима(Род="")
   Если (ВНаличии = 1) Тогда
      Если (Род = "") Тогда
         Род = ИспользоватьРодителя();
      КонецЕсли;
      СписокТоваров=СоздатьОбъект("СписокЗначений");
      Запр = СоздатьОбъект("Запрос");
      ТекстЗапр = "
      |Фир = Регистр.ОстаткиТмц.Фирма;
      |Скл = Регистр.ОстаткиТмц.Склад;
      |Тмц = Регистр.ОстаткиТмц.Номенклатура;
      |Кво = Регистр.ОстаткиТмц.Количество;
      |Функция Ккво = КонОст(Кво);
      |Условие (Скл в Склад);
      |Группировка Скл;
      |Группировка Тмц упорядочить по Тмц.Наименование;";
      Если Запр.Выполнить(ТекстЗапр)=0 Тогда
         Возврат;
      КонецЕсли; 
      Пока Запр.Группировка("Скл")=1 Цикл
         Пока Запр.Группировка("Тмц") = 1 Цикл
            Если Запр.Тмц.Выбран() = 0 Тогда
               Продолжить;
            КонецЕсли;   
            Если Не(Запр.ТМЦ.Родитель = Род) Тогда
               Продолжить;
            КонецЕсли;
            Если (Число(Запр.Ккво)>0) Тогда
               СписокТоваров.ДобавитьЗначение(Запр.Тмц);
            КонецЕсли;
         КонецЦикла;
      КонецЦикла;
      ИспользоватьСписокЭлементов(СписокТоваров); 
   Иначе
      ИспользоватьСписокЭлементов();
   КонецЕсли;
КонецПроцедуры   


Процедура ПриВыбореРодителя(Род)
   СменаРежима(род)   
КонецПроцедуры


Помогите, очень надо:(

Herby

условие на принадлежность к родителю, поместите в условие запроса: Условие(ТМЦ в Род);
намного не ускорится, но все же.

Похожие темы (5)

Рейтинг@Mail.ru

Поиск