powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / срочно помощь (кусочек кода)!!
3 сообщений из 3, страница 1 из 1
срочно помощь (кусочек кода)!!
    #36262727
leventenok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1С 7.7

есть регистр остатков "ОстаткиТоваров" с измерением "Товар" и ресурсом "ОстатокТовара".

есть таблица значений - список отобранных товаров ТЗ

нужно по каждому товару получить чило - количество дней в заданном периоде, когда ОстатокТовара был положительным.
типа
Если ОстатокТовара (за этот день) > 0 Тогда КолвоДней = КолвоДней + 1;

решил так:

РегОст1=СоздатьОбъект("Регистр.ОстаткиТоваров");
РегОст1.ВременныйРасчет();

ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку() = 1 Цикл
КД = 0;
Дата1 = ВыбНачПериода -1;
РегОст1.УстановитьФильтр("Товар",,);
РегОст1.УстановитьЗначениеФильтра("Товар",ТЗ.Товар);
Пока Дата1 < ВыбКонПериодаТА Цикл
Дата1 = Дата1 + 1;
РассчитатьРегистрыНа(Дата(Дата1));
Колво = РегОст1.СводныйОстаток(ТЗскул.Товар, , , "ОстатокТовара");
Если Число(Колво) > 0 Тогда
КД = КД +1;
КонецЕсли
КонецЦикла;
ТЗ.КолДН = КД;
КонецЦикла;

работает очень-очень медленно, да оно и понятно. на таблице в 2500 товаров и за период - месяц - не дождался...
как ускорить? очень нужно!

заранее спасибо.
...
Рейтинг: 0 / 0
срочно помощь (кусочек кода)!!
    #36262779
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leventenok, запрос с группировкой "день" вам поможет
...
Рейтинг: 0 / 0
срочно помощь (кусочек кода)!!
    #36262789
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2500 дерганий остатков... я думаю будет тормозить :)


в простейшем непричесаном виде запрос будет выглядеть как-то так

Код: plaintext
1.
2.
3.
4.
5.
6.
	|Период с ВыбНачПериода по ВыбКонПериода;
	|Номенклатура = Регистр.Остатки.Номенклатура;
	|Кво = Регистр.Остатки.Кво;
	|Функция КвоНачОст = НачОст(Кво);
	|Группировка Номенклатура без групп;
	|Группировка День;
	|Условие(Номенклатура в ВыбНоменклатура);



где ВыбНоменклатура - списко куда выгрузишь колонку с товарами своей таблицы, ВыбНачПериода и ВыбКонПериода даты начала и конца запроса соответственно

ну и обходя группировку "День" подсчитываешь количество где КвоНачОст было более нуля... ну ещё счетчик может как-то прикрутить в запросе чтоб сразу получать к-во дней
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / срочно помощь (кусочек кода)!!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]