Алгоритм удаления строки из табличной части

Поддержать донатом: donate.stream/ilyaleontyevpro1s
Алгоритм удаления строки из табличной части - это
один из самых простых и популярных алгоритмов, который знать просто обязательно. Может сэкономить кучу времени и сил (но это не точно).
Может быть легко обобщен до алгоритма удаления элемента из практически любой коллекции (типа массива и т.д.)
В этом видео решил поэкспериментировать со вставками. Вроде круто получилось) А вы как считаете?
Мои контакты:
ВКонтакте: ilyaleontyev
Фэйсбук: illeontev
С удовольствием добавлю вас в друзья при условии, что вы не будете меня грузить своими рабочими вопросами :)

Пікірлер: 50

  • @research_Development
    @research_Development6 жыл бұрын

    Нам нужно БОЛЬШЕ алгоритмов - коротких и простых))

  • @user-lj4dm9gs7v

    @user-lj4dm9gs7v

    6 жыл бұрын

    это точно)))

  • @user-df4kb1io9l

    @user-df4kb1io9l

    3 жыл бұрын

    @@user-lj4dm9gs7v Первый раз слышу от девушки, что им нужно больше - "коротких"))

  • @user-xl9pw9mm8s

    @user-xl9pw9mm8s

    2 жыл бұрын

    Щ

  • @user-lj4dm9gs7v
    @user-lj4dm9gs7v6 жыл бұрын

    Спасибо за видео, Илья. Как всегда по делу и всё чётко.

  • @Olex_Under
    @Olex_Under6 жыл бұрын

    Хорошая идея разбирать алгоритмы. Жду новых видео

  • @alexbagirov2583
    @alexbagirov25835 жыл бұрын

    Класс! Спасибо! Именно практика интересна! Я консультант, программировать учусь с нуля. Мне было интересно!

  • @AnatoliyFedorenko77
    @AnatoliyFedorenko773 жыл бұрын

    Илья, Спасибо за видео. Очень помогло решить эту "нерешаемую" задачу))

  • @svetlanakomarova5415
    @svetlanakomarova54153 жыл бұрын

    Спасибо за видео, такие разборы алгоритмов конечно нужны

  • @user-cp1pj3oq9l
    @user-cp1pj3oq9l2 жыл бұрын

    Илья, респект за видео, для начинающих полезно бесспорно. Но всё же нужно уходить на темную сторону), делать запрос к ТЧ по условию и выборке удалить нужные строки. Думаю будет оптимальнее) решением.

  • @ViK-sq3ho
    @ViK-sq3ho6 жыл бұрын

    Спасибо Илья. Очень интересная идея видосов про алгоритмы.

  • @IlyaLeontyev

    @IlyaLeontyev

    6 жыл бұрын

    Благодарю )

  • @dmitrylyskov68
    @dmitrylyskov682 жыл бұрын

    В голове хвалебный текст крутится на страницу А4 десятым шрифтом, но нет времени. Надо учиться. Поэтому так: "Здорово! "

  • @filthycazul1136
    @filthycazul11362 жыл бұрын

    На самом деле поразительно, что так лаконично, с ржомбами и так мало просмотров(

  • @dstni
    @dstni6 жыл бұрын

    мне нравится!

  • @dmytroholoborodko8361
    @dmytroholoborodko83615 жыл бұрын

    Здравствуйте, Илья! Спасибо за ваши ролики, я их с удовольствием изучаю и узнаю очень много полезного. Скажите, почему для удаления строки вы использовали цикл "Пока" играя с индексами строки вместо цикла "Для Каждого" удаляя текущую строку по условию Если? Отдельное спасибо за ролики о нетиповом обновлении конфигураций. Собственно, этот комментарий, я наверное, больше написал чтобы выразить благодарность за вашу работу в youtube-сообществе 1с. Что так, что так будет верно, кто как хочет, так и ... как говориться :)

  • @DmitriiSafonov
    @DmitriiSafonov Жыл бұрын

    как сформулировать условие на поиск максимальной строки?

  • @ffonlfoff5005
    @ffonlfoff50055 жыл бұрын

    Илья, я начинающий. Объясните пожалуйста, почему процедуру создаёте на клиенте? Ведь на клиент передаются не все строки документа табличной части, а только видимые в данный момент, а остальные подгружаются. Что я не правильно понимаю?

  • @IlyaLeontyev

    @IlyaLeontyev

    5 жыл бұрын

    Сечете фишку ) Действительно при таком раскладе будет происходить постепенное считывание строк с сервера на клиент, что будет создавать неоправданные лишние серверные вызовы. Поэтому удаление строк лучше выполнить в серверном методе, вызвав его с клиента. Но цель этого видео была именно в демонстрации алгоритма - не хотел вызывать лишних вопросов.

  • @ffonlfoff5005

    @ffonlfoff5005

    5 жыл бұрын

    @@IlyaLeontyev Спасибо, а то я начал сомневаться, правильно ли я понимаю клиент серверное взаимодействие системы. Спасибо за ответ. )

  • @user-mr4sg3uf2x
    @user-mr4sg3uf2x5 жыл бұрын

    Илья, здравствуйте! помогите, пожалуйста, если алгоритм в следующем: мне надо удалить все строки через одну...т.е. удаляем первыю, вторую оставляем, третью-удаляеми т.д. Буду очень благодарна за ответ

  • @IlyaLeontyev

    @IlyaLeontyev

    5 жыл бұрын

    Татьяна, можно, например, просто поменять условие в моем примере. Вам надо не ставку НДС проверять в условном операторе, а четность индекса строки (Если ИндексСтроки%2 = 0 Тогда).

  • @user-mr4sg3uf2x

    @user-mr4sg3uf2x

    5 жыл бұрын

    @@IlyaLeontyev благодарю за ответ!

  • @alekseyo279

    @alekseyo279

    5 жыл бұрын

    С таким условием удалиться все строки кроме первой, по-моему.

  • @IlyaLeontyev

    @IlyaLeontyev

    5 жыл бұрын

    @@alekseyo279 попробуйте )

  • @gospodin_Nikto45454
    @gospodin_Nikto45454 Жыл бұрын

    снова напишу, почему раньше этого не видел)))) дикую дичь писал на сервере))

  • @leonidmessin22
    @leonidmessin224 жыл бұрын

    Функцию ПредопределенноеЗначение() оптимальнее вынести из цикла. Она производит обращение к серверу.

  • @IlyaLeontyev

    @IlyaLeontyev

    4 жыл бұрын

    Она производит вызов к серверу один раз, затем кеширует это значение. Поэтому оптимальней не станет.

  • @leonidmessin22

    @leonidmessin22

    4 жыл бұрын

    @@IlyaLeontyev буду знать теперь)

  • @morytsmith6693
    @morytsmith66935 жыл бұрын

    Я тоже каждый раз удивляюсь все новым извращениям. Твой алгоритм интересен, но я не согласен ) Лучший алгоритм - это тот который легко читается и легко модифицируется. Поэтому я для удаления выбрал перебор таблицы снизу уменьшая итератор. Больше никаких условий не нужно и ни за какими переменными не нужно следить. Просто уменьшаете индекс и удаляете нужные строки по пути. И в этот же обход можно добавить код не связанный с удалением. Особую улыбку вызывают те кто предлагают передавать в метод НайтиСтроки структуру с отбором и после обходить полученный массив) Удар по скорости и масшатиборванию. Потом встречаешь такое место где нужно добавить новое условие или дополнить код и переписываешь весь такой подход) Чем они думают?

  • @IlyaLeontyev

    @IlyaLeontyev

    5 жыл бұрын

    Жопой :)

  • @user-df4kb1io9l

    @user-df4kb1io9l

    3 жыл бұрын

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

  • @mendicator4319
    @mendicator43193 жыл бұрын

    А че не на сервере? Так же быстрее

  • @ovasiliev2000
    @ovasiliev20005 жыл бұрын

    Почём чёрный квадрат с иероглифами? Кто автор? Какой век?

  • @IlyaLeontyev

    @IlyaLeontyev

    5 жыл бұрын

    Не знаю, он прилагался к съемной квартире )

  • @LDO6
    @LDO66 жыл бұрын

    А я с конца цикл делаю.

  • @romanfomin5653

    @romanfomin5653

    6 жыл бұрын

    Согласен я так же делаю. Хотя на вкус и цвет, товарищей нет. Пример: ДокОбъект = Объект.ПоступлениеТоваровУслуг.ПолучитьОбъект(); КоличествоСтрок = ДокОбъект.Услуги.Количество()-1; Для Инд=0 По КоличествоСтрок-1 Цикл Строка = ДокОбъект.Услуги[КоличествоСтрок-Инд]; Если Строка.Сумма = 52 Тогда ДокОбъект.Услуги.Удалить(Строка); КонецЕсли; КонецЦикла; ДокОбъект.Записать();

  • @user-uf3uc9in9g
    @user-uf3uc9in9g6 жыл бұрын

    ПараметрыОтбора = Новый Структура; ПараметрыОтбора.Вставить("СтавкаНДС", ПредопределенноеЗначение("Перечисление.СтавкиНДС.БезНДС")); МассивСтрок = Объект.Товары.НайтиСтроки(ПараметрыОтбора); Для Каждого ЭлементМассива Из МассивСтрок Цикл ИндексСтроки = Объект.Товары.Индекс(ЭлементМассива); Объект.Товары.Удалить(ИндексСтроки); КонецЦикла; А не вот это вот всё....

  • @IlyaLeontyev

    @IlyaLeontyev

    6 жыл бұрын

    По-твоему, этот алгоритм проще? :) Я так не думаю. Но подход интересный, спасибо.

  • @user-uf3uc9in9g

    @user-uf3uc9in9g

    6 жыл бұрын

    Ок. что если у тебя удаление строки проходит по 10 критериям? 10 условий Если...КонецЕсли напишешь? Этот подход единственно верный, быстрый и лаконичный.

  • @IlyaLeontyev

    @IlyaLeontyev

    6 жыл бұрын

    А если тебе понадобится выполнить проверку на неравенство, что будешь делать? Допустим, нужно будет удалить строки, в которых ставка НДС не равна 18%.

  • @user-uf3uc9in9g

    @user-uf3uc9in9g

    6 жыл бұрын

    Молодец, соскочил с темы чотко! На неравенство уж точно не буду делать через индексы.

  • @victornikitenko8415

    @victornikitenko8415

    6 жыл бұрын

    Вмешаюсь немного в такой спор :), какой получился именно с этого вопроса-коммента Если рассматривать ТабЧасть как частный пример работы с Коллекциями, тогда в рамках Коллекций действительно может быть много примеров, в которых гораздо оптимальней установить отбор по большому ( больше одного ) составу параметров отбора. И затем с этим результатом отбора в виде Массив возникает большое многообразие способов их использования. Но самое интересное, что позволяет указать использование результатов отбора в виде массива, это демонстрация того, что Табличная часть является фактической коллекцией из ссылочных значений на Строки ТЧ, т.е. Строки ТабЧасти это такие специфические объекты, у которых всегда имеются ссылки и из них собираются коллекции, если в этом есть необходимость... А это все означает, что в данной коллекции (называемой ТабЧастью) можно выполнять удаление каждой строки в произвольном, хаотичном порядке, а не последовательным перебором "вперед" или "назад". Если же только что изложенное применять в жизни, то можно по условию удалить строчки из Коллекций, т.е. Для Каждого СтрокаТЧ из ТабЧасть Цикл

  • @Dm-if3vl
    @Dm-if3vl3 жыл бұрын

    +

  • @eurosetvk
    @eurosetvk3 жыл бұрын

    Жуть... теперь понятно, откуда ко мне на собеседование такие "программисты" приходят. В пять строк это делается с отрицательным итератором.

  • @vadimsergeev7874

    @vadimsergeev7874

    3 ай бұрын

    Пасть закрой недоносок и научись разработке иди

Келесі