Имя: Пароль:
1C
1С v8
Ограничить данные по периоду
0 Ramis333
 
07.06.18
15:28
как правильно ограничить полученные данные по периоду? нужно два параметра указывать "Период"?

ВЫБРАТЬ
    РасчетыПоРаботамОстатки.Исполнитель КАК Исполнитель,
    РасчетыПоРаботамОстатки.Работа КАК Услуга,
    РасчетыПоРаботамОстатки.ЗаказНаряд КАК ЗаказНаряд,
    РасчетыПоРаботамОстатки.СуммаОстаток КАК Сумма,
    ЗаказНарядУслуги.ДатаИВремяВыполнения КАК Выполнено
ИЗ
    РегистрНакопления.РасчетыПоРаботам.Остатки(&Период, ) КАК РасчетыПоРаботамОстатки
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказНаряд.Услуги КАК ЗаказНарядУслуги
        ПО РасчетыПоРаботамОстатки.ЗаказНаряд = ЗаказНарядУслуги.Ссылка
            И РасчетыПоРаботамОстатки.Работа = ЗаказНарядУслуги.Услуга
ГДЕ
    ЗаказНарядУслуги.Ссылка.Дата >= &ДатаНачала
    

УПОРЯДОЧИТЬ ПО
    Исполнитель,
    ЗаказНаряд
1 Ramis333
 
07.06.18
15:28
Запрос.УстановитьПараметр("ДатаНачала", ДатаНачала);        
    Запрос.УстановитьПараметр("Период",  КонецДня(Объект.ДатаОкончания) + 1);
    
    Выборка = Запрос.Выполнить().Выбрать();
    
    Пока Выборка.Следующий() Цикл
        
        Строка = Объект.Услуги.Добавить();
        ЗаполнитьЗначенияСвойств(Строка, Выборка);
        
    КонецЦикла;
2 Ramis333
 
07.06.18
15:29
начальную дату программа не видит
в консоли получается правильно
3 Гипервизор
 
07.06.18
15:35
Что значит "ограничить по периоду"? Выборка за период нужна чтоли?
4 Ramis333
 
07.06.18
15:36
да
5 Гипервизор
 
07.06.18
15:41
(4) Используйте таблицу ОстаткиИОбороты.
6 Михаил Козлов
 
07.06.18
15:46
Можно и без соединения:
РасчетыПоРаботамОстатки.ЗаказНаряд.ДатаИВремяВыполнения КАК Выполнено
хотя через "." считается не комильфо.
7 Мандалай
 
07.06.18
15:49
Если СКД, то используй Стандартный Период.
8 Ramis333
 
07.06.18
16:02
нет, не скд. обычный запрос
9 bolobol
 
07.06.18
16:03
Не используй Стандартный Период
10 Ramis333
 
07.06.18
16:05
так тоже не срабатывает


"ВЫБРАТЬ
         |    РасчетыПоРаботамОстаткиИОбороты.Исполнитель КАК Исполнитель,
         |    РасчетыПоРаботамОстаткиИОбороты.Работа КАК Услуга,
         |    РасчетыПоРаботамОстаткиИОбороты.ЗаказНаряд КАК ЗаказНаряд,
         |    ЗаказНарядУслуги.ДатаИВремяВыполнения КАК Выполнено
         |ИЗ
         |    РегистрНакопления.РасчетыПоРаботам.ОстаткиИОбороты(&НачДата, &КонДата, Период, , ) КАК РасчетыПоРаботамОстаткиИОбороты
         |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЗаказНаряд.Услуги КАК ЗаказНарядУслуги
         |        ПО РасчетыПоРаботамОстаткиИОбороты.ЗаказНаряд = ЗаказНарядУслуги.Ссылка
         |            И РасчетыПоРаботамОстаткиИОбороты.Работа = ЗаказНарядУслуги.Услуга
         |
         |УПОРЯДОЧИТЬ ПО
         |    Исполнитель,
         |    ЗаказНаряд";
    
    Запрос.УстановитьПараметр("НачДата", Объект.ДатаНачала);        
    Запрос.УстановитьПараметр("КонДата",  КонецДня(Объект.ДатаОкончания) + 1);
11 bolobol
 
07.06.18
16:08
Что именно не срабатывает?
12 Ramis333
 
07.06.18
16:11
заполняются все данные. начальную дату не видит
13 bolobol
 
07.06.18
16:13
Врёте, сударь
14 bolobol
 
07.06.18
16:13
Или 1С врёт, но это уже ТИИ и пересчёт итогов
15 bolobol
 
07.06.18
16:15
Я правильно понимаю, что в итоге запроса вы получаете данные, либо/либо:
- остаток на конец, которого нет в данном периоде
- остаток на начало, которого нет в прошлом периоде
- движения, которых нет в указанном периоде

?
16 bolobol
 
07.06.18
16:16
*движения = оборот, которого нет в указанном периоде
17 bolobol
 
07.06.18
16:17
Если хоть одно из трёх - ТИИ и пересчёт итогов, можно наоборот. Если нет - сударь врёт.
18 Ramis333
 
07.06.18
16:20
разобрался. при перепроведении документа в период записывалась дата проведения, а не дата документа
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn