Табличная часть.Итог

Методы · Total

Суммирует значения всех строк в указанной колонке. Если в колонке установлен тип и он единственный, то при суммировании будет предприниматься попытка преобразования значения к типу Число. Если колонке не присвоены типы, то в процессе суммирования будут принимать участие только значения, имеющие тип Число, значения других типов будут игнорироваться. Если в колонке несколько типов и среди них есть тип Число, то в процессе суммирования будут принимать участие только значения, имеющие тип Число, значения других типов будут игнорироваться. Если в колонке несколько типов и среди них нет типа Число, то результатом будет значение Неопределено.

Синтаксис

Итог(<Колонка>)

Примеры платформы

ВсегоПоДокументу = Состав.Итог("Всего");
Полное описание, параметры и ограничения

Табличная часть.Итог (Tabular section.Total)

Табличная часть (Tabular section)

Итог (Total)

Доступен, начиная с версии 8.0.

Синтаксис:
Итог(<Колонка>)
Параметры:

<Колонка> (обязательный)
Тип: Число, Строка.
Индекс либо имя колонки, по которой подсчитывается итог.
Возвращаемое значение:
Тип: Число, Неопределено.

Описание:

Суммирует значения всех строк в указанной колонке.
Если в колонке установлен тип и он единственный, то при суммировании будет предприниматься попытка преобразования значения к типу Число.
Если колонке не присвоены типы, то в процессе суммирования будут принимать участие только значения, имеющие тип Число, значения других типов будут игнорироваться.
Если в колонке несколько типов и среди них есть тип Число, то в процессе суммирования будут принимать участие только значения, имеющие тип Число, значения других типов будут игнорироваться.
Если в колонке несколько типов и среди них нет типа Число, то результатом будет значение Неопределено.

Доступность:

Сервер, толстый клиент, внешнее соединение, мобильное приложение (сервер), мобильный автономный сервер.

Пример:

ВсегоПоДокументу = Состав.Итог("Всего");

Использование в версии:

Доступен, начиная с версии 8.0.

Методическая информация

Практические примеры

Изменить колонку табличной части и восстановить сохранённую копию

Выгружаем количества в массив, заменяем их, затем очищаем только незаписанный документ и возвращаем исходные строки из таблицы.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Создайте НОВУЮ пустую файловую учебную базу, не копию рабочего каталога. В Конфигураторе задайте корню имя Учебная85. Не добавляйте эти объекты в рабочую УТ/КА2/УНФ/БП.

  2. Справочники → Добавить: имя УчебныеТовары. Длина кода 10, тип кода Строка, автонумерация и контроль уникальности включены, длина наименования 100.

  3. Для УчебныеТовары включите иерархию групп и элементов. Добавьте реквизиты Артикул (Строка, длина 20) и Цена (Число, 12 цифр, 2 дробных, неотрицательное). Проверка заполнения для этих учебных реквизитов не устанавливается.

  4. Добавьте табличную часть Штрихкоды: Штрихкод (Строка, длина 20) и Основной (Булево). Обновите конфигурацию базы данных. Модули объектов оставьте пустыми.

  5. Создайте серверный общий модуль УчебныеЗадачи и команду учебной обработки, вызывающую ВыполнитьПример() Экспорт. Каждый фрагмент выполняйте отдельно, не склеивайте их в одну процедуру.

  6. Документы → Добавить: имя УчебнаяЗаявка, тип номера Строка, длина 9, автонумерация включена. Проведение запретите: это только учебный документ без движений.

  7. Добавьте реквизит Комментарий (Строка, длина 100) и табличную часть Товары: Товар (СправочникСсылка.УчебныеТовары), Количество (Число, 9 цифр, 0 дробных, неотрицательное), Цена (Число, 12 цифр, 2 дробных, неотрицательное). Модуль документа пустой.

  8. Обновите конфигурацию базы данных. Эти имена существуют только в созданной учебной конфигурации, не подразумеваются в типовой базе.


Если Метаданные.Справочники.Найти("УчебныеТовары") = Неопределено Тогда
    ВызватьИсключение "Сначала создайте учебный справочник по подготовке";
КонецЕсли;

Если Метаданные.Документы.Найти("УчебнаяЗаявка") = Неопределено Тогда
    ВызватьИсключение "Сначала создайте учебный документ по подготовке";
КонецЕсли;
Заявка = Документы.УчебнаяЗаявка.СоздатьДокумент();
Заявка.Дата = Дата(2026, 10, 2, 10, 0, 0);
Для Номер = 1 По 2 Цикл
    СтрокаЗаявки = Заявка.Товары.Добавить();
    СтрокаЗаявки.Товар = Справочники.УчебныеТовары.ПустаяСсылка();
    СтрокаЗаявки.Количество = ?(Номер = 1, 3, 1);
    СтрокаЗаявки.Цена = 250;
КонецЦикла;

Снимок = Заявка.Товары.Выгрузить();
Количества = Заявка.Товары.ВыгрузитьКолонку("Количество");
Сообщить(Количества.Количество() = 2 И Количества[0] = 3 И Количества[1] = 1);
Количества[0] = 4;
Количества[1] = 2;
Если Количества.Количество() <> Заявка.Товары.Количество() Тогда
    ВызватьИсключение "Число новых значений не совпадает с числом строк";
КонецЕсли;
Заявка.Товары.ЗагрузитьКолонку(Количества, "Количество");
Сообщить(Заявка.Товары.Итог("Количество") = 6);
Сообщить(Снимок.Итог("Количество") = 4);
Схема = Заявка.Товары.ВыгрузитьКолонки("Товар,Количество,Цена");
Сообщить(Схема.Количество() = 0);
Сообщить(Схема.Колонки.Количество() = 3);
Заявка.Товары.Очистить();
Сообщить(Заявка.Товары.Количество() = 0);
Заявка.Товары.Загрузить(Снимок);
Сообщить(Заявка.Товары.Количество() = 2);
Сообщить(Заявка.Товары.Итог("Количество") = 4);
Сообщить(Заявка.ЭтоНовый());

Разбор по шагам

  1. Выгрузить создаёт таблицу с данными, ВыгрузитьКолонки — только её схему. Это разные методы.

  2. ВыгрузитьКолонку возвращает массив значений в текущем порядке строк. Проверяем длину прежде, чем загрузить изменённые значения.

  3. ЗагрузитьКолонку меняет выбранную колонку экземпляра, но не меняет заранее выгруженный Снимок.

  4. Очистить и Загрузить работают с незаписанной табличной частью. Загрузить заменяет весь состав строк, не добавляет к старым.

Как проверить результат

  1. Исходный массив [3,1], после замены итог 6, независимый снимок сохраняет итог 4.

  2. Схема имеет 3 колонки и 0 строк. После Очистить строк 0, после Загрузить снова 2 и итог 4.

  3. Все контрольные сравнения Истина, документ остаётся новым и не появляется в базе.

Ожидаемый результат

Показаны перенос одной колонки, независимый снимок и полная загрузка табличной части.

На что обратить внимание

  1. Загрузить удаляет прежние строки табличной части в памяти; не используйте его как добавление новых строк.

  2. После полной загрузки старые ссылки на строки и их индексы нужно считать недействительными до повторного поиска.

  3. Совпадение имён колонок важно для Загрузить. Переименованная колонка не сопоставляется по позиции автоматически.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Свернуть одинаковые строки заявки, сохранив цену группировки

Две строки одного учебного товара по одной цене объединяем в одну, суммируя только количество. Цена остаётся ключом, а не суммируется.

Где и как запускать

Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.

Подготовка

  1. Создайте НОВУЮ пустую файловую учебную базу, не копию рабочего каталога. В Конфигураторе задайте корню имя Учебная85. Не добавляйте эти объекты в рабочую УТ/КА2/УНФ/БП.

  2. Справочники → Добавить: имя УчебныеТовары. Длина кода 10, тип кода Строка, автонумерация и контроль уникальности включены, длина наименования 100.

  3. Для УчебныеТовары включите иерархию групп и элементов. Добавьте реквизиты Артикул (Строка, длина 20) и Цена (Число, 12 цифр, 2 дробных, неотрицательное). Проверка заполнения для этих учебных реквизитов не устанавливается.

  4. Добавьте табличную часть Штрихкоды: Штрихкод (Строка, длина 20) и Основной (Булево). Обновите конфигурацию базы данных. Модули объектов оставьте пустыми.

  5. Создайте серверный общий модуль УчебныеЗадачи и команду учебной обработки, вызывающую ВыполнитьПример() Экспорт. Каждый фрагмент выполняйте отдельно, не склеивайте их в одну процедуру.

  6. Документы → Добавить: имя УчебнаяЗаявка, тип номера Строка, длина 9, автонумерация включена. Проведение запретите: это только учебный документ без движений.

  7. Добавьте реквизит Комментарий (Строка, длина 100) и табличную часть Товары: Товар (СправочникСсылка.УчебныеТовары), Количество (Число, 9 цифр, 0 дробных, неотрицательное), Цена (Число, 12 цифр, 2 дробных, неотрицательное). Модуль документа пустой.

  8. Обновите конфигурацию базы данных. Эти имена существуют только в созданной учебной конфигурации, не подразумеваются в типовой базе.


Если Метаданные.Справочники.Найти("УчебныеТовары") = Неопределено Тогда
    ВызватьИсключение "Сначала создайте учебный справочник по подготовке";
КонецЕсли;

Если Метаданные.Документы.Найти("УчебнаяЗаявка") = Неопределено Тогда
    ВызватьИсключение "Сначала создайте учебный документ по подготовке";
КонецЕсли;
Заявка = Документы.УчебнаяЗаявка.СоздатьДокумент();
Заявка.Дата = Дата(2026, 10, 2, 10, 0, 0);
Для Номер = 1 По 2 Цикл
    СтрокаЗаявки = Заявка.Товары.Добавить();
    СтрокаЗаявки.Товар = Справочники.УчебныеТовары.ПустаяСсылка();
    СтрокаЗаявки.Количество = ?(Номер = 1, 3, 1);
    СтрокаЗаявки.Цена = 250;
КонецЦикла;

ДоСвёртки = Заявка.Товары.Выгрузить();
КоличествоДо = Заявка.Товары.Итог("Количество");
Заявка.Товары.Свернуть("Товар,Цена", "Количество");
Сообщить(Заявка.Товары.Количество() = 1);
Сообщить(Заявка.Товары.Получить(0).Количество = 4);
Сообщить(Заявка.Товары.Получить(0).Цена = 250);
Сообщить(Заявка.Товары.Итог("Количество") = КоличествоДо);
Заявка.Товары.Загрузить(ДоСвёртки);
Заявка.Товары.Получить(1).Цена = 50;
Заявка.Товары.Свернуть("Товар,Цена", "Количество");
Сообщить(Заявка.Товары.Количество() = 2);
Сообщить(Заявка.Товары.Итог("Количество") = 4);
Сообщить(Заявка.ЭтоНовый());

Разбор по шагам

  1. У учебной табличной части ровно три собственные колонки. Списки группировки Товар,Цена и суммирования Количество покрывают их и не пересекаются.

  2. Пустая ссылка на товар здесь одинакова у обеих строк намеренно: упражнение не требует создания реальных товаров.

  3. При одинаковой цене 250 строки объединяются, количество становится 4. Суммировать цену вместо группировки было бы неверно для этой задачи.

  4. Восстанавливаем исходные две строки, меняем цену второй на 50 и повторяем: теперь ключи группировки различны, строки не объединяются.

Как проверить результат

  1. Первый результат: одна строка, количество 4, цена 250; сумма количества сохранилась.

  2. Во второй проверке две строки с разными ценами, общий итог количества 4.

  3. Все сравнения Истина, документ остаётся незаписанным.

Ожидаемый результат

Разобрана свёртка на явно определённой схеме табличной части без потери цены.

На что обратить внимание

  1. В рабочем документе колонок обычно больше: нельзя использовать эти списки без изучения полной схемы.

  2. Объединение пустых ссылок допустимо лишь в этом упражнении, не при загрузке реального заказа.

  3. Свернуть меняет строки самого экземпляра; для предварительного просмотра используйте отдельную выгруженную таблицу.

Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.

Не хотите разбираться сами?

Адаптируем это решение под вашу базу. Оценка бесплатно.

Оставить задачу

1С, 1С:Предприятие — товарные знаки ООО «1С». Сайт не является официальным представительством фирмы «1С» и не аффилирован с ней.