обожаю! быстро четко и по делу, предельно понятное изложение, очень круто, удачи!
@iqmaxima3 ай бұрын
В данном случае это подходит но не всегда. Иногда смена данных может оказаться важнее чем не доредактированный документ. Пример после неких действий (регламентного задания) должен к примеру к заказу прикрепиться договор в следствии оплаты которая также была обработана регламентным заданием и если мы подобным образом заблокируем то к заказу не прикрепиться договор. Проще перепрочитать недоредактируемую форму и сообщить об этом пользоваьелю
@1C-Developer4 ай бұрын
Очень ждем курс по подготовке к специалисту по платформе и эксперту по технологическим вопросам😎
@Sa000Nya4 ай бұрын
неее, тебе что мало то что уже есть у Леонтьева там часов 200, есть более интересные темы, например разбирать логику работы типовых и бсп. а спец по платформе уже устарел. так никто не пишет все гораздо сложнее.
@1C-Developer4 ай бұрын
@@Sa000Nya У Ивана подача материала лучше чем у других. Спец по платформе всегда отличался от реальных задач и он актуален до сих пор, так как проверяет умение программировать. А логику типовых и бсп мы сами осваиваем в процессе ежедневной работы.
@Sa000Nya4 ай бұрын
@@1C-Developer В природе нет более легкого курса чем у ильи там все разжевано буквально на пальцах. Просто подготовься и забудь уже про этот дурацкий экзамен =) Конечно Иван мог бы сделать похожий но зачем, да и билеты экзаменационные искать по Тг каналам как это делал Илья не совсем законно в противном случае получится обрубок который не готовит к реальным билетам.
@ivernik4 ай бұрын
@@Sa000Nya Ну, особо билеты искать не нужно. :) И они на 99% актуальны. Изменения в условиях задач на экзамене незначительны.
@БипейШтифонов4 ай бұрын
Смеёшься что ли? Какой эксперт, иван показывет хелоу ворды для новичков.
@kingezhsepo4 ай бұрын
На чужих ошибках сложнее учиться. Их мозг в долговременную память не хочет записывать. А когда сам накосячил на себе прочувствовал и исправил - тут да ))
@Гусева_АнастасияАй бұрын
Отличный ролик, очень полезно, спасибо!
@Ivanov_Ivan_111113 ай бұрын
Иван, спасибо большое за Ваш труд! Не останавливайтесь никогда!)))
@varikap874 ай бұрын
Как всегда, четко ёмко и очень доходчиво! 👍 самые лучшие обучающие видео🤝
@Rarogg2 ай бұрын
Иван, как всегда, очень полезное видео!!! Продолжай в том же духе!
@LichnostSowi4 ай бұрын
Перехожу с WebDev на 1С, причем это уже вторая попытка, первая завершилась неудачей, потому что ну душно очень 1С, таблицы итд, но благодаря Ивану и его титанической работе,становится не так душновато, а давольно таки интересно. спасибо тебе Иван, ты лучший!!!
@GioCatrice.x3 ай бұрын
Очень понравился такой формат. Продолжайте, это очень интересно)
@Evang-Evang3 ай бұрын
Как всегда все на Высшем уровне, спасибо Иван.
@АндрейКараваев-н6с4 ай бұрын
Как всегда отлично. Четко, доходчиво! Отличное видео!
Иван, спасибо вам большое! У вас прекрасная подача! Благодаря вам увидела, что 1С может быть очень даже интересным😊
@arshanskiysergey27913 ай бұрын
Спасибо, очень полезный и качественный урок!
@Щепа-с3о3 ай бұрын
Классное видео. Полезное. По чаще бы видео на канале. Поддержите лайкосом!
@ЭдуардКоротков-б4к3 ай бұрын
Спасибо за ролик, как всегда супер!
@ВладимирВолобуев-з4б3 ай бұрын
Спасибо Вам большое. Как всегда все четко и по делу. 👍👍👍
@MikkKo-qv4jy3 ай бұрын
Спасибо. Все по делу: кратко и понятно! 👍👍👍
@bearmillionare3 ай бұрын
Было интересно, узнал про %1 и %2 😊
@ДенисКошкаров-м3в20 күн бұрын
Если рассматривать задачу как теоретическую, чтоб показать, что такое пессимистическая блокировка, то норм. А так нужно исходить из ситуации и нужд заказчика. Я например считаю, что логика вполне нормальная, кто первый изменил документ, тот и прав, т.е. блокировка на форме обоснована и пользователь должен переоткрыть документ. А вообще если стоит задача одновременно и статусы изменять и чтобы пользователи работали необходимо вынести статусы в отдельный объект, например регистр ну или вообще вместо статусов использовать другие документы. Потом просто с этими статусами в документе начинается такая путаница, например сделали реализацию, не поставили статус "Закрыт" или клиент просить добавить специальные права на статус "В работе". Поэтому можно сделать так 3 документа Заказ -> Поступление -> Реализация, если нужно еще делать отмену заказа, то тоже специальный документ для этого, так же, если нужно регистр, где отслеживается статусы заказа. На основании заказа, создаются остальные документы, если нужно ограничить права, то это можно сделать типовым способом без костылей и проверок, какой там статус у заказа, если нужно просмотреть статус заказа, делаешь отчет по регистру, который отслеживает статусы заказа.
@MNail-w9s4 ай бұрын
Иван как всегда красавчик! Ликбез нужен и важен...
@asg55114 ай бұрын
Полезная информация!
@user-ux3cp4kr6r4 ай бұрын
Никогда не пиши так: "программист 1с"
@gdd_burcklock70163 ай бұрын
Спасибо, круто
@UrmatKasymov4 ай бұрын
Четко, локанично. Держите подписку!
@Простоипонятно-е1д4 ай бұрын
Супер полезно, спасибо. Ролики по сложным запросам будут?
@izumrudbek3 ай бұрын
Жилая вам блага двух миров
@СергейВ-р2б4 ай бұрын
Иван спасибо за видео Чыжоука смотрит :)
@ТемноеБудущее-ч7ц4 ай бұрын
За Статус как реквизит документа, нормализация БД говорит вам Привет!
@TresModiosVir3 ай бұрын
это чтоб в списках быстрее отображалось, наверняка там еще и при проведении в какой-нибудь регистр пишется
@mr.farkhat3 ай бұрын
То что нужно!
@ЛеонидЛеонидов-ь9в4 ай бұрын
Можно открывать транзакцию при начале редактирования объектов, блокировка установится автоматически НачатьТранзакцию(); Попытка ДелаемЧтоТо(); ЗафиксироватьТранзакцию(); Исключение Если ТранзакцияАктивна() Тогда ОтменитьТранзакцию(); КонецЕсли; ВызватьИсключение; КонецПопытки;
@МаксимШипилов-ц5ь4 ай бұрын
Это будет работать, если в свойствах конфигурации режим управления блокировками "автоматический". Но во всех современных конфигурациях стоит "управляемый режим. И зачем Вам в секции исключения проверять начало транзакции? И так понятно, что она стартанула. Если код написан нормально, то такие проверки делать не нужно.
@БипейШтифонов4 ай бұрын
Парень, почитай про транзакции, загугли, первая статья на хабре по этой теме. Человек выше все правильно написал.@@МаксимШипилов-ц5ь
@kuzyara5553 ай бұрын
И получить взаимоблокировку
@ВладимирШаров-к5ж3 ай бұрын
Упр блокировки и объектные это разные вещи, пользователь так же бы получил ошибку с несоответствием версий
@ВладимирШаров-к5ж3 ай бұрын
И за ТранзакцияАктивна вообще руки отрывают
@Gregory_974 ай бұрын
Здравствуйте, Иван, скажите, пожалуйста, будет ли 3 часть по барбершопу? Очень жду продолжения!
@almasomarov10063 ай бұрын
Рахмет из Казахстана.
@olegkrivoruchko5174 ай бұрын
Спасибо за видео)
@DenisLebedev83 ай бұрын
А теперь представим ситуацию, когда наш метод после рефакторинга переезжает в общий модуль, а затем переиспользуется в какой-нибудь обработке внутри транзакции. И получаем в итоге головную боль у программиста, который будет ловить плавающий баг с отменой транзакции при выполнении совершенно штатной операции. Браво!
@kuzyara5553 ай бұрын
И что вы предлагаете?
@DenisLebedev83 ай бұрын
@@kuzyara555 Не давать абсолютных рекомендаций и все инструменты, которые предлагает платформа, использовать к месту и с умом. Например, код, который потенциально может переиспользоваться в других местах, не писать с применением обработки исключений, а если вам нужна обработка исключений и вы работаете с данными формы, то делать привязку к этим самым данным формы, чтобы код нельзя было ошибочно переиспользовать. В общем, думать, что будет дальше, а не только сейчас.
@DenisLebedev83 ай бұрын
В 1С конечно очень специфичная и спорная реализация работы с транзакциями и вообще атомарных операций, но имеем что имеем, как говорится и нужно учиться пользоваться теми инструментами, что есть.
@rustmacro45633 ай бұрын
Придираетесь, ничего страшного в данном примере нет, при рефакторинге вменяемый программист организует проброс исключения
@jeepwork3 ай бұрын
Спасибо большое
@commonaccount64533 ай бұрын
Отличное видео. Иван, какой есть альтернативный канал, а то с ютубом беда.
@maxglu71653 ай бұрын
Лучший!😊
@Hauyhi3 ай бұрын
подскажите, на сколько корректно было бы вынести информацию о статусах в отдельный регистр, а вывод о статусе делать в момент открытия формы документа или списка, ведь таким образом мы не завяжемся на заблокирован объект или нет?
@ДмитрийКравцов-у6р3 ай бұрын
Спасибо.
@АлексейЛ-й1ш4 ай бұрын
В теории да, но в практике это крайне маловероятная ситуация. Гораздо чаще встречается ситуация, когда два оператора пытаются в режиме пользователя редактировать один и тот же документ и портят друг другу работу
@arshanskiysergey27913 ай бұрын
если пользователей много, то такая ситуация возникает не редко - постоянно кто-то какие-то документы редактирует и очень обидно бывает потерять свои изменения
@vs_999Ай бұрын
в одной фирме внедрял подсистему, которая на основе продаж, формировала документы, которые помогали снабженцам с подтоваркой. И возник момент, когда снабженец открывал документ и что то начинал делать и до тех пор пока они не поставят флажок "принят в работу" и не запишет, то документ воспринимался системой как неактивным и при выполнении регламентного задания перемещался в архив и естественно без объектной блокировки стали возникать такие проблемы. Но если бы внедрил объектную блокировку, то система бы начала работать криво. Поэтому главный вывод, программист сам должен знать когда нужно применять объектную блокировку.
@ДенисКошкаров-м3в20 күн бұрын
Главный вывод, у вас кривая архитектура. Документ если проведен, должен применять изменения, без каких-либо галок "принят в работу". Галки и статусы в документах это зло и делается это зло с целью экономии и недостаточного понимания процесса работы.
@vs_99919 күн бұрын
@@ДенисКошкаров-м3в Погоди, а как тогда называется Статус в документе Заказы клиентов в той же УТ11 ??? Ты видимо тяжелее печатных форм ничего не делал, раз такие поспешные выводы строишь!
@ДенисКошкаров-м3в19 күн бұрын
@ и что, если статусы есть в документах в УТ, значит по другому нельзя сделать? Или УТ это священный Грааль? Открою тебе секрет, в УТ тоже есть проблемы с архитектурой.
@vs_99919 күн бұрын
@@ДенисКошкаров-м3в вот именно. Знаешь а есть еще такая штука как хотелка постановщика задачи. Для тех же самописных, управленческих документов, мне одна говорит - делай что бы я могла поставить в документе галку Принят в работу и Выполнен. И там спорить было бесполезно, типа а может создать документ, при вводе на основании которого будет меняться его статус и в случае чего можно будет отследить кто и когда это делал. А знаешь почему? Потому что им так проще и удобней. Я сделал и от меня отвязались. А вот бывают такие моменты, когда по другому просто не как. Особенно когда в моем случае, даже тех. задания не то что не было, они (постановщики) даже не знали, что и как должно работать. Тыж программист, вот я сидел придумывал.
@ДенисКошкаров-м3в19 күн бұрын
@ я тебя полностью понимаю, сам с таким постоянно сталкиваюсь. Вот и пишу, что это не есть хорошо.
@кек-ш1р4 ай бұрын
Thank you, sir
@YoR_യോഗ4 ай бұрын
Класс 👌👍
@melkiy17353 ай бұрын
Иван, коллеги. Как теперь смотреть ютуб то? У меня даже на телефоне не грузит?
@МихаилБалюкин3 ай бұрын
ПолучитьОбъект() тоже может вызвать исключение)) т.е. изначально попытка тоже нужна была.
@НиколайПитиримов-ы9ц3 ай бұрын
В каких случаях?
@МихаилБалюкин3 ай бұрын
например, в модуле объекта расположен код инициализации (снизу), который выполняется при любом обращении к объекту (и при получении объекта тоже), и может выдать исключение.
@banitbps47513 ай бұрын
У нас и так есть массив ссылок на документы, за чем их пихать в запрос для цикла, если можно сразу идти по циклу с проверкой статуса?
@ВладимирШаров-к5ж3 ай бұрын
Привет ошибки когда версия объекта уже изменилась)
@tihonkadavercian25894 ай бұрын
Эффект гонок)
@AntoHAmm17 күн бұрын
Почему на курсах это не озвучивают (
@Magafon3 ай бұрын
А когда блокировка будет снята с заказа, когда пользователь 2 сможет править свой заказ?
@ЕленаПименова-д6х4 ай бұрын
Рулите, ребята!)))
@8tshk83 ай бұрын
Да опытные тоже так делают, когда надо разрабатываться в режиме "хренакс-хренакс и в прод", потому что вчера должно работать. Кто там за блокировки вспомнит?
@ConstantinKubrakov4 ай бұрын
Разработчики вендора не читают стандартов. Классика жанра
@Наблюдатель-к5ч2 ай бұрын
Как все упомнить...
@QVRJ3 ай бұрын
Все равно док надо менять! Кто первый встал того и тапки :))) а у пользака несколько дней док может в захвате висеть!
@NameNotFoundDD4 ай бұрын
Рекомендуется писать ОбработкаОшибок.ПодробноеПредставлениеОшибки, вместо ПодробноеПредставлениеОшибки (если конечно не сидите на 8.3.17 и меньше). Мы же учим правильно писать)
@arxxximed4 ай бұрын
Что за оработкаОшибок? Может менеджерОбработкиОшибок? Или вы про модуль БСП?
@kuzyara5553 ай бұрын
Почему рекомендация такая?
@NameNotFoundDD3 ай бұрын
@@kuzyara555 вопрос к разработчикам платформы, не сюда.
@kuzyara5553 ай бұрын
@@NameNotFoundDD а у вас откуда эта информация про правильно/неправильно?
@NameNotFoundDD3 ай бұрын
@@kuzyara555 синтаксический помощник 1с
@usrzeroone3 ай бұрын
А вариант , Выбрать ДЛЯ ИЗМЕНЕНИЯ , в запросе ?
@НиколайПитиримов-ы9ц3 ай бұрын
А это для каких транзакционных блокировок актуально?
@Делажитейские-ь8й3 ай бұрын
И снова здравствуйте, Иван. 🙄 все тот же вопрос: "О внешних компонентах замолвите слово? Ну да, знаю, что обещали, что обещанного три года ждут. Ждем-с уже как четвертый год 😁 или может уже был видос и мы ено пропустили? 😇
@PTolkachev3 ай бұрын
Без знания C++ туда даже не стоит лезть. Или вы думаете, что за час (2, 3, 10) растолкуют не только базу C++, но и как на нём внешние компоненты для 1С делать? А если просто объяснить, как создавать внешние компоненты, то без знания С++ вы ни чего не поймёте (будет интересно, но ни (х...) чего не понятно). p.s. На других каналах есть примеры "лайв" создания внешней компоненты. Можете "погуглить". А если хотите внешнюю компоненту для android клиента 1С, то ещё нужно знать Java - JNI и базу по созданию приложений под Android. Под IOS тоже нужны соответствующий знания, но у меня не было опыта создания внешних компонент для мобильного клиента IOS. Только для Windows, Linux и Android (в последнем случае делал драйвер сканера штрихкодов для ТСД в соответствии со стандартами Библиотеки подключаемого оборудования). А для Win/Lin делал кроссплатформенный минисервер взаимодействия. Если есть желание, можете на Infostart поискать "Сервис push-уведомлений для 1С" и "Использование встроенного сканера ТСД на Android в мобильном клиенте и мобильном приложении (драйвер сканера Android для 1С)". Там, кстати, есть ссылки на github с исходниками.
@Делажитейские-ь8й3 ай бұрын
@@PTolkachev У Ивана есть талант излагать понятным языком, может у него получится. 😁
@МихаилАаа-д3ю4 ай бұрын
👍
@arxxximed4 ай бұрын
Так все таки, расскажите подробнее почему мы пользуемся "попытка заблокировать()". А не " если заблокирован() тогда"?
@Pavel13rm3 ай бұрын
Метод Заблокирован(): Определяет, заблокирован ли документ данным объектом. В данном случае этот метод не подходит.
@TresModiosVir3 ай бұрын
получитьобъект так же может вызвать исключение - отгадай когда
@НиколайПитиримов-ы9ц3 ай бұрын
Когда этого объекта нет в БД. Только исключения не будет. Будет Неопределено вместо объекта.
@Garik_Vorota4 ай бұрын
На самом деле это мелкая проблема. Большая проблема, что первый пользователь может добавить в массив не свои документы. Поэтому должна быть проверка на право работы с контрагентом, организацией , складом и т.п.
@СергейИванов-ц5д6х3 ай бұрын
Это уже совсем другая тема.... И она гораздо объёмнее. Хотя и сам способ изменения статуса заказов (ручками) - это полная лажа. Но как пример для подачи инфы по программированию очень наглядный. А Иван - молодца!
@panalike4 ай бұрын
1:46 зачем проверять проведен документ или нет, если он проведен, то даже если просто запишем его, он и так перепроведется
@EduardKarabovich4 ай бұрын
Не всегда при записи происходит проведение.
@panalike4 ай бұрын
@@EduardKarabovich если док проведен, то при записи уже проведенного документа, всегда происходит перепроведение хоть и не явное
@agni91134 ай бұрын
@@panalike 🤡
@КонстантинБулат-д1ш4 ай бұрын
Конечно нет, попробуйте программно изменить состав заказа и перезаписать, в движениях ничего не изменится.
@vladtrue48544 ай бұрын
@@panalikeэто актуально только при интерактивной записи из формы. И для настройки такого поведения даже специальное свойство формы есть "Проводить при записи" или примерно как-то так называется.
@ДонДигидон-т8й3 ай бұрын
Я теперь понял почему ролик называется "Программист, не пиши так". Ваня ну ладно бы склад поменять, ну ответственного, но состояние! Объясни пожалуйста хоть в комментах новичкам, что в большинстве случаев состояние надо выносить в регистр.
@rustmacro45633 ай бұрын
В целом резонное замечание, но СостояниеЗаказа - именно реквизит в данной демобазе от 1С, думаю, что в коротком ролике Иван хотел показать именно момент с блокировками, а не архитектурой 1С.
@ПавелАрборайтеров4 ай бұрын
Вроде бы еще есть третий способ блокировки - с помощью объекта БлокировкаДанных?
@Pavel13rm3 ай бұрын
Это вообще другое. Это управляемая блокировка.
@юзверь-9й22 күн бұрын
Всё таки какая-то странная логика у 1С. Пользователь начал редактировать документ, возникла блокировка, но процедура в другом сеансе увидит её только тогда, когда сама попытается наложить блокировку. А если не попытается, то ей можно всё. Как будто выхватывает надкусанный бутерброд из чужого рта.
@ДенисКошкаров-м3в20 күн бұрын
Почему странное, попробуй заказать билет на каком-нибудь сайте, система тебе позволит открыть форму заказа билета, но если после открытия, другой пользователь билет купит, то при попытке купить этот билет, тебе вылезет сообщение, что билетов больше нет.
@cilantro_bumblebee4 ай бұрын
сообщитьпользователю не правильно, правильно ОбщегоНазначения.СообщениеПользователю
@kuzyara5553 ай бұрын
Почему неправильно?
@СергейИванов-ц5д6х3 ай бұрын
"общегоНазначения" - это если в конфе имеется БСП. А Иван правильно делает, что показывает платформенный функционал.
@uppinua4 ай бұрын
Человек на видео исправил одну ошибку и родил другую. Попытка не для этого используется и да есть метод Заблокирован(). За Попытка и вывод такого сообщения нужно увольнять.
@kolya23234 ай бұрын
Какую другую ошибку он сделал? Все правильно у Ивана
@uppinua4 ай бұрын
@@kolya2323 любое действие можно реализовать без Попытка, Попытка - это ошибка программиста, которую ему лень переписывать..
@jkobich4 ай бұрын
Иван все верно описал, какую такую ошибку он совершил?
@vadimsergeev78744 ай бұрын
Какая разница, ну проверишь ты на заблокирован, и так же в исключение упадешь и все, так что иди Радченко заново учи)
@chestimevshiy62834 ай бұрын
он же буквально написание из справки повторил, алеша)
@LifterAndy4 ай бұрын
Нет никаких программистов 1С. 1С - это не программирование это чушь собачья
@МаксимШипилов-ц5ь4 ай бұрын
Да, так их, этих 1Сников 😅
@arxxximed3 ай бұрын
А что? А почему? а куда они пропали?
@kuzyara5553 ай бұрын
А как называть людей которые 1с занимаются?
@Pavel13rm3 ай бұрын
Да хоть как их называй. Получают они неплохо и это главное.
@rustmacro45633 ай бұрын
Тебя в детстве Нуралиев покусал что ли, откуда такая токсичность? Программирование - это создание или модификация программы, если для тебя данное определение трудное, то лучше больше читай, а не пиши.