Отличный стрим! Наглядно показал эволюцию мысли разработчика. Я время провел с пользой. В своей самописке использую второй вариант, так как его легко проверить и пересобрать на коленке.
@ИльяПаршин-и2щ4 жыл бұрын
Ждем еще стримов с решением задач! Было познавательно.
@cilantro_bumblebee4 жыл бұрын
Илья! Большое спасибо за такой формат, делай почаще разбор типовых задач. Обычно от обучающих видео меня тошнит, а тут почти 2 часа на одном дыхании. Узнал кое что новое...
@bsnchita4 жыл бұрын
Решать текущие задачи или повторять уже решенные из практики и не бояться повторяться (мол была уже печатная форма и больше не надо). Если с десяток раз посмотреть как делается печатная форма например, то на одиннадцатый уже сам сможешь ее сделать. Если сам не знаешь можно попросить накидают задании для простых доработок, а час в день для развития канала со стримом (без отвлечении на чат) это немного.
@alexmajak31596 ай бұрын
Илья очень позитивный человек)
@MrDaikon14 жыл бұрын
Чётко! Давай ещё!
@spacedude60584 жыл бұрын
Все четко показал! Спасибо
@РаяМаркова-щ9с4 жыл бұрын
Спасибо большое, всегда очень полезно и интересно 😊
@masterguyver843 жыл бұрын
Огромное спасибо тебе, Илья, за твой титанический труд!!!
@yar85194 жыл бұрын
было интересно, спасибо, определенно продолжать формат, в следующем хотелось бы видеть про ПФ, самое мозговыносящее, но и здесь конечно 3ий вариант показался сложноватым
@Mr_Kitaev2 жыл бұрын
Ох, великолепные выводы))
@ОлегАхметдинов-з6д4 жыл бұрын
Илья, родной, Спасибо тебе КОСМИЧЕСКОЕ за интересный видос в моей любимой рубрике! Люто лайкую и даю тебе жирный сигнал что такие видосы ооочень интересны и нужны! Ставлю таймер до выхода нового ролика из этой рубрики. Гагарин верит в тебя!!!)))
@АнатолийГлушков-у4м4 жыл бұрын
Спасибо!
@krankkrankovich4 жыл бұрын
Супер! Нужен стрим или урок по использованию консоли запросов и конструктора запросов!
@IlyaLeontyev4 жыл бұрын
Про запросы IRONSKILLS классные видео записали: kzbin.info/www/bejne/f3-Zi5VtarShp7c kzbin.info/www/bejne/mJ2YgaaHg995fsU
@sergeystelmakh24873 жыл бұрын
Спасибо. Супер, продолжение будет?
@IlyaLeontyev3 жыл бұрын
До конца кода будем готовиться к спецу по платформе. А там видно будет )
@ДмитрийГречушкин-ю1ъ4 жыл бұрын
Добрый день. На большом количестве штрихкодов конкатенация строк не есть хорошо - лучше использовать функцию СтрСоединить(, ) (почему - копайте мануал). Проверка ШтрихкодИтого = "" это плохо, лучше использовать функцию "ПустаяСтрока()" проверка на пустую строку.
@k12370rty4 жыл бұрын
да.. из-за конкатенации в цикле на "длинном пробеге" даже 1с бывает вылетать..переполнение памяти или что-то подобное пишет.. Если Илья учил Java там тоже есть спец методы класса String для обхода этой траблы
сколько людей столько и мнений, я бы на сервер передал массив структуры без контекста, в ответ получил таблицу... вообщем тут не может быть верного решения, кроме первого, даже с кешированием! спасибо интересно было посмотреть, теперича давай разборы билетов по спецу клепай, только не забудь их в отдельный плейлист
@NikieMSE4 жыл бұрын
Добавлю свои 5 копеек. Считается плохой практикой называть переменные именами стандартных функций языка 1С. Например, в конструкции "Для каждого Строка из ТЧ Цикл" лучше писать "Для каждого СтрокаТЧ из ТЧ Цикл". Про запятые в перечислении ключей структуры тоже есть мнение - лучше один раз запомнить, что после каждой запятой следует пробел, чем то, в каких случаях его ставить, а в каких нет. Но в целом, спасибо за труд. Для новичков очень полезный контент.
@Imstalcon4 жыл бұрын
Илюха классный стрим, очень понравился, а на холиваров не обращай внимания, они говорят и ничего не делают!
@k12370rty4 жыл бұрын
лайфхак: запрос отработает быстрее если просто сделать соединение по номенклатуре. в реальности дофига штрих-кодов вряд ли будет когда-нибудь. получить все имеющиеся варианты для номенклатуры и потом заполнять по совпадающим. к чему я это..условия "в" очень слабое по производительности. Так что выбираем только номенклатуру.. левым соединением выбираем шк.. потом уже заполняем. похожее проверял на базах 400gb поверьте мне это самый быстрый вариант
@ДмитрийГречушкин-ю1ъ4 жыл бұрын
Дополнительно - не забудьте добавить индекс по полям соединения во временной таблице, производительность ещё больше увеличиться
@Anton-ni8un4 жыл бұрын
@@ДмитрийГречушкин-ю1ъ, только на больших выборках, на малых не будет разницы.
@ДмитрийГречушкин-ю1ъ4 жыл бұрын
@@Anton-ni8un согласен полностью - на меленьких небольшая просадка по времени на создание индекса (но она совсем незначительная)
@dsoldatkin4 жыл бұрын
Илья, По наитию всегда использовал 2 вариант )) Спасибо за Вариант номер 3 ))). Спеца по платформе нет, если что )))
@IlyaLeontyev4 жыл бұрын
Приходи тогда на стримы по подготовке к спецу ) kzbin.info/aero/PLh28ogpgRJUPQDnx1uV9p19jLbpyBa3ua
@ДедушкаПовидло-к1я4 жыл бұрын
Илья, здравствуйте. Может вы знаете, где и как можно свободно приобрести комплект разработчика без этих доп.проверок (юр лицо + прохождение каких-то специальных курсов)?
@IlyaLeontyev4 жыл бұрын
Попробуй заказать вот здесь: www.softmagazin.ru/1c/4601546046574/ Или здесь: www.online-ufa.ru/market/programmy-1s-predpriyatie/1c-komplekt-spetsialista-po-razrabotke-i-vnedreniyu/ Если все равно будут требовать покупку курса, покупай видеокурс за 2100 от УЦ1 )
@ДедушкаПовидло-к1я4 жыл бұрын
@@IlyaLeontyev Спасибо. Отказали((
@РавшанМамажанов-з7ж2 жыл бұрын
Илья, скажите пожалуйста за какую часовую оплату выт бы сделали эту задачу?
@Maksim-ss4bv4 жыл бұрын
Илья, вопрос немного не по теме, может ты уже где-то об этом курсе и говорил, что скажешь про курс ПРОФБУХ8 "Бухгалтерский и налоговый учет в 1С:Бухгалтерия 8 ред. 3 от А до Я"? стоит ли тратить время (там больше 100 часов)...?
@IlyaLeontyev4 жыл бұрын
Очень и очень дорого ) Я в итоге его не смотрел.
@Integrations1Cv84 жыл бұрын
Вот прикол был когда камеру на монитор не переставили. )) Вертикальный разделитель не был рассмотрен - в процессе выполнения задачи, клиент решил что он ему не нужен... ))
@p_and_g4 жыл бұрын
ИЛЬЯ ЭТИ ОЧКИ ОДЕВАЕШЬ ДЛЯ ЗАЩИТЫ ОТ БЛИКОВ ОТ МОНИТОРА ? ИЛИ КОГДА ОПАЗДЫВЕШЬ НА СТРИМ?)))
@IlyaLeontyev4 жыл бұрын
Эти очки - фишка формата реальных задач ) Типа это очень круто - решать реальные задачи вместо рафинированных примеров.
@СергейИвахов-с3ц4 жыл бұрын
Ух, какие токсичные люди в чате. Специалисты они может и хорошие, но общаться и работать с ними, наверное, тяжело. Высокомерие сквозит в каждом замечании.
@АртемЩербаков-ю5р8з3 жыл бұрын
Когда у специалиста есть понимание компиляций, передачи ТЗ через временное хранилище, решение занимает столько же время, как и во втором способе. Поэтому запрос в цикле и являться ошибкой.
@olegdragun5761 Жыл бұрын
Скажите, вложенный запрос в «где»- это порядочно вообще?
@vyacheslavv61804 жыл бұрын
Колби Ковингтон ещё и в 1С шарит? Ну могет 😀
@mikhailkamenev26804 жыл бұрын
Добавление элементов на форму при помощи редактора для меня равноценно удару серпом по тестикулам. Понятно, что это учебный пример, и основная тема вообще не о том. Илья, придерживаетесь ли Вы в своей регулярной практике концепции программной доработки типовых форм? Если да, то было бы интересно посмотреть стрим на эту тему. Спасибо.
@СергейКанашевич-т4в4 жыл бұрын
Да, поддерживаю эту тему.
@First26034 жыл бұрын
А почему это плохо?
@СергейКанашевич-т4в4 жыл бұрын
@@First2603 удобнее при обновлении типовых.
@bsnchita4 жыл бұрын
В расширении же делал. Чем там то плохо не программное добавление.
@mikhailkamenev26804 жыл бұрын
@@bsnchita может на новых релизах с этим получше, но на 14-15 платформе было нереальное количество проблем с добавленными интерактивно элементами. Не отображались без видимых причин. Или после добавления реквизита формы нельзя было редактировать его свойства, приходилось переоткрывать под другой версией платформы ради этого. С программным добавлением в принципе могут быть только две проблемы: а) в новом релизе убрали/переименовали типовую группу, в которую вы добавили свой элемент. б) элемент связан с типовым реквизитом, который убрали/переименовали. Обе ситуации относительно редкие. Но даже в этих случаях ошибки исправляются проще.
@КириллЮмин-л3д3 жыл бұрын
Надо было объяснить, чтобы сделать запрос в основную базу из расширения не обязательно было добавлять объекты, в данном случае, регистр. Все будет прекрасно работать и без добавления. Вы это сделали только для удобства кодинга.
@xandrewpwnz3 жыл бұрын
За мобилу респект
@p_and_g4 жыл бұрын
РАЗРЕШЕНИЕ ЭКРАНА УДОБНОЕ! В СМАРТФОНЕ МОЖНО СМОТРЕТЬ! ВСЕ ВИДНО!!!
@tsv85604 жыл бұрын
А я в подобных задачах в расширение формы не добавляю. Ибо это очень гемморно в том плане что добавляется куча всего в расширение ненужного и даже вредного. Есть общий модуль ПодключаемыеКоманды В нем например добавляю: &После("ПриСозданииНаСервере") Процедура ЗП_ПриСозданииНаСервере(Форма, ПараметрыРазмещения = Неопределено) Экспорт Если Форма.ИмяФормы = "Документ.РеализацияТоваровУслуг.Форма.ФормаСписка" Тогда Форма.Список.ТекстЗапроса = СтрЗаменить(Форма.Список.ТекстЗапроса,"ДокументРеализацияТоваровУслуг.ВидОперации КАК ВидОперации,","ДокументРеализацияТоваровУслуг.ВидОперации КАК ВидОперации,"+Символы.ПС+"ДокументРеализацияТоваровУслуг.ЗП_ЗаказПокупателя КАК ЗП_ЗаказПокупателя,"); ЭлементФормы = Форма.Элементы.Вставить("ЗП_ЗаказПокупателя",Тип("ПолеФормы"),Форма.Элементы.Список, Форма.Элементы.Контрагент); ЭлементФормы.ПутьКДанным = "Список.ЗП_ЗаказПокупателя"; ЭлементФормы.Вид = ВидПоляФормы.ПолеНадписи; КонецЕсли; КонецПроцедуры;
@IlyaLeontyev4 жыл бұрын
А такой код писать не геморно, по-твоему?)
@tsv85604 жыл бұрын
@@IlyaLeontyev На самом деле не особо, так как код копипастом делается (из ранее так же дописанного), а не пишется заново. Зато всякие обновления, что сильно меняют форму этот код никак не затрагивают. Чуть сложнее, когда надо кнопочку разместить или на событие что-то помесить, но и тут обычно выход есть.
@tsv85604 жыл бұрын
Ну и к тому же в расширение сразу видно что делал, а не добавлено куча объектов, для решения не нужных.
@Anton-ni8un4 жыл бұрын
В типовых конфигурациях расширение достаточно добавить два общих модуля "МодификацияКонфигурации..." Никаких объектов вместе с общим модулем в расширение добавлено не будет. Сама форма в расширении тоже не нужна.
@Дмитрий-ц7д5ц4 жыл бұрын
Если не секрет, сколько выставил клиенту за эту задачу?
@IlyaLeontyev4 жыл бұрын
За нее разумно выставлять от одного до двух часов. Оценка зависит от того, каким способом в итоге задача была решена, и как много времени ушло на взаимодействие с клиентом. В некоторых тяжелых случаях (когда клиент не может нормально объяснить, что он хочет) можно и три выставлять. Сколько выставил конкретно я, пожалуй, оставлю в тайне :)
@tsv85604 жыл бұрын
Я как-то потестировал сложное условие, когда таблицы сравниваются в запросе по типу (Поле1, Поле2, Поле3) в () (в виртуальных таблицах БУ смотрел) и оказалось что работает всё это гораздо дольше чем просто условие по Поле1 в (), а остальные через соединение таблиц (полное). В моем случае я получал 62 счет обороты с условием (Субконто1, Субконто2) в (таб.Контрагент, таб.Договоры). И в данном случае, может я чего-то пропустил, но зачем в финальной обработке результатов столько вложенных Выборка.Выбрать(), если по сути алгоритм линейный. Ну и опять же я лично обычно обхожу именно ТЧ документа (просто потому что так понятнее) и заполняю её данными Таблицы в которую выгрузил результаты запроса и проиндексировав поля поиска.
@IlyaLeontyev4 жыл бұрын
Меня слегка переклинило на фоне подготовки к спецу по платформе ) Там постоянно используется проверка именно "В" ) Но там немного другая ситуация, поэтому соединение было бы более уместным здесь. Хотя, учитывая скорость выполнения финального алгоритма, можно, наверно, и не оптимизировать уже ничего. Все работает достаточно быстро и правильно ) Остальное - уже придирки. Вложенные циклы нужны для того, чтобы было удобно суммарный штрихкод вычислять. Итоги ведь в запросе. Не пойму, как по-другому сделать. Подскажешь? Вариант с обходом ТЧ документа на клиенте в файловой базе не дает никаких преимуществ в производительности по сравнению с вариантом №2 (с запросами в цикле, на минуточку). Заполнение на стороне сервера значительно быстрее. (Ради чего, спрашивается, запрос оптимизировали?)
@tsv85604 жыл бұрын
@@IlyaLeontyev Для конкретной задачи и так сойдет. Просто запросы подобные не только в заполнялках используются, но при построении отчетов, а там объем данных может быть очень большой и соответственно приходится их оптимизировать. Условие (п1,п2,п3) В (у1,у2,у3) иногда получается выполняется значительно дольше чем п1 в (у1), где это условие в виде параметров виртуальной таблицы а далее просто соединение полное по всем полям. Обход всё равно делается на сервере, просто в твоем случае ты его в выборку запроса поместил, а я предпочитаю сначала сделать что-то типа ТЗ кэша ШК, а потом в нем уже искать перебирая строки чуть ниже. Просто код чуть логичнее получается, особенно когда запросы большие и кэшей таких несколько. Хотя в вашем конкретном случае быстрее думаю ваш вариант (на пару процентов), так как строки в документе одинаковые почти все. И ещё при оптимизации заметил, что поиск по ТЗ значительно быстрее работает если к ней добавлен индекс. Так же, раз речь зашла о производительности, более сложные запросы обычно на SQL версии работают быстрее, чем на файловой, но вот вызовы идут дольше, а потому разница между 1 и 3 и даже 2 и 3 вариантом на SQL и больших данных будет более ощутима. И всё таки лучше взять в привычку писать сложные конструкции сразу, чем простые с формулировкой и так сойдет, так сказать набивать руку. Говорят нынче спец по платформе сложно сдать, ибо платформа усложнилась. Сам-то в 2007 году получил.
@xalker4 жыл бұрын
Немного покоробило от "чисто программистского" подхода: "Я не уточнял зачем задача именно в такой постановке, хозяин - барин, говорит/платит - делаю". Консультант внутри меня негодует xDD Уже очень давно не подхожу к реализации "Тупо в лоб", всегда начинаю обсуждение задачи с вопроса "А зачем вам это нужно?". Считаю этот вариант безусловно верным, так как зачастую задача от изначальной постановки преобразуется просто до неузнаваемости. И именно на за это многие клиенты тебя и начинают ценить, так как кругозор клиента в плане возможных реализаций задачи очень узок, и кому как не нам помогать им в это тернистом пути? ))) Так тупо в лоб может работать только программист из команды, где до него с такими вопросами к клиенту уже отработали, и раз дошло до реализации, значит все аргументы не сработали, и действительно нужно делать именно так, не задавая других вопросов :) А в остальном - норм, молодой поросли полезно смотреть на развитие мысли и прогресс реализации задач. Про золотую середину между оптимальностью решения в плане производительности и удобства дальнейшего сопровождения - однозначно плюс, согласен.
@IlyaLeontyev4 жыл бұрын
Всегда контекст надо учитывать. В данном случае у клиента уже была печатная форма с штрихкодами. И ему дополнительно к этой печатной форме понадобилось сделать такую хитрую штуку. В данном случае добивать клиента вопросами "А зачем вам это?" бессмысленно - мне все равно было нечего предложить взамен ) Возможно, его интересовала возможность постоянно менять состав колонок в "печатной форме". И сделать это дешево.
@xalker4 жыл бұрын
@@IlyaLeontyev Но нужно об этом долбить и долбить новичкам, каждый раз упоминать, проговаривать, иначе не по тому пути могут пойти ) В самом видео упустил, видимо, тот момент где задавался контекст. Если у клиента уже была печатная форма со штрихкодами, то да, изначальный помысел тем более интересен =)) Но все таки меня клиенты ценят как раз за то, что я их задолблю уточняющими вопросами, и добьюсь прояснения в их сознании =)) И мне спокойней - не делать в лоб, будучи просто инструментом, а помогать клиенту развиваться.
@IlyaLeontyev4 жыл бұрын
@@xalker да видео не об этом просто )
@xalker4 жыл бұрын
@@IlyaLeontyev Ну ок ))
@bsnchita4 жыл бұрын
Направление правильное. За решение реальных задач плюсую. Но стиль Чистова как по мне устаревший. Ни кому не нужное общение со зрителями (малой частью подписчиков которым было удобно прийти на трансляцию) при чем не всегда по теме. Всегда есть шанс что тебя собьют, что то забудешь или что то пойдет не по плану (как например не правильно показанная сцена). Лучше записать видео и выложить его. Ни чего не будет забыто из того что запланировано. И можно расставить временные метки. Сейчас на ютубе это в роликах много кто стал практиковать (разбить например так: введение и постановка задачи, вариант 1, вариант 2, вариант 3, заключение). Если есть желание пообщаться , то запланировать показ отснятого ролика и потом сделать стрим с обсуждением. Это для случая как этот когда задача уже решена по сути. Раз в две недели это для развития канала мало. Таких маленьких задач уверен много и их решение можно на стриме как раз и решать (онлайн так сказать). Оптимальный формат "каждый день новое видео" если это показ работы разумеется, а не поговорить.
@ИванПосвенчук-г7ф3 жыл бұрын
Я с мобилы
@olegshpilevoy4 жыл бұрын
Задача конечно дичь. Вместо печатной формы городить не нужную колонку . Хотя мне вообще заказывали вывод миниатюры картинки товара в тч документов.
@mrspacer14 жыл бұрын
а как такое сделать?
@olegshpilevoy4 жыл бұрын
@@mrspacer1 Да на фига такое делать то? Я делал для УТ 11 так. У номенклатуры есть основное изображение. На его основе формируются миниатюры под высоту строки табличной части. Все это делается на лету. Если миниатюры еще нет, то она автоматом создается. Т.е. у номенклатуры получается в итоге несколько изображений. Ну а в списке номенклатуры и тч документов колонка с картинкой создается программно.
@АлексейНеизвестный-ь6р Жыл бұрын
сравнение всех 3 способов сделано не правильно. Не ясно что будет если у клиента будет 20 (30,40,150...) юзеров которые одновременно жмут эти кнопки.
@игорьфедоров-и4х4 жыл бұрын
На стриме показали как делать НЕ НАДО! 1-2 способ, так могут написать ребята, которые только начали свою работу с 1с. А 3 вариант, что в итоге? Было получено условие с подзапросом и 3 вложенных цикла, а допустим нам нужно получить данные по 7 измерениям и что будет 7 вложенных циклов? Через левое соединение запрос отработает в 2 раза быстрее. Я не заметил запретил ли ты редактирование колонки со штрихкодами или очищаешь эти поля, ведь пользователь обновляет поля для которых заведен в базе штрихкод, 99% процентов, что заказчик снова обратиться :) Зачем при написании запроса в расширении тащить все объекты, ведь можно Запрос вызвать через Шаблоны текста? Дам совет не храните данные в расширении, и держите там как можно меньше объектов, лучше убедить заказчика включить возможность вносить изменения в конфигурацию. А вообще эту задачу уже решили, есть же отчет. Почему ты не можешь вызвать конструктор СКД и не добавить макет туда? Вот пример решение через СКД, кстати так эту задачу тоже решать не надо, но для примера того, что я написал можно показать. В товары нужно добавить колонку "Штрихкоды" yadi.sk/d/hVvY4wBGWV_bvg
@maxim.saharov3 жыл бұрын
Если вы считаете что третий вариант такой уж и плохой, то что предлагаете?) а то это так выходит все тут неправильно сделал автор. Критикуеш - предлогай) Вы писали за левое соединение, а зачем делать именно левое соединение если у нас допустим 100 товаров а штрихкод есть у одного товара) может уже тогда лучше сделать внутреннее соединение и связь тройную, но от куда вы увереннее что оно прям в два раза будет быстрее) я думаю оно будет так же а запрос будет еще длиннее. И о каких шаблонах текста идет речь? Если о конструкторе во внешней обработке, то смотрите второй стрим - там это разжевывалось.
@игорьфедоров-и4х3 жыл бұрын
@@maxim.saharov , Я конечно прочитал ваш комментарий, хотя видео было выложено почти пол года назад. Абсолютно верно, левое соединение отработает быстрее, я провел замеры скорости выполнения. Так же я написал обработку и приложил ее к комментарию, которая соответствует первоначальному условию задачи я думаю моё предложение достаточное, а не просто слова в воздух. По второму вашему вопросу, автор ролика насколько я помню решал через расширение. В расширение при вызове Конструктора запроса нет доступа к объектам, которые не были добавлены в расширении и автор делал странный финт добавляя множество объектов в расширении, хотя не имея на это надобности. Большинство людей уже заметило, что при разработке через расширение удобно использовать СЕРВИС - ШАБЛОНЫ ТЕКСТА - СТАНДАРТНЫЕ - ПРОЧЕЕ - ЗАПРОС . При перемещении запроса в редактор у вас открывается доступ ко всем объектам, очень удобно. Максим можете скинуть ссылку на второй стрим где вся эта бездарность разжевывается? В комментарии я указал, что у меня не идеальное решение, кто знает тот поймет.
@lattgaletc77614 жыл бұрын
Просто надоело. Просматриваю "уроки" от разных авторов (без указания цели, для чего мне это нужно, после 20 лет работы с 1С). Но чем грешат ВСЕ авторы . И не глупые (вроде) люди, но ЗАЧЕМ убивать свое и чужое время на рассказ о том как делать неправильно? Поверьте, неправильно сделать (и гораздо более "неправильнее") все, вас смотрящие, могут и сами. Поэтому просьба: Не занимайтесь херней. Ставлю жирный дизлайк.
@maxim.saharov3 жыл бұрын
А зачем вы смотрите если такой подход не интересен) и тем более у вас 20 лет опыта и вы и так все знаете