Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
18 Дек 2017, 02:37
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Обход массива через один  (Прочитано 1783 раз)

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

Оффлайн RUFFRYDA

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 1
  • КПД: 25%
  • Регистрация: 2014-08-29
  • Сайт: 
  • Профессия: Ученик 1С
модуль формы документа.

Есть массив МассивТоварИзм - в нем чередуются значения типа Строка и Число, всего 4 элемента (строка, число, строка, число), но может быть и больше, но обязательно четное количество (из-за особенности создания массива).
Хочу занести данные из массива в строку таким образом:
"Текст0" + ЭлементМассива0 + "Текст1" + ЭлементМассива1 "ТекстХ" + "Текст0" + ЭлементМассива2 + "Текст1" ЭлементМассива3 и т.д.

Т.е. необходимо занести такую информацию в текстовое поле:

"Имя: " + МассивТоваровИзм[Имя] + ", Сумма: " + МассивТоваровИзм[Сумма] + " || "

Причем определенно (n = количество элементов массива / 2) количество раз. В данной ситуации у меня всего 4 элемента, поэтому использовал "Для Х = 0 По 1 Цикл"
Вроде бы алгоритм продумал, но после первой итерации цикл заканчивается. Не могу понять почему.
код (много строк сообщить использовал, чтобы проверять значения переменных):
Цитировать
&НаКлиенте
Процедура ПриОткрытии(Отказ)
   Для каждого Х из МассивТоваровИзм Цикл
      Сообщить ("iks=" + Х);
   КонецЦикла;
   Строка = "";
   Сообщить ("kolvo" + (МассивТоваровИзм.Количество()/2-1));
   Сч = 0;
   
   Для Сч = 0 По 1 Цикл
      Имя = Сч*2;
      Сумма = Сч*2 + 1;
      Сообщить ("hek1=" + Имя);
      Сообщить ("hek2=" + Сумма);
      Строка = Строка + "Имя: " + МассивТоваровИзм[Имя] + ", Сумма: " + МассивТоваровИзм[Сумма] + " || ";
      Сообщить ("iterator=" + Сч + "_Элементы=" + Имя + ", " + Сумма);
      Сч = Сч + 1;
   КонецЦикла;
КонецПроцедуры

Вот что получается в окне сообщить:
Цитировать
iks=Транзистор Philips
iks=50
iks=Ремонт отечественного телевизора
iks=600
kolvo1
hek1=0
hek2=1
iterator=0_Элементы=0, 1
Все хорошо, но цикл прошел только по первому значению (0). Хочу понять почему цикл не пошел на значение 1 и исправить.


Оффлайн TreeDogNight

  • ***
  • Сообщений: 202
  • РЕПУТАЦИЯ: 28
  • КПД: 14%
  • Регистрация: 2013-10-16
    • Skype: treedognight3
  • Сайт: www.avars.uz
  • Профессия: Программист 1С
Зачем в конце к сч прибавляешь 1? Понимаю, если бы у тебя была конструкция:
СЧ = 0;
Пока НЕ СЧ = 2 Цикл
Имя = Сч * 2;
Сумма = Сч * 2 + 1;
Сообщить ("hek1=" + Имя);
Сообщить ("hek2=" + Сумма);
Строка = Строка + "Имя: " + МассивТоваровИзм[Имя] + ", Сумма: " + МассивТоваровИзм[Сумма] + " || ";
Сообщить ("iterator=" + Сч + "_Элементы=" + Имя + ", " + Сумма);
СЧ = СЧ + 1;
КонецЦикла;

В случае твоего цикла, просто убери вконце "СЧ = СЧ + 1;" и будет тебе счастье.
Cегодня не все могут провести завтрашним числом. Вернее, не только лишь все - мало кто может это сделать.

Оффлайн RUFFRYDA

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 1
  • КПД: 25%
  • Регистрация: 2014-08-29
  • Сайт: 
  • Профессия: Ученик 1С
Зачем в конце к сч прибавляешь 1? Понимаю, если бы у тебя была конструкция:
СЧ = 0;
Пока НЕ СЧ = 2 Цикл
Имя = Сч * 2;
Сумма = Сч * 2 + 1;
Сообщить ("hek1=" + Имя);
Сообщить ("hek2=" + Сумма);
Строка = Строка + "Имя: " + МассивТоваровИзм[Имя] + ", Сумма: " + МассивТоваровИзм[Сумма] + " || ";
Сообщить ("iterator=" + Сч + "_Элементы=" + Имя + ", " + Сумма);
СЧ = СЧ + 1;
КонецЦикла;

В случае твоего цикла, просто убери вконце "СЧ = СЧ + 1;" и будет тебе счастье.

Елы-палы... Все из-за того, что до этого в циклах требовался дополнительное значение-итератор, который ручками плюсовать надо было под конец тела цикла. А здесь простую конструкцию цикла надо было, а меня уже переклинило с этим +1... Мде. Спасибо большое)):xfbnsdfb:


Теги:
 

Как объединить объект в реквизите формы с типом "ДокументОбъект" и объект формы, созданной через "ПолучитьФорму()"?

Автор acces969Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 254
Последний ответ 06 Авг 2017, 21:22
от alex0402
Здравствуйте!!! Необходимо востановить ИБ на определенную дату. Копии через конфигуратор на эту дату не сделали, но есть файл в формате CD в rar (Это программа сама сделала резервную копию). Возможно ли востановит ее в 1с и работать (как при загрузке копи

Автор Лариса198888Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 1883
Последний ответ 24 Май 2016, 17:17
от Kironten
Ошибка при загрузке данных через (Обработка "Выгрузка и загрузка данных XML")

Автор Сергей_87Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 8579
Последний ответ 26 Апр 2012, 23:08
от Dethmontt
Обмен УТ 11 и БП 3.0 через универсальный обмен данными

Автор magnifico61Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 9
Просмотров: 7118
Последний ответ 25 Дек 2014, 13:40
от cska-fanat-kz
Нужен совет в подключении к системе спутникового мониторинга "renault-trucks(Optifleet)", через web-сервис!

Автор snoop82Раздел Беседка

Ответов: 0
Просмотров: 795
Последний ответ 11 Дек 2015, 06:56
от snoop82

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
133 Сообщений
ilyay ilyay
63 Сообщений
AIFrame
61 Сообщений
alex0402
50 Сообщений
andron81_81
44 Сообщений
oleg-x
41 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
27 Сообщений
alexandr_ll
23 Сообщений

* Кто онлайн

  • Точка Гостей: 162
  • Точка Скрытых: 0
  • Точка Пользователей: 0

Нет пользователей онлайн.

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal