Обход коллекций в 1С тремя способами

  Рет қаралды 92,514

Школа 1С - видеоуроки бесплатно

Школа 1С - видеоуроки бесплатно

Күн бұрын

Как обойти любую коллекцию с помощью разных циклов. Реализация в 1С на примере массива.
Читайте статьи по 1С на нашем сайте:
programmist1s.r...

Пікірлер: 82
@VikulovStas
@VikulovStas 3 жыл бұрын
На данном этапе очень пригодится процедура *ОчиститьСообщения();* - позволит немного сэкономить время и удалить мусор в окне вывода сообщений пользователю. А в цикле *ДЛЯ* вместо *Количество() - 1* лучше использовать *Массив.ВГраница();* просто потому, что в теле цикла можно -случайно- это значение испортить, кроме того не нужно создавать дополнительную переменную.
@CRESHT
@CRESHT 2 жыл бұрын
Супер! Спасибо
@ЕвгенияТокарева-о2д
@ЕвгенияТокарева-о2д 4 жыл бұрын
сначала я зависла, но потом посмотрела 3 раза, и наконец то все стало понятно
@Kim1ne
@Kim1ne 3 жыл бұрын
в колледже изучали Delphi, и не зря учил)))
@marginal4809
@marginal4809 9 ай бұрын
Все работает. В конфигурации обычное приложение должно стоять просто
@СамирФарзалиев-й9ъ
@СамирФарзалиев-й9ъ 6 жыл бұрын
"Название переменной в момент вызова процедуры и в момент ее объявления могут отличаться, но это не должно вас смущать". А почему это не должно смущать?
@aseaxe9609
@aseaxe9609 6 жыл бұрын
помоему главное чтобы они были параметрами комп сам определяет что именно мы имели ввиду
@IlyaLeontyev
@IlyaLeontyev 5 жыл бұрын
А почему должно? При вызове процедуры система сопоставляет переменные в момент ее вызова с переменными из ее описания, исходя из их порядка, а не исходя из их названия.
@androbelo7067
@androbelo7067 4 жыл бұрын
@@IlyaLeontyev так и надо было пояснять это в уроке,а не в комментах
@snigs6832
@snigs6832 3 жыл бұрын
Ясно, понятно, что нужно еще раз пересмортеть, написать самому и разобраться.
@snigs6832
@snigs6832 3 жыл бұрын
правду говорят что программист тратит 80% времени на исправление ошибок в коде. В цикле пока строчки местами поменял и опечатка в одной из переменных индекс была, не люблю длинные названия переменных.
@romanbush5164
@romanbush5164 4 жыл бұрын
А вот методы и обьекты , это прям что то от си подобных
@vsevolodnovopashin7949
@vsevolodnovopashin7949 6 жыл бұрын
Спасибо
@dsv2333
@dsv2333 7 жыл бұрын
Вот тут я завис. Раза 3 уже пересмотрел.
@Vicont4063
@Vicont4063 6 жыл бұрын
Всё норм, вопросы пишите и постараемся ответить, я попробую, не получится, автор). ПРост ов процедуру вы в скобках кк бы ссылку на переменную(объект) вводите, получается "М" летит в процедуру и попадает в (Массив) теперь в переменной Массив содержится "М", а там это все обрабатывается.
@stanislavradchenko2468
@stanislavradchenko2468 6 жыл бұрын
Всё тут понятно. SublimeText3 установите и на него поставьте плагин 1с. Пишите в нём, а потом переносите в 1с. Лично мне так намного удобнее и понятнее
@danilklyuev3079
@danilklyuev3079 5 жыл бұрын
У нас 2 Процедуры: "КнопкаВыполнитьНажатие" и "ВыводМассиваДляКаждого". В процедуре "КнопкаВыполнитьНажатие" мы вызываем процедуру "ВыводМассиваДляКаждого", т.е. вызываем доп. процедуру в основной процедуре (условно); Далее, в доп. процедуре "ВыводМассиваДляКаждого" у нас есть ПАРАМЕТР "Массив" - сейчас это просто ПАРАМЕТР без значения, мы в этот параметр ничего не помещали и это не инициализированная переменная (прочитайте еще раз). НО. Когда мы поместим в ПАРАМЕТР некое значение, что с ним должно произойти? Это значение параметра считывается и передается в тело модуля доп. процедуры (прочитайте ще раз), т.е. это значение уйдет в цикл "Для Каждого ЭлементаМассива из Массив Цикл", а конкретно значение параметра в этой строчке передается в слово "Массив" (прочитайте ще раз). Когда в основной процедуре мы вызываем доп процедуру, мы теперь уже передаем в ПАРАМЕТР некое значение, а конкретно - наш МАССИВ "М", а его значение автоматически передается в тело процедуры. Фактически, в доп. процедуре можете поменять "Массив" хоть на "член" или что угодно, но будьте добры и поменять на аналогичное слово и в Вашем цикле, ибо когда Вы в основной процедуре вы вызовите доп. процедуру и подставите туда Ваш массив "М" из урока, то компилятор такой скажет: "Бро, я получил на вход доп. процедуры в качестве параметра твой массив "М", но я без понятия куда мне его передавать. Ибо в доп. процедуре не определено куда мне передавать значения параметра член". ( )
@Романпопробуйвсё
@Романпопробуйвсё 2 жыл бұрын
Уже кучу раз пересмотрел видео...после нажатия выполнить не сообщает элементы массива "для" пишет Индекс находится за границами массива. Вникаю
@СергейГончаров-щ4у
@СергейГончаров-щ4у 2 жыл бұрын
очень интересно
@ekamina4961
@ekamina4961 5 жыл бұрын
Пока в процедуру ВыводМассиваДляКаждого() вместо параметра (Массив) не поставила просто(М) - процедура не срабатывала, (упр прил), в процедуре "Пока" -выводит (Индекс находится за границами массива ) и только в проц "Для" - совпало один в один, что не так с границами? - приложение управляемое.
@aseaxe9609
@aseaxe9609 6 жыл бұрын
создается процедура для кнопки выполнить и туда создаете массив и создаете другие процедуры и там пишите код для способов как показать элементы массива , и возвращяетесь в процедуру кнопки и туда пишите название этих процедур то есть способ показания этих элементов
@kilka13
@kilka13 3 жыл бұрын
спасибо!
@glonas73
@glonas73 6 жыл бұрын
Вечер добрый , а если массива 2 (3,4....10)? В первом пишем М=Новый Массив() , следующий допустим М2 = Новый массив () и так далее , а в процедуре как к ним обращаться ? Спасибо .
@Solok777
@Solok777 3 жыл бұрын
М и М2 соответственно, это же имена ссылок на объекты.
@vacheslavable
@vacheslavable 4 жыл бұрын
А какой комбинацией клавиш вы копируете слова или строки не выделяя их?
@MrSunabo
@MrSunabo 6 жыл бұрын
Напиши пожалуйста подробно почему разные переменные в процедурах. М И Массив.
@user-zb6zh7lq6j
@user-zb6zh7lq6j 6 жыл бұрын
попробуйте написать комментарий к коду, у меня всё получилось
@user-rd8ox4rr8q
@user-rd8ox4rr8q 5 жыл бұрын
У тебя есть процедура с параметром Массив. Т.е. в эту процедуру ты будешь передавать массив. Но! Один раз ты передашь к примеру М1 из одной процедуры в эту и параметр Массив получит массив М1, а в другой процедуре ты можешь передавать в эту же процедуру параметр М2(совершенно другой массив) и параметр Массив будет теперь равняться М2.
@РоманОзеров-ф6ю
@РоманОзеров-ф6ю 4 жыл бұрын
"Обход коллекций" не совсем правильное название, корректнее было бы назвать "перебором элементов коллекций и т.п"., т.к. обход подразумевает другое совсем назначение...
@ДавидЛазаров-т8ц
@ДавидЛазаров-т8ц 7 жыл бұрын
А тут уже ООП... ООП в 1С... вообще очень необычно привычные операторы писать на русском)))
@Школа1С-видеоурокибесплатно
@Школа1С-видеоурокибесплатно 7 жыл бұрын
Быстро привыкаете, проверено :)
@__ash13__
@__ash13__ 6 жыл бұрын
это всё то же *процедурное программирование* где тут ООП?
@АлексейПетров-д1г
@АлексейПетров-д1г 5 жыл бұрын
А не обязательно писать на русском, можно как привычно (при этом 1с всё понимает): Procedure OutputArrayWhile(Array) Message("Вывод элементов массива ""While"""); Index = 0; Amount = Array.Count(); While Index < Amount Do Message(Array[Index], MessageStatus.Attention); Index = Index + 1; EndDo EndProcedure
@IlyaLeontyev
@IlyaLeontyev 5 жыл бұрын
@@АлексейПетров-д1г главное, чтобы другие программисты при этом понимали, что вы пишете. Ведь после вас программу будет обслуживать кто-то еще. И не исключено, что когда-нибудь вы будете участвовать в групповой разработке. И вряд ли вы долго протянете, если будете идти против системы )
@user-lv7gm8pg5j
@user-lv7gm8pg5j 3 жыл бұрын
Любопытствующий вопрос - а можно ли скрестить цикл "Пока" (в котором ведь по сути задаётся _условие_ в стартовой строке) с элементом Выборка.Следующий ?? То есть я имею в виду - допустим, у нас есть выборка, в которой все элементы - Числа, и мы задаём условие Выборка.Следующий < 700. Пройдёт ли цикл "Пока" с таким условием по _всем_ элементам выборки, которые меньше 700 (предположим общий вариант, то есть у нас есть и элементы меньшие 700, и элементы больше 700)? Или результат будет рандомным (т.е. взяв случайный элемент выборки и убедившись, что он >=700, цикл прервётся, не попробовав некоторые другие элементы, которые могли бы подойти под условие)?
@Проверенныйзаработоквсети-я5т
@Проверенныйзаработоквсети-я5т 4 жыл бұрын
У меня вопрос: Почему при создании Массива в других языках это к примеру создания TStringList и занесения в него данных с последующим вызовом. Вы не делаете такое как уничтожение объекта к примеру M.Free; или M.Clear; тем самым после вызова вторично мы не уничтожаем текущий результат выводя за место него другой если к примеру идут разные отображения данных? Заранее спасибо за ответ.
@АлександрСабакин
@АлександрСабакин 3 жыл бұрын
Как в фильме "миллион лет до нашей эры". Ко всему привыкаешь и потом уже не замечаешь разницы.)))
@alexeiinkinmilk3225
@alexeiinkinmilk3225 4 жыл бұрын
{ВнешняяОбработка.РаботаСЦиклами.Форма.Форма.Форма(33,20)}: Переменная не определена (Индекс) Сообщить (Массив[
@ignatsolovyev2551
@ignatsolovyev2551 4 жыл бұрын
Спасибо за видео Бро! Есть ли донат на проекте?
@ВадимИвершин-б2ц
@ВадимИвершин-б2ц 6 жыл бұрын
Что означает точка? Например как в примере на видео Количество = Массив.Количество
@user-zb6zh7lq6j
@user-zb6zh7lq6j 6 жыл бұрын
| ( ) [ ] . , ; _ « » ‘ ’ Ограничители и разделители
@mrmaktlt
@mrmaktlt 6 жыл бұрын
Сумбур начался
@ekamina4961
@ekamina4961 5 жыл бұрын
Все получилось , надо быть только повнимательней, я Индекс = Индекс + 1, поставила перед оператором "сообщить", вот и хрень получилась :-)
@annabraichenko4611
@annabraichenko4611 5 жыл бұрын
и тут я чет тоже зависла, надо будет пересмотреть..
@arxxximed
@arxxximed 5 жыл бұрын
Название видео - "обход коллекций". А почему то только один вид коллекции проходят - массив. А как же структура, соответствие, и так далее... там есть свои нюансы.
@IlyaLeontyev
@IlyaLeontyev 5 жыл бұрын
За запись видео и за его оформление / публикацию отвечают разные люди, поэтому и получаются такие несостыковки. У меня не было цели в этом видео рассказывать про другие коллекции.
@alekstaze
@alekstaze 9 ай бұрын
Написал первый раз код по видео в точь точь ничего не сработало, программа не видела .Количество() Потом всё удалил переписал своими словами и о чудо заработало
@timmisharin9501
@timmisharin9501 Жыл бұрын
Добрый День!сделал все как на видео.даже 2 3 раза пересмотрел и перепроверил,у меня зависает при Отладке...так бывает или нет?)
@denistimofeev3592
@denistimofeev3592 4 жыл бұрын
Вывод элементов массива для цикла Пока не работает - в процедуре ошибка на операторе Колчичество, т.к. переменная не определена как массив. А Илья как раз не показал работу этого варианта вывода.
@denistimofeev3592
@denistimofeev3592 4 жыл бұрын
Оказывается после оператора Количество обязательно должны быть скобки (), хотя синтаксический контроль не показывает ошибку. Со скобками работает
@ВасилисаИльинская.Даблбабл
@ВасилисаИльинская.Даблбабл 6 жыл бұрын
Выдавал ошибку "Определения процедур и функций должны размещаться перед операторами тела модуля", пока не поменял местами процедуры. На первом месте с объявлением массива. Почему так?
@ВасилисаИльинская.Даблбабл
@ВасилисаИльинская.Даблбабл 6 жыл бұрын
Разобрался. Дело в ; )
@КонстантинЛатышев-р3э
@КонстантинЛатышев-р3э 6 жыл бұрын
в каком именно месте эти ;
@ВасилисаИльинская.Даблбабл
@ВасилисаИльинская.Даблбабл 6 жыл бұрын
После конецпроцедуры
@КонстантинЛатышев-р3э
@КонстантинЛатышев-р3э 6 жыл бұрын
спасибо, нашел
@stak626
@stak626 3 жыл бұрын
спасибо большое!
@ДарьяДубцова-ы8ф
@ДарьяДубцова-ы8ф 6 жыл бұрын
не знаю, у меня пишет ошибку "{ВнешняяОбработка.РаботаСЦиклами.Форма.Форма.Форма(32,29)}: Ожидается ключевое слово 'Цикл' ('Do') Пока Индекс < Количество
@IlyaLeontyev
@IlyaLeontyev 5 жыл бұрын
Пока Индекс Из Массив Цикл? Так нельзя писать. Вот так можно: Пока Индекс < Количество Цикл Индекс = Индекс + 1; КонецЦикла;
@zulfiyaissagaliyeva8576
@zulfiyaissagaliyeva8576 5 жыл бұрын
Не выходит поле подсказок после Массив.
@АлександрКравцов-ы7з
@АлександрКравцов-ы7з 5 жыл бұрын
Пойду посплю
@serp-kz2298
@serp-kz2298 5 жыл бұрын
Задание на внимательность =))))
@АлександрКравцов-ы7з
@АлександрКравцов-ы7з 5 жыл бұрын
Я тоже завис *метод объекта не обнаружен (Колличество)🙃
@VeNTeL1977
@VeNTeL1977 5 жыл бұрын
Что не так? 18 раз пересматриваю. переделываю {ВнешняяОбработка.РоботаЗЦиклами.Форма.Форма.Форма(15,3)}: Определения процедур и функций должны размещаться перед операторами тела модуля
@EmeraldAlis
@EmeraldAlis 5 жыл бұрын
Точка с запятой после КонецПроцедуры и после объявления процедуры лишние
@arxxximed
@arxxximed 5 жыл бұрын
Плохим тоном считается при написании кода, а тем более для обучения в видео, делать сокращения переменных до бессмыслицы. Неужели было трудно вместо "М" написать просто "НашМассивДанных" к примеру.
@ЕленаГузеева-ъ9б
@ЕленаГузеева-ъ9б 9 ай бұрын
Примерно до 10 урока было все понятно для новичка. Далее пошла просто демонстрация возможностей. Без объяснения. Обидно
@denweter974
@denweter974 5 жыл бұрын
Кто не изучал С# или С++ будет трудновато и многое непонятно
@АндрейЧураков-ю3д
@АндрейЧураков-ю3д 5 жыл бұрын
ВнешняяОбработка.ЦиклыМассивы.Форма.Форма.Форма(36,1)}: Определения процедур и функций должны размещаться перед операторами тела модуля
@kostya2186
@kostya2186 5 жыл бұрын
У меня такая ошибка была когда я по ошибке поставил ";" после "КонецПроцедуры"
@fakhazunun7406
@fakhazunun7406 3 жыл бұрын
@@kostya2186 Огромное тебе спасибо, такая же фигня была, раз 5 пересмотрел видео, потом удалил ";" и всё норм!! )))
@orxanrzayev4914
@orxanrzayev4914 2 жыл бұрын
Привет всем как будто в игзамене а не людям обесняеш показываеш что на сколько чего ты знаеш
@sever1man
@sever1man 5 жыл бұрын
Я тоже завис, 2 раза уже смотрел. Причина думаю у всех одна - плохо описан синтаксис.
@cryptoprofit1190
@cryptoprofit1190 Жыл бұрын
Так это же проще чем посрать сходить =)
@magmaster4
@magmaster4 3 жыл бұрын
я завис...и не отвис
@АлександрКравцов-ы7з
@АлександрКравцов-ы7з 5 жыл бұрын
Бедаааа
@МихаилМорозов-ц1г
@МихаилМорозов-ц1г 5 жыл бұрын
Какие коллекции то бывают? Чем отличаются друг от друга? Нах*я рассказывать про циклы, если видео называется коллекции?
@BladeMaster486
@BladeMaster486 5 жыл бұрын
видео про обход коллекций
@Школа1С-видеоурокибесплатно
@Школа1С-видеоурокибесплатно 7 жыл бұрын
Как обойти любую коллекцию с помощью разных циклов. Реализация в 1С на примере массива. Услуги 1С программиста в Москве: 1cproger.ru/ Читайте статьи по 1С на нашем сайте: programmist1s.ru/materialyi-po-1s/
@Electrovl-k
@Electrovl-k 3 жыл бұрын
Провозился кучу времени из-за грамматических ошибок
Работа с массивом в 1С: считаем сумму элементов массива
9:02
Школа 1С - видеоуроки бесплатно
Рет қаралды 98 М.
Процедуры и функции в 1С 8.3: чем они отличаются и как их использовать
12:33
Школа 1С - видеоуроки бесплатно
Рет қаралды 169 М.
Fake watermelon by Secret Vlog
00:16
Secret Vlog
Рет қаралды 16 МЛН
Шок. Никокадо Авокадо похудел на 110 кг
00:44
Цикл "Для каждого" в 1С и работа с массивом
5:30
Школа 1С - видеоуроки бесплатно
Рет қаралды 105 М.
Справочники в 1С 8.3 - создание и свойства на примерах
14:52
Школа 1С - видеоуроки бесплатно
Рет қаралды 158 М.
Избавляемся от If и Switch в коде на C#! КАК !?
14:38
Роман Сакутин
Рет қаралды 97 М.
Регистры сведений в 1С 8.3
12:33
Школа 1С - видеоуроки бесплатно
Рет қаралды 158 М.
Скайнет в 1С! Агрегаты, удивительный механизм.
37:06
Курсы 1С и экзамены (1С:Учебный центр №1)
Рет қаралды 8 М.
Перечисления в 1С и в чем необходимость изучать запросы
14:59
Школа 1С - видеоуроки бесплатно
Рет қаралды 84 М.
Отладка дополнительных обработок 1С (БСП)
10:13
IRONSKILLS - Курсы по 1С
Рет қаралды 16 М.
Fake watermelon by Secret Vlog
00:16
Secret Vlog
Рет қаралды 16 МЛН