Тёмный

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

Школа 1С - видеоуроки бесплатно
Просмотров 90 тыс.
50% 1

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

Опубликовано:

 

18 май 2017

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 82   
@VikulovStas
@VikulovStas 3 года назад
На данном этапе очень пригодится процедура *ОчиститьСообщения();* - позволит немного сэкономить время и удалить мусор в окне вывода сообщений пользователю. А в цикле *ДЛЯ* вместо *Количество() - 1* лучше использовать *Массив.ВГраница();* просто потому, что в теле цикла можно -случайно- это значение испортить, кроме того не нужно создавать дополнительную переменную.
@CRESHT
@CRESHT 2 года назад
Супер! Спасибо
@user-uf5cr9po9o
@user-uf5cr9po9o 4 года назад
сначала я зависла, но потом посмотрела 3 раза, и наконец то все стало понятно
@user-eh1et6ls8q
@user-eh1et6ls8q 7 лет назад
Как обойти любую коллекцию с помощью разных циклов. Реализация в 1С на примере массива. Услуги 1С программиста в Москве: 1cproger.ru/ Читайте статьи по 1С на нашем сайте: programmist1s.ru/materialyi-po-1s/
@user-yf5jz1rl6h
@user-yf5jz1rl6h 2 года назад
очень интересно
@vsevolodnovopashin7949
@vsevolodnovopashin7949 6 лет назад
Спасибо
@user-gy2bs8uv7o
@user-gy2bs8uv7o 3 года назад
в колледже изучали Delphi, и не зря учил)))
@marginal4809
@marginal4809 6 месяцев назад
Все работает. В конфигурации обычное приложение должно стоять просто
@kilka13
@kilka13 3 года назад
спасибо!
@vacheslavable
@vacheslavable 3 года назад
А какой комбинацией клавиш вы копируете слова или строки не выделяя их?
@user-sq8so2ns1r
@user-sq8so2ns1r 3 года назад
У меня вопрос: Почему при создании Массива в других языках это к примеру создания TStringList и занесения в него данных с последующим вызовом. Вы не делаете такое как уничтожение объекта к примеру M.Free; или M.Clear; тем самым после вызова вторично мы не уничтожаем текущий результат выводя за место него другой если к примеру идут разные отображения данных? Заранее спасибо за ответ.
@snigs6832
@snigs6832 3 года назад
Ясно, понятно, что нужно еще раз пересмортеть, написать самому и разобраться.
@snigs6832
@snigs6832 3 года назад
правду говорят что программист тратит 80% времени на исправление ошибок в коде. В цикле пока строчки местами поменял и опечатка в одной из переменных индекс была, не люблю длинные названия переменных.
@romanbush5164
@romanbush5164 3 года назад
А вот методы и обьекты , это прям что то от си подобных
@user-lv7gm8pg5j
@user-lv7gm8pg5j 3 года назад
Любопытствующий вопрос - а можно ли скрестить цикл "Пока" (в котором ведь по сути задаётся _условие_ в стартовой строке) с элементом Выборка.Следующий ?? То есть я имею в виду - допустим, у нас есть выборка, в которой все элементы - Числа, и мы задаём условие Выборка.Следующий < 700. Пройдёт ли цикл "Пока" с таким условием по _всем_ элементам выборки, которые меньше 700 (предположим общий вариант, то есть у нас есть и элементы меньшие 700, и элементы больше 700)? Или результат будет рандомным (т.е. взяв случайный элемент выборки и убедившись, что он >=700, цикл прервётся, не попробовав некоторые другие элементы, которые могли бы подойти под условие)?
@ignatsolovyev2551
@ignatsolovyev2551 4 года назад
Спасибо за видео Бро! Есть ли донат на проекте?
@aseaxe9609
@aseaxe9609 5 лет назад
создается процедура для кнопки выполнить и туда создаете массив и создаете другие процедуры и там пишите код для способов как показать элементы массива , и возвращяетесь в процедуру кнопки и туда пишите название этих процедур то есть способ показания этих элементов
@user-yj8zo9zk6z
@user-yj8zo9zk6z 6 лет назад
"Название переменной в момент вызова процедуры и в момент ее объявления могут отличаться, но это не должно вас смущать". А почему это не должно смущать?
@aseaxe9609
@aseaxe9609 5 лет назад
помоему главное чтобы они были параметрами комп сам определяет что именно мы имели ввиду
@IlyaLeontyev
@IlyaLeontyev 5 лет назад
А почему должно? При вызове процедуры система сопоставляет переменные в момент ее вызова с переменными из ее описания, исходя из их порядка, а не исходя из их названия.
@androbelo7067
@androbelo7067 4 года назад
@@IlyaLeontyev так и надо было пояснять это в уроке,а не в комментах
@ekamina4961
@ekamina4961 5 лет назад
Пока в процедуру ВыводМассиваДляКаждого() вместо параметра (Массив) не поставила просто(М) - процедура не срабатывала, (упр прил), в процедуре "Пока" -выводит (Индекс находится за границами массива ) и только в проц "Для" - совпало один в один, что не так с границами? - приложение управляемое.
@glonas73
@glonas73 6 лет назад
Вечер добрый , а если массива 2 (3,4....10)? В первом пишем М=Новый Массив() , следующий допустим М2 = Новый массив () и так далее , а в процедуре как к ним обращаться ? Спасибо .
@Solok777
@Solok777 3 года назад
М и М2 соответственно, это же имена ссылок на объекты.
@dsv2333
@dsv2333 6 лет назад
Вот тут я завис. Раза 3 уже пересмотрел.
@Vicont4063
@Vicont4063 6 лет назад
Всё норм, вопросы пишите и постараемся ответить, я попробую, не получится, автор). ПРост ов процедуру вы в скобках кк бы ссылку на переменную(объект) вводите, получается "М" летит в процедуру и попадает в (Массив) теперь в переменной Массив содержится "М", а там это все обрабатывается.
@stanislavradchenko2468
@stanislavradchenko2468 5 лет назад
Всё тут понятно. SublimeText3 установите и на него поставьте плагин 1с. Пишите в нём, а потом переносите в 1с. Лично мне так намного удобнее и понятнее
@danilklyuev3079
@danilklyuev3079 5 лет назад
У нас 2 Процедуры: "КнопкаВыполнитьНажатие" и "ВыводМассиваДляКаждого". В процедуре "КнопкаВыполнитьНажатие" мы вызываем процедуру "ВыводМассиваДляКаждого", т.е. вызываем доп. процедуру в основной процедуре (условно); Далее, в доп. процедуре "ВыводМассиваДляКаждого" у нас есть ПАРАМЕТР "Массив" - сейчас это просто ПАРАМЕТР без значения, мы в этот параметр ничего не помещали и это не инициализированная переменная (прочитайте еще раз). НО. Когда мы поместим в ПАРАМЕТР некое значение, что с ним должно произойти? Это значение параметра считывается и передается в тело модуля доп. процедуры (прочитайте ще раз), т.е. это значение уйдет в цикл "Для Каждого ЭлементаМассива из Массив Цикл", а конкретно значение параметра в этой строчке передается в слово "Массив" (прочитайте ще раз). Когда в основной процедуре мы вызываем доп процедуру, мы теперь уже передаем в ПАРАМЕТР некое значение, а конкретно - наш МАССИВ "М", а его значение автоматически передается в тело процедуры. Фактически, в доп. процедуре можете поменять "Массив" хоть на "член" или что угодно, но будьте добры и поменять на аналогичное слово и в Вашем цикле, ибо когда Вы в основной процедуре вы вызовите доп. процедуру и подставите туда Ваш массив "М" из урока, то компилятор такой скажет: "Бро, я получил на вход доп. процедуры в качестве параметра твой массив "М", но я без понятия куда мне его передавать. Ибо в доп. процедуре не определено куда мне передавать значения параметра член". ( )
@user-tn8mt1pj8f
@user-tn8mt1pj8f 2 года назад
Уже кучу раз пересмотрел видео...после нажатия выполнить не сообщает элементы массива "для" пишет Индекс находится за границами массива. Вникаю
@MrSunabo
@MrSunabo 6 лет назад
Напиши пожалуйста подробно почему разные переменные в процедурах. М И Массив.
@user-zb6zh7lq6j
@user-zb6zh7lq6j 6 лет назад
попробуйте написать комментарий к коду, у меня всё получилось
@user-rd8ox4rr8q
@user-rd8ox4rr8q 5 лет назад
У тебя есть процедура с параметром Массив. Т.е. в эту процедуру ты будешь передавать массив. Но! Один раз ты передашь к примеру М1 из одной процедуры в эту и параметр Массив получит массив М1, а в другой процедуре ты можешь передавать в эту же процедуру параметр М2(совершенно другой массив) и параметр Массив будет теперь равняться М2.
@user-zb5mx2vy7h
@user-zb5mx2vy7h 2 года назад
Как в фильме "миллион лет до нашей эры". Ко всему привыкаешь и потом уже не замечаешь разницы.)))
@user-wn5hj6xo3x
@user-wn5hj6xo3x 6 лет назад
Что означает точка? Например как в примере на видео Количество = Массив.Количество
@user-zb6zh7lq6j
@user-zb6zh7lq6j 6 лет назад
| ( ) [ ] . , ; _ « » ‘ ’ Ограничители и разделители
@timmisharin9501
@timmisharin9501 Год назад
Добрый День!сделал все как на видео.даже 2 3 раза пересмотрел и перепроверил,у меня зависает при Отладке...так бывает или нет?)
@zulfiyaissagaliyeva8576
@zulfiyaissagaliyeva8576 5 лет назад
Не выходит поле подсказок после Массив.
@user-wl7qy6xl6s
@user-wl7qy6xl6s 7 лет назад
А тут уже ООП... ООП в 1С... вообще очень необычно привычные операторы писать на русском)))
@user-eh1et6ls8q
@user-eh1et6ls8q 7 лет назад
Быстро привыкаете, проверено :)
@__ash13__
@__ash13__ 6 лет назад
это всё то же *процедурное программирование* где тут ООП?
@user-tj8fm3pk6l
@user-tj8fm3pk6l 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 лет назад
@@user-tj8fm3pk6l главное, чтобы другие программисты при этом понимали, что вы пишете. Ведь после вас программу будет обслуживать кто-то еще. И не исключено, что когда-нибудь вы будете участвовать в групповой разработке. И вряд ли вы долго протянете, если будете идти против системы )
@annabraichenko4611
@annabraichenko4611 5 лет назад
и тут я чет тоже зависла, надо будет пересмотреть..
@mrmaktlt
@mrmaktlt 5 лет назад
Сумбур начался
@user-tv9zy5qy6x
@user-tv9zy5qy6x 6 лет назад
Выдавал ошибку "Определения процедур и функций должны размещаться перед операторами тела модуля", пока не поменял местами процедуры. На первом месте с объявлением массива. Почему так?
@user-tv9zy5qy6x
@user-tv9zy5qy6x 6 лет назад
Разобрался. Дело в ; )
@user-ox8jx3hk2s
@user-ox8jx3hk2s 6 лет назад
в каком именно месте эти ;
@user-tv9zy5qy6x
@user-tv9zy5qy6x 6 лет назад
После конецпроцедуры
@user-ox8jx3hk2s
@user-ox8jx3hk2s 6 лет назад
спасибо, нашел
@stak626
@stak626 3 года назад
спасибо большое!
@serp-kz2298
@serp-kz2298 5 лет назад
Задание на внимательность =))))
@user-rt3on4mw4l
@user-rt3on4mw4l 4 года назад
"Обход коллекций" не совсем правильное название, корректнее было бы назвать "перебором элементов коллекций и т.п"., т.к. обход подразумевает другое совсем назначение...
@ekamina4961
@ekamina4961 5 лет назад
Все получилось , надо быть только повнимательней, я Индекс = Индекс + 1, поставила перед оператором "сообщить", вот и хрень получилась :-)
@user-lp2mt9hn9b
@user-lp2mt9hn9b 5 лет назад
не знаю, у меня пишет ошибку "{ВнешняяОбработка.РаботаСЦиклами.Форма.Форма.Форма(32,29)}: Ожидается ключевое слово 'Цикл' ('Do') Пока Индекс < Количество
@IlyaLeontyev
@IlyaLeontyev 5 лет назад
Пока Индекс Из Массив Цикл? Так нельзя писать. Вот так можно: Пока Индекс < Количество Цикл Индекс = Индекс + 1; КонецЦикла;
@alexeiinkinmilk3225
@alexeiinkinmilk3225 4 года назад
{ВнешняяОбработка.РаботаСЦиклами.Форма.Форма.Форма(33,20)}: Переменная не определена (Индекс) Сообщить (Массив[
@user-gv8tt1fw5m
@user-gv8tt1fw5m 4 года назад
Пойду посплю
@alekstaze
@alekstaze 6 месяцев назад
Написал первый раз код по видео в точь точь ничего не сработало, программа не видела .Количество() Потом всё удалил переписал своими словами и о чудо заработало
@denistimofeev3592
@denistimofeev3592 4 года назад
Вывод элементов массива для цикла Пока не работает - в процедуре ошибка на операторе Колчичество, т.к. переменная не определена как массив. А Илья как раз не показал работу этого варианта вывода.
@denistimofeev3592
@denistimofeev3592 4 года назад
Оказывается после оператора Количество обязательно должны быть скобки (), хотя синтаксический контроль не показывает ошибку. Со скобками работает
@arxxximed
@arxxximed 5 лет назад
Название видео - "обход коллекций". А почему то только один вид коллекции проходят - массив. А как же структура, соответствие, и так далее... там есть свои нюансы.
@IlyaLeontyev
@IlyaLeontyev 5 лет назад
За запись видео и за его оформление / публикацию отвечают разные люди, поэтому и получаются такие несостыковки. У меня не было цели в этом видео рассказывать про другие коллекции.
@user-gv8tt1fw5m
@user-gv8tt1fw5m 4 года назад
Я тоже завис *метод объекта не обнаружен (Колличество)🙃
@VeNTeL1977
@VeNTeL1977 4 года назад
Что не так? 18 раз пересматриваю. переделываю {ВнешняяОбработка.РоботаЗЦиклами.Форма.Форма.Форма(15,3)}: Определения процедур и функций должны размещаться перед операторами тела модуля
@EmeraldAlis
@EmeraldAlis 4 года назад
Точка с запятой после КонецПроцедуры и после объявления процедуры лишние
@denweter974
@denweter974 5 лет назад
Кто не изучал С# или С++ будет трудновато и многое непонятно
@magmaster4
@magmaster4 2 года назад
я завис...и не отвис
@user-px4wd7bq5h
@user-px4wd7bq5h 5 лет назад
ВнешняяОбработка.ЦиклыМассивы.Форма.Форма.Форма(36,1)}: Определения процедур и функций должны размещаться перед операторами тела модуля
@kostya2186
@kostya2186 5 лет назад
У меня такая ошибка была когда я по ошибке поставил ";" после "КонецПроцедуры"
@fakhazunun7406
@fakhazunun7406 3 года назад
@@kostya2186 Огромное тебе спасибо, такая же фигня была, раз 5 пересмотрел видео, потом удалил ";" и всё норм!! )))
@sever1man
@sever1man 5 лет назад
Я тоже завис, 2 раза уже смотрел. Причина думаю у всех одна - плохо описан синтаксис.
@arxxximed
@arxxximed 5 лет назад
Плохим тоном считается при написании кода, а тем более для обучения в видео, делать сокращения переменных до бессмыслицы. Неужели было трудно вместо "М" написать просто "НашМассивДанных" к примеру.
@user-gv3dl7ej8q
@user-gv3dl7ej8q 6 месяцев назад
Примерно до 10 урока было все понятно для новичка. Далее пошла просто демонстрация возможностей. Без объяснения. Обидно
@user-gv8tt1fw5m
@user-gv8tt1fw5m 4 года назад
Бедаааа
@orxanrzayev4914
@orxanrzayev4914 2 года назад
Привет всем как будто в игзамене а не людям обесняеш показываеш что на сколько чего ты знаеш
@user-lr8hd5qi6n
@user-lr8hd5qi6n 5 лет назад
Какие коллекции то бывают? Чем отличаются друг от друга? Нах*я рассказывать про циклы, если видео называется коллекции?
@BladeMaster486
@BladeMaster486 5 лет назад
видео про обход коллекций
@cryptoprofit1190
@cryptoprofit1190 11 месяцев назад
Так это же проще чем посрать сходить =)
@Electrovl-k
@Electrovl-k 3 года назад
Провозился кучу времени из-за грамматических ошибок
Далее
I Built a SECRET McDonald’s In My Room!
36:00
Просмотров 18 млн
OVOZ
01:00
Просмотров 812 тыс.
Урок 8. Циклы в 1С (часть 1).
34:48
Просмотров 2,1 тыс.
Отладка в 1С 8.3 на примерах
10:15