С Новым годом! Форум программистов, компьютерный форум, киберфорум
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.89/75: Рейтинг темы: голосов - 75, средняя оценка - 4.89
 Аватар для LusineMkrtumyan
14 / 14 / 0
Регистрация: 28.06.2020
Сообщений: 64

Как вывести в печатную форму итоговую сумму по каждой группировке?

16.12.2020, 01:48. Показов 16389. Ответов 30
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет! Делаю печатную форму документа, в котором есть таблица с начислениями (столбцы: ОКТМО, СуммаПлаты, НазначениеПлатежа).

Сейчас это примерно так выглядит:

ОКТМО Сумма НазначениеПлатежа
12345 23 ......
12345 31 ......
12345 41 .........
654789 54 ...........
789 78 .....

И есть только общий итог по документу.

Мне нужно в печатную форму добавить четвертый столбец, куда выводилась бы итоговая сумма по каждому ОКТМО. Как это можно сделать?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
16.12.2020, 01:48
Ответы с готовыми решениями:

Как вывести во внешнюю печатную форму сумму с проводки документа
Добрый день! Подскажите, как вывести во внешнюю печатную форму сумму с проводки документа "ВозвратМатериаловИзЭксплуатации". В...

1С: ЗУП 3.1. Как вывести в печатную форму должность в нужном падеже?
1С: ЗУП 3.1. Как вывести в печатную форму должность в нужном падеже, используя стандартные функции?

Как значение из запроса вывести в печатную форму табличного документа?
Здравствуйте, мне нужно получить остатки перед проведением документа. Худо бедно слепил запрос в консоли запросов, но каким образом теперь...

30
 Аватар для dggrom
198 / 158 / 45
Регистрация: 23.08.2014
Сообщений: 807
16.12.2020, 09:42
LusineMkrtumyan, создайте 4 поле в пакете и кодом просуммируйте.
0
 Аватар для LusineMkrtumyan
14 / 14 / 0
Регистрация: 28.06.2020
Сообщений: 64
16.12.2020, 23:55  [ТС]
dggrom, общую сумму по документу я считала так:

1C
1
2
3
4
5
6
7
ВыборкаНачисления = Выборка.Начисления.Выбрать();
        СуммаИтог = 0;
        Пока ВыборкаНачисления.Следующий() Цикл
            ОбластьНачисления.Параметры.Заполнить(ВыборкаНачисления);
            ТабДок.Вывести(ОбластьНачисления, ВыборкаНачисления.Уровень());
            СуммаИтог = СуммаИтог + ВыборкаНачисления.Сумма;
        КонецЦикла;
А вот как тут прописать, чтоб он остановился, когда поменяется ОКТМО - вопрос..
0
 Аватар для dggrom
198 / 158 / 45
Регистрация: 23.08.2014
Сообщений: 807
17.12.2020, 09:56
LusineMkrtumyan, почитайте про итоги в запросах. Это поможет.
0
 Аватар для LusineMkrtumyan
14 / 14 / 0
Регистрация: 28.06.2020
Сообщений: 64
20.12.2020, 17:24  [ТС]
Всем добрый вечер!

dggrom, скажите, пожалуйста, как с ошибкой справиться?

Ошибка: Нельзя рассчитывать итоги по вложенным таблицам "НачислениеОплаты.Начисления.ОКТМО"

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
Процедура Печать(ТабДок, Ссылка) Экспорт
    Макет = Документы.НачислениеОплаты.ПолучитьМакет("Печать");
    Запрос = Новый Запрос;
    Запрос.Текст =
    | "ВЫБРАТЬ
    |   НачислениеОплаты.Организация,
    |   НачислениеОплаты.ГодОплаты,
    |   Год(НачислениеОплаты.ГодОплаты) КАК Год,
    |   Квартал(НачислениеОплаты.ГодОплаты) КАК Квартал,
    |   НачислениеОплаты.СрокОплаты КАК СрокОплаты,
    |   НачислениеОплаты.Начисления.(
    |       ОКТМО,
    |       Сумма,
    |       КБК,
    |       НазначениеПлатежа,
    |   )
    |ИЗ
    |   Документ.НачислениеОплаты КАК НачислениеОплаты
    |ГДЕ
    |   НачислениеОплаты.Ссылка В (&Ссылка)
    |ИТОГИ
    |   СУММА (НачислениеОплаты.Начисления.Сумма) как СуммаПоОКТМО
    |ПО
    |   НачислениеОплаты.Начисления.ОКТМО"
ОбластьНачисления.Параметры.ВсегоПоОКТМО = Выборка.СуммаПоОКТМО
0
Эксперт 1С
5770 / 1727 / 629
Регистрация: 16.01.2015
Сообщений: 7,209
20.12.2020, 18:09
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
| "ВЫБРАТЬ
    |   НачислениеОплаты.Ссылка.Организация,
    |   НачислениеОплаты.Ссылка.ГодОплаты,
    |   Год(НачислениеОплаты.Ссылка.ГодОплаты) КАК Год,
    |   Квартал(НачислениеОплаты.Ссылка.ГодОплаты) КАК Квартал,
    |   НачислениеОплаты.Ссылка.Срок Оплаты КАК СрокОплаты,
    |   НачислениеОплаты.ОКТМО,
    |       НачислениеОплаты.Сумма,
    |      НачислениеОплаты. КБК,
    |       НачислениеОплаты.НазачениеПлатежа
    |ИЗ
    |   Документ.НачислениеОплаты.Начисления КАК НачислениеОплаты
// и т.д.
0
 Аватар для LusineMkrtumyan
14 / 14 / 0
Регистрация: 28.06.2020
Сообщений: 64
20.12.2020, 18:45  [ТС]
polax, добрый день! Спасибо большое . Сейчас вот такая ошибка:

{(16, 4)}: Невозможно определить поле для записи результата
<<?>>СУММА (НачислениеОплаты.Сумма) как СуммаПоОКТМО

1C
1
2
3
4
    |ИТОГИ
    |   СУММА (НачислениеОплаты.Сумма) как СуммаПоОКТМО
    |ПО
    |   НачислениеОплаты.ОКТМО";
0
Эксперт 1С
5770 / 1727 / 629
Регистрация: 16.01.2015
Сообщений: 7,209
20.12.2020, 19:55
Параметр ВсегоПоОКТМО определен в макете? Есть для него столбец?

Добавлено через 2 минуты
Итоги посчитает не построчно. Итоги общие по всем ОКТМО
0
 Аватар для LusineMkrtumyan
14 / 14 / 0
Регистрация: 28.06.2020
Сообщений: 64
20.12.2020, 20:58  [ТС]
polax,

Параметр ВсегоПоОКТМО определен в макете? Есть для него столбец?
Да, есть.

Мне нужно по каждому ОКТМО по-отдельности.. Общую сумму я уже вывела в макет..
0
Эксперт 1С
5770 / 1727 / 629
Регистрация: 16.01.2015
Сообщений: 7,209
20.12.2020, 21:50
Цитата Сообщение от dggrom Посмотреть сообщение
LusineMkrtumyan, создайте 4 поле в пакете и кодом просуммируйте.
Это правильная инструкция
0
 Аватар для LusineMkrtumyan
14 / 14 / 0
Регистрация: 28.06.2020
Сообщений: 64
20.12.2020, 23:20  [ТС]
polax, если бы я из нее все поняла, то не стала бы дальше тему двигать вверх)
0
Эксперт 1С
5770 / 1727 / 629
Регистрация: 16.01.2015
Сообщений: 7,209
21.12.2020, 00:08
LusineMkrtumyan, Группируйте по ОКТМО и первый проход обработки запроса делайте по группировкам Сумму по октмо выводите в свою колонку. Посмотрите в гугле Обход запроса по группировкам
0
 Аватар для LusineMkrtumyan
14 / 14 / 0
Регистрация: 28.06.2020
Сообщений: 64
22.12.2020, 10:17  [ТС]
Подниму тему, я так и не разобралась вопросом(

1C
1
2
3
ВыборкаОКТМО = Результат.Выбрать(ОбходРезультата.ПоГруппировкам, "ОКТМО");
Пока ВыборкаОКТМО.Следующий () Цикл
КонецЦикла
Так? Если да, то что дальше с этим делать?

Добавлено через 56 минут
Переменная не определена (Результат)
1C
1
2
3
4
ВыборкаОКТМО = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "ОКТМО");
        Пока ВыборкаОКТМО.Следующий() Цикл
        КонецЦикла;
        ОбластьНачисления.Параметры.ВсегоПоОКТМО.Заполнить(ВыборкаОКТМО);
0
Модератор
Эксперт 1С
 Аватар для Yulunga
4131 / 939 / 264
Регистрация: 22.04.2013
Сообщений: 6,541
Записей в блоге: 1
22.12.2020, 10:36
нашёл на соседнем форуме:
1C
1
2
3
4
5
6
7
8
Выборка=Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока Выборка.Следующий() цикл
  // тут итоги по группировкам
  вб2 = Выборка.Выбрать();
  пока Вб2.Следующий() цикл
   // тут детальные
  КонецЦикла;
КонецЦикла;
0
Эксперт 1С
5770 / 1727 / 629
Регистрация: 16.01.2015
Сообщений: 7,209
22.12.2020, 10:44
Результат = Запрос.Выполнить(). Вам будет очень сложно, лучше нажмите программиста
0
 Аватар для LusineMkrtumyan
14 / 14 / 0
Регистрация: 28.06.2020
Сообщений: 64
22.12.2020, 10:58  [ТС]
Поле объекта не обнаружено (Начисления)

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
Процедура Печать(ТабДок, Ссылка) Экспорт
    Макет = Документы.НачислениеОплаты.ПолучитьМакет("Печать");
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ
    |   НачислениеОплаты.Ссылка.Организация,
    |   НачислениеОплаты.Ссылка.ГодОплаты,
    |   Год(НачислениеОплаты.Ссылка.ГодОплаты) КАК Год,
    |   Квартал(НачислениеОплаты.Ссылка.ГодОплаты) КАК Квартал,
    |   НачислениеОплаты.Ссылка.СрокОплаты КАК СрокОплаты,
    |   НачислениеОплаты.ОКТМО,
    |   НачислениеОплаты.Сумма,
    |   НачислениеОплаты.КБК,
    |   НачислениеОплаты.НазначениеПлатежа
    |ИЗ
    |   Документ.НачислениеОплаты.Начисления КАК НачислениеОплаты
    |ГДЕ
    |   НачислениеОплаты.Ссылка В (&Ссылка)
    |Итоги
    |   Сумма(НачислениеОплаты.Сумма)
    |ПО
    |   НачислениеОплаты.ОКТМО";
    
    Запрос.Параметры.Вставить("Ссылка", Ссылка);
    Выборка = Запрос.Выполнить().Выбрать();
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    Шапка = Макет.ПолучитьОбласть("Шапка");
    ОбластьНачисленияШапка = Макет.ПолучитьОбласть("НачисленияШапка");
    ОбластьНачисления = Макет.ПолучитьОбласть("Начисления");
    ОбластьИтог =  Макет.ПолучитьОбласть("Всего");
    Подвал = Макет.ПолучитьОбласть("Подвал");
 
    ТабДок.Очистить();
 
    ВставлятьРазделительСтраниц = Ложь;
    Пока Выборка.Следующий() Цикл
        Если ВставлятьРазделительСтраниц Тогда
            ТабДок.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;
 
        ТабДок.Вывести(ОбластьЗаголовок);
        
        ВыборкаНачисления = Выборка.Начисления.Выбрать();
        СуммаИтог = 0;
        Пока ВыборкаНачисления.Следующий() Цикл
            ОбластьНачисления.Параметры.Заполнить(ВыборкаНачисления);
            СуммаИтог = СуммаИтог + ВыборкаНачисления.Сумма;
        КонецЦикла;
 
        Шапка.Параметры.Заполнить(Выборка);
        Шапка.Параметры.ВсегоПоДокументу = СуммаИтог;
        Шапка.Параметры.ПериодКвартал = (Строка(Выборка.Квартал) + " квартал " + Формат(Выборка.Год, "ЧГ=0") + " года.");
        Шапка.Параметры.СрокОплатыДата = Формат(Выборка.СрокОплаты, "ДЛФ=Д") + " года.";
        ТабДок.Вывести(Шапка, Выборка.Уровень());
 
        ВыборкаНачисления = Выборка.Начисления.Выбрать();
        СуммаИтог = 0;
        Пока ВыборкаНачисления.Следующий() Цикл
            ОбластьНачисления.Параметры.Заполнить(ВыборкаНачисления);
            ТабДок.Вывести(ОбластьНачисления, ВыборкаНачисления.Уровень());
            СуммаИтог = СуммаИтог + ВыборкаНачисления.Сумма;
        КонецЦикла;
        
        ВыборкаОКТМО = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "ОКТМО");
        Пока ВыборкаОКТМО.Следующий() Цикл
        КонецЦикла;
        ОбластьНачисления.Параметры.ВсегоПоОКТМО.Заполнить(ВыборкаОКТМО);
        ОбластьИтог.Параметры.ВсегоПоДокументу = Выборка.СуммаИтог;
        ТабДок.Вывести(ОбластьИтог); 
            
        Подвал.Параметры.Заполнить(Выборка);
        Подвал.Параметры.ПериодКвартал = (Строка(Выборка.Квартал) + " квартал " + Формат(Выборка.Год, "ЧГ=0"));
        ТабДок.Вывести(Подвал);
        
        ВставлятьРазделительСтраниц = Истина;
    КонецЦикла;
КонецПроцедуры
Добавлено через 3 минуты
polax, я научусь) когда-нибудь
0
Модератор
Эксперт 1С
 Аватар для Yulunga
4131 / 939 / 264
Регистрация: 22.04.2013
Сообщений: 6,541
Записей в блоге: 1
22.12.2020, 11:17
смарите.
можете вот так, как я пример привёл
но так можно запутаться
я бы два раза сделал
запрос выполнить выбрать
а потом запрос сбросить - второй раз не считает, просто сбрасывает текущую позицию , где стоит головка считывания, на ноль
и тогда уже написать - обход по группировкам
и оттуда выбирать
1
 Аватар для LusineMkrtumyan
14 / 14 / 0
Регистрация: 28.06.2020
Сообщений: 64
23.12.2020, 09:50  [ТС]
Всем доброе утро! Вы меня простите, но я снова тут.

Вроде, вывела итог, НО! в Макете показан итог только по 1 ОКТМО. А у меня в документе для примера их 2. Где я опять свернула не туда?

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
Процедура Печать(ТабДок, Ссылка) Экспорт
    Макет = Документы.НачислениеОплаты.ПолучитьМакет("Печать");
    Запрос = Новый Запрос;
    Запрос.Текст = 
    "ВЫБРАТЬ
    |   НачислениеОплаты.Ссылка.Организация,
    |   НачислениеОплаты.Ссылка.ГодОплаты,
    |   Год(НачислениеОплаты.Ссылка.ГодОплаты) КАК Год,
    |   Квартал(НачислениеОплаты.Ссылка.ГодОплаты) КАК Квартал,
    |   НачислениеОплаты.Ссылка.СрокОплаты КАК СрокОплаты,
    |   НачислениеОплаты.ОКТМО,
    |   НачислениеОплаты.Сумма,
    |   НачислениеОплаты.КБК,
    |   НачислениеОплаты.НазначениеПлатежа
    |ИЗ
    |   Документ.НачислениеОплаты.Начисления КАК НачислениеОплаты
    |ГДЕ
    |   НачислениеОплаты.Ссылка В (&Ссылка)
    |Итоги
    |   Сумма(НачислениеОплаты.Сумма)
    |ПО
    |   НачислениеОплаты.ОКТМО";
    
    Запрос.Параметры.Вставить("Ссылка", Ссылка);
    Выборка = Запрос.Выполнить();
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    Шапка = Макет.ПолучитьОбласть("Шапка");
    ОбластьНачисленияШапка = Макет.ПолучитьОбласть("НачисленияШапка");
    ОбластьНачисления = Макет.ПолучитьОбласть("Начисления");
    ОбластьИтог =  Макет.ПолучитьОбласть("Всего");
    Подвал = Макет.ПолучитьОбласть("Подвал");
 
    ТабДок.Очистить();
... 
    ТабДок.Вывести(ОбластьЗаголовок);
        
....
....
        ВыборкаОКТМО = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
        Пока ВыборкаОКТМО.Следующий() Цикл
        ОбластьНачисления.Параметры.ВсегоПоОКТМО = ВыборкаОКТМО.Сумма;
        КонецЦикла;
        ТабДок.Вывести(ОбластьНачисления);
    
        .....
        ТабДок.Вывести(ОбластьИтог); 
            
        ....
        ТабДок.Вывести(Подвал);
        
        ВставлятьРазделительСтраниц = Истина;
....
КонецПроцедуры
0
Модератор
Эксперт 1С
 Аватар для Yulunga
4131 / 939 / 264
Регистрация: 22.04.2013
Сообщений: 6,541
Записей в блоге: 1
23.12.2020, 10:31
а точно две?
напишите вместо вывести сообщить(выборкаоктмо.сумма) и зазырьте количество
0
 Аватар для LusineMkrtumyan
14 / 14 / 0
Регистрация: 28.06.2020
Сообщений: 64
23.12.2020, 11:07  [ТС]
Yulunga, да, точно 2. Что-то у меня не выводится ничего(

Вы имели в виду написать Сообщить(ВыборкаОКТМО.Сумма) вместо ТабДок.Вывести(ОбластьНачисления)? Или что-то другое?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.12.2020, 11:07
Помогаю со студенческими работами здесь

Как вывести в отчете итоговую сумму одного поля по странице
Сабж

Вывести печатную форму на одном листе, а не на 3х
Доброго времени суток. Начал изучать 1С, прошел базовый курс лекций, дали задание на пробу пера. Сказали что задача простейшая и...

Как подвесить внешнюю печатную форму?
Напшел внешнюю печатную форму, как ее подвесит в камин к кнопке печать?

Как повернуть печатную форму на 90 градусов
Можно ли макет выводимый на печать повернуть на 90 градусов?...заранее спасибо

Как добавить текст в печатную форму
Здравствуйте! Вот код обработки ПФ, нужно в макет добавить текст (см. рисунок), но после проведения все равно не работает. Подскажите, в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru