Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
12 дек 2024, 20:30

Найти сумму всех цифр целочисленного массива

Автор OnePunch-Man, 15 мар 2023, 16:59

0 Пользователей и 1 гость просматривают эту тему.

OnePunch-Man

Люди добрые помогите новичку в программном коде 1С!

Задача.
Найти сумму всех цифр любого целочисленного массива.
Тоесть, создаем в выделенной обработке Форму, в форме создаем любой реквизит, условно Реквизит1, в который будет вводиться наш массив, создаем команду при обработке которой будет считаться сумма всех цифр заданного в реквизите массива и выводить сообщение с суммой. Например вводим массив 23 457 12 8 должно получиться 2+3+4+5+7+1+2+8=32.

МассивЧисел = Новый Массив;
МассивЧисел = Реквизит1;

Выполнить задачу нужно через функцию Цикл

LexaK

OnePunch-Man, все правильно, только обход массива в цикле добавить
СуммаЧисел = 0;
Для каждого лкЗнач Из Реквизит1 Цикл
    СуммаЧисел  = СуммаЧисел  + лкЗнач;
КонецЦикла;
Сообщить("Сумма: " + СуммаЧисел);
если помогло нажмите: Спасибо!

OnePunch-Man

LexaK, Итератор для значения не определен
{ВнешняяОбработка.ДЗДень2_1.Форма.Форма.Форма(8)}:Для Каждого ЛкЗнач Из Реквизит1 Цикл
Выдает такую ошибку :dfbsdfbsdf:

OnePunch-Man

LexaK, Таким методом пытался до этого сделать выдавало тоже подобную ошибку в чем причина не могу разобраться?

&НаКлиенте
Процедура СуммаЧиселМассива(Команда)

МассивЧисел = Новый Массив;
МассивЧисел = Реквизит1;
СуммаЧисел = 0;
Для Каждого ЛкЗнач Из Реквизит1 Цикл
СуммаЧисел = СуммаЧисел + ЛкЗнач;
КонецЦикла;
Сообщить("Сумма: " + СуммаЧисел);

КонецПроцедуры
получается такой код и выдает ошибу


LexaK

OnePunch-Man, а вы вот это выполнили?
Цитироватьв форме создаем любой реквизит, условно Реквизит1

пока попробуйте так
Реквизит1= Новый Массив;
Реквизит1.Добавить(2);
Реквизит1.Добавить(3);
Реквизит1.Добавить(4);
Реквизит1.Добавить(5);
СуммаЧисел = 0;
Для каждого лкЗнач Из Реквизит1 Цикл
    СуммаЧисел  = СуммаЧисел  + лкЗнач;
КонецЦикла;
Сообщить("Сумма: " + СуммаЧисел);
если помогло нажмите: Спасибо!

OnePunch-Man

Цитата: LexaK от 15 мар 2023, 17:32OnePunch-Man, а вы вот это выполнили?
Цитироватьв форме создаем любой реквизит, условно Реквизит1
Да выполнил

LexaK

если помогло нажмите: Спасибо!

OnePunch-Man


Цитироватьпока попробуйте так
Реквизит1= Новый Массив;
Реквизит1.Добавить(2);
Реквизит1.Добавить(3);
Реквизит1.Добавить(4);
Реквизит1.Добавить(5);
СуммаЧисел = 0;
Для каждого лкЗнач Из Реквизит1 Цикл
    СуммаЧисел  = СуммаЧисел  + лкЗнач;
КонецЦикла;
Сообщить("Сумма: " + СуммаЧисел);


при таком коде выдает такую ошибку

Значение не является значением объектного типа (Добавить)
{ВнешняяОбработка.ДЗДень2_1.Форма.Форма.Форма(6)}:Реквизит1.Добавить(2);

LexaK

OnePunch-Man, попытка номер три
лкМассив = Новый Массив;
лкМассив.Добавить(2);
лкМассив.Добавить(3);
лкМассив.Добавить(4);
лкМассив.Добавить(5);
СуммаЧисел = 0;
Для каждого лкЗнач Из лкМассив Цикл
    СуммаЧисел  = СуммаЧисел  + лкЗнач;
КонецЦикла;
Сообщить("Сумма: " + СуммаЧисел);
если помогло нажмите: Спасибо!

OnePunch-Man

Цитата: LexaK от 15 мар 2023, 17:44OnePunch-Man, попытка номер три
лкМассив = Новый Массив;
лкМассив.Добавить(2);
лкМассив.Добавить(3);
лкМассив.Добавить(4);
лкМассив.Добавить(5);
СуммаЧисел = 0;
Для каждого лкЗнач Из лкМассив Цикл
    СуммаЧисел  = СуммаЧисел  + лкЗнач;
КонецЦикла;
Сообщить("Сумма: " + СуммаЧисел);

НУ тут он выдаст значение 14 так как вы задали числа массива зарание 2+3+4+5=14
Но суть затачи в том что массив должен воодиться в Реквизит притом любой какой захочет пользователь.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск