РегистрСведенийНаборЗаписей.<Имя регистра сведений>.Итог

Методы · Total

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

Синтаксис

Итог(<ИмяПоля>)

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

СреднийКурс = НаборКурсов.Итог("Курс") / НаборКурсов.Количество();
Сообщить("Средний курс " + СреднийКурс);
Полное описание, параметры и ограничения

РегистрСведенийНаборЗаписей.<Имя регистра сведений>.Итог (InformationRegisterRecordSet.<Information register name>.Total)

РегистрСведенийНаборЗаписей.<Имя регистра сведений> (InformationRegisterRecordSet.<Information register name>)

Итог (Total)

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

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

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

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

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

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

Пример:

СреднийКурс = НаборКурсов.Итог("Курс") / НаборКурсов.Количество();
Сообщить("Средний курс " + СреднийКурс);

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

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

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

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

Подготовить две цены в наборе без записи в регистр

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

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

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

Подготовка

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

  2. Регистры сведений → Добавить: УчебныеЦены. Режим записи Независимый, периодичность Непериодический. Измерение КодТовара: Строка, длина 50, индексировать. Ресурс Цена: Число, 12 цифр, 2 дробных, неотрицательное.

  3. Проверку заполнения измерения установите Показывать ошибку. Модуль набора записей оставьте ПУСТЫМ; обработчики записи, обмена, фоновые задания и внешние сервисы для урока не создавайте.

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

  5. Фрагмент вставьте в тело ВыполнитьПример. Каждую задачу запускайте отдельно. Вымышленные коды не являются справочными ссылками на рабочие товары.

Описание = Метаданные.РегистрыСведений.Найти("УчебныеЦены");
Если Описание = Неопределено Тогда
    ВызватьИсключение "Сначала подготовьте собственный учебный регистр";
КонецЕсли;
Если Описание.РежимЗаписи <> Метаданные.СвойстваОбъектов.РежимЗаписиРегистра.Независимый
    Или Описание.ПериодичностьРегистраСведений <> Метаданные.СвойстваОбъектов.ПериодичностьРегистраСведений.Непериодический Тогда
    ВызватьИсключение "Настройки учебного регистра не соответствуют подготовке";
КонецЕсли;
Если Описание.Измерения.Количество() <> 1
    Или Описание.Измерения.Найти("КодТовара") = Неопределено
    Или Описание.Ресурсы.Найти("Цена") = Неопределено Тогда
    ВызватьИсключение "Нужны одно измерение КодТовара и ресурс Цена";
КонецЕсли;
Набор = РегистрыСведений.УчебныеЦены.СоздатьНаборЗаписей();
Книга = Набор.Добавить();
Книга.КодТовара = "BOOK-A01";
Книга.Цена = 250;
Ручка = Набор.Добавить();
Ручка.КодТовара = "PEN-B02";
Ручка.Цена = 50;
Набор.ДополнительныеСвойства.Вставить("Источник", "Учебный набор в памяти");
Сообщить(Набор.Количество() = 2);
Сообщить(Набор.Итог("Цена") = 300);
Сообщить(Набор.Метаданные().Имя = "УчебныеЦены");
Сообщить(Набор.Модифицированность());
Сообщить(Не Набор.Выбран());
Сообщить(Набор.ЭтотОбъект = Набор);
Сообщить(Набор.ПроверитьЗаполнение());
Сообщить(Набор.ДополнительныеСвойства.Источник);
Сообщить("Записать и Прочитать не вызывались — это подготовка, не сохранение цен.");

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

  1. СоздатьНаборЗаписей создаёт набор соответствующего регистра, но не читает его строки и не сохраняет данные.

  2. Добавить возвращает запись набора. КодТовара/Цена — реквизиты именно подготовленного учебного регистра.

  3. Итог Цена суммирует 250 и 50. Это сумма двух разных цен, не стоимость заказа без количества.

  4. Выбран относится к чтению данных; Модифицированность — к изменению набора в памяти.

  5. ПроверитьЗаполнение контролирует настроенные обязательные поля, но не выполняет запись и все будущие бизнес-проверки.

  6. ДополнительныеСвойства хранит служебный контекст обработки, не новый ресурс регистра.

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

  1. Проверки количества, итога, метаданных, модифицированности, отсутствия чтения, ЭтотОбъект и заполнения — Истина.

  2. Через Все функции/Функции для технического специалиста откройте список собственного УчебныеЦены: эти строки ещё не сохранены.

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

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

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

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

  2. Успешная ПроверитьЗаполнение не доказывает наличие прав записи или успешность будущей транзакции.

  3. Итог двух цен не является бизнес-расчётом стоимости товаров.

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

Вставить третью цену, переставить и убрать её только из памяти

Операции набора похожи на таблицу, но объект имеет тип регистра. Удалить запись из набора не значит удалить строку базы без Записать.

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

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

Подготовка

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

  2. Регистры сведений → Добавить: УчебныеЦены. Режим записи Независимый, периодичность Непериодический. Измерение КодТовара: Строка, длина 50, индексировать. Ресурс Цена: Число, 12 цифр, 2 дробных, неотрицательное.

  3. Проверку заполнения измерения установите Показывать ошибку. Модуль набора записей оставьте ПУСТЫМ; обработчики записи, обмена, фоновые задания и внешние сервисы для урока не создавайте.

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

  5. Фрагмент вставьте в тело ВыполнитьПример. Каждую задачу запускайте отдельно. Вымышленные коды не являются справочными ссылками на рабочие товары.

Описание = Метаданные.РегистрыСведений.Найти("УчебныеЦены");
Если Описание = Неопределено Тогда
    ВызватьИсключение "Сначала подготовьте собственный учебный регистр";
КонецЕсли;
Если Описание.РежимЗаписи <> Метаданные.СвойстваОбъектов.РежимЗаписиРегистра.Независимый
    Или Описание.ПериодичностьРегистраСведений <> Метаданные.СвойстваОбъектов.ПериодичностьРегистраСведений.Непериодический Тогда
    ВызватьИсключение "Настройки учебного регистра не соответствуют подготовке";
КонецЕсли;
Если Описание.Измерения.Количество() <> 1
    Или Описание.Измерения.Найти("КодТовара") = Неопределено
    Или Описание.Ресурсы.Найти("Цена") = Неопределено Тогда
    ВызватьИсключение "Нужны одно измерение КодТовара и ресурс Цена";
КонецЕсли;
Набор = РегистрыСведений.УчебныеЦены.СоздатьНаборЗаписей();
Книга = Набор.Добавить();
Книга.КодТовара = "BOOK-A01";
Книга.Цена = 250;
Ручка = Набор.Добавить();
Ручка.КодТовара = "PEN-B02";
Ручка.Цена = 50;
Карандаш = Набор.Вставить(1);
Карандаш.КодТовара = "PENCIL-C03";
Карандаш.Цена = 30;
Сообщить(Набор.Индекс(Карандаш) = 1);
Набор.Сдвинуть(Карандаш, 1);
Сообщить(Набор.Индекс(Карандаш) = 2);
Сообщить(Набор.Получить(2).Цена = 30);
Набор.Удалить(Карандаш);
Сообщить(Набор.Количество() = 2);
Сообщить(Набор.Итог("Цена") = 300);
Набор.Очистить();
Сообщить(Набор.Количество() = 0);
Сообщить("Менялся только собственный незаписанный набор.");

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

  1. Исходные Книга и Ручка — записи нового собственного набора.

  2. Вставить(1) добавляет Карандаш между ними; индекс начинается с нуля.

  3. Сдвинуть принимает объект записи и смещение. Цена и код не меняются от перестановки.

  4. Удалить принимает запись. Остались исходные две цены с суммой 300.

  5. Очистить обнуляет набор в памяти. Записать нигде не вызывается, поэтому удаления в информационной базе нет.

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

  1. Шесть проверок Истина.

  2. Итоговый набор пуст, список регистра в базе не изменён.

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

Все основные операции порядка набора разобраны с контролируемой областью удаления.

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

  1. Очистить → Записать с замещением может удалить данные базы по отбору; такой цепочки здесь намеренно нет.

  2. После удаления/очистки не используйте прежние ссылки на записи набора.

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

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

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

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

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