Денис - 1С программист

Денис - 1С программист

С 1С знаком ещё со времён версии 7.7, на данный момент Платформа шагнула очень далеко вперёд, чтобы за ней поспевать, нужно постоянно учиться, искать новые «фишки», общаться с коллегами по цеху.
На канале выставляю обучающие видео, с собеседований, видео с практикой, ведь только на практике можно учиться!

Пікірлер

  • @SergeyBagramov1
    @SergeyBagramov110 күн бұрын

    Если обходить по индексу снизу вверх, но при этом человек поменяет местами индекс нескольких строчек, или ещё хуже, если будут удаляться, дробиться или добавляться строки - то индексы будут не в каком-то правильном порядке, а вообще могут плясать. Например: сделайте упорядочивание строк (стрелочками или через зажатый Shift), то не факт, что всё так и отработает. Поэтому я всегда использую через "МассивСтрокНаУдаление", т.е. через 2 цикла.

  • @alimuradov
    @alimuradov2 ай бұрын

    Я всегда через НайтиСтроки ищу с отбором строки к удалнию, потому просто удаляю строки в цикле. На видео это второй вариант с массивом в чуть более другой интерпретации.

  • @denfreeman9310
    @denfreeman9310Ай бұрын

    Не подходит к предложеной задаче. Как в НайтиСтроки Вы будете искать значение меньше или равно 30?

  • @NoName-nt7vj
    @NoName-nt7vj3 ай бұрын

    Коллега, за такое решение задачи с кнопкой на форме документа Вас просто без слов выставят за дверь. Не позортесь.

  • @user-bf2us9ow5c
    @user-bf2us9ow5c3 ай бұрын

    Зачем вы ломаете новичкам мозг! Проще всего и нагляднее, создать массив, пробежать циклом табличную часть и проверить на условие количество < введеное количество, добавляем строки в массив если условие истина. Потом циклом по каждому элементу масива удаляем строку табличной части. УдаляемыеСтроки = Новый массив; Для каждого СтрокаТЧ из ТабличнаяЧасть Цикл Если СтрокаТч.Количество <= введенноеЗначение Тогда удаляемыеСтроки. Добавить(СтрокаТч) КонецЕсли; КонецЦикла; Для каждого удаляемаяСтрока из УдаляемыеСтроки Цикл ТабличнаяЧасть. Удалить(УдаляемаяСтрока) КонецЦикла; Это намного проще воспринимать , чем городить заумные алгоритмы

  • @hacsi1
    @hacsi13 ай бұрын

    Спасибо большое.

  • @stone_smile
    @stone_smile4 ай бұрын

    Здравствуйте, меня заинтересовала покупка вашего канала, как с вами можно связаться?

  • @mobilitymoon5232
    @mobilitymoon52326 ай бұрын

    К чему это видео на 30 минут, если правильные ответы можно найти за 15 секунд. Еще можно через запрос, сделай видео на 40 минут!

  • @darwind6675
    @darwind66757 ай бұрын

    Здравствуйте, подскажите разве в 1с нет запросов на удаление? Как в msAccess. Проще выполнить такой запрос.

  • @ilya2184
    @ilya21848 ай бұрын

    Про цикл с минуса до 0 - было новое, не видел такого. Модифицированность вручную - плохая практика, кнопка будет доступна на форме только для чтения: свойство команды 'изменяет сохраняемые данные'.

  • @user-vz3ng7fj5q
    @user-vz3ng7fj5q9 ай бұрын

    Добрый день! Есть одна неточность, если я хочу удалить строки с количеством = 0, то у меня ничего не получится, потому что условие ЗначениеЗаполнено(Число) не выпонится, надо писать Если Число <> Неопределено

  • @VSergeyV
    @VSergeyV10 ай бұрын

    Задачка из книги Радченко 1с программирование для начинающих, про массивы)))

  • @user-vv3wi9nv5w
    @user-vv3wi9nv5w11 ай бұрын

    Я так понял, что 1С делали русские и они мыслили в категориях русского языка, который невозможно изучить по правилам, а только лишь постоянными употреблением языковых оборотов и тупого заучивания бесконечных особенностей. 🙂

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

    Сразу понял какая ошибка будет. Смещение индексов

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

    Денис, пилите ещё видосы по 1с, пожалуйста.

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

    Снизу вверх - я до такого не допёр)

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

    Круто! Спасибо, за отличное видео

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

    Где на собеседовании такие задачи дают? Мне дали задачу сделать отчет abc анализ продаж прямьім запросом. Желательно одним запросом к базе. Там вроде оконньіе функции sql надо использовать.

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

    А почему больше нет видосов на канале по 1С?

  • @user-qh5bf5td1d
    @user-qh5bf5td1d Жыл бұрын

    автор, а вы видео удалили и больше не снимаете? Или переехали куда то на другой канал?

  • @user-qw1yk1uk2m
    @user-qw1yk1uk2m Жыл бұрын

    На и анале только одно видео

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

    0 - тоже число

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

    Ни разу не программист, чисто пользователь. Почему просто не запустить первый вариант 2 раза?)

  • @8tshk8
    @8tshk8 Жыл бұрын

    А если три строки подряд будут подходить под условие удаления? А если 500? А если все, например, 100500?

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

    @@8tshk8 а какая разница, если шаг 1 строчка. Пропустит, условно четные, следующим циклом их соберет, разве нет🙈

  • @Starponyx
    @Starponyx8 ай бұрын

    @@dimapetrov84нет

  • @user-rf8dz8sm4o
    @user-rf8dz8sm4o Жыл бұрын

    а не проще запросом выгрузить и загрузить?

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

    Хотелось бы больше видео на вашем канале. Очень понравился разбор данной задачи.

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

    1с - гамно

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

    Зачем в начале ролика заикаться относительно системных знаний, если дальше идут подобные рассуждения? В данном случае мы полагаемся на реализацию итератора, которая нам неизвестна и на этом нужно ставить точку. Если вкратце, то данное поведение итератора не документировано, и на его стабильность нельзя полагаться. Индекс строки ни о чем не говорит, так как в данном случае это индекс строки которую выдал итератор, а не индекс который связан с самим итератором. Вообще вполне возможно в какой-нибудь из платформ "неправильный" подход внезапно покажет корректные результаты, а сам подход будет объявлен законным, так как будет регламентирована логика работы итератора. Как пример: ListIterator из java. Поэтому попытки объяснить что происходит просто не имеют смысла. Если рассмотреть пример более глубоко, то по сути мы имеем дело с коллекцией, чья реализация небезопасна в многопоточной среде, так как используемый итератор, полагается на то что коллекция иммутабельна (хотя бы на время его существования), хотя на примере видно, что даже в однопоточной среде мы легко можем изменить коллекцию.

  • @user-yu8mh7yt5y
    @user-yu8mh7yt5y Жыл бұрын

    Красавец! Все термины, которые знаете употребили, или еще остались? Выпендриваетесь, сударь!

  • @denfreeman9310
    @denfreeman9310Ай бұрын

    @@user-yu8mh7yt5y При этом еще и все перепутал... индекс ему итератор выдает, ага.

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

    3 вариант использовали в 7.7, т.к. там других вариантов не было. Вариант 2 классический способ для 8.2, 8.3, используется в типовых механизмах

  • @user-gq8ub8dk8o
    @user-gq8ub8dk8o Жыл бұрын

    Подскажите, пишет ошибку: Ожидается ключевое слово "Тогда" Если Значение "?" заполнено (Число) Тогда (Проверка: Сервер)

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

    ЗначениеЗаполнено() в одно слово пишется

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

    Добрый день. А Вы не думали над тем, чтобы записать уроки по созданию простой конфигурации учёта оргтехники на фирме?

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

    Почему вы не используете ВвестиЧислоАсинх () ???

  • @8tshk8
    @8tshk8 Жыл бұрын

    В каком релизе он появился? Версию платформы и совместимости нужно учитывать.

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

    Для Индекс=-ВГраница По 0 Цикл - шедевр! очень красиво

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

    Получение элемента коллекции по индеку - гораздо медленнее обхода коллекции через Для Каждого. Говнокод, короче.

  • @user-ox9zt3bd5p
    @user-ox9zt3bd5p Жыл бұрын

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

  • @user-sg4xe3tv1q
    @user-sg4xe3tv1q Жыл бұрын

    +++ все по фактам

  • @user-cb8jr3rj7s
    @user-cb8jr3rj7s Жыл бұрын

    Пацаны запомните, не работодатель отбирает кандидата, а вы отбираете работодателя, пусть они делают тестовые задания))

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

    Понравилось. Отличное понятное видео.

  • @user-bk7tx6vj7h
    @user-bk7tx6vj7h2 жыл бұрын

    Отличное видео!! 👍👑 Выпускайте ещё такие видео!!

  • @user-yf5jz1rl6h
    @user-yf5jz1rl6h2 жыл бұрын

    Спасибо за вашу работу! Вы очень доступно объясняете, интересно и полезно!

  • @user-vq5vb7tz8v
    @user-vq5vb7tz8v2 жыл бұрын

    30 минут делать видео, который каждый, кто хоть раз писал удаление строк гуглил за пару минут.

  • @user-oj6vt8ht6x
    @user-oj6vt8ht6x2 жыл бұрын

    Отличное видео! Спасибо! Ждём ещё роликов

  • @user-ci1hj1il4h
    @user-ci1hj1il4h2 жыл бұрын

    А если в тч 10 тыс. Строк? Как долго перебирать будет? :) нужно запрос делать, получив все строки удовлетворяющие условию, отсортировать по убыванию номер строки и перебирать только их для того, чтобы удалить)

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

    Яб выгрузил таблицу в запрос, условием отобрал то что надо оставить и обратно бы загрузил)

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

    @@recudo7844 Кросавчег, чё. +Серверный вызов. +Насилие SQL-сервера бессмысленной загрузкой туда параметра большого объема. +Накладные расходы на менеджмент временных таблиц SQL-сервером. Спасибо тебе, благодаря такому коду я недёшево беру за улучшение производительности кастомок.

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

    Зачем лишний серверный вызов, если можно обойтись без него?

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

    Неужели кто-то ещё перебирает данные циклами. ))

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

    @@TTrimasova_life А какие по-вашему варианты?

  • @oleg_avgurov
    @oleg_avgurov2 жыл бұрын

    А вот так её решил. Вроде, тоже правильно? Процедура ПослеВводаКоличества(Число, Параметры) Экспорт Если НЕ Число = Неопределено Тогда // создаём бесконечный цикл Пока Истина Цикл // определяем начальное количество строк в документе НачальноеЧислоСтрок = Объект.ТабличнаяЧасть1.Количество(); // цикл удаления строк по условию количество меньше введённого числа Для Каждого Строка Из Объект.ТабличнаяЧасть1 Цикл Если Строка.Количество < Число Тогда Объект.ТабличнаяЧасть1.Удалить(Строка); ЭтаФорма.Модифицированность = Истина; КонецЕсли; КонецЦикла; // определяем количество строк в документе после выполнения цикла удаления КонечноеЧислоСтрок = Объект.ТабличнаяЧасть1.Количество(); // условие прерывания бесконечного цикла Если НачальноеЧислоСтрок = КонечноеЧислоСтрок Тогда Прервать; КонецЕсли; КонецЦикла; КонецЕсли; КонецПроцедуры

  • @denfreeman9310
    @denfreeman9310Ай бұрын

    Во внутренний цикл в Если...КонецЕсли надо тоже Прервать; иначе будет весело 🙂

  • @user-hd7hw6gt2m
    @user-hd7hw6gt2m2 жыл бұрын

    Огромное спасибо. Очень понятно

  • @user-vi1hg5ic5d
    @user-vi1hg5ic5d2 жыл бұрын

    Я ничего не понял

  • @user-lj9vd9lj7y
    @user-lj9vd9lj7y2 жыл бұрын

    проблема часто не в отсутствии системных знаний. ряд функций человек помнит, только если постоянно их использует Например, те, кто занимается чисто разработкой, обычно не плохо помнят многое, что касается интерфейса, но могут забыть, как настраивается доступ. И наоборот, те, кто основную работу выполняют на поддержке и исправлении, могут напрочь забыть многое из интерфейсных решений. Отдельная тема - помнить подробно настройки и особенности СКД. Я просто гарантирую, что если регулярно не делать отчеты хотя бы пол-года, то скил заметно снижается.

  • @DenProgMan
    @DenProgMan2 жыл бұрын

    Полностью согласен с данным комментарием.

  • @MrTorfable
    @MrTorfableАй бұрын

    Блин, оказывается это не только у меня так. А я думал, что я просто тупой😅

  • @TheCherTolik
    @TheCherTolik2 жыл бұрын

    Почему нельзя просто строки по условию перебрать в массив и позже перебрать массив строк?

  • @user-ox9zt3bd5p
    @user-ox9zt3bd5p Жыл бұрын

    А кто сказал что нельзя ? 😂

  • @timin040481
    @timin0404812 жыл бұрын

    Как же все сложно. Есть более простые способы. Правильно комментаторы говорят массив, запрос + перезапись

  • @user-tx3ep1ww3z
    @user-tx3ep1ww3z Жыл бұрын

    Запрос это уже обращение к серверу

  • @lazarusdvu
    @lazarusdvu2 жыл бұрын

    Первое что пришло в голову - это повторять этот цикл до тех пор, пока он не перестал бы удалять строки ) Вообще я сюда подеградировать пришел и позалипать на котиков, а не на задачки по программированию в час ночи. Мое негодование было на столько сильно что пришлось даже подписаться

  • @user-hd2hn3pe5j
    @user-hd2hn3pe5j2 жыл бұрын

    Запросом по табличной части с отбором по количеству получаем только нужные строки и перезаписываем табличную часть выборкой из запроса. и всё. никаких циклов, кучи проверок и индексов.

  • @8tshk8
    @8tshk8 Жыл бұрын

    Тоже подумал про данный вариант. Кстати, по поводу выполнения на стороне клиента. Это тоже может быть большим вопросом. Когда строк у документа 10 - это одно дело. А когда 10000?

  • @user-hd2hn3pe5j
    @user-hd2hn3pe5j Жыл бұрын

    @@8tshk8 сложно представить в каком случае нужно вводить такое количество строк в один документ и в один день. пока такое не встречал даже в магазинах канцелярии. при больших объемах данных в типовых 1с реализована запись частями, а не одним куском.

  • @user-hd2hn3pe5j
    @user-hd2hn3pe5j Жыл бұрын

    @@8tshk8 сложно представить в каком случае нужно вводить такое количество строк в один документ и в один день. пока такое не встречал даже в магазинах канцелярии. при больших объемах данных в типовых 1с реализована запись частями, а не одним куском.

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

    Но есть проблема. Если документ изменен в пользовательского режиме.

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

    Не оптимально вызывать сервер, когда можно обойтись клиентом.

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

    Капец как сложно. Выгружаешь строки в массив, идешь по массиву без всяких индексов и удаляешь строки. И да, все что ты написал надо делать на сервере, еще -1 балл

  • @user-fm5pf3wc3d
    @user-fm5pf3wc3d2 жыл бұрын

    Спасибо!

  • @user-oj7pc6cb4y
    @user-oj7pc6cb4y2 жыл бұрын

    Да откуда у Вас такие задачи то. Это прям основа основ, такое даже спрашивать стыдно.

  • @fanArsenala87
    @fanArsenala872 жыл бұрын

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