|
Запрос сгруппировать по Дате | ☑ | ||
---|---|---|---|---|
0
Радим1987
14.09.16
✎
20:31
|
s50.radikal.ru/i128/1609/d6/fcc1d3b6a240.jpg
|
|||
1
Радим1987
14.09.16
✎
20:34
|
||||
2
Радим1987
14.09.16
✎
20:36
|
Сгруппировать надо
01.07.2016 - 12.07.2016 Территория Участок №3 13.07.2016 - 20.07.2016 Территория Участок___№29 21.07.2016 - 31.07.2016 Территория Участок №3 |
|||
3
Casey1984
14.09.16
✎
20:38
|
Мин и Макс по территориям, как-то так наверное.
|
|||
4
Радим1987
14.09.16
✎
20:41
|
ВЫБРАТЬ
РТ_ГрафикСотрудниковПоОбъектамУчетаСрезПоследних.Период КАК Период, РТ_ГрафикСотрудниковПоОбъектамУчетаСрезПоследних.НомерСтроки КАК НомерСтроки, РТ_ГрафикСотрудниковПоОбъектамУчетаСрезПоследних.Активность КАК Активность, РТ_ГрафикСотрудниковПоОбъектамУчетаСрезПоследних.Организация КАК Организация, РТ_ГрафикСотрудниковПоОбъектамУчетаСрезПоследних.Сотрудник КАК Сотрудник, РТ_ГрафикСотрудниковПоОбъектамУчетаСрезПоследних.ДатаРегистрации КАК ДатаРегистрации, РТ_ГрафикСотрудниковПоОбъектамУчетаСрезПоследних.ВидВремени КАК ВидВремени, РТ_ГрафикСотрудниковПоОбъектамУчетаСрезПоследних.Территория КАК Территория, РТ_ГрафикСотрудниковПоОбъектамУчетаСрезПоследних.КоличествоЧасов КАК КоличествоЧасов ПОМЕСТИТЬ ВременнаяТаблица ИЗ РегистрСведений.РТ_ГрафикСотрудниковПоОбъектамУчета.СрезПоследних(, Период МЕЖДУ &Начало И &Конец) КАК РТ_ГрафикСотрудниковПоОбъектамУчетаСрезПоследних ГДЕ РТ_ГрафикСотрудниковПоОбъектамУчетаСрезПоследних.Сотрудник = &Сотрудник ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Основная.Сотрудник КАК Сотрудник, ВЫБОР КОГДА Основная.Территория = Проверка.Территория ТОГДА МИНИМУМ(Основная.ДатаРегистрации) КОНЕЦ КАК Время, МАКСИМУМ(Основная.Территория) КАК ТерриторияОсновная, МАКСИМУМ(Проверка.Территория) КАК ТерриторияПроверки ПОМЕСТИТЬ ВременнаяТаблица1 ИЗ ВременнаяТаблица КАК Основная ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВременнаяТаблица КАК Проверка ПО Основная.Сотрудник = Проверка.Сотрудник СГРУППИРОВАТЬ ПО Основная.Сотрудник, Основная.Территория, Проверка.Территория ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ВременнаяТаблица.Сотрудник, ВЫБОР КОГДА ВременнаяТаблица.Территория <> Проверка2.Территория ТОГДА МАКСИМУМ(Проверка2.ДатаРегистрации) КОНЕЦ, МАКСИМУМ(ВременнаяТаблица.Территория), МАКСИМУМ(Проверка2.Территория) ИЗ ВременнаяТаблица КАК ВременнаяТаблица ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВременнаяТаблица КАК Проверка2 ПО ВременнаяТаблица.Сотрудник = Проверка2.Сотрудник СГРУППИРОВАТЬ ПО ВременнаяТаблица.Сотрудник, ВременнаяТаблица.Территория, Проверка2.Территория ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Конечная.Сотрудник КАК Сотрудник, Конечная.Время КАК Время, Конечная.ТерриторияОсновная КАК ТерриторияОсновная, Конечная.ТерриторияПроверки КАК ТерриторияПроверки ИЗ ВременнаяТаблица1 КАК Конечная ГДЕ Конечная.Время <> ДАТАВРЕМЯ(1, 1, 1) |
|||
5
Радим1987
14.09.16
✎
20:42
|
Получает правильно только долго
|
|||
6
Радим1987
14.09.16
✎
20:43
|
и есть только начальные даты
|
|||
7
Радим1987
14.09.16
✎
20:44
|
Вильданов 01.07.2016 0:00:00 3/ (Участок №3 (дог.№ 16Y0631 от 17.03.16) сч25)
Вильданов 13.07.2016 0:00:00 29/ (Участок№29 (дог.№ЛК-КС-2014/46 от 08.09.2014) сч20) Вильданов 20.07.2016 0:00:00 3/ (Участок №3 (дог.№ 16Y0631 от 17.03.16) сч25) Вильданов 31.07.2016 0:00:00 29/ (Участок№29 (дог.№ЛК-КС-2014/46 от 08.09.2014) сч20) |
|||
8
Casey1984
14.09.16
✎
20:45
|
хм, а я думал что-то типа такого:
выбрать таб.Территория как Территория, минимум(таб.ДатаРегистрации) как ПериодС, максимум(таб.ДатаРегистрации) как ПериодПо, из таб сгруппировать по Территория А дальше уже как надо выводить |
|||
9
Casey1984
14.09.16
✎
20:45
|
А тут так наверчено, что даже не знаю
|
|||
10
Радим1987
14.09.16
✎
20:47
|
))) я сам уже 2 часа сижу голова скоро взорвется
|
|||
11
Радим1987
14.09.16
✎
21:08
|
Походу все устали ладно завтра еще подниму
|
|||
12
Casey1984
14.09.16
✎
21:19
|
Ну уж до конца сотри мои посты, а то как-то нелепо выглядит.
|
|||
13
Casey1984
14.09.16
✎
21:20
|
(12) ой блин, это у меня отбор стоял, сори
|
|||
14
youalex
14.09.16
✎
22:42
|
(4) >РегистрСведений.РТ_ГрафикСотрудниковПоОбъектамУчета.СрезПоследних(, Период МЕЖДУ &Начало И &Конец)
Это просто шедеврально)) |
|||
15
Радим1987
15.09.16
✎
07:31
|
Это не мой регистр кто то сделал, он должен быть не периодический
|
|||
16
DrZombi
гуру
15.09.16
✎
08:27
|
(0) Состряпать в СКД Два набора данных.
1 набор выводить по одной Дате, либо максимальной, либо минимальной, как ходчеш 2 набор данных, нужен только для получения некого списка дат, т.е. периода. Затем в общий модуль добавляешь функцию "Представление периода" и на закладке "Вычисляемые поля", группируешь со второго набора все даты в виде строки. ПРИМЕР ИСПОЛЬЗОВАНИЯ ФУНКЦИЙ СКД МАССИВ (ARRAY) И СОЕДИНИТЬСТРОКИ (JOINSTRINGS) В ОТЧЁТЕ 1С 8 http://www.softmaker.kz/otchety-1s/primer-ispolzovaniya-funkcij-skd-massiv-array-i-soedinitstroki-joinstrings-v-otchyote-1s-8.html И уже передаешь в свою функцию "Представление периода" ... Так же, нужно формировать СКД отчет с параметром: Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) // Вставить содержимое обработчика. СтандартнаяОбработка = Ложь; //------------------------- НастройкиКомпоновщика = ЭтотОбъект.КомпоновщикНастроек.ПолучитьНастройки(); ВнешниеНаборыДанных = Новый Структура; //ВнешниеНаборыДанных.Вставить("ТЗ_ДниНедели",ТЗ_ДниНедели); //Макет компоновки КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных; МакетКомпоновки = КомпоновщикМакета.Выполнить(ЭтотОбъект.СхемаКомпоновкиДанных, НастройкиКомпоновщика, ДанныеРасшифровки); //Компоновка данных ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных; ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных, ДанныеРасшифровки, Истина); //Вывод результата ДокументРезультат.Очистить(); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(ДокументРезультат); ПроцессорВывода.Вывести(ПроцессорКомпоновки); КонецПроцедуры .... Код выше добавить в модуль отчета Тебя должна интересовать "ВозможностьИспользованияВнешнихФункций" - значение Истина Инициализировать(<Макет>, <ВнешниеНаборыДанных>, <ДанныеРасшифровки>, <ВозможностьИспользованияВнешнихФункций>) |
|||
17
Радим1987
17.09.16
✎
17:59
|
ВЫБРАТЬ
График.Сотрудник КАК Сотрудник, График.ДатаРегистрации КАК ДатаНачало, График.Территория КАК Территория ПОМЕСТИТЬ ВТ ИЗ РегистрСведений.РТ_ГрафикСотрудниковПоОбъектамУчета КАК График ГДЕ График.ДатаРегистрации МЕЖДУ &Начало И &Конец И График.Сотрудник = &Сотрудник ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ.Сотрудник КАК Сотрудник, ВТ.Территория КАК Территория, СТ.Территория КАК ТерриторияСТ, ВТ.ДатаНачало КАК ДатаНачало ПОМЕСТИТЬ ВТНачало ИЗ ВТ КАК ВТ ЛЕВОЕ СОЕДИНЕНИЕ ВТ КАК СТ ПО (ВТ.ДатаНачало = ДОБАВИТЬКДАТЕ(СТ.ДатаНачало, ДЕНЬ, 1)) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТ.Сотрудник КАК Сотрудник, ВТ.Территория КАК Территория, СТ.Территория КАК ТерриторияСТ, ВТ.ДатаНачало КАК ДатаНачало ПОМЕСТИТЬ ВТКонец ИЗ ВТ КАК ВТ ЛЕВОЕ СОЕДИНЕНИЕ ВТ КАК СТ ПО (ВТ.ДатаНачало = ДОБАВИТЬКДАТЕ(СТ.ДатаНачало, ДЕНЬ, -1)) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МАКСИМУМ(ВВТ.Сотрудник) КАК Сотрудник, ВВТ.Территория КАК Территория, МИНИМУМ(ВВТ.ДатаНачало) КАК ДатаНачало, ВВТ.ТерриторияСТ КАК ТерриторияСТ ПОМЕСТИТЬ ВТПоследняяНачало ИЗ ВТНачало КАК ВВТ СГРУППИРОВАТЬ ПО ВВТ.Территория, ВВТ.ТерриторияСТ ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ МАКСИМУМ(ВВТ.Сотрудник) КАК Сотрудник, ВВТ.Территория КАК Территория, МИНИМУМ(ВВТ.ДатаНачало) КАК ДатаНачало, ВВТ.ТерриторияСТ КАК ТерриторияСТ ПОМЕСТИТЬ ВТПоследняяКонец ИЗ ВТКонец КАК ВВТ СГРУППИРОВАТЬ ПО ВВТ.Территория, ВВТ.ТерриторияСТ ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТПоследняя.Сотрудник КАК Сотрудник, ВТПоследняя.Территория КАК Территория, ВТПоследняя.ДатаНачало КАК ДатаНачало ПОМЕСТИТЬ ВНачало ИЗ ВТПоследняяНачало КАК ВТПоследняя ГДЕ (ВТПоследняя.Территория <> ВТПоследняя.ТерриторияСТ ИЛИ ВТПоследняя.ТерриторияСТ ЕСТЬ NULL ) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВТПоследняя.Сотрудник КАК Сотрудник, ВТПоследняя.Территория КАК Территория, ВТПоследняя.ДатаНачало КАК ДатаНачало ПОМЕСТИТЬ ВКонец ИЗ ВТПоследняяКонец КАК ВТПоследняя ГДЕ (ВТПоследняя.Территория <> ВТПоследняя.ТерриторияСТ ИЛИ ВТПоследняя.ТерриторияСТ ЕСТЬ NULL ) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ВНачало.Сотрудник КАК Сотрудник, ВНачало.Территория КАК Территория, ВНачало.ДатаНачало КАК Дата ИЗ ВНачало КАК ВНачало ОБЪЕДИНИТЬ ВСЕ ВЫБРАТЬ ВКонец.Сотрудник, ВКонец.Территория, ВКонец.ДатаНачало ИЗ ВКонец КАК ВКонец УПОРЯДОЧИТЬ ПО Дата |
|||
18
Радим1987
17.09.16
✎
19:41
|
Окончательное решение
ВЫБРАТЬ
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |