L
LEVENTENOK
1С 7.7
есть регистр остатков "ОстаткиТоваров" с измерением "Товар" и ресурсом "ОстатокТовара".
есть таблица значений - список отобранных товаров ТЗ
нужно по каждому товару получить чило - количество дней в заданном периоде, когда ОстатокТовара был положительным.
типа
Если ОстатокТовара (за этот день) > 0 Тогда КолвоДней = КолвоДней + 1;
решил так:
РегОст1=СоздатьОбъект("Регистр.ОстаткиТоваров");
РегОст1.ВременныйРасчет();
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку() = 1 Цикл
КД = 0;
Дата1 = ВыбНачПериода -1;
РегОст1.УстановитьФильтр("Товар",,);
РегОст1.УстановитьЗначениеФильтра("Товар",ТЗ.Товар);
Пока Дата1 < ВыбКонПериодаТА Цикл
Дата1 = Дата1 + 1;
РассчитатьРегистрыНа(Дата(Дата1));
Колво = РегОст1.СводныйОстаток(ТЗскул.Товар, , , "ОстатокТовара");
Если Число(Колво) > 0 Тогда
КД = КД +1;
КонецЕсли
КонецЦикла;
ТЗ.КолДН = КД;
КонецЦикла;
работает очень-очень медленно, да оно и понятно. на таблице в 2500 товаров и за период - месяц - не дождался...
как ускорить? очень нужно!
заранее спасибо.
есть регистр остатков "ОстаткиТоваров" с измерением "Товар" и ресурсом "ОстатокТовара".
есть таблица значений - список отобранных товаров ТЗ
нужно по каждому товару получить чило - количество дней в заданном периоде, когда ОстатокТовара был положительным.
типа
Если ОстатокТовара (за этот день) > 0 Тогда КолвоДней = КолвоДней + 1;
решил так:
РегОст1=СоздатьОбъект("Регистр.ОстаткиТоваров");
РегОст1.ВременныйРасчет();
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку() = 1 Цикл
КД = 0;
Дата1 = ВыбНачПериода -1;
РегОст1.УстановитьФильтр("Товар",,);
РегОст1.УстановитьЗначениеФильтра("Товар",ТЗ.Товар);
Пока Дата1 < ВыбКонПериодаТА Цикл
Дата1 = Дата1 + 1;
РассчитатьРегистрыНа(Дата(Дата1));
Колво = РегОст1.СводныйОстаток(ТЗскул.Товар, , , "ОстатокТовара");
Если Число(Колво) > 0 Тогда
КД = КД +1;
КонецЕсли
КонецЦикла;
ТЗ.КолДН = КД;
КонецЦикла;
работает очень-очень медленно, да оно и понятно. на таблице в 2500 товаров и за период - месяц - не дождался...
как ускорить? очень нужно!
заранее спасибо.