Имя: Пароль:
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) справку читай. Функции ресурсов скд или как-то так.