Имя: Пароль:
1C
1С v8
Помощь с скд
,
0 dizpers
 
27.05.12
10:03
Здравствуйте! Никак не могу добится нужного эффекта в скд - чтобы построить отчет нужной структуры. Нужно вывести сетку показа фильмов в кинотеатре вот такого вида:

http://rghost.ru/38306387/image.png

Использую такой запрос

ВЫБРАТЬ
   Сеансы.Фильм,
   Сеансы.Дата,
   Сеансы.ВремяНачала КАК ВремяНачала
ИЗ
   РегистрСведений.Сеансы КАК Сеансы
ГДЕ
   Сеансы.Дата >= &Дата

УПОРЯДОЧИТЬ ПО
   ВремяНачала

Пока что получается только вот такой вид отчета

http://rghost.ru/38306405/image.png

В настройках отчета использую такие группировки. У отчета использую одну настройку "Расположение полей группировок = Отдельно и только в итогах". Подскажите, пожалуйста, как добится желаемого эффекта.
1 zak555
 
27.05.12
10:04
это где такие фильмы показывают ?
2 Конфигуратор1с
 
27.05.12
10:04
(0)макеты использовать
3 dizpers
 
27.05.12
10:07
(1) это первые 3 фильма, которые пришли в голову
(2) то есть шаманством с группировками никак не получить нужный резалт?
4 dizpers
 
27.05.12
10:32
Только вот остается непонятным вот что. Если я скажем делаю группировки вложенные Отчет->Фильм->Дата->Детальные записи и в выбранных полях детальных записей создаю группу с расположением ГОРИЗОНТАЛЬНО и в эту группу пихаю время начала - почему в итоге я получаю верткальное расположение?

http://rghost.ru/38306637/image.png
5 МастерВопросов
 
27.05.12
10:39
(4) убери группировку по дате и будет тебе счастье: "Отчет->Фильм->Детальные записи"

а по дате сделай сортировку
6 МастерВопросов
 
27.05.12
10:40
+(5) юзай волшебную палочку - "открыть конструктор настроек"
7 dizpers
 
27.05.12
10:48
(5) получил вот что http://rghost.ru/38306762/image.png опять же не получается выстроить горизонтально все значения времени начала
8 МастерВопросов
 
27.05.12
10:50
(7) а куда поле дата дел?
9 МастерВопросов
 
27.05.12
10:52
+(8) Настройки - вкладка "Выбранные поля" - перенеси поле "Дата" из левого окна "Доступные поля" в правое: "Поля"
10 МастерВопросов
 
27.05.12
10:53
Качни книжку Хрусталевой, так быстрее разберешься:
http://www.for1c.com/knigi-1c8/platform-1c-8/2--1-8.html
11 echo77
 
27.05.12
10:56
(10)Не разберется. Время начала наверное лучше хранить с датой, а потом делить
12 dizpers
 
27.05.12
10:57
при таком варианте настроек

http://rghost.ru/38306819/image.png

вот такой резалт

http://rghost.ru/38306827/image.png

при втором варианте настроек

http://rghost.ru/38306832/image.png

результат тот же http://rghost.ru/38306836/image.png
13 dizpers
 
27.05.12
10:57
(12) к (9)
14 dizpers
 
27.05.12
10:59
(11) а как делить?
15 echo77
 
27.05.12
11:03
(0) На ум приходит такое решение:
В запросе(или не в запросе) нужно пронумеровать все записи в пределах Фильма, Даты (v8: Нумерация записей в запросе группами

В настройках отчета сделать кросс-таблицу:
Строки:  Фильм->Дата
Колонки: Номер по порядку в группе(из запроса)
Ресурс - время начала
16 dizpers
 
27.05.12
11:05
(15) Спасибо, сейчас попробую
17 echo77
 
27.05.12
11:06
(14) Делить - просто:
Дата - НачалоПериода(Дата, День)
Время- v8: Получить время из даты

только зачем?
Это все оформлением поля решается
18 dizpers
 
27.05.12
11:11
(17) Спасибо, я видимо не так понял слово делить. Я подумал, что под "делить" понимается как раз - нашлепать в строку все времена начала по данной дате и фильму, перейти к следующей дате-фильму и еще одну строку вывести и тд
19 DosBot
 
27.05.12
11:15
между прочим, а зачем ВремяНачала вообще нужно отдельным реквизитом??
Если можно использовать ДатаНачала и ДатаОкончания (или реквизит "длительность сеанса" прибавляя её в запросе к дате начала)??
А в запросе выбирать что-то вроде:

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

УПОРЯДОЧИТЬ ПО
   ВремяНачала

А в настройках полей, в наборе данных, сделать соответствующий формат для ВремяНачала и ВремяОкончания??
20 dizpers
 
27.05.12
11:28
(19) в одном зале может идти за день несколько разных фильмов разной длительности между этими сеансами может быть разные технический перерыв, твоим способом было бы сложнее все это учитывать
21 dizpers
 
27.05.12
11:31
(15) попробовал сделать как ты написал, получил вот такой запрос

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

УПОРЯДОЧИТЬ ПО
   ВремяНачала

вот такая структура отчета http://rghost.ru/38307262/image.png

получился какой-то кривой результат http://rghost.ru/38307281/image.png

подскажи, пожалуйста, в чем я гоню?
22 DosBot
 
27.05.12
11:39
И в чём проблема учёта в моём варианте?

РегистрСведений.Сеансы

Измерения:
- Фильм
- ДатаНачала
- ДатаОкончания

Исходная таблица записей РС, например:
1)
- Терминатор
- 23.05.2012 11:00
- 23.05.2012 13:30
2)
- <Технический перерыв>
- 23.05.2012 13:30
- 23.05.2012 14:00
3)
- Терминатор
- 23.05.2012 14:00
- 23.05.2012 17:30

не?
23 SoulPower
 
27.05.12
11:42
можешь сделать так:
Группировку по фильмам и выводить только итоговые записи группировки ресурса - даты. Агрегатной функцией будет, что-то типа массив(). Вернёт массив дат для каждого фильма.
Выведешь просто группировку фильм.
24 МастерВопросов
 
27.05.12
11:49
(12) а чем тебя (12) не устраивает?
надо только формат поля "Время начала" подправить и готово

http://s019.radikal.ru/i628/1205/71/11645001574a.jpg
25 dizpers
 
27.05.12
11:57
(23) сейчас попробую, спасибо!:)
26 dizpers
 
27.05.12
12:15
(23) судя по справке есть только такие агрегатные функции

СУММА ( <Выражение> ) |
СРЕДНЕЕ ( <Выражение> ) |
МИНИМУМ ( <Выражение> ) |
МАКСИМУМ ( <Выражение> ) |
КОЛИЧЕСТВО ( [РАЗЛИЧНЫЕ] <Выражение> | * )

никаких массивов тут нет, или я не правильно тебя понял?
27 dizpers
 
27.05.12
12:18
(22) впринципе тоже вариант. я сначала не понял что ты имеешь в виду. ты имеешь в виду что в моей реализации нафиг не нужна дата сеанса, ее можно выдрать из времени
28 dizpers
 
27.05.12
12:18
(24) тем, что хочется иметь таблицу такого вида, как я говорил в (0) и с этим у меня проблемы
29 DosBot
 
27.05.12
12:57
(27) да.. ненужное поле ВремяНачала... %)
если бы у было поле ДатаНачала - то всё решалось простой настройкой формата для него (см. (19))
30 SoulPower
 
27.05.12
14:09
(26) справку читай. Функции ресурсов скд или как-то так.