Имя: Пароль:
1C
1С v8
Классный журнал в 1с
, , ,
0 Nzzzz
 
02.04.21
11:35
Всем здравствуйте! Нужно сделать в 1с классный журнал. Идея такая: документ "Оценки за день" - ставятся оценки за каждый день по определенным предметам. В документе "Оценки за четверть". Хотелось бы по конкретному ученику получить все оценки и предметы, ну и рассчитать средний балл. Средний балл рассчитывается так: количество пятерок *5, количество четверок*4, количество троек*3, все это сложить и разделить на количество оценок по предмету.
Вот у меня не получается это реализовать. Из документа "Оценки за день" тащу по конкретному ученику запросом все оценки и предметы, а дальше всё, ступор: как их объединить, как средний балл сосчитать..Делал запросом так, но когда суммирую поля выборки не считает ничего:
ВЫБРАТЬ
    ОценкиЗаДеньПредметы.Предмет КАК Предмет,
    ВЫБОР
        КОГДА ОценкиЗаДеньПредметы.Оценка = 5
            ТОГДА ОценкиЗаДеньПредметы.Оценка * 5
    КОНЕЦ КАК КоличествоПятерок,
    ОценкиЗаДеньПредметы.Присутствовал КАК Присутствовал,
    ВЫБОР
        КОГДА ОценкиЗаДеньПредметы.Оценка = 4
            ТОГДА ОценкиЗаДеньПредметы.Оценка * 4
    КОНЕЦ КАК КоличествоЧетверок,
    ВЫБОР
        КОГДА ОценкиЗаДеньПредметы.Оценка = 3
            ТОГДА ОценкиЗаДеньПредметы.Оценка * 3
    КОНЕЦ КАК КоличествоТроек,
    ВЫБОР
        КОГДА ОценкиЗаДеньПредметы.Оценка = 5
            ТОГДА ОценкиЗаДеньПредметы.Оценка * 5
    КОНЕЦ + ВЫБОР
        КОГДА ОценкиЗаДеньПредметы.Оценка = 4
            ТОГДА ОценкиЗаДеньПредметы.Оценка * 4
    КОНЕЦ + ВЫБОР
        КОГДА ОценкиЗаДеньПредметы.Оценка = 3
            ТОГДА ОценкиЗаДеньПредметы.Оценка * 3
    КОНЕЦ КАК Поле1
ИЗ
    Документ.ОценкиЗаДень.Предметы КАК ОценкиЗаДеньПредметы
ГДЕ
    ОценкиЗаДеньПредметы.Ссылка.Ученик = &Ученик

СГРУППИРОВАТЬ ПО
    ОценкиЗаДеньПредметы.Предмет,
    ОценкиЗаДеньПредметы.Присутствовал,
    ВЫБОР
        КОГДА ОценкиЗаДеньПредметы.Оценка = 5
            ТОГДА ОценкиЗаДеньПредметы.Оценка * 5
    КОНЕЦ,
    ВЫБОР
        КОГДА ОценкиЗаДеньПредметы.Оценка = 4
            ТОГДА ОценкиЗаДеньПредметы.Оценка * 4
    КОНЕЦ,
    ВЫБОР
        КОГДА ОценкиЗаДеньПредметы.Оценка = 3
            ТОГДА ОценкиЗаДеньПредметы.Оценка * 3
    КОНЕЦ,
    ВЫБОР
        КОГДА ОценкиЗаДеньПредметы.Оценка = 5
            ТОГДА ОценкиЗаДеньПредметы.Оценка * 5
    КОНЕЦ + ВЫБОР
        КОГДА ОценкиЗаДеньПредметы.Оценка = 4
            ТОГДА ОценкиЗаДеньПредметы.Оценка * 4
    КОНЕЦ + ВЫБОР
        КОГДА ОценкиЗаДеньПредметы.Оценка = 3
            ТОГДА ОценкиЗаДеньПредметы.Оценка * 3
    КОНЕЦ
1 Nzzzz
 
02.04.21
11:36
(0) Вот без группировки:
ВЫБРАТЬ
    ОценкиЗаДеньПредметы.Предмет КАК Предмет,
    ВЫБОР
        КОГДА ОценкиЗаДеньПредметы.Оценка = 5
            ТОГДА ОценкиЗаДеньПредметы.Оценка * 5
    КОНЕЦ КАК КоличествоПятерок,
    ОценкиЗаДеньПредметы.Присутствовал КАК Присутствовал,
    ВЫБОР
        КОГДА ОценкиЗаДеньПредметы.Оценка = 4
            ТОГДА ОценкиЗаДеньПредметы.Оценка * 4
    КОНЕЦ КАК КоличествоЧетверок,
    ВЫБОР
        КОГДА ОценкиЗаДеньПредметы.Оценка = 3
            ТОГДА ОценкиЗаДеньПредметы.Оценка * 3
    КОНЕЦ КАК КоличествоТроек,
    ВЫБОР
        КОГДА ОценкиЗаДеньПредметы.Оценка = 5
            ТОГДА ОценкиЗаДеньПредметы.Оценка * 5
    КОНЕЦ + ВЫБОР
        КОГДА ОценкиЗаДеньПредметы.Оценка = 4
            ТОГДА ОценкиЗаДеньПредметы.Оценка * 4
    КОНЕЦ + ВЫБОР
        КОГДА ОценкиЗаДеньПредметы.Оценка = 3
            ТОГДА ОценкиЗаДеньПредметы.Оценка * 3
    КОНЕЦ КАК Поле1
ИЗ
    Документ.ОценкиЗаДень.Предметы КАК ОценкиЗаДеньПредметы
ГДЕ
    ОценкиЗаДеньПредметы.Ссылка.Ученик = &Ученик
2 Волшебник
 
02.04.21
11:36
А теперь переходим на 100-балльную систему...
3 Krendel
 
02.04.21
11:37
(2) Вообще не важно, он не может спроектировать складской учет, где есть склад (предмет) и номенклатура (ученик)
4 dka80
 
02.04.21
11:37
А еще у каждой оценки есть вес. Т.е. за обычную работу на уроке просто 4 во второй степени (у нас), а за контрольную в третей или даже в четвертой.
5 Волшебник
 
02.04.21
11:39
(3) Лучше наоборот. Ученик — это склад знаний (предметов).
6 Михаил Козлов
 
02.04.21
11:40
ВЫБОР
        КОГДА ОценкиЗаДеньПредметы.Оценка = 5
            ТОГДА ОценкиЗаДеньПредметы.Оценка * 5
    КОНЕЦ КАК КоличествоПятерок
Получите 25. Чтобы получить средний бал достаточно в итогах получить среднее.
7 Ненавижу 1С
 
гуру
02.04.21
11:43
(3) (5) какие остатки по оценкам могут быть?
здесь нужен оборотный регистр
8 Garykom
 
гуру
02.04.21
11:43
(0) оценку делай не за день а за предмет
т.е. убери ТЧ и все в шапке (ученик, учитель, предмет, оценка)
9 fisher
 
02.04.21
11:43
ВЫБРАТЬ
    ОценкиЗаДеньПредметы.Предмет,
    СРЕДНЕЕ(ОценкиЗаДеньПредметы.Оценка) КАК СредняяОцента
ИЗ
    Документ.ОценкиЗаДень.Предметы КАК ОценкиЗаДеньПредметы
ГДЕ
    ОценкиЗаДеньПредметы.Ссылка.Ученик = &Ученик

СГРУППИРОВАТЬ ПО
    ОценкиЗаДеньПредметы.Предмет
10 Garykom
 
гуру
02.04.21
11:43
(7) среднюю можно автоматом считать ))
11 Волшебник
 
02.04.21
11:44
(7) Можно накапливать часы посещения (выполнение учебного плана).
12 Ненавижу 1С
 
гуру
02.04.21
11:45
(11) опять лучше обороты использовать, как план/факт по продажам
13 Ненавижу 1С
 
гуру
02.04.21
11:45
(10) и в оборотах не хуже считается
14 Garykom
 
гуру
02.04.21
11:45
профдеформация по всей красе
15 Garykom
 
гуру
02.04.21
11:46
Придумайте как указывать № урока или его время?
16 Волшебник
 
02.04.21
11:46
(12) Но ведь что-то остаётся. Концепция "Ученик как склад знаний" имеет право на жизнь.
17 Krendel
 
02.04.21
11:47
(15) Серия
18 Garykom
 
гуру
02.04.21
11:47
(16) Утряска/усушка
19 fisher
 
02.04.21
11:47
Не вижу никакого смысла в регистре оборотов тут.
20 Garykom
 
гуру
02.04.21
11:47
(19) имхо РС по уму
21 Волшебник
 
02.04.21
11:47
(18) Это забывчивость.
22 Krendel
 
02.04.21
11:47
(16) Да, позволяет оценить среднюю оценку за количество часов, и сделать прямую параллель
23 Garykom
 
гуру
02.04.21
11:48
(21) А инвентаризация как?
24 Ненавижу 1С
 
гуру
02.04.21
11:48
(16) (22) все это на оборотном делается точно также
25 Krendel
 
02.04.21
11:48
(14) Это не проф деформация, это бесплатное проектирование за 5 минут занятия моска, не нравится, нанимаешь аналитика и го в ТЗ
26 Krendel
 
02.04.21
11:49
(23) Контрольная
27 Krendel
 
02.04.21
11:49
Корректирую средний себес по месяцу
28 Ненавижу 1С
 
гуру
02.04.21
11:49
(19) (20) я не против
29 Krendel
 
02.04.21
11:51
(24) Мне все равно ;-)
30 fisher
 
02.04.21
11:51
(20) Сомневаюсь, что оно сможет вырасти до таких объемов, что может потребоваться хоть какая-то оптимизация. А ежели вырастет - достаточно индексов в документ насыпать.
31 Krendel
 
02.04.21
11:51
доверюсь "Специалистам"
32 Garykom
 
гуру
02.04.21
11:52
(26) Это не инвентаризация а выборочный аудит
33 Ненавижу 1С
 
гуру
02.04.21
11:53
(32) раскрой отличия
34 Nzzzz
 
02.04.21
11:54
(9) А что так можно было? Я думал что среднее тут в запросе считается так (сложить все оценки)/на количество оценок всего.
То есть есть математика оценки 5,5/2 = 2,5
35 fisher
 
02.04.21
11:55
(34) А если с калькулятором? :)
36 Nzzzz
 
02.04.21
11:55
А как вот например получить все оценки по предметам?
То есть сгруппировать предметы, но оценки не группировать?
Отчет такой:
Математика: 5,5,4,5
ИЗО: 5,3,4,5
37 Krendel
 
02.04.21
11:56
(36) Извини, ты кем работаешь?
38 Garykom
 
гуру
02.04.21
11:58
(33) Предмет состоит из тем и понимание (оценка изучения) каждой темы разная
Контрольная проверяет не все темы - это как на складе не сплошную инвентаризацию делать а выборочно пару ячеек или позиций номенклатуры проверить
39 Nzzzz
 
02.04.21
11:59
(37) Не, ну серьезно. Получаю предметы и оценки. Группирую по предметам, а с оценкой то что делать??))
40 Krendel
 
02.04.21
12:00
(38) Задачу поставь тогда нормально, чтобы начать проектирование системы, определи цели, задачи, отчетные формы
41 Krendel
 
02.04.21
12:00
Что мне тебя учить надо
42 Krendel
 
02.04.21
12:00
(39) Это серьезный вопрос
43 fisher
 
02.04.21
12:01
(39) Тоже группируешь. Если других детализаций нет, то и группировать не надо. Будет задача только представления данных оценок в одной строке. Это решается либо при обходе результата запроса, либо в СКД есть готовые функции.
44 Builder
 
02.04.21
12:03
Это какая то тестовая задача?
Или реальная в реальной школе? Тогда все очень печально.....
45 fisher
 
02.04.21
12:03
Чтобы не сгруппировались оценки по нескольким дням, ессно и по документу надо группировать.
46 Nzzzz
 
02.04.21
12:05
(45) Если по документу группирую, то предметы не группируются, т.к. документы не группируются.
47 fisher
 
02.04.21
12:14
(46) Чтобы в результате получилось одна строчка на каждый предмет с перечнем всех оценок в колонках - такое в запросе сделать не получится (вернее, можно, но через задницу). Такого рода транспонирование принято делать постобработкой.
48 Мимохожий Однако
 
02.04.21
12:16
Начинать надо с описания тех.задания и возможной структуры объектов конфигурации
Например.Учет оценок
Регистратор. Документ "Урок".Шапка: Предмет, ТЧ: Ученик, Оценка, ЗаЧто.
Регистр накопления Измерения: Предмет, Ученик,ЗаЧто. Ресурс: Оценка
49 fisher
 
02.04.21
12:17
(47) + Ну и как уже говорил - СКД такое умеет (через неявную постобработку).
50 Nzzzz
 
02.04.21
15:37
(40) «Формирование классного журнала в школе» - вот тема. Я придумал в документе просто выбирать предметы и оценки по конкретному ученику. Журнал то в 1С-ке никак больше не сделать..
51 Nzzzz
 
02.04.21
16:02
(50) Подскажите кто нибудь, больше никак не сделать?
52 Mikeware
 
02.04.21
16:04
(50) ты кто вообще? учитель? или студет с лабой?
53 Mikeware
 
02.04.21
16:04
(51) есть куча способов.
54 Mikeware
 
02.04.21
16:07
+ (53) но в любом случае все сводится в итоге к кортежу из 3 элементов.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.