Давайте так скажу. Нет проблем с чувством собственной важности, чтобы быть 51ым человеком, ищущим к чему придраться в подобном видео. А правда проста - Евгений молодец, двигает сообщество вперед, привлекает интерес к стандартам, количество зрителей на стриме - вот он показатель. А что там на углах… подумайте, приведите себе аргументы, докажите почему вы лично будете делать иначе и делайте. Не стоит Евгения заваливать помидорами - он один, и то честно старается всем всем ответить.
Это было очень очень интересно. Хочется понять и научиться писать доработки, которые по минимуму зависят от обновлений. Видео очень стимулирует изучение документации. Спасибо. Идея о курсе это очень круто.
1:39:05 и вот снова здравствуйте :) 1. мы написали через точку т.к. у нас нет ТЧ и ХЗ в объекте. Т.е. отложили возможные проблемы производительности "будущим поколениям" который будут рефакторить наш легаси. 2. мы занимаемся тем что в цикле получаем данные! т.к. мы уже сделали выборку и в обходе результата запроса выполняем получения реквизитов каждого полученного договора. (хотя могли это сделать в том же запросе) 3. мы занялись ответственным чтением, чтобы ло бы не нужно сделать пункт 2 иначе 4. в случае прерывания регламента повторный его запуск задублирует документы, хотя если бы мы сделали один запрос который бы и получил договоры и проверил по каким из них документы уже могут быть сделаны, то повторый запуск регламента не создал бы проблем. ух.. сколько всего можно было бы избежать не пытайся мы запихнуть ООПшные практики туда где они не нужны :) знаю что это все звучит как бурчание старовера на завалинке, но такова боль моей практики
1. Это был пример, в котором хочется показать что надо думать перед тем, как писать. Кажется это очевидно. 2. Запросы в цикле не всегда плохо. 3. Делать большую транзакцию на пачку и долгие блокировки это как раз отличный пример, когда маленький атомарный запрос в цикле на короткую транзакцию это много лучше, чем большая толстая транзакция на большую пачку и с огромным диапазоном заблокированных данных вплоть до эскалации :) привет хайлоад, вот так вот. Конечно пример немного натянут, врядли кто-то захочет прям менять договор во время работы регамента, но это пример который хочется показать и чтобы о нем тоже думали! 4. Это правильно, потому я и говорю, что нужен контроль внешний для отслеживания выполнения. А в выборке и правда хорошо бы проверять есть ли уже документы на эту дату. Очень рад что кто-то это заметил! Жаль что не все это увидели.
@@yellow_club 3. я ни в коем случае не предлагал делать одну большую транзакцию на весь запрос. Зачем? Блокировку на все договоры по признаку активности - да, наверное стоит (ради сохранения ответственного чтения), но транзакции, конечно, должны оставаться атомарными. не спорю, у моего подхода тоже не мало минусов, но для крупных регламентов выполняемых раз в сутки в свои "технологические окна" они будут более продуктивными.
Спасибо. Очень наглядная демонстрация. Такой подход сильно понятней, чем когда слушаешь выступления без кода. Здорово видеть как понятия выливаются в живой код.
@@yellow_club Отдельное спасибо за Итераторы, В java спокойно использую. Даже мысль не шла, что можно это в 1с сделать. Это прямо прорыв по всем фронтам.
Прикольно - человек из большого программирования разруливает 1С)) Такая непуганность и вера)) Неожиданный ракурс, но было очень интересно. Даже кое-что узнала новенькое. Очень понравилась подача. Офигенный сквозной пример. Буду ждать еще выпусков. Все равно, простите, после слов SOLID, программный интерфейс, МОКК и др. пыталась услышать закулисный смех. Вы, Евгений, очень смелый товарищ, ну, и позитивный! Не теряйте вектор. Нам это надо.🏆
огонь, спасибо тебе, надеюсь не угаснет пламя твоего энтузиазма! мотивируешь хорошо! Пока не посмотрел твое видео не знал что БСП так легко можно запустить! много что интересного расказываешь
Наконец-то кто-то начал это делать. 👏👏👏 Даже по этому видео видно, что платформа нифига не помогает писать хороший код, а иногда даже мешает. Предлагаю во второй серии разобрать более реальный и полезный пример - ввод на основании: как правильно создавать документ на основании разных оснований, и наоборот. Кто там будет провайдером, куда пихать адаптеры и вот это всё.
Вот я и вернул свой зрительский долг. Всё завтра и завтра. Дочка уже в садик пошла. Почти год видео висело в списке Посмотреть позже. Уже и площадка замедлилась. Но посмотрел наконец-то. Быстро время летит. С ума сойти!
Не надо перед отменой транзакции проверять активность транзакции. Ошибка «в данной транзакции происходили ошибки» появляется из-за того, что идёт обращение к базе данных в тот момент, когда транзакция отменена
@@yellow_club , исходя из материалов статьи на хабре "Вы не умеете работать с транзакциями", если внутри кода, вызываемого в попытке, начатая нами транзакция уже была отменена или зафиксирована, повторная отмена транзакции в нашем перехвате вызовет исключение
@@yellow_club, исходя из материалов статьи "Вы не умеете работать с транзакциями", если внутри кода, вызываемого в блоке "Попытка", начатая нами транзакция была отменена или зафиксирована, отмена уже не активной транзакции в блоке "Исключение" вызовет исключение
Отличный пример "поддержки" open-close в типовых - это переименование в какой-то версии БСП функции "ПолучитьЗначениеРеквизита" в "ЗначениеРеквизитаОбъекта")
Посмотрел стрим , говорите правильные вещи , но есть пару замечаний 1. Запросы в цикле. Вы обратили внимание что идет обращение через точку и если объект небольшой то все норм, но вы забыли что у вас цикл по выборке и каждый раз вы читаете объект 2. Желательно в запросе получать все данные , а то получается Вы получили активные договоры , а потом обращаетесь к ним же за тарифом и владельцем так почему же нельзя сразу получить запросом эти данные ? 3. Далее у вас в регламентном задании идет обход выборки результата запроса , но как по мне лучше обходить выборку в модуле менеджера документа начисление Арендной платы , а то получается так что при каждой итерации цикла обхода выборки вы дергаете модуль менеджера . Что не есть хорошо
тут не про детали , а главное про архитектуру в целом и принципы ООП ... и их применимость в 1С дальше по видео - конкретная реализация конкретных действий "закапсулирована" уже внутрь "Провейдера" конкретных Данных ... и идея именно в этом, что хоть это справочник договоры , что общий модуль - работают одинаково! да, архитектура может и не идеальна... для примера ... создана на лету и по-простому и по-быстрому
@@СергО-л6ф , ты не совсем понял смысл моего комментария . Тема стрима - чистый код. Но тут же идет запрос в цикле, что не по стандарту , о которых Евгений говорит на протяжении всего стрима. Дальше , гораздо логичнее собрать все данные и передать их на обработку , а так получается , что в обработке данных мы что-то дополучаем. Общий смысл такой - код который обрабатывает данные не должен дополнительно получать часть данных для обработки. Ну и третье- нужно стараться передать все данные на обработку а не частями ( возможно есть исключения, но явно не в этом случае)
Запросы в цикле это плохо. Но когда в цикле идёт создание объекта то на фоне него любой простой запрос меркнет. Но да, делать получение данных в выборке можно и это хороший подход позволивший избавиться от свойств документа в провайдере.
Спасибо, упорядочились в голове некоторые представление. Совершенно не зря потратил полтора часа на просмотр (на х2). И огромное уважение за потраченные тобой 3 часа на сам стрим + чёрт знает сколько на подготовку 🔥👍
К 2:15:37: Для быстрого создания функций нужно написать начало "функ" (для процедур - "проц"), а после буквы "к" комбинацию "ctrl+q". В появившемся списке выберите нужный вам шаблон и все!
По поводу префиксов. Это полностью твоя конфа. О префиксах пусть 1С думает в своем БСП. А когда мы расширяем типовые конфы, то мы заботимся о префиксах. Думаю что так справедливо.
Деятельность разных команд в 1С, которые отвечают за разные подсистемы, ничем не отличается от любой другой доработки типовых. Так же могут внезапно вылезти одноимённые метаданные и разрабочики типовых нормально с этим справляются
Спасибо за видео. Очень полезное. Не уверен что внедрение и настройка БСП прям необходимы были. Все-таки большинство разработчиков работает в типовых конфигурациях и необходимости в этой задаче нет. Хотя твои неоднократные ссылки в процессе внедрения на документацию думаю полезны. Как тему для видео рассмотри паттерны проектирования, поведенческий тип хорошо проецируется в 1С. А тема хорошо ложится на разбор приемов качественного программирования.
Здравствуйте! Спасибо за обучающие видосики! А что можете сказать про направление 1С? Стоит сейчас тратить своё драгоценное время на изучение платформы и языка 1С?
@@ВоробейБородатый я 1С хочу выучить чисто, чтобы на работу быстро устроиться. А так я имею опыт изучения PHP, JavaScript, C#, Python и Java. Также могу читать документацию на английском со словарём.
каким ветром меня сюда занесло? ))) я вообще веб разработчик. Но вообще был опыт взаимодействия с 1С по HTTP. Даже писал небольшое фронтенд приложение которое каким-то чудом встраивалось в окно 1С (встроенный браузер) и взаимодействовало с окружением как его нативное приложение. Неплохо что 1С позволяет так делать
Да уж… позволяет… через костыли 😂 Поверьте, ничего хорошего в таком взаимодействии нет. Реализовано оно через одно место. Такое впечатление, что 1Сники добавили поддержку web технологий для галочки.
@@yellow_clubиз веба в 1С? пфф… скорее наоборот. В вебе работать приятнее, в разы. Последнее время ковыряю Django и просто кайфую от того, насколько приятнее работать с ним, чем было с 1С. Хотя я сам Питон и не особо люблю. Но язык 1С я люблю еще меньше.
Вот кстати хороший пример почему "области" По стандарту не работают. 47:50 обработчики закинуты в область СлужебныеПроцедурыИФункции хотя должны быть в области обработчиков команд Здесь нет интуитивно понятного интерфейса и связей между желанием разработчика выделить группу процедур в отдельную область и требованием 1с к оформлению.
Евгений, благодарю за стрим - про такое разделение областей, признаться, не знал. И имхо, модульность в 1С появится, когда ERP будет собираться из отдельных (обособленно работающих) модулей: УТ+Производство+Финансы+Бухгалтерия+ЗУП+Отчетность+...
Делаем красивенькое оформление кода в конфигураторе: 1. Табуляция от Федькина: - Символ табуляции "│" (code 2502) - Цвет конструкции "Прочее" стиль: Линия отчета #CCC085 2. Шрифт по Волокитину: - JetBrains Mono, 10 (www.jetbrains.com/lp/mono/) 3. Текущий идентификатор: - стиль: Цвет активности #FACC1F
Не совсем поняла, почему плохая история договор делать регистром сведений. Думаю, напротив, если делать его периодическим, то можно еще и история изменений хранить - когда открыли, когда заморозили, а когда разморозили.
Евгений, а почему обращаться к реквизитам через точку (разыменование) плохо при наличии сложной структуры объекта (табличные части и прочее)? Вы так шикарно объяснили чем отличается модуль менеджера от модуля объекта (даже я понял, хотя много лет не задумывался об этом), а вот про "беды разыменования" додумать не получается.
Потому что из базы данных прочитается вся табличная часть. А в ней может быть до 99 999 строк. Поэтому быстрее прочитать значение конкретного реквизита/реквизитов, а не читать весь объект. Да и оперативки такой объект сожрет слишком много
@@yellow_club то есть в случае сложной структуры объекта при обращении через точку в память считывается вся таблица объекта из базы данных. Спасибо большое за пояснение.
Я бы даже сказал все таблицЫ. Это с прикладной точки зрения Справочник единый объект, а с точки зрения базы данных данные справочника хранятся в нескольких таблицах
Ещё я видел в типовых рмк, там создают несколько ОписаниеОповещения, передают в процедуру, а процедура в зависимости от результата вызывает ОписаниеОповещения. Что это за паттерн такой?
И почему-то не был рассмртрен вопрос: как защитить базу с которой работают все пользователи от копий разработчиков - где разработчики могут нажать кнопку "выгрузить" и сломать тем самым пользовательскую базу, которая скажем по регламенту загрузит выгруженные данные )
Если не фреш, то делается всё просто одним расширением. При запуске приложения проверка на копию, если копия то меняются пути выгрузки, например на те же пути но с постфиксом "_копия". В самописной у меня так сделано, в типовых пока руками меняю 😅 все руки не доходят сделать то что написал выше
@@ДжекиБраун-ь1ю , т.е. в каждой обработке по выгрузке проверять копия это или нет? В типовых, когда впервые загружаешь базу из dt при первом запуске спрашивает это копия или нет - вот как-то надо к этому и привязываться
Делаем красивенькое оформление кода в конфигураторе: 1. Табуляция от Федькина: - Символ табуляции "│" (code 2502) - Цвет конструкции "Прочее" стиль: Линия отчета #CCC085 2. Шрифт по Волокитину: - JetBrains Mono, 10 (www.jetbrains.com/lp/mono/) 3. Текущий идентификатор: - стиль: Цвет активности #FACC1F
Автором изначально не определено, что он понимает под своим классом / пакетом (весь «Учет аренды» или отдельно общие модули, справочники и документы). Поэтому дальнейшая расстановка областей в коде не имеет смысла.
Если областями мы хотим обозначить публичные и приватные методы (интерфейс; что не изменится и чем можно пользоваться извне, а что для «служебного» пользования), то сначала нужно обозначить границу публичности и приватности (класс или пакет). В БСП это одна ее подсистема. А у вас? Да и сами понимаете. Общие модули, модуль объекта, менеджера и формы в купе с отсутствием слов export import - это изобретения, которые не вяжутся не то что с ООП, а даже с простой модульностью. Предлагая размазывать логику по этим модулям. Как тут не ошибиться простому одинэснику?:) В другом языке вы бы сделали пакет с несколькими вашими классами, возможно выделив view и persistence (что бы это ни значило:) в отдельные классы. Но глядя на мучения наших сишарперов, где даже названия полей то по-русски писать не рекомендуется, про сделать мышкой конфу для аренды я вообще молчу, задаешься вопросом…
Вопрос, коль БСП бесплатная, почему нельзя весь БСП сразу добавить? я вот как то добавил часть а потом намучался добавлять другие части по мере развития системы.
@@yellow_club мне, как бухгалтеру интересны возможности программистов. Мы же вам задачи режим и деньги платим. Вдруг я увижу, что облегчает мой труд. Не видя результат, задания вам не дам
Я правильно понял, что можно смело пользоваться только экспортными методами расположенными в области ПрограммныйИнтерфейс ? Инкапсуляция областями от 1С получается 😊
@@yellow_club Вот я теперь понимаю как пишут эти переусложнённые типовые. Раньше код был проще, ошибки исправлялись легче, трава зеленее, деревья выше.
Большое спасибо! Все понравилось. А почему перечисления нужно называть во множественном числе? Там же есть отдельно представление списка? Как раз просится синоним и имя в единственном, а представление списка - во множественном?
Идея понятна и так. Не понравилась манера повествования и постоянные кривляния. Для чего было размусоливать на 4 часа. Если автор устал, то разбейте стрим на несколько частей, будет проще, а так очень смешано и скомкано(смешались люди кони...).
@@yellow_club Потому что внезапно в будущем может появиться в объекте табличная часть, а за ней и двоичные данные, а про это место в коде в тот момент никто не вспомнит
Ожидал услышать фразу "Я потерялся!" намного раньше третьего часа программирования 😂 Франч уже бабло получил за это задание и сидит пьет пивас 🍻 Кто-то теряет, а кто-то находит...
Отличное видео как не надо разрабатывать конфигурации даже для ларьков. Ладно стример не в теме 1С, но он вроде институтского возраста, а принципа классов в программировании не понимает. Возможно это уже диагноз. Дальнейший путь в тимлиды
Погодите, это заводчанин с легаси УПП 20 летней порвался или что? Возможно, это уже диагноз. Дальнейший путь не смотреть канал Евгения, раз настолько печет. Кто заставлял?
Давайте так скажу. Нет проблем с чувством собственной важности, чтобы быть 51ым человеком, ищущим к чему придраться в подобном видео. А правда проста - Евгений молодец, двигает сообщество вперед, привлекает интерес к стандартам, количество зрителей на стриме - вот он показатель. А что там на углах… подумайте, приведите себе аргументы, докажите почему вы лично будете делать иначе и делайте. Не стоит Евгения заваливать помидорами - он один, и то честно старается всем всем ответить.
спасибо за поддержку
Есть придирки , а есть конструктивная критика , которая наоборот полезна.
@user-zm7gt9zn5j пока конструктивной критики не видно) но иногда конечно случается что-то полезное
Это было очень очень интересно. Хочется понять и научиться писать доработки, которые по минимуму зависят от обновлений. Видео очень стимулирует изучение документации. Спасибо.
Идея о курсе это очень круто.
Рад, что полезно 👍
Смотря видео от Евгения повышаем качество своих навыков и продуктов. просто золото, а не видео
Спасибо, рад, что полезно
1:39:05 и вот снова здравствуйте :)
1. мы написали через точку т.к. у нас нет ТЧ и ХЗ в объекте. Т.е. отложили возможные проблемы производительности "будущим поколениям" который будут рефакторить наш легаси.
2. мы занимаемся тем что в цикле получаем данные! т.к. мы уже сделали выборку и в обходе результата запроса выполняем получения реквизитов каждого полученного договора. (хотя могли это сделать в том же запросе)
3. мы занялись ответственным чтением, чтобы ло бы не нужно сделать пункт 2 иначе
4. в случае прерывания регламента повторный его запуск задублирует документы, хотя если бы мы сделали один запрос который бы и получил договоры и проверил по каким из них документы уже могут быть сделаны, то повторый запуск регламента не создал бы проблем.
ух.. сколько всего можно было бы избежать не пытайся мы запихнуть ООПшные практики туда где они не нужны :)
знаю что это все звучит как бурчание старовера на завалинке, но такова боль моей практики
1. Это был пример, в котором хочется показать что надо думать перед тем, как писать. Кажется это очевидно.
2. Запросы в цикле не всегда плохо.
3. Делать большую транзакцию на пачку и долгие блокировки это как раз отличный пример, когда маленький атомарный запрос в цикле на короткую транзакцию это много лучше, чем большая толстая транзакция на большую пачку и с огромным диапазоном заблокированных данных вплоть до эскалации :) привет хайлоад, вот так вот. Конечно пример немного натянут, врядли кто-то захочет прям менять договор во время работы регамента, но это пример который хочется показать и чтобы о нем тоже думали!
4. Это правильно, потому я и говорю, что нужен контроль внешний для отслеживания выполнения. А в выборке и правда хорошо бы проверять есть ли уже документы на эту дату. Очень рад что кто-то это заметил! Жаль что не все это увидели.
@@yellow_club
3. я ни в коем случае не предлагал делать одну большую транзакцию на весь запрос. Зачем? Блокировку на все договоры по признаку активности - да, наверное стоит (ради сохранения ответственного чтения), но транзакции, конечно, должны оставаться атомарными. не спорю, у моего подхода тоже не мало минусов, но для крупных регламентов выполняемых раз в сутки в свои "технологические окна" они будут более продуктивными.
Спасибо, сэнсей, очень интересно!
Спасибо. Очень наглядная демонстрация. Такой подход сильно понятней, чем когда слушаешь выступления без кода. Здорово видеть как понятия выливаются в живой код.
Спасибо 🙏 рад, что полезно
@@yellow_club Отдельное спасибо за Итераторы, В java спокойно использую. Даже мысль не шла, что можно это в 1с сделать. Это прямо прорыв по всем фронтам.
Я за создание Евгением курса по разработке на 1С!
Спасибо за поддержку
Прикольно - человек из большого программирования разруливает 1С)) Такая непуганность и вера))
Неожиданный ракурс, но было очень интересно. Даже кое-что узнала новенькое.
Очень понравилась подача. Офигенный сквозной пример. Буду ждать еще выпусков.
Все равно, простите, после слов SOLID, программный интерфейс, МОКК и др. пыталась услышать закулисный смех. Вы, Евгений, очень смелый товарищ, ну, и позитивный! Не теряйте вектор. Нам это надо.🏆
Рад, что полезно
Досмотрел видос! Получил удовольствие, спасибо! Буду ждать второй поток, сейчас уже все закрыто..
Ееееее! Спасибо за отзыв, рад, что полезно
огонь, спасибо тебе, надеюсь не угаснет пламя твоего энтузиазма! мотивируешь хорошо! Пока не посмотрел твое видео не знал что БСП так легко можно запустить! много что интересного расказываешь
Рад что полезно
А мне зашло, посмотрел все. Спасибо, будем стремится к стандартам.
Наконец-то кто-то начал это делать. 👏👏👏
Даже по этому видео видно, что платформа нифига не помогает писать хороший код, а иногда даже мешает.
Предлагаю во второй серии разобрать более реальный и полезный пример - ввод на основании: как правильно создавать документ на основании разных оснований, и наоборот. Кто там будет провайдером, куда пихать адаптеры и вот это всё.
Хорошая идея! Спасибо
Евгений молодец! Видосы заходят! Газуй дальше!)
Спасибо за обратную связь. Очень приятно
Вот я и вернул свой зрительский долг. Всё завтра и завтра. Дочка уже в садик пошла. Почти год видео висело в списке Посмотреть позже. Уже и площадка замедлилась. Но посмотрел наконец-то. Быстро время летит. С ума сойти!
Надо всплывать из пучин рутины время от времени. Бултыхаешься, подтягиваешь чего есть в типовых, а тут раз и КоннекторHTTP в два клика. Полезное.
О да, мне коннектор тоже нравится. Спасибо автору
Хороший стрим
П.С.
Перед отменой транзакции нужно проверять, что она активна, иначе будет всем известное "в данной транзакции происходили ошибки"
Не надо перед отменой транзакции проверять активность транзакции.
Ошибка «в данной транзакции происходили ошибки» появляется из-за того, что идёт обращение к базе данных в тот момент, когда транзакция отменена
@@yellow_club , исходя из материалов статьи на хабре "Вы не умеете работать с транзакциями", если внутри кода, вызываемого в попытке, начатая нами транзакция уже была отменена или зафиксирована, повторная отмена транзакции в нашем перехвате вызовет исключение
@@yellow_club, исходя из материалов статьи "Вы не умеете работать с транзакциями", если внутри кода, вызываемого в блоке "Попытка", начатая нами транзакция была отменена или зафиксирована, отмена уже не активной транзакции в блоке "Исключение" вызовет исключение
@@yellow_club, понял, благодарю за обратную связь!)
Вы супер! Спасибо за видео!
Рад, что полезно
Отличный пример "поддержки" open-close в типовых - это переименование в какой-то версии БСП функции "ПолучитьЗначениеРеквизита" в "ЗначениеРеквизитаОбъекта")
Полезно. Благодарю.
Это ли не чудо, что в час ночи я смотрю шикарный стрим (пусть и в записи). Спасибо!
Рад, что проводишь ночь со мной 😂😂😂😂
Посмотрел стрим , говорите правильные вещи , но есть пару замечаний
1. Запросы в цикле. Вы обратили внимание что идет обращение через точку и если объект небольшой то все норм, но вы забыли что у вас цикл по выборке и каждый раз вы читаете объект
2. Желательно в запросе получать все данные , а то получается Вы получили активные договоры , а потом обращаетесь к ним же за тарифом и владельцем так почему же нельзя сразу получить запросом эти данные ?
3. Далее у вас в регламентном задании идет обход выборки результата запроса , но как по мне лучше обходить выборку в модуле менеджера документа начисление Арендной платы , а то получается так что при каждой итерации цикла обхода выборки вы дергаете модуль менеджера . Что не есть хорошо
тут не про детали , а главное про архитектуру в целом и принципы ООП ... и их применимость в 1С
дальше по видео - конкретная реализация конкретных действий "закапсулирована" уже внутрь "Провейдера" конкретных Данных ...
и идея именно в этом, что хоть это справочник договоры , что общий модуль - работают одинаково!
да, архитектура может и не идеальна... для примера ... создана на лету и по-простому и по-быстрому
@@СергО-л6ф , ты не совсем понял смысл моего комментария . Тема стрима - чистый код. Но тут же идет запрос в цикле, что не по стандарту , о которых Евгений говорит на протяжении всего стрима.
Дальше , гораздо логичнее собрать все данные и передать их на обработку , а так получается , что в обработке данных мы что-то дополучаем. Общий смысл такой - код который обрабатывает данные не должен дополнительно получать часть данных для обработки. Ну и третье- нужно стараться передать все данные на обработку а не частями ( возможно есть исключения, но явно не в этом случае)
Запросы в цикле это плохо. Но когда в цикле идёт создание объекта то на фоне него любой простой запрос меркнет. Но да, делать получение данных в выборке можно и это хороший подход позволивший избавиться от свойств документа в провайдере.
больше спасибо, узнал много нового!
Рад, что полезно
Евгений, вы затронули очень интересную тему "ООП в 1С". Вы даете очень полезные мысли на подумать! Спасибо за ваш труд.
Спасибо за поддержку
Спасибо за стрим, есть над чем задуматься
Рад, что полезно
Спасибо, упорядочились в голове некоторые представление. Совершенно не зря потратил полтора часа на просмотр (на х2). И огромное уважение за потраченные тобой 3 часа на сам стрим + чёрт знает сколько на подготовку 🔥👍
Рад, что понравилось и было полезно
К 2:15:37: Для быстрого создания функций нужно написать начало "функ" (для процедур - "проц"), а после буквы "к" комбинацию "ctrl+q". В появившемся списке выберите нужный вам шаблон и все!
Красавчик!
По поводу префиксов. Это полностью твоя конфа. О префиксах пусть 1С думает в своем БСП. А когда мы расширяем типовые конфы, то мы заботимся о префиксах. Думаю что так справедливо.
Деятельность разных команд в 1С, которые отвечают за разные подсистемы, ничем не отличается от любой другой доработки типовых. Так же могут внезапно вылезти одноимённые метаданные и разрабочики типовых нормально с этим справляются
Спасибо за видео. Очень полезное. Не уверен что внедрение и настройка БСП прям необходимы были. Все-таки большинство разработчиков работает в типовых конфигурациях и необходимости в этой задаче нет. Хотя твои неоднократные ссылки в процессе внедрения на документацию думаю полезны. Как тему для видео рассмотри паттерны проектирования, поведенческий тип хорошо проецируется в 1С. А тема хорошо ложится на разбор приемов качественного программирования.
хорошее видео про культуру кода!
Лайк не глядя! ❤
Лучше посмотреть, там интересно
@@MegaBEavER1 обязательно посмотрю в записи, не успел :)
Вот это я понимаю уровень 😘
Видос смотрится на одном дыхании, много нового о бсп узнал, спасибо за контент)
Получается, ты со мной ночь провёл 😂???
Лучший!
Спасибо 🙏
Здравствуйте! Спасибо за обучающие видосики! А что можете сказать про направление 1С? Стоит сейчас тратить своё драгоценное время на изучение платформы и языка 1С?
Нужно!
@@Tonik992 А почему?
Если с нуля, то можно и другой язык, более востребованный в мире, 1С это в основном РФ
Стоит
@@ВоробейБородатый я 1С хочу выучить чисто, чтобы на работу быстро устроиться. А так я имею опыт изучения PHP, JavaScript, C#, Python и Java. Также могу читать документацию на английском со словарём.
каким ветром меня сюда занесло? ))) я вообще веб разработчик. Но вообще был опыт взаимодействия с 1С по HTTP. Даже писал небольшое фронтенд приложение которое каким-то чудом встраивалось в окно 1С (встроенный браузер) и взаимодействовало с окружением как его нативное приложение. Неплохо что 1С позволяет так делать
Это судьба подсказывает, что пора переходить в 1С сферу))
Да уж… позволяет… через костыли 😂 Поверьте, ничего хорошего в таком взаимодействии нет. Реализовано оно через одно место. Такое впечатление, что 1Сники добавили поддержку web технологий для галочки.
@@yellow_clubиз веба в 1С? пфф… скорее наоборот. В вебе работать приятнее, в разы. Последнее время ковыряю Django и просто кайфую от того, насколько приятнее работать с ним, чем было с 1С. Хотя я сам Питон и не особо люблю. Но язык 1С я люблю еще меньше.
Спасибо за стрим!) Было полезно)
Рад, что полезно
Вот кстати хороший пример почему "области" По стандарту не работают.
47:50 обработчики закинуты в область СлужебныеПроцедурыИФункции хотя должны быть в области обработчиков команд
Здесь нет интуитивно понятного интерфейса и связей между желанием разработчика выделить группу процедур в отдельную область и требованием 1с к оформлению.
Евгений, благодарю за стрим - про такое разделение областей, признаться, не знал. И имхо, модульность в 1С появится, когда ERP будет собираться из отдельных (обособленно работающих) модулей: УТ+Производство+Финансы+Бухгалтерия+ЗУП+Отчетность+...
Угу, это конечно не идеальная модульностью, но продвинулись со времён УПП сильно
Полезный стрим
Когда говорят то про чистый код то общепринято говорить о разделении приложения слои и инверсии зависимостей, а в контексте 1с материал полезный :)
Так весь стрим об этом)
Приветствую. Спасибо за материал. Каким образом Вы настроили отображение вертикальных полос в методах модуля в конфигураторе?
Сервис - Параметры - Тексты: Табуляция
Делаем красивенькое оформление кода в конфигураторе:
1. Табуляция от Федькина:
- Символ табуляции "│" (code 2502)
- Цвет конструкции "Прочее" стиль: Линия отчета #CCC085
2. Шрифт по Волокитину:
- JetBrains Mono, 10 (www.jetbrains.com/lp/mono/)
3. Текущий идентификатор:
- стиль: Цвет активности #FACC1F
Не совсем поняла, почему плохая история договор делать регистром сведений. Думаю, напротив, если делать его периодическим, то можно еще и история изменений хранить - когда открыли, когда заморозили, а когда разморозили.
А что за упоминаемый в видео курс по архитектуре игр?
www.youtube.com/@KSyndicate
Евгений, а почему обращаться к реквизитам через точку (разыменование) плохо при наличии сложной структуры объекта (табличные части и прочее)? Вы так шикарно объяснили чем отличается модуль менеджера от модуля объекта (даже я понял, хотя много лет не задумывался об этом), а вот про "беды разыменования" додумать не получается.
Потому что из базы данных прочитается вся табличная часть. А в ней может быть до 99 999 строк. Поэтому быстрее прочитать значение конкретного реквизита/реквизитов, а не читать весь объект. Да и оперативки такой объект сожрет слишком много
@@yellow_club то есть в случае сложной структуры объекта при обращении через точку в память считывается вся таблица объекта из базы данных. Спасибо большое за пояснение.
Я бы даже сказал все таблицЫ. Это с прикладной точки зрения Справочник единый объект, а с точки зрения базы данных данные справочника хранятся в нескольких таблицах
Подскажите, какое сочетание кнопок вы нажали, чтобы в выделенном фрагменте кода удалить лишние пробелы, табы ?
Ещё я видел в типовых рмк, там создают несколько ОписаниеОповещения, передают в процедуру, а процедура в зависимости от результата вызывает ОписаниеОповещения. Что это за паттерн такой?
И почему-то не был рассмртрен вопрос: как защитить базу с которой работают все пользователи от копий разработчиков - где разработчики могут нажать кнопку "выгрузить" и сломать тем самым пользовательскую базу, которая скажем по регламенту загрузит выгруженные данные )
Так этот вопрос закрывается правильным созданием рег задания.
Может стоило конечно подробнее рассмотреть настройки. Но тогда стрим был бы на 8 часов 😂
@@yellow_club, это не регламент виноват, а программист со своей копией, когда тестит кнопку выгрузки куда-то
Ааа, вот ты о чем
Если не фреш, то делается всё просто одним расширением. При запуске приложения проверка на копию, если копия то меняются пути выгрузки, например на те же пути но с постфиксом "_копия".
В самописной у меня так сделано, в типовых пока руками меняю 😅 все руки не доходят сделать то что написал выше
@@ДжекиБраун-ь1ю , т.е. в каждой обработке по выгрузке проверять копия это или нет? В типовых, когда впервые загружаешь базу из dt при первом запуске спрашивает это копия или нет - вот как-то надо к этому и привязываться
за контент, конечно, спасибо, лишних слов в речи много - требуется фильтр
Например каких?
Подскажите пожалуйста что за шрифт в модуле?
Делаем красивенькое оформление кода в конфигураторе:
1. Табуляция от Федькина:
- Символ табуляции "│" (code 2502)
- Цвет конструкции "Прочее" стиль: Линия отчета #CCC085
2. Шрифт по Волокитину:
- JetBrains Mono, 10 (www.jetbrains.com/lp/mono/)
3. Текущий идентификатор:
- стиль: Цвет активности #FACC1F
Автором изначально не определено, что он понимает под своим классом / пакетом (весь «Учет аренды» или отдельно общие модули, справочники и документы). Поэтому дальнейшая расстановка областей в коде не имеет смысла.
Что такое «свой класс или пакет»?
Я создаю подсистему учёта аренды.
Не очень понимаю, что не так с областями.
Если областями мы хотим обозначить публичные и приватные методы (интерфейс; что не изменится и чем можно пользоваться извне, а что для «служебного» пользования), то сначала нужно обозначить границу публичности и приватности (класс или пакет). В БСП это одна ее подсистема. А у вас?
Да и сами понимаете. Общие модули, модуль объекта, менеджера и формы в купе с отсутствием слов export import - это изобретения, которые не вяжутся не то что с ООП, а даже с простой модульностью. Предлагая размазывать логику по этим модулям. Как тут не ошибиться простому одинэснику?:) В другом языке вы бы сделали пакет с несколькими вашими классами, возможно выделив view и persistence (что бы это ни значило:) в отдельные классы. Но глядя на мучения наших сишарперов, где даже названия полей то по-русски писать не рекомендуется, про сделать мышкой конфу для аренды я вообще молчу, задаешься вопросом…
Вопрос, коль БСП бесплатная, почему нельзя весь БСП сразу добавить? я вот как то добавил часть а потом намучался добавлять другие части по мере развития системы.
Я вообще не одинЭсник и не понимаю, как я попал на это видео. Но! Классы в 1с - неожиданно
Покажи конечный вариант данного отчёта. Мне как бухгалтеру интересен конечный вариант
Это канал не для бухгалтеров. Тут нет ничего интересного и нужного для бухгалтеров
@@yellow_club мне, как бухгалтеру интересны возможности программистов. Мы же вам задачи режим и деньги платим. Вдруг я увижу, что облегчает мой труд. Не видя результат, задания вам не дам
Я правильно понял, что можно смело пользоваться только экспортными методами расположенными в области ПрограммныйИнтерфейс ? Инкапсуляция областями от 1С получается 😊
Да
@@yellow_club Увидел про это ещё раз подробно на втором часу видео.
Началась рассылка в ТГ о старте набора на курс! То от имени вашей жены, то от имени вашего помощника…
Мошенники?))
Меня заблокировал телеграмм, потом аккаунт жены, теперь отдувается Павел. Его пока не заблокировали.
Давай курс по чистому коду на 1С!!!!
Уже даю) старт курса в ноябре
Парам пам пам) очень нравится канал) автор а можно ролики содержательные минут на 10-15, ну не всегда есть 3 часа, да и не хочется) пожалуйста)
Есть темы, которые за 15 минут не раскрыть. Рад, что нравится канал
Очень интересно! Про роли запишите пожалуйста видео!))
мне кажется у вас абстракции протекают
Не может быть)
@@yellow_club Вот я теперь понимаю как пишут эти переусложнённые типовые. Раньше код был проще, ошибки исправлялись легче, трава зеленее, деревья выше.
Да и мы моложе были) верните наш 2008 год)
ПОЧЕМУ Я ПРОСНУЛСЯ ПОД ЭТО))?
Потому что это хорошо)
Большое спасибо! Все понравилось. А почему перечисления нужно называть во множественном числе? Там же есть отдельно представление списка? Как раз просится синоним и имя в единственном, а представление списка - во множественном?
Такой стандарт по именам метаданных. Я не знаю почему так рекомендует фирма 1С. Может об этом конечно в стандарте написано, но я не помню
Идея понятна и так. Не понравилась манера повествования и постоянные кривляния. Для чего было размусоливать на 4 часа. Если автор устал, то разбейте стрим на несколько частей, будет проще, а так очень смешано и скомкано(смешались люди кони...).
Просто не смотрите, раз не нравится 😉
что значит синглтон это плохо....для синхронизации, для кэширования, для UI и еще кучи мест это супер полезный паттерн.
Это самый вредный паттерн
just wow
ООП в 1с😂
1Сники в 2024 году работают в IDE уровня Word 2007😂😂😂
Что за провайдер? В чем суть?
Интерфейсы в 1с? Паттерны в 1с?
И классы в 1С
42:00 Речь про обычные формы же, а не про толстый клиент?!
Да, речь об обычных формах
Кто-то за это платит деньги? Или на курсе преподают что-то другое?
Не понял суть вопроса
Это сарказм или 127 человек для тебя реально много?)
Если тебя в онлайне больше людей слушает, то мое почтение.
Для меня 127 человек в онлайне много.
@@yellow_club ты неправильно понял, я же не с издевкой написал. Я просто думал, что у тебя онлайн гораздо больше)
@MrTorfable не) в этот раз самый большой онлайн был. В пике 230 человек
Евгений,а вы шаблоны используете?
Нет
2:54:57 - так не нужно писать код. Есть стандартные функции бсп по получению значений (ия) свойств (а) одного или сразу по нескольким объектам
А почему не нужно то?) Обьект без табличных частей, без двоичных данных. Ничего не запрещает так делать в моем случае
@@yellow_club, потому что это оставил мину, которая однажды может неожиданно подорваться.
@@yellow_club Потому что внезапно в будущем может появиться в объекте табличная часть, а за ней и двоичные данные, а про это место в коде в тот момент никто не вспомнит
Переменную ПредыдущийДень заменить на более короткую Вчера :-)
А лучше в Давеча :-)
Почему-то в видео не вылазит и оповещений нет. Если бы не Пикабу- пропустил бы /
Ого) круто!
@@yellow_clubКруто что видос поймал на сторонней платформе ? =)
Да)
Ребята, почему 1С, неужели вам нравится эта дичь со стилем 90х и недокодингом?
Бапки норм платят и пользу бизнесу приносим. Что ещё нада?
Такие же нюансы как и в других платформах. Так что ничем не хуже если оценивать "итого"
Потому что 1С позволяет быстро выполнить бизнес задачу. В том числе быстрое прототипирование и выход на MVP
Зря я похоже не хотел сначала смотреть почти 4 часовое видео. Первые десять минут просто огонь 🔥😂
Это ты ещё до 46 минуты не дошёл)
Ожидал услышать фразу "Я потерялся!" намного раньше третьего часа программирования 😂 Франч уже бабло получил за это задание и сидит пьет пивас 🍻 Кто-то теряет, а кто-то находит...
если чуть по медление было куда лучше было объяснения урока
Пересматриваю стрим и не понимаю почему ты себя не поместил куда то вниз в маленькое окно
Мне так нравится) бесят люди в квадратиках в углу кадра
ну типа беседа же. не просто курс, что-то там поясняющий. норм всё
Продвижение личного бренда
@Gesperid а если я был бы в мелком квадратике сверху, то это бы не было продвижением бренда?)
@@yellow_club но не таким эффективным ;)
Смотрю я на эту 1с помойку и тошнить начинает
Главное, что в 1С сфере нормально и стабильно платят. 400к уже реальные зарплаты для линейных разработчиков
Отличное видео как не надо разрабатывать конфигурации даже для ларьков. Ладно стример не в теме 1С, но он вроде институтского возраста, а принципа классов в программировании не понимает. Возможно это уже диагноз. Дальнейший путь в тимлиды
Напиши хоть что-то конкретное) а то обсираешь в формате «все говно, мне не нравица». Такая себе позиция.
Мы, мыши, слишком исколоты для другой позиции.
Погодите, это заводчанин с легаси УПП 20 летней порвался или что? Возможно, это уже диагноз. Дальнейший путь не смотреть канал Евгения, раз настолько печет. Кто заставлял?
@HadgehogsDim продолжишь хамить и я тебя забаню