Найти все строки нужного товара и посчитать количество

Учебные задачи

Учимся отличать поиск первой строки от отбора нескольких совпадений.

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

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

Подготовка

  1. Таблица создаётся на сервере.

  2. В данных намеренно две строки с одинаковым кодом.

Товары = Новый ТаблицаЗначений;
Товары.Колонки.Добавить("Код");
Товары.Колонки.Добавить("Количество");
СтрокаТовара = Товары.Добавить();
СтрокаТовара.Код = "A-01";
СтрокаТовара.Количество = 2;
СтрокаТовара = Товары.Добавить();
СтрокаТовара.Код = "A-01";
СтрокаТовара.Количество = 3;
СтрокаТовара = Товары.Добавить();
СтрокаТовара.Код = "B-02";
СтрокаТовара.Количество = 4;
Отбор = Новый Структура("Код", "A-01");
СтрокиТовара = Товары.НайтиСтроки(Отбор);
Итого = 0;
Для Каждого СтрокаТовара Из СтрокиТовара Цикл
    Итого = Итого + СтрокаТовара.Количество;
КонецЦикла;
Сообщить(СтрокиТовара.Количество());
Сообщить(Итого);
ПерваяСтрока = Товары.Найти("A-01", "Код");
Если ПерваяСтрока <> Неопределено Тогда
    Сообщить(Товары.Индекс(ПерваяСтрока));
КонецЕсли;

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

  1. НайтиСтроки принимает структуру условий и возвращает массив строк.

  2. Суммируем значения только найденных строк.

  3. Найти возвращает первое совпадение; Индекс определяет его позицию с нуля.

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

  1. Количество найденных строк 2, сумма 5, индекс первой 0.

  2. Замените код отбора на X: количество и сумма должны быть 0.

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

2; 5; 0.

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

  1. Найденные строки принадлежат исходной таблице: изменение строки меняет её данные.

  2. Проверяйте Неопределено перед использованием результата Найти.

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

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

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

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

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