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

  Рет қаралды 12,465

Бывший 1Сник

Бывший 1Сник

6 жыл бұрын

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

Пікірлер: 51
@dimo4174
@dimo4174 Ай бұрын
Илья спс)) наткнулся на видео, взял за основу тобой рассмотренный пример для удаления строк с одинаковой номенклатурой из табличной части, оставляя только одну и накапливая в ней всё количество))
@user-lj4dm9gs7v
@user-lj4dm9gs7v 6 жыл бұрын
Спасибо за видео, Илья. Как всегда по делу и всё чётко.
@svetlanakomarova5415
@svetlanakomarova5415 3 жыл бұрын
Спасибо за видео, такие разборы алгоритмов конечно нужны
@AnatoliyFedorenko77
@AnatoliyFedorenko77 3 жыл бұрын
Илья, Спасибо за видео. Очень помогло решить эту "нерешаемую" задачу))
@research_Development
@research_Development 6 жыл бұрын
Нам нужно БОЛЬШЕ алгоритмов - коротких и простых))
@user-lj4dm9gs7v
@user-lj4dm9gs7v 6 жыл бұрын
это точно)))
@user-df4kb1io9l
@user-df4kb1io9l 3 жыл бұрын
@@user-lj4dm9gs7v Первый раз слышу от девушки, что им нужно больше - "коротких"))
@user-xl9pw9mm8s
@user-xl9pw9mm8s 2 жыл бұрын
Щ
@Olex_Under
@Olex_Under 6 жыл бұрын
Хорошая идея разбирать алгоритмы. Жду новых видео
@alexbagirov2583
@alexbagirov2583 5 жыл бұрын
Класс! Спасибо! Именно практика интересна! Я консультант, программировать учусь с нуля. Мне было интересно!
@ViK-sq3ho
@ViK-sq3ho 6 жыл бұрын
Спасибо Илья. Очень интересная идея видосов про алгоритмы.
@IlyaLeontyev
@IlyaLeontyev 6 жыл бұрын
Благодарю )
@dmitrylyskov68
@dmitrylyskov68 2 жыл бұрын
В голове хвалебный текст крутится на страницу А4 десятым шрифтом, но нет времени. Надо учиться. Поэтому так: "Здорово! "
@user-cp1pj3oq9l
@user-cp1pj3oq9l 2 жыл бұрын
Илья, респект за видео, для начинающих полезно бесспорно. Но всё же нужно уходить на темную сторону), делать запрос к ТЧ по условию и выборке удалить нужные строки. Думаю будет оптимальнее) решением.
@dstni
@dstni 6 жыл бұрын
мне нравится!
@DmitriiSafonov
@DmitriiSafonov Жыл бұрын
как сформулировать условие на поиск максимальной строки?
@dmytroholoborodko8361
@dmytroholoborodko8361 5 жыл бұрын
Здравствуйте, Илья! Спасибо за ваши ролики, я их с удовольствием изучаю и узнаю очень много полезного. Скажите, почему для удаления строки вы использовали цикл "Пока" играя с индексами строки вместо цикла "Для Каждого" удаляя текущую строку по условию Если? Отдельное спасибо за ролики о нетиповом обновлении конфигураций. Собственно, этот комментарий, я наверное, больше написал чтобы выразить благодарность за вашу работу в youtube-сообществе 1с. Что так, что так будет верно, кто как хочет, так и ... как говориться :)
@filthycazul1136
@filthycazul1136 2 жыл бұрын
На самом деле поразительно, что так лаконично, с ржомбами и так мало просмотров(
@ffonlfoff5005
@ffonlfoff5005 5 жыл бұрын
Илья, я начинающий. Объясните пожалуйста, почему процедуру создаёте на клиенте? Ведь на клиент передаются не все строки документа табличной части, а только видимые в данный момент, а остальные подгружаются. Что я не правильно понимаю?
@IlyaLeontyev
@IlyaLeontyev 5 жыл бұрын
Сечете фишку ) Действительно при таком раскладе будет происходить постепенное считывание строк с сервера на клиент, что будет создавать неоправданные лишние серверные вызовы. Поэтому удаление строк лучше выполнить в серверном методе, вызвав его с клиента. Но цель этого видео была именно в демонстрации алгоритма - не хотел вызывать лишних вопросов.
@ffonlfoff5005
@ffonlfoff5005 5 жыл бұрын
@@IlyaLeontyev Спасибо, а то я начал сомневаться, правильно ли я понимаю клиент серверное взаимодействие системы. Спасибо за ответ. )
@user-mr4sg3uf2x
@user-mr4sg3uf2x 6 жыл бұрын
Илья, здравствуйте! помогите, пожалуйста, если алгоритм в следующем: мне надо удалить все строки через одну...т.е. удаляем первыю, вторую оставляем, третью-удаляеми т.д. Буду очень благодарна за ответ
@IlyaLeontyev
@IlyaLeontyev 6 жыл бұрын
Татьяна, можно, например, просто поменять условие в моем примере. Вам надо не ставку НДС проверять в условном операторе, а четность индекса строки (Если ИндексСтроки%2 = 0 Тогда).
@user-mr4sg3uf2x
@user-mr4sg3uf2x 6 жыл бұрын
@@IlyaLeontyev благодарю за ответ!
@alekseyo279
@alekseyo279 5 жыл бұрын
С таким условием удалиться все строки кроме первой, по-моему.
@IlyaLeontyev
@IlyaLeontyev 5 жыл бұрын
@@alekseyo279 попробуйте )
@gospodin_Nikto45454
@gospodin_Nikto45454 2 жыл бұрын
снова напишу, почему раньше этого не видел)))) дикую дичь писал на сервере))
@morytsmith6693
@morytsmith6693 5 жыл бұрын
Я тоже каждый раз удивляюсь все новым извращениям. Твой алгоритм интересен, но я не согласен ) Лучший алгоритм - это тот который легко читается и легко модифицируется. Поэтому я для удаления выбрал перебор таблицы снизу уменьшая итератор. Больше никаких условий не нужно и ни за какими переменными не нужно следить. Просто уменьшаете индекс и удаляете нужные строки по пути. И в этот же обход можно добавить код не связанный с удалением. Особую улыбку вызывают те кто предлагают передавать в метод НайтиСтроки структуру с отбором и после обходить полученный массив) Удар по скорости и масшатиборванию. Потом встречаешь такое место где нужно добавить новое условие или дополнить код и переписываешь весь такой подход) Чем они думают?
@IlyaLeontyev
@IlyaLeontyev 5 жыл бұрын
Жопой :)
@user-df4kb1io9l
@user-df4kb1io9l 3 жыл бұрын
Правильный алгоритм удаления снизу вверх, что бы данные проваливались сверху вниз.
@leonidmessin22
@leonidmessin22 4 жыл бұрын
Функцию ПредопределенноеЗначение() оптимальнее вынести из цикла. Она производит обращение к серверу.
@IlyaLeontyev
@IlyaLeontyev 4 жыл бұрын
Она производит вызов к серверу один раз, затем кеширует это значение. Поэтому оптимальней не станет.
@leonidmessin22
@leonidmessin22 4 жыл бұрын
@@IlyaLeontyev буду знать теперь)
@mendicator4319
@mendicator4319 3 жыл бұрын
А че не на сервере? Так же быстрее
@ovasiliev2000
@ovasiliev2000 6 жыл бұрын
Почём чёрный квадрат с иероглифами? Кто автор? Какой век?
@IlyaLeontyev
@IlyaLeontyev 6 жыл бұрын
Не знаю, он прилагался к съемной квартире )
@LDO6
@LDO6 6 жыл бұрын
А я с конца цикл делаю.
@romanfomin5653
@romanfomin5653 6 жыл бұрын
Согласен я так же делаю. Хотя на вкус и цвет, товарищей нет. Пример: ДокОбъект = Объект.ПоступлениеТоваровУслуг.ПолучитьОбъект(); КоличествоСтрок = ДокОбъект.Услуги.Количество()-1; Для Инд=0 По КоличествоСтрок-1 Цикл Строка = ДокОбъект.Услуги[КоличествоСтрок-Инд]; Если Строка.Сумма = 52 Тогда ДокОбъект.Услуги.Удалить(Строка); КонецЕсли; КонецЦикла; ДокОбъект.Записать();
@Dm-if3vl
@Dm-if3vl 3 жыл бұрын
+
@user-uf3uc9in9g
@user-uf3uc9in9g 6 жыл бұрын
ПараметрыОтбора = Новый Структура; ПараметрыОтбора.Вставить("СтавкаНДС", ПредопределенноеЗначение("Перечисление.СтавкиНДС.БезНДС")); МассивСтрок = Объект.Товары.НайтиСтроки(ПараметрыОтбора); Для Каждого ЭлементМассива Из МассивСтрок Цикл ИндексСтроки = Объект.Товары.Индекс(ЭлементМассива); Объект.Товары.Удалить(ИндексСтроки); КонецЦикла; А не вот это вот всё....
@IlyaLeontyev
@IlyaLeontyev 6 жыл бұрын
По-твоему, этот алгоритм проще? :) Я так не думаю. Но подход интересный, спасибо.
@user-uf3uc9in9g
@user-uf3uc9in9g 6 жыл бұрын
Ок. что если у тебя удаление строки проходит по 10 критериям? 10 условий Если...КонецЕсли напишешь? Этот подход единственно верный, быстрый и лаконичный.
@IlyaLeontyev
@IlyaLeontyev 6 жыл бұрын
А если тебе понадобится выполнить проверку на неравенство, что будешь делать? Допустим, нужно будет удалить строки, в которых ставка НДС не равна 18%.
@user-uf3uc9in9g
@user-uf3uc9in9g 6 жыл бұрын
Молодец, соскочил с темы чотко! На неравенство уж точно не буду делать через индексы.
@victornikitenko8415
@victornikitenko8415 6 жыл бұрын
Вмешаюсь немного в такой спор :), какой получился именно с этого вопроса-коммента Если рассматривать ТабЧасть как частный пример работы с Коллекциями, тогда в рамках Коллекций действительно может быть много примеров, в которых гораздо оптимальней установить отбор по большому ( больше одного ) составу параметров отбора. И затем с этим результатом отбора в виде Массив возникает большое многообразие способов их использования. Но самое интересное, что позволяет указать использование результатов отбора в виде массива, это демонстрация того, что Табличная часть является фактической коллекцией из ссылочных значений на Строки ТЧ, т.е. Строки ТабЧасти это такие специфические объекты, у которых всегда имеются ссылки и из них собираются коллекции, если в этом есть необходимость... А это все означает, что в данной коллекции (называемой ТабЧастью) можно выполнять удаление каждой строки в произвольном, хаотичном порядке, а не последовательным перебором "вперед" или "назад". Если же только что изложенное применять в жизни, то можно по условию удалить строчки из Коллекций, т.е. Для Каждого СтрокаТЧ из ТабЧасть Цикл
@eurosetvk
@eurosetvk 3 жыл бұрын
Жуть... теперь понятно, откуда ко мне на собеседование такие "программисты" приходят. В пять строк это делается с отрицательным итератором.
@vadimsergeev7874
@vadimsergeev7874 6 ай бұрын
Пасть закрой недоносок и научись разработке иди
ПЛАН ВИДОВ ХАРАКТЕРИСТИК в 1С
31:15
Бывший 1Сник
Рет қаралды 33 М.
Summer shower by Secret Vlog
00:17
Secret Vlog
Рет қаралды 14 МЛН
Массивы в языке 1С. Примеры работы
26:02
Великовозрастный программист. Стоит ли идти в IT в 40 лет
8:17
Дилетант широкого профиля
Рет қаралды 11 М.
Сверка данных 1С в Excel
9:12
Бывший 1Сник
Рет қаралды 8 М.
Таблица значений
14:19
Программирование 1С
Рет қаралды 6 М.
Summer shower by Secret Vlog
00:17
Secret Vlog
Рет қаралды 14 МЛН