Имя: Пароль:
1C
 
Возможно ли запросом без цикла узнать сколько дней товар был на складе в наличии?
0 Обфускация
 
27.06.18
14:06
Возможно ли запросом без цикла узнать сколько дней товар был на складе в наличии? Если можно то как?
1 vis_tmp
 
27.06.18
14:09
Возможно.
2 olegves
 
27.06.18
14:09
(0) возможно - берешь Период (измерение периодического регистра) поступления на склад и получаешь разницу с текущей датой (можно задать параметром запроса) в днях
3 ssh2006
 
27.06.18
14:09
(0) остатки и обороты периодичность день, разность дат
4 Обфускация
 
27.06.18
14:10
Можете пример нарисовать для типового регистра остатков?
5 Darych
 
27.06.18
14:12
(4) лодырь
6 Лодырь
 
27.06.18
14:12
(5) Нихрена, это не я.
7 Darych
 
27.06.18
14:13
6 :)
8 Малыш Джон
 
27.06.18
14:19
(4) Выбирай обороты с периодичностью нужной, делай нарастающий итог на каждую дату, выкидывай те даты, где остаток нарастающим итогом 0, считай количество дней.
9 olegves
 
27.06.18
14:20
(4) деньги за тебя тоже получить?
10 aleks_default
 
27.06.18
14:20
если товар в один и тот же день привезли и израсходовали - это считается что он был в наличии?
11 Обфускация
 
27.06.18
14:22
Вот у меня такой запрос в цикле, он всегда показывает 0 даже когда остатки были. Что там не так?
12 Обфускация
 
27.06.18
14:22
ДнейВыборки=окр((объект.ДатаПродажОкончание-объект.ДатаПродажНачало)/(60*60*24),0);
для каждого стр из объект.Товары цикл
    ДнейНаСкладе=0;
    для СчДней=0 по ДнейВыборки  цикл
    ЗапросОстатокСклада=новый запрос;
    ЗапросОстатокСклада.Текст="ВЫБРАТЬ
                              |    ОстаткиНоменклатурыОстатки.Номенклатура,
                              |    ОстаткиНоменклатурыОстатки.КоличествоОстаток
                              |ИЗ
                              |    РегистрНакопления.ОстаткиНоменклатуры.Остатки(&период, ) КАК ОстаткиНоменклатурыОстатки
                              |ГДЕ
                              |    ОстаткиНоменклатурыОстатки.Номенклатура = &Номенклатура
                              |    И ОстаткиНоменклатурыОстатки.Склад = &Склад";
     ЗапросОстатокСклада.УстановитьПараметр("Склад",стр.склад);
     ЗапросОстатокСклада.УстановитьПараметр("Номенклатура",стр.Номенклатура);
     ЗапросОстатокСклада.УстановитьПараметр("период",объект.ДатаПродажНачало+СчДней*60*60*24);
     ИтогЗапросОстаток=ЗапросОстатокСклада.Выполнить().Выгрузить();
     Если  ИтогЗапросОстаток.Количество()>0 тогда
     Если  ИтогЗапросОстаток[0].КоличествоОстаток>0 тогда
        ДнейНаСкладе=ДнейНаСкладе+1;
    конецесли;    
    конецесли;
конеццикла;
стр.ДнейНаСкладе=ДнейНаСкладе;
конеццикла;
13 _Дайвер_
 
27.06.18
14:28
НУ если ты хочешь запросом это делать, тогда:
1. тебе надо в массив добавить те номенклатуры по которым ты собираешься получить дни
2. пишешь запрос, в нем указываешь что номенклатура в массиве, получаешь дату, добавляешь поле запроса "0", в выражении высчитываешь значение полученное.
3. выполняешь, загружаешь в ТЧ

может что-то упустил
14 aleks_default
 
27.06.18
14:33
(12) В отладке проверял? Может даты не заполнены?
15 _Дайвер_
 
27.06.18
14:56
(14) Он женщиной стал...
16 Малыш Джон
 
27.06.18
14:57
хмм... неожиданно...