Имя: Пароль:
1C
1С v8
Путевой лист + Заправки
0 VSpicy
 
naïve
28.11.23
16:46
Всем доброго дня!
Есть документ - "ПутевыеЛисты" (ПЛ), у него есть движение: РегистрНакопления - "уатОборотыПоЗаправкамГСМ". Нужно вытащить все Заправки за определенный период из ПЛ. Сейчас в запросе:
ВЫБРАТЬ
    СУММА(уатОборотыПоЗаправкамГСМОбороты.КоличествоОборот) КАК Выдано,
    уатОборотыПоЗаправкамГСМОбороты.ТС КАК ТС
ПОМЕСТИТЬ вт_ВыданоГСМ
ИЗ
    РегистрНакопления.уатОборотыПоЗаправкамГСМ.Обороты(&ДатаНач, &ДатаОкон, , ) КАК уатОборотыПоЗаправкамГСМОбороты
ГДЕ
    уатОборотыПоЗаправкамГСМОбороты.ПутевойЛист.Дата МЕЖДУ &ДатаНач И &ДатаОкон

Почти все заправки показывает, но есть ПЛ переходящие на другой день и к примеру ПЛ за 31.10.23 может иметь заправку от 01.11.23, их то и не видно...

Подскажите пожалуйста как лучше в запросе можно вытащить все заправки из определенного периода путевых листов - включая переходящие заправки из одного месяца в другой?

Заранее благодарен!!!
1 shuhard
 
28.11.23
16:49
(0) дату нужно брать не про шапке документа, а по возврату в гараж
2 Homer
 
28.11.23
16:52
Проблема у вас в учете. необходимо заправку ставить правильной датой тогда и не будет проблем.
или вы как предполагаете. человек заправился ночью. в выгрузки с заправки данная запись будет фигурировать в следующем дне/месяце. а вы ее учитываете по дате выезда.
и что делать если ПЛ выписываете на несколько дней.
3 VSpicy
 
naïve
28.11.23
17:00
(2) У нас заправки заполняются по факту автоматически в ПЛ через обмен. Нужно чтоб отчет показывал все заправки привязанные к ПЛ выбранные к примеру: за октябрь месяц.
4 shuhard
 
28.11.23
17:03
(3) ещё раз, дата документа в шапке не годиться
5 Bigbro
 
28.11.23
17:16
у меня вообще 2 документа было - открытие и закрытие ПЛ.
6 Гена
 
гуру
28.11.23
17:17
Это так называемая "ошибка заборного столба", описанная Витрувием в I веке до Р.Х.

Вам shuhard на неё и указывает. ПЛ имеет протяжённость, а Вы ошибочно рассматриваете только начало интервала.
7 Гена
 
гуру
28.11.23
17:26
Правда Витрувий был суров с учениками, а уж рабов мог засечь до смерти )
8 shuhard
 
28.11.23
17:28
(5) В УАТ для этого служит расчёт ПЛ и реквизит блокировки
9 VSpicy
 
naïve
28.11.23
21:50
(1) Принято, возьму во внимание. Спасибо!
10 VSpicy
 
naïve
30.11.23
15:44
Ещё один момент в этом же запросе.
Если транспортное средство примерно с середины месяца было перемещено в другую Зону, то оно исчезает в отчёте из той зоны в которой была несколько дней до перемещения... В каком условии и что правильней нужно указать, чтоб отчёт показал данные по ТС и в начальной зоне прибывания, и после перемещения?

Заранее благодарен!!!  


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

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

;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    СУММА(уатРасходГСМнаТС.РасходПоФакту) КАК РасходПоФакту,
    уатРасходГСМнаТС.ТС КАК ТС
ПОМЕСТИТЬ вт_РасходГСМПоФакту
ИЗ
    РегистрНакопления.уатРасходГСМнаТС КАК уатРасходГСМнаТС
ГДЕ
    уатРасходГСМнаТС.Регистратор.Дата МЕЖДУ &ДатаНач И &ДатаОкон
    И уатРасходГСМнаТС.Регистратор.Зона = &Зона

СГРУППИРОВАТЬ ПО
    уатРасходГСМнаТС.ТС
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    вт_ТСвПБЕ.ВидТоплива КАК ВидТоплива,
    вт_ТСвПБЕ.ГаражныйНомер КАК ГаражныйНомер,
    вт_ТСвПБЕ.ТС КАК ТС,
    СУММА(вт_ВыданоГСМ.Выдано) КАК Выдано,
    вт_РасходГСМПоФакту.РасходПоФакту КАК РасходПоФакту
ИЗ
    вт_ТСвПБЕ КАК вт_ТСвПБЕ
        ЛЕВОЕ СОЕДИНЕНИЕ вт_ВыданоГСМ КАК вт_ВыданоГСМ
        ПО вт_ТСвПБЕ.ТС = вт_ВыданоГСМ.ТС
        ЛЕВОЕ СОЕДИНЕНИЕ вт_РасходГСМПоФакту КАК вт_РасходГСМПоФакту
        ПО вт_ТСвПБЕ.ТС = вт_РасходГСМПоФакту.ТС
11 VSpicy
 
naïve
30.11.23
15:46
(4) Кстати, отчёт стал отрабатывать правильно даже с датой документа)
12 lEvGl
 
гуру
30.11.23
15:50
(11) совпадение наверно. все правильно говорят - у ПЛ должен быть период, типа как "рабочий период" или "период действия", назовите как хотите. либо связи в запросах должны быть без учета дат совсем, только по документу, тогда без разницы когда док создали, когда заправлялись
тут как бы от структуры базы зависит и от целей (учетных), которые достичь надо
13 shuhard
 
30.11.23
15:59
(11) ты убрать отбор по периоду заправки =)
РегистрНакопления.уатОборотыПоЗаправкамГСМ.Обороты(, , , ) КАК уатОборотыПоЗаправкамГСМОбороты
14 lEvGl
 
гуру
30.11.23
16:10
(13) ))) чем не вариант)
в целом, может им так и пойдет
15 VSpicy
 
naïve
30.11.23
16:10
Сейчас уже больше интересует это - (10)
16 lEvGl
 
гуру
30.11.23
16:21
(15) да что там интересного, скука(

Зона.Ссылка = &Зона
даже это не вызывает интереса. это только адептов ГУЛАГа может еще как то зацепило бы
17 VSpicy
 
naïve
30.11.23
16:28
(16) Отбор-то отрабатывает, но вот только вдруг если пройдет перемещение ТС, например: в следующем месяце, то в отчёте за прошлый период этот ТС уже не отразится(
18 lEvGl
 
гуру
30.11.23
16:37
(17) ну так вы же берете срез последних без периода, то есть на текущую дату, наверно поэтому и не попадает ТС в прошлую зону, оно то на срезе в другой/текущей зоне
"прошлая зона" "другая зона", еще бы серую зону и зону отчуждения. Ваш сталкер.
но я не претендую на истинность своих утверждений, т к мечты у каждого свои и скрыть их от чужого глаза проблем не составляет
19 VSpicy
 
naïve
30.11.23
16:46
Зона - это территория (ПБЕ)...
Тоесть получается тут нужно указывать период: РегистрНакопления.уатОборотыПоЗаправкамГСМ.Обороты(, , , ) КАК уатОборотыПоЗаправкамГСМОбороты
20 lEvGl
 
гуру
30.11.23
17:04
(19) да непонятно, что и где надо указывать, т к неясна задача и условия
Нужно вытащить все Заправки за определенный период из ПЛ.

что это означает? из ПЛ или ДЛЯ ПЛ/ТС. Период чего задается? Период действия ПЛ или период заправок?
сначала определите задачу логически, по смыслу, потом запрос писать будете
(21) да хрен знает, для чего левое соединение, если из таблицы справа ничего не выбирается и в регистре есть поле для фильтра по зоне?
в целом эти вопросы будут бескончеными, пока не станет понятно для чего все это нужно
21 VSpicy
 
naïve
30.11.23
16:55
(10) А какие тут могут быть ещё вопросы?
22 Гена
 
гуру
30.11.23
17:00
(20) Похоже у автора Парус. А ПБЕ - это президентская библиотека им.Ельцина как обособленное подразделение.
23 VSpicy
 
naïve
30.11.23
17:01
(22) Изначально тут Парус и стоял)
24 Гена
 
гуру
30.11.23
17:03
(23) А сейчас что стоит? [запятых нет!]
25 lEvGl
 
гуру
30.11.23
17:11
Парус? это отдельная программа емнип
подсистема/конфа что ли
ну пусть, а что это меняет
26 VSpicy
 
naïve
30.11.23
20:01
(20)Ведомость по движению топлива. Данные берутся из ПЛ, регистров сведений и накоплений.
27 VSpicy
 
naïve
30.11.23
20:39
(24) 1С:УАТ Проф
28 СделатьВсе Хорошо
 
01.12.23
11:02
(10) Добро пожаловать в чудесный мир УАТ и его недоработок )))

в нормальных конфигурациях при проведении документов, такие периодические вещи при проведении документа получаются на дату документа (дату операции) и падают в какой-нибудь регистр.

НО увы это УАТ. там с аналитическим отчетами и проводками беда.
И да нужно раскурить как по каждой ТС получить дату перехода (а их может быть даже несколько за выбранный период отчета) и распределить заправки.

Сложно, но можно. боюсь тут вам конкретно никто не поможет. Ибо в этом и есть ваша работа как программиста. ))) придумывайте
29 lEvGl
 
гуру
01.12.23
11:10
(28) это что, в (10), запрос типовой конфы?
30 СделатьВсе Хорошо
 
01.12.23
11:52
(29) нет, но автор мучается, потому что в типовой не смогли регистры выстроить адекватно для быстрого формирования отчетов.
31 lEvGl
 
гуру
01.12.23
12:04
тогда ирония про АУТ понятна
32 VSpicy
 
naïve
01.12.23
14:34
(28) Это точно! Но уже есть идея, поэтому думаю скоро реализую эту задачу...
Спасибо всем за советы!