|
Запрос: связь между регистрами | ☑ | ||
---|---|---|---|---|
0
Adgjj
06.07.12
✎
15:37
|
На 1 строку ВыработкаТС_Лес иногда приходится больше 1 строки уатОстаткиГСМнаТС
| уатОстаткиГСМнаТС.Количество КАК ВыдатьГорючего |ИЗ | РегистрНакопления.ВыработкаТС_Лес КАК ВыработкаТС_Лес | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.уатОстаткиГСМнаТС КАК уатОстаткиГСМнаТС | ПО ВыработкаТС_Лес.ПутЛист = уатОстаткиГСМнаТС.ПутевойЛист Как изменить запрос, чтобы выдавалась строки не множились в зависимости от количества строк уатОстаткиГСМнаТС. Например, если в ВыработкаТС_Лес 1 строка, а в уатОстаткиГСМнаТС для нее 3 строки, то запрос бы выдавал 1 строку с общей суммой по уатОстаткиГСМнаТС.Количество? |
|||
1
Ненавижу 1С
гуру
06.07.12
✎
15:38
|
сгруппировать по
|
|||
2
Adgjj
06.07.12
✎
15:41
|
а если в запросе три ОБЪЕДИНИТЬ, то группировать по для каждого придется писать?
|
|||
3
Ненавижу 1С
гуру
06.07.12
✎
15:48
|
(2) подзапрос
|
|||
4
Adgjj
06.07.12
✎
15:50
|
а можете схематично написать?
|
|||
5
Adgjj
06.07.12
✎
16:08
|
| СУММА(уатОстаткиГСМнаТС.Количество) КАК ВыдатьГорючего, на эту строку ругается, говорит поле уатОстаткиГСМнаТС.Количество не найдено
в |СГРУППИРОВАТЬ ПО | уатОстаткиГСМнаТС.Количество, есть |
|||
6
Ненавижу 1С
гуру
06.07.12
✎
16:10
|
(5) может все покажешь?
(4) выбрать сумма(т.чтото) ... из (выбрать чтото из ... объединить все выбрать чтото из ... объединить все выбрать чтото из ...) как т сгруппировать по ... |
|||
7
Adgjj
06.07.12
✎
16:11
|
я-то покажу но это на 4 монитора
|
|||
8
Ненавижу 1С
гуру
06.07.12
✎
16:11
|
||||
9
Adgjj
06.07.12
✎
16:13
|
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ //Путевой лист и Простои из него //1) ОбщиеДанные | ВыработкаТС_Лес.Период КАК ДатаДок, //это дата закрытия | ВыработкаТС_Лес.ПутЛист.ВидПЛ КАК ВидДок, //для проверки в сообщении ниже запроса | ВЫБОР | КОГДА ВыработкаТС_Лес.ПутЛист.ВидПЛ = ЗНАЧЕНИЕ(Перечисление.уатВидыПЛ._4С) ТОГДА | ВЫБОР | КОГДА (ВыработкаТС_Лес.ПутЛист.Режим_Лес = ЗНАЧЕНИЕ(Перечисление.РежимыРаботы_Лес.Режим_67)) ТОГДА | ВЫБОР КОГДА 7<=ЧАС(ВыработкаТС_Лес.ДатаВыезда) и ЧАС(ВыработкаТС_Лес.ДатаВыезда)<19 ТОГДА | ""X"" | ИНАЧЕ | ""Y"" | КОНЕЦ | КОГДА (ВыработкаТС_Лес.ПутЛист.Режим_Лес = ЗНАЧЕНИЕ(Перечисление.РежимыРаботы_Лес.Режим_19)) ТОГДА | ВЫБОР КОГДА 8<=ЧАС(ВыработкаТС_Лес.ДатаВыезда) и ЧАС(ВыработкаТС_Лес.ДатаВыезда)<20 ТОГДА | ""X"" | ИНАЧЕ | ""Y"" | КОНЕЦ | КОНЕЦ | КОГДА ВыработкаТС_Лес.ПутЛист.ВидПЛ = ЗНАЧЕНИЕ(Перечисление.уатВидыПЛ._4П) ТОГДА | ""X"" | КОНЕЦ КАК СменаXY, | уатПервоначальныеСведенияТС.КодСАП КАК ЕО, //д. б. заполнено, иначе сразу после запроса сообщение | уатПервоначальныеСведенияТС.РабочееМесто КАК РабМесто, //д. б. заполнено, иначе сразу после запроса сообщение | ""60"" + ВыработкаТС_Лес.ПутЛист.ВыпустилМеханик.Код КАК ТаноМеханика, | ВыработкаТС_Лес.ПутЛист.Номер КАК НомерДок, //2) ПоказателиРаботы | ВыработкаТС_Лес.КоличествоКмГруз + ВыработкаТС_Лес.КоличествоКмПорожний КАК ОбщПробег, | ВыработкаТС_Лес.КоличествоКмГруз КАК ГрПробег, //| КоэфУвелНормы | уатСчетчикиТС.СпНач КАК СпидометрВыезда, | уатСчетчикиТС.Значение КАК СпидометрВозвращения, | уатРасходГСМнаТС.ОстатокТопливаВыезд КАК ОстатокВыезда, | уатРасходГСМнаТС.ОстатокТопливаВозврат КАК ОстатокВозвращения, | СУММА(уатОстаткиГСМнаТС.Количество) КАК ВыдатьГорючего, //3) Операции //| ЕСТЬNULL(ВыработкаТС_Лес.ВидРаботы.КодСАП,уатПростои.ВидПростоя.КодСАП) КАК КодОперации, //д. б. заполнено, иначе сразу после запроса сообщение //| ЕСТЬNULL(ВыработкаТС_Лес.ДатаВыезда ,уатПростои.Период) КАК ДатаВремяНачала, //| ЕСТЬNULL(ВыработкаТС_Лес.ДатаВозвращения ,уатПростои.ДатаОкончПростоя) КАК ДатаВремяОкончания, | ВыработкаТС_Лес.ВидРаботы.КодСАП КАК КодОперации, //д. б. заполнено, иначе сразу после запроса сообщение | ВыработкаТС_Лес.ДатаВыезда КАК ДатаВремяНачала, | ВыработкаТС_Лес.ДатаВозвращения КАК ДатаВремяОкончания, | ВыработкаТС_Лес.Водитель.Код КАК ТаноВодителя, //| ВыработкаТС_Лес.КоличествоКмГруз + ВыработкаТС_Лес.КоличествоКмПорожний КАК ОбщПробег, //есть выше // | ВыработкаТС_Лес.КоличествоКмГруз КАК ГрПробегОп, //ГрПробегОп !!! //4) Материалы | уатРасходГСМнаТС.РасходПоФакту КАК РасходТоплива, | уатПервоначальныеСведенияТС.МВЗ, //д. б. заполнено, иначе сразу после запроса сообщение //5) Моё | ВыработкаТС_Лес.Организация, //НУЖНО ОБЯЗАТЕЛЬНО ДЛЯ СОРТИРОВКИ | уатПервоначальныеСведенияТС.ОсновноеСредство КАК ОсновноеСредство, //для вывода сообщения о незаполненности КодСАП для авто | ВыработкаТС_Лес.Водитель КАК Водитель, //для вывода сообщения о незаполненности ВидРабот путевки | ВыработкаТС_Лес.ВидРаботы КАК ВидРаботы, //для вывода сообщения | NULL КАК ВидПростоя, //уатПростои.ВидПростоя, //для вывода сообщения | ВыработкаТС_Лес.ВидРаботы.КодСАП КАК ВидРаботыКодСАП, //для вывода сообщения | NULL КАК ВидПростояКодСАП //для вывода сообщения уатПростои.ВидПростоя.КодСАП //| ВыработкаТС_Лес.НомерШтатного КАК РабМесто, //| уатПростои.НомерШтатного КАК РабМестоПростоя //| СУММА(ВыработкаТС_Лес.КоличествоЧасов) КАК КоличествоЧасов, //| уатПростои.Время КАК ВремяПростоя, |ИЗ | РегистрНакопления.ВыработкаТС_Лес КАК ВыработкаТС_Лес //| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.уатОстаткиГСМнаТС КАК уатОстаткиГСМнаТС //| ПО ВыработкаТС_Лес.ПутЛист = уатОстаткиГСМнаТС.ПутевойЛист //ВыдатьГорючего получим не из уатОстаткиГСМнаТС, а из путевки непосредственно, //чтоб количество строк в ТЗ не множилось по кол-ву документов-заправок //Пример: ПЛ KOT00000121 от 02.12.2011 - 3 документа заправки | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.уатРасходГСМнаТС КАК уатРасходГСМнаТС | ПО ВыработкаТС_Лес.ПутЛист = уатРасходГСМнаТС.Регистратор | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.уатПервоначальныеСведенияТС КАК уатПервоначальныеСведенияТС | ПО ВыработкаТС_Лес.ТС = уатПервоначальныеСведенияТС.ОсновноеСредство | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.уатСчетчикиТС КАК уатСчетчикиТС | ПО ВыработкаТС_Лес.ПутЛист = уатСчетчикиТС.Регистратор //| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.уатПростои КАК уатПростои //Простои из путевых листов //| ПО ВыработкаТС_Лес.ПутЛист = уатПростои.Регистратор |ГДЕ | ВыработкаТС_Лес.Период МЕЖДУ &ДатаС И &ДатаПо | И ВыработкаТС_Лес.Активность //| наложить ограничение на ВидПЛ - только сдельный или повременный? |"; Если Организация <> Справочники.Организации.ПустаяСсылка() Тогда Запрос.Текст = Запрос.Текст + " | И ВыработкаТС_Лес.Организация = &Организация "; КонецЕсли; Запрос.Текст = Запрос.Текст + " |"; Если НомерТранспортноеСредство <> "" Тогда Запрос.Текст = Запрос.Текст + " | И ВыработкаТС_Лес.ТС = &ТС"; КонецЕсли; Запрос.Текст = Запрос.Текст + " |"; Если ВидТС_Лес <> Перечисления.ВидыАвтотранспорта.ПустаяСсылка() Тогда Запрос.Текст = Запрос.Текст + " | И уатПервоначальныеСведенияТС.ВидТС_Лес = &ВидТС_Лес"; КонецЕсли; Запрос.Текст = Запрос.Текст + " | |СГРУППИРОВАТЬ ПО | ВыработкаТС_Лес.ПутЛист, | ВыработкаТС_Лес.ДатаВыезда, | ВыработкаТС_Лес.ДатаВозвращения, | ВыработкаТС_Лес.ПутЛист.ДатаВыезда, | ВыработкаТС_Лес.ПутЛист.ДатаВозвращения, | ВыработкаТС_Лес.КоличествоКмГруз, | ВыработкаТС_Лес.КоличествоКмПорожний, | ВыработкаТС_Лес.Период, | уатОстаткиГСМнаТС.Количество, // | уатРасходГСМнаТС.РасходПоФакту, | уатРасходГСМнаТС.ОстатокТопливаВыезд, | уатРасходГСМнаТС.ОстатокТопливаВозврат, | ВыработкаТС_Лес.ПутЛист.Номер, | уатСчетчикиТС.СпНач, | уатСчетчикиТС.Значение, | уатПервоначальныеСведенияТС.МВЗ, //| ВыработкаТС_Лес.НомерШтатного, | уатПервоначальныеСведенияТС.РабочееМесто, | ВыработкаТС_Лес.Водитель.Код, | уатПервоначальныеСведенияТС.КодСАП, | ВыработкаТС_Лес.ПутЛист.ВыпустилМеханик, | уатПростои.Период, | уатПростои.ДатаОкончПростоя, | уатПростои.ВидПростоя, | уатПростои.Время, | уатПростои.НомерШтатного, | ВыработкаТС_Лес.ВидРаботы, | уатПервоначальныеСведенияТС.ОсновноеСредство, | ВыработкаТС_Лес.Водитель, | ВыработкаТС_Лес.ПутЛист.ВидПЛ, | | ВыработкаТС_Лес.Период , | ВыработкаТС_Лес.ПутЛист.ВидПЛ, | ВыработкаТС_Лес.ПутЛист.Режим_Лес, | ВыработкаТС_Лес.ПутЛист.Номер, | уатСчетчикиТС.СпНач , | уатСчетчикиТС.Значение , | ВыработкаТС_Лес.ВидРаботы.КодСАП, | уатПростои.ВидПростоя.КодСАП, | ВыработкаТС_Лес.Организация | |ОБЪЕДИНИТЬ | | ВЫБРАТЬ //Простои путевого листа //1) ОбщиеДанные | уатПростои.Регистратор.Дата КАК ДатаДок, //это дата закрытия | уатПростои.Регистратор.ВидПЛ КАК ВидДок, //для проверки в сообщении ниже запроса //| ВЫБОР //| КОГДА уатПростои.Регистратор.ВидПЛ = ЗНАЧЕНИЕ(Перечисление.уатВидыПЛ._4С) ТОГДА //| ВЫБОР //| КОГДА (уатПростои.Регистратор.Режим_Лес = ЗНАЧЕНИЕ(Перечисление.РежимыРаботы_Лес.Режим_67)) ТОГДА //| ВЫБОР КОГДА 7<=ЧАС(уатПростои.Регистратор.ДатаВыезда) и ЧАС(уатПростои.Регистратор.ДатаВыезда)<19 ТОГДА //| ""X"" //| ИНАЧЕ //| ""Y"" //| КОНЕЦ //| КОГДА (уатПростои.Регистратор.Режим_Лес = ЗНАЧЕНИЕ(Перечисление.РежимыРаботы_Лес.Режим_19)) ТОГДА //| ВЫБОР КОГДА 8<=ЧАС(уатПростои.Регистратор.ДатаВыезда) и ЧАС(уатПростои.Регистратор.ДатаВыезда)<20 ТОГДА //| ""X"" //| ИНАЧЕ //| ""Y"" //| КОНЕЦ //| КОНЕЦ //| КОГДА уатПростои.Регистратор.ВидПЛ = ЗНАЧЕНИЕ(Перечисление.уатВидыПЛ._4П) ТОГДА //| ""X"" //| КОНЕЦ КАК СменаXY, | ""Простой"" КАК СменаXY, //""Простой"" - исп-ется для наглядности. не надо: возьмется из путевого листа по его дате, номеру, ВидПЛ<>""Ремонтный лист"" | уатПервоначальныеСведенияТС.КодСАП КАК ЕО, //надо для УПОРЯДОЧИТЬ //не надо:... д. б. заполнено, иначе сразу после запроса сообщение | NULL КАК РабМесто, //не надо:... д. б. заполнено, иначе сразу после запроса сообщение | NULL КАК ТаноМеханика, //не надо:... | уатПростои.Регистратор.Номер КАК НомерДок, //2) ПоказателиРаботы | NULL КАК ОбщПробег, //здесь нет | NULL КАК ГрПробег, //здесь нет //| КоэфУвелНормы | NULL КАК СпидометрВыезда, //не надо:... | NULL КАК СпидометрВозвращения, //не надо:... | NULL КАК ОстатокВыезда, //не надо:... | NULL КАК ОстатокВозвращения, //не надо:... | NULL КАК ВыдатьГорючего, //не надо:... //3) Операции ЗДЕСЬ НАДО ТОЛЬКО ЭТО | уатПростои.ВидПростоя.КодСАП КАК КодОперации, //д. б. заполнено, иначе сразу после запроса сообщение | уатПростои.Период КАК ДатаВремяНачала, | уатПростои.ДатаОкончПростоя КАК ДатаВремяОкончания, | уатПростои.Водитель.Код КАК ТаноВодителя, //| ВыработкаТС_Лес.КоличествоКмГруз + ВыработкаТС_Лес.КоличествоКмПорожний КАК ОбщПробег, //есть выше // | ВыработкаТС_Лес.КоличествоКмГруз КАК ГрПробегОп, //ГрПробегОп !!! //4) Материалы //не надо:... | NULL КАК РасходТоплива, | NULL КАК МВЗ, //д. б. заполнено, иначе сразу после запроса сообщение //5) Моё | уатПростои.Организация, //НУЖНО ОБЯЗАТЕЛЬНО ДЛЯ СОРТИРОВКИ | NULL КАК ОсновноеСредство, //для вывода сообщения о незаполненности КодСАП для авто | уатПростои.Водитель КАК Водитель, //для вывода сообщения о незаполненности ВидПростоя | NULL КАК ВидРаботы, //для вывода сообщения | уатПростои.ВидПростоя, //для вывода сообщения | NULL КАК ВидРаботыКодСАП, //для вывода сообщения | уатПростои.ВидПростоя.КодСАП КАК ВидПростояКодСАП //для вывода сообщения //| ВыработкаТС_Лес.НомерШтатного КАК РабМесто, //| уатПростои.НомерШтатного КАК РабМестоПростоя //| СУММА(ВыработкаТС_Лес.КоличествоЧасов) КАК КоличествоЧасов, //| уатПростои.Время КАК ВремяПростоя, |ИЗ //Простои путевого листа | РегистрНакопления.уатПростои КАК уатПростои //Простои из путевых листов | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.уатПервоначальныеСведенияТС КАК уатПервоначальныеСведенияТС | ПО уатПростои.ТС = уатПервоначальныеСведенияТС.ОсновноеСредство |ГДЕ | уатПростои.Регистратор.Дата МЕЖДУ &ДатаС И &ДатаПо //это дата закрытия | И уатПростои.Активность //| наложить ограничение на ВидПЛ - только сдельный или повременный? |"; Если Организация <> Справочники.Организации.ПустаяСсылка() Тогда Запрос.Текст = Запрос.Текст + " | И уатПростои.Организация = &Организация "; КонецЕсли; Запрос.Текст = Запрос.Текст + " |"; Если НомерТранспортноеСредство <> "" Тогда Запрос.Текст = Запрос.Текст + " | И уатПростои.ТС = &ТС"; КонецЕсли; Запрос.Текст = Запрос.Текст + " |"; Если ВидТС_Лес <> Перечисления.ВидыАвтотранспорта.ПустаяСсылка() Тогда Запрос.Текст = Запрос.Текст + " | И уатПервоначальныеСведенияТС.ВидТС_Лес = &ВидТС_Лес"; КонецЕсли; Запрос.Текст = Запрос.Текст + " | |СГРУППИРОВАТЬ ПО | ВыработкаТС_Лес.ПутЛист, | ВыработкаТС_Лес.ДатаВыезда, | ВыработкаТС_Лес.ДатаВозвращения, | ВыработкаТС_Лес.ПутЛист.ДатаВыезда, | ВыработкаТС_Лес.ПутЛист.ДатаВозвращения, | ВыработкаТС_Лес.КоличествоКмГруз, | ВыработкаТС_Лес.КоличествоКмПорожний, | ВыработкаТС_Лес.Период, | уатОстаткиГСМнаТС.Количество, | уатРасходГСМнаТС.РасходПоФакту, | уатРасходГСМнаТС.ОстатокТопливаВыезд, | уатРасходГСМнаТС.ОстатокТопливаВозврат, | ВыработкаТС_Лес.ПутЛист.Номер, | уатСчетчикиТС.СпНач, | уатСчетчикиТС.Значение, | уатПервоначальныеСведенияТС.МВЗ, //| ВыработкаТС_Лес.НомерШтатного, | уатПервоначальныеСведенияТС.РабочееМесто, | ВыработкаТС_Лес.Водитель.Код, | уатПервоначальныеСведенияТС.КодСАП, | ВыработкаТС_Лес.ПутЛист.ВыпустилМеханик, | уатПростои.Период, | уатПростои.ДатаОкончПростоя, | уатПростои.ВидПростоя, | уатПростои.Время, | уатПростои.НомерШтатного, | ВыработкаТС_Лес.ВидРаботы, | уатПервоначальныеСведенияТС.ОсновноеСредство, | ВыработкаТС_Лес.Водитель, | ВыработкаТС_Лес.ПутЛист.ВидПЛ, | | ВыработкаТС_Лес.Период , | ВыработкаТС_Лес.ПутЛист.ВидПЛ, | ВыработкаТС_Лес.ПутЛист.Режим_Лес, | ВыработкаТС_Лес.ПутЛист.Номер, | уатСчетчикиТС.СпНач , | уатСчетчикиТС.Значение , | ВыработкаТС_Лес.ВидРаботы.КодСАП, | уатПростои.ВидПростоя.КодСАП, | ВыработкаТС_Лес.Организация | |ОБЪЕДИНИТЬ | | ВЫБРАТЬ //Ремонтный лист //1) ОбщиеДанные | ПростоиТС.Период КАК ДатаДок, //это дата закрытия | ""Ремонтный лист"" КАК ВидДок, //для проверки в сообщении ниже запроса | ""X"" КАК СменаXY, | уатПервоначальныеСведенияТС.КодСАП КАК ЕО, //д. б. заполнено, иначе сразу после запроса сообщение | уатПервоначальныеСведенияТС.РабочееМесто КАК РабМесто, //д. б. заполнено, иначе сразу после запроса сообщение | NULL КАК ТаноМеханика, | ПростоиТС.Регистратор.Номер КАК НомерДок, //2) ПоказателиРаботы | 0 КАК ОбщПробег, | 0 КАК ГрПробег, //| КоэфУвелНормы | 0 КАК СпидометрВыезда, | 0 КАК СпидометрВозвращения, | 0 КАК ОстатокВыезда, | 0 КАК ОстатокВозвращения, | NULL КАК ВыдатьГорючего, //0 //3) Операции | ПростоиТС.ВидОбслуживания.КодСАП КАК КодОперации, //д. б. заполнено, иначе сразу после запроса сообщение | ПростоиТС.ДатаНачала КАК ДатаВремяНачала, | ПростоиТС.ДатаОкончания КАК ДатаВремяОкончания, | ПростоиТС.Водитель.Код КАК ТаноВодителя, //| ПростоиТС.КоличествоКмГруз + ПростоиТС.КоличествоКмПорожний КАК ОбщПробег, //есть выше // | ПростоиТС.КоличествоКмГруз КАК ГрПробегОп, //ГрПробегОп !!! //4) Материалы | 0 КАК РасходТоплива, | уатПервоначальныеСведенияТС.МВЗ, //д. б. заполнено, иначе сразу после запроса сообщение //5) Моё | ПростоиТС.Организация, //НУЖНО ОБЯЗАТЕЛЬНО ДЛЯ СОРТИРОВКИ | уатПервоначальныеСведенияТС.ОсновноеСредство КАК ОсновноеСредство, //для вывода сообщения о незаполненности КодСАП для авто | ПростоиТС.Водитель КАК Водитель, //для вывода сообщения о незаполненности ВидРабот путевки | ПростоиТС.ВидОбслуживания КАК ВидРаботы, //для вывода сообщения | NULL, //для вывода сообщения | ПростоиТС.ВидОбслуживания.КодСАП КАК ВидРаботыКодСАП, //для вывода сообщения | NULL КАК ВидПростояКодСАП //для вывода сообщения |ИЗ | РегистрНакопления.ПростоиТС КАК ПростоиТС //Ремонтный лист | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.уатПервоначальныеСведенияТС КАК уатПервоначальныеСведенияТС | ПО ПростоиТС.ТС = уатПервоначальныеСведенияТС.ОсновноеСредство |ГДЕ | ПростоиТС.Период МЕЖДУ &ДатаС И &ДатаПо | И ПростоиТС.Активность |"; Если Организация <> Справочники.Организации.ПустаяСсылка() Тогда Запрос.Текст = Запрос.Текст + " | И ПростоиТС.Организация = &Организация "; КонецЕсли; Запрос.Текст = Запрос.Текст + " |"; Если НомерТранспортноеСредство <> "" Тогда Запрос.Текст = Запрос.Текст + " | И ПростоиТС.ТС = &ТС"; КонецЕсли; Запрос.Текст = Запрос.Текст + " |"; Если ВидТС_Лес <> Перечисления.ВидыАвтотранспорта.ПустаяСсылка() Тогда Запрос.Текст = Запрос.Текст + " | И уатПервоначальныеСведенияТС.ВидТС_Лес = &ВидТС_Лес"; КонецЕсли; Запрос.Текст = Запрос.Текст + " | |СГРУППИРОВАТЬ ПО | ВыработкаТС_Лес.ПутЛист, | ВыработкаТС_Лес.ДатаВыезда, | ВыработкаТС_Лес.ДатаВозвращения, | ВыработкаТС_Лес.ПутЛист.ДатаВыезда, | ВыработкаТС_Лес.ПутЛист.ДатаВозвращения, | ВыработкаТС_Лес.КоличествоКмГруз, | ВыработкаТС_Лес.КоличествоКмПорожний, | ВыработкаТС_Лес.Период, | уатОстаткиГСМнаТС.Количество, | уатРасходГСМнаТС.РасходПоФакту, | уатРасходГСМнаТС.ОстатокТопливаВыезд, | уатРасходГСМнаТС.ОстатокТопливаВозврат, | ВыработкаТС_Лес.ПутЛист.Номер, | уатСчетчикиТС.СпНач, | уатСчетчикиТС.Значение, | уатПервоначальныеСведенияТС.МВЗ, //| ВыработкаТС_Лес.НомерШтатного, | уатПервоначальныеСведенияТС.РабочееМесто, | ВыработкаТС_Лес.Водитель.Код, | уатПервоначальныеСведенияТС.КодСАП, | ВыработкаТС_Лес.ПутЛист.ВыпустилМеханик, | уатПростои.Период, | уатПростои.ДатаОкончПростоя, | уатПростои.ВидПростоя, | уатПростои.Время, | уатПростои.НомерШтатного, | ВыработкаТС_Лес.ВидРаботы, | уатПервоначальныеСведенияТС.ОсновноеСредство, | ВыработкаТС_Лес.Водитель, | ВыработкаТС_Лес.ПутЛист.ВидПЛ, | | ВыработкаТС_Лес.Период , | ВыработкаТС_Лес.ПутЛист.ВидПЛ, | ВыработкаТС_Лес.ПутЛист.Режим_Лес, | ВыработкаТС_Лес.ПутЛист.Номер, | уатСчетчикиТС.СпНач , | уатСчетчикиТС.Значение , | ВыработкаТС_Лес.ВидРаботы.КодСАП, | уатПростои.ВидПростоя.КодСАП, | ВыработкаТС_Лес.Организация ////////| ВыработкаТС_Лес.ВидРаботы КАК ВидРаботы, //для вывода сообщения ////////| NULL КАК ВидПростоя, //уатПростои.ВидПростоя, //для вывода сообщения //////// ////////| ВыработкаТС_Лес.ВидРаботы.КодСАП КАК ВидРаботыКодСАП, //для вывода сообщения ////////| NULL КАК ВидПростояКодСАП | |УПОРЯДОЧИТЬ ПО //| НомерДок, СменаXY, ДатаДок //СменаXY перед ДатаДок, //т.к. нужно, чтобы сначала шла строка по ездкам путевого листа, а потом по простоям(погрузка/разгрузка) для вывода секций макета. | Организация, ЕО, ДатаВремяНачала, СменаXY |"; Запрос.УстановитьПараметр("Организация", Организация); Запрос.УстановитьПараметр("ДатаС" , НачалоДня(ДатаС)); Запрос.УстановитьПараметр("ДатаПо" , КонецДня(ДатаПо)); Запрос.УстановитьПараметр("ТС" , ТранспортноеСредство); //НомерТранспортноеСредство Запрос.УстановитьПараметр("ВидТС_Лес" , ВидТС_Лес); //Перечисления.ВидыАвтотранспорта.Грузовой ТЗ = Запрос.Выполнить().Выгрузить(); |
|||
10
Adgjj
06.07.12
✎
16:15
|
т.е. при таком размере при использовании (6) наверно немногим короче будет
|
|||
11
Adgjj
06.07.12
✎
16:20
|
||||
12
Adgjj
06.07.12
✎
16:20
|
||||
13
Ненавижу 1С
гуру
06.07.12
✎
16:21
|
(12) ну значит нет такого поля
|
|||
14
Adgjj
06.07.12
✎
16:23
|
пока сумму и упорядочить не писала было
|
|||
15
Adgjj
06.07.12
✎
16:23
|
//| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.уатОстаткиГСМнаТС КАК уатОстаткиГСМнаТС
//| ПО ВыработкаТС_Лес.ПутЛист = уатОстаткиГСМнаТС.ПутевойЛист забыла раскомментировать |
|||
16
Ненавижу 1С
гуру
06.07.12
✎
16:24
|
(15) фото не хватает
|
|||
17
Adgjj
09.07.12
✎
15:19
|
Фото рано, задача не работает, т.е. нет группировки по полю Количество регистра уатОстаткиГСМнаТС((
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ //Путевой лист и Простои из него //1) ОбщиеДанные //| ВыработкаТС_Лес.Период КАК ДатаДок, //это дата закрытия ДатаВыезда | ВыработкаТС_Лес.ПутЛист КАК ДОКУМЕНТ, //для определения того, что ездки относятся к одному ПутЛист | ВыработкаТС_Лес.ПутЛист.ВидПЛ КАК ВидДок, //для проверки в сообщении ниже запроса | ВЫБОР | КОГДА ВыработкаТС_Лес.ПутЛист.ВидПЛ = ЗНАЧЕНИЕ(Перечисление.уатВидыПЛ._4С) ТОГДА | ВЫБОР | КОГДА (ВыработкаТС_Лес.ПутЛист.Режим_Лес = ЗНАЧЕНИЕ(Перечисление.РежимыРаботы_Лес.Режим_67)) ТОГДА | ВЫБОР КОГДА 7<=ЧАС(ВыработкаТС_Лес.ДатаВыезда) и ЧАС(ВыработкаТС_Лес.ДатаВыезда)<19 ТОГДА | ""X"" | ИНАЧЕ | ""Y"" | КОНЕЦ | КОГДА (ВыработкаТС_Лес.ПутЛист.Режим_Лес = ЗНАЧЕНИЕ(Перечисление.РежимыРаботы_Лес.Режим_19)) ТОГДА | ВЫБОР КОГДА 8<=ЧАС(ВыработкаТС_Лес.ДатаВыезда) и ЧАС(ВыработкаТС_Лес.ДатаВыезда)<20 ТОГДА | ""X"" | ИНАЧЕ | ""Y"" | КОНЕЦ | КОНЕЦ | КОГДА ВыработкаТС_Лес.ПутЛист.ВидПЛ = ЗНАЧЕНИЕ(Перечисление.уатВидыПЛ._4П) ТОГДА | ""X"" | КОНЕЦ КАК СменаXY, | уатПервоначальныеСведенияТС.КодСАП КАК ЕО, //д. б. заполнено, иначе сразу после запроса сообщение | уатПервоначальныеСведенияТС.РабочееМесто КАК РабМесто, //д. б. заполнено, иначе сразу после запроса сообщение | ""60"" + ВыработкаТС_Лес.ПутЛист.ВыпустилМеханик.Код КАК ТаноМеханика, | ВыработкаТС_Лес.ПутЛист.Номер КАК НомерДок, //2) ПоказателиРаботы | ВыработкаТС_Лес.КоличествоКмГруз + ВыработкаТС_Лес.КоличествоКмПорожний КАК ОбщПробег, | ВыработкаТС_Лес.КоличествоКмГруз КАК ГрПробег, //| КоэфУвелНормы | уатСчетчикиТС.СпНач КАК СпидометрВыезда, | уатСчетчикиТС.Значение КАК СпидометрВозвращения, | уатРасходГСМнаТС.ОстатокТопливаВыезд КАК ОстатокВыезда, | уатРасходГСМнаТС.ОстатокТопливаВозврат КАК ОстатокВозвращения, | СУММА(уатОстаткиГСМнаТС.Количество) КАК ВыдатьГорючего, //3) Операции //| ЕСТЬNULL(ВыработкаТС_Лес.ВидРаботы.КодСАП,уатПростои.ВидПростоя.КодСАП) КАК КодОперации, //д. б. заполнено, иначе сразу после запроса сообщение //| ЕСТЬNULL(ВыработкаТС_Лес.ДатаВыезда ,уатПростои.Период) КАК ДатаВремяНачала, //| ЕСТЬNULL(ВыработкаТС_Лес.ДатаВозвращения ,уатПростои.ДатаОкончПростоя) КАК ДатаВремяОкончания, | ВыработкаТС_Лес.ВидРаботы.КодСАП КАК КодОперации, //д. б. заполнено, иначе сразу после запроса сообщение | ВыработкаТС_Лес.ДатаВыезда КАК ДатаВремяНачала, | ВыработкаТС_Лес.ДатаВозвращения КАК ДатаВремяОкончания, | ВыработкаТС_Лес.Водитель.Код КАК ТаноВодителя, //| ВыработкаТС_Лес.КоличествоКмГруз + ВыработкаТС_Лес.КоличествоКмПорожний КАК ОбщПробег, //есть выше // | ВыработкаТС_Лес.КоличествоКмГруз КАК ГрПробегОп, //ГрПробегОп !!! //4) Материалы | уатРасходГСМнаТС.РасходПоФакту КАК РасходТоплива, | уатПервоначальныеСведенияТС.МВЗ, //д. б. заполнено, иначе сразу после запроса сообщение //5) Моё | ВыработкаТС_Лес.Организация, //НУЖНО ОБЯЗАТЕЛЬНО ДЛЯ СОРТИРОВКИ | уатПервоначальныеСведенияТС.ОсновноеСредство КАК ОсновноеСредство, //для вывода сообщения о незаполненности КодСАП для авто | ВыработкаТС_Лес.Водитель КАК Водитель, //для вывода сообщения о незаполненности ВидРабот путевки | ВыработкаТС_Лес.ВидРаботы КАК ВидРаботы, //для вывода сообщения | NULL КАК ВидПростоя, //уатПростои.ВидПростоя, //для вывода сообщения | ВыработкаТС_Лес.ВидРаботы.КодСАП КАК ВидРаботыКодСАП, //для вывода сообщения | NULL КАК ВидПростояКодСАП //для вывода сообщения уатПростои.ВидПростоя.КодСАП //| ВыработкаТС_Лес.НомерШтатного КАК РабМесто, //| уатПростои.НомерШтатного КАК РабМестоПростоя //| СУММА(ВыработкаТС_Лес.КоличествоЧасов) КАК КоличествоЧасов, //| уатПростои.Время КАК ВремяПростоя, |ИЗ | РегистрНакопления.ВыработкаТС_Лес КАК ВыработкаТС_Лес | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.уатОстаткиГСМнаТС КАК уатОстаткиГСМнаТС | ПО ВыработкаТС_Лес.ПутЛист = уатОстаткиГСМнаТС.ПутевойЛист //ВыдатьГорючего получим не из уатОстаткиГСМнаТС, а из путевки непосредственно, //чтоб количество строк в ТЗ не множилось по кол-ву документов-заправок //Пример: ПЛ KOT00000121 от 02.12.2011 - 3 документа заправки | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.уатРасходГСМнаТС КАК уатРасходГСМнаТС | ПО ВыработкаТС_Лес.ПутЛист = уатРасходГСМнаТС.Регистратор | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.уатПервоначальныеСведенияТС КАК уатПервоначальныеСведенияТС | ПО ВыработкаТС_Лес.ТС = уатПервоначальныеСведенияТС.ОсновноеСредство | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.уатСчетчикиТС КАК уатСчетчикиТС | ПО ВыработкаТС_Лес.ПутЛист = уатСчетчикиТС.Регистратор //| ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.уатПростои КАК уатПростои //Простои из путевых листов //| ПО ВыработкаТС_Лес.ПутЛист = уатПростои.Регистратор |ГДЕ | ВыработкаТС_Лес.Период МЕЖДУ &ДатаС И &ДатаПо | И ВыработкаТС_Лес.Активность //| наложить ограничение на ВидПЛ - только сдельный или повременный? |"; Если Организация <> Справочники.Организации.ПустаяСсылка() Тогда Запрос.Текст = Запрос.Текст + " | И ВыработкаТС_Лес.Организация = &Организация "; КонецЕсли; Запрос.Текст = Запрос.Текст + " |"; Если НомерТранспортноеСредство <> "" Тогда Запрос.Текст = Запрос.Текст + " | И ВыработкаТС_Лес.ТС = &ТС"; КонецЕсли; Запрос.Текст = Запрос.Текст + " |"; Если ВидТС_Лес <> Перечисления.ВидыАвтотранспорта.ПустаяСсылка() Тогда Запрос.Текст = Запрос.Текст + " | И уатПервоначальныеСведенияТС.ВидТС_Лес = &ВидТС_Лес"; КонецЕсли; Запрос.Текст = Запрос.Текст + " | |СГРУППИРОВАТЬ ПО | ВыработкаТС_Лес.ПутЛист, | ВыработкаТС_Лес.ДатаВыезда, | ВыработкаТС_Лес.ДатаВозвращения, | ВыработкаТС_Лес.ПутЛист.ДатаВыезда, | ВыработкаТС_Лес.ПутЛист.ДатаВозвращения, | ВыработкаТС_Лес.КоличествоКмГруз, | ВыработкаТС_Лес.КоличествоКмПорожний, | ВыработкаТС_Лес.Период, | уатОстаткиГСМнаТС.Количество, // | уатРасходГСМнаТС.РасходПоФакту, | уатРасходГСМнаТС.ОстатокТопливаВыезд, | уатРасходГСМнаТС.ОстатокТопливаВозврат, | ВыработкаТС_Лес.ПутЛист.Номер, | уатСчетчикиТС.СпНач, | уатСчетчикиТС.Значение, | уатПервоначальныеСведенияТС.МВЗ, | уатПервоначальныеСведенияТС.РабочееМесто, | ВыработкаТС_Лес.Водитель.Код, | уатПервоначальныеСведенияТС.КодСАП, | ВыработкаТС_Лес.ПутЛист.ВыпустилМеханик, | ВыработкаТС_Лес.ВидРаботы, | уатПервоначальныеСведенияТС.ОсновноеСредство, | ВыработкаТС_Лес.Водитель, | ВыработкаТС_Лес.ПутЛист.ВидПЛ, | | ВыработкаТС_Лес.Период , | ВыработкаТС_Лес.ПутЛист.ВидПЛ, | ВыработкаТС_Лес.ПутЛист.Режим_Лес, | ВыработкаТС_Лес.ПутЛист.Номер, | уатСчетчикиТС.СпНач , | уатСчетчикиТС.Значение , | ВыработкаТС_Лес.ВидРаботы.КодСАП, | ВыработкаТС_Лес.Организация |
|||
18
Adgjj
09.07.12
✎
15:22
|
три выводимые строки отличаются только значением колонки Количество
|
|||
19
proger2011
09.07.12
✎
15:27
|
(17) Этот запрос я так понял тут периодический мелькает раз в месяц. Я помню эти X Y ... в запросе.
|
|||
20
izekia
09.07.12
✎
15:28
|
о боже мой
|
|||
21
izekia
09.07.12
✎
15:28
|
да, про уат
|
|||
22
izekia
09.07.12
✎
15:30
|
давай скриншоты регистров и что нужно
|
|||
23
Aprobator
09.07.12
✎
15:32
|
(5) нефига себе. В СГРУППИРОВАТЬ то Количество за что?
|
|||
24
izekia
09.07.12
✎
15:33
|
(23) иногда бывает нужно и так
|
|||
25
Adgjj
09.07.12
✎
15:36
|
(23) ок, спасибо)))
|
|||
26
Aprobator
09.07.12
✎
15:36
|
(24) ну не одновременно же и в сумму и в сгруппировать.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |