В данном случае это подходит но не всегда. Иногда смена данных может оказаться важнее чем не доредактированный документ. Пример после неких действий (регламентного задания) должен к примеру к заказу прикрепиться договор в следствии оплаты которая также была обработана регламентным заданием и если мы подобным образом заблокируем то к заказу не прикрепиться договор. Проще перепрочитать недоредактируемую форму и сообщить об этом пользоваьелю
неее, тебе что мало то что уже есть у Леонтьева там часов 200, есть более интересные темы, например разбирать логику работы типовых и бсп. а спец по платформе уже устарел. так никто не пишет все гораздо сложнее.
@@Sa000Nya У Ивана подача материала лучше чем у других. Спец по платформе всегда отличался от реальных задач и он актуален до сих пор, так как проверяет умение программировать. А логику типовых и бсп мы сами осваиваем в процессе ежедневной работы.
@@1C-Developer В природе нет более легкого курса чем у ильи там все разжевано буквально на пальцах. Просто подготовься и забудь уже про этот дурацкий экзамен =) Конечно Иван мог бы сделать похожий но зачем, да и билеты экзаменационные искать по Тг каналам как это делал Илья не совсем законно в противном случае получится обрубок который не готовит к реальным билетам.
Перехожу с WebDev на 1С, причем это уже вторая попытка, первая завершилась неудачей, потому что ну душно очень 1С, таблицы итд, но благодаря Ивану и его титанической работе,становится не так душновато, а давольно таки интересно. спасибо тебе Иван, ты лучший!!!
На чужих ошибках сложнее учиться. Их мозг в долговременную память не хочет записывать. А когда сам накосячил на себе прочувствовал и исправил - тут да ))
Если рассматривать задачу как теоретическую, чтоб показать, что такое пессимистическая блокировка, то норм. А так нужно исходить из ситуации и нужд заказчика. Я например считаю, что логика вполне нормальная, кто первый изменил документ, тот и прав, т.е. блокировка на форме обоснована и пользователь должен переоткрыть документ. А вообще если стоит задача одновременно и статусы изменять и чтобы пользователи работали необходимо вынести статусы в отдельный объект, например регистр ну или вообще вместо статусов использовать другие документы. Потом просто с этими статусами в документе начинается такая путаница, например сделали реализацию, не поставили статус "Закрыт" или клиент просить добавить специальные права на статус "В работе". Поэтому можно сделать так 3 документа Заказ -> Поступление -> Реализация, если нужно еще делать отмену заказа, то тоже специальный документ для этого, так же, если нужно регистр, где отслеживается статусы заказа. На основании заказа, создаются остальные документы, если нужно ограничить права, то это можно сделать типовым способом без костылей и проверок, какой там статус у заказа, если нужно просмотреть статус заказа, делаешь отчет по регистру, который отслеживает статусы заказа.
Можно открывать транзакцию при начале редактирования объектов, блокировка установится автоматически НачатьТранзакцию(); Попытка ДелаемЧтоТо(); ЗафиксироватьТранзакцию(); Исключение Если ТранзакцияАктивна() Тогда ОтменитьТранзакцию(); КонецЕсли; ВызватьИсключение; КонецПопытки;
Это будет работать, если в свойствах конфигурации режим управления блокировками "автоматический". Но во всех современных конфигурациях стоит "управляемый режим. И зачем Вам в секции исключения проверять начало транзакции? И так понятно, что она стартанула. Если код написан нормально, то такие проверки делать не нужно.
подскажите, на сколько корректно было бы вынести информацию о статусах в отдельный регистр, а вывод о статусе делать в момент открытия формы документа или списка, ведь таким образом мы не завяжемся на заблокирован объект или нет?
А теперь представим ситуацию, когда наш метод после рефакторинга переезжает в общий модуль, а затем переиспользуется в какой-нибудь обработке внутри транзакции. И получаем в итоге головную боль у программиста, который будет ловить плавающий баг с отменой транзакции при выполнении совершенно штатной операции. Браво!
@@kuzyara555 Не давать абсолютных рекомендаций и все инструменты, которые предлагает платформа, использовать к месту и с умом. Например, код, который потенциально может переиспользоваться в других местах, не писать с применением обработки исключений, а если вам нужна обработка исключений и вы работаете с данными формы, то делать привязку к этим самым данным формы, чтобы код нельзя было ошибочно переиспользовать. В общем, думать, что будет дальше, а не только сейчас.
В 1С конечно очень специфичная и спорная реализация работы с транзакциями и вообще атомарных операций, но имеем что имеем, как говорится и нужно учиться пользоваться теми инструментами, что есть.
в одной фирме внедрял подсистему, которая на основе продаж, формировала документы, которые помогали снабженцам с подтоваркой. И возник момент, когда снабженец открывал документ и что то начинал делать и до тех пор пока они не поставят флажок "принят в работу" и не запишет, то документ воспринимался системой как неактивным и при выполнении регламентного задания перемещался в архив и естественно без объектной блокировки стали возникать такие проблемы. Но если бы внедрил объектную блокировку, то система бы начала работать криво. Поэтому главный вывод, программист сам должен знать когда нужно применять объектную блокировку.
Главный вывод, у вас кривая архитектура. Документ если проведен, должен применять изменения, без каких-либо галок "принят в работу". Галки и статусы в документах это зло и делается это зло с целью экономии и недостаточного понимания процесса работы.
@@ДенисКошкаров-м3в Погоди, а как тогда называется Статус в документе Заказы клиентов в той же УТ11 ??? Ты видимо тяжелее печатных форм ничего не делал, раз такие поспешные выводы строишь!
@ и что, если статусы есть в документах в УТ, значит по другому нельзя сделать? Или УТ это священный Грааль? Открою тебе секрет, в УТ тоже есть проблемы с архитектурой.
@@ДенисКошкаров-м3в вот именно. Знаешь а есть еще такая штука как хотелка постановщика задачи. Для тех же самописных, управленческих документов, мне одна говорит - делай что бы я могла поставить в документе галку Принят в работу и Выполнен. И там спорить было бесполезно, типа а может создать документ, при вводе на основании которого будет меняться его статус и в случае чего можно будет отследить кто и когда это делал. А знаешь почему? Потому что им так проще и удобней. Я сделал и от меня отвязались. А вот бывают такие моменты, когда по другому просто не как. Особенно когда в моем случае, даже тех. задания не то что не было, они (постановщики) даже не знали, что и как должно работать. Тыж программист, вот я сидел придумывал.
например, в модуле объекта расположен код инициализации (снизу), который выполняется при любом обращении к объекту (и при получении объекта тоже), и может выдать исключение.
В теории да, но в практике это крайне маловероятная ситуация. Гораздо чаще встречается ситуация, когда два оператора пытаются в режиме пользователя редактировать один и тот же документ и портят друг другу работу
если пользователей много, то такая ситуация возникает не редко - постоянно кто-то какие-то документы редактирует и очень обидно бывает потерять свои изменения
И снова здравствуйте, Иван. 🙄 все тот же вопрос: "О внешних компонентах замолвите слово? Ну да, знаю, что обещали, что обещанного три года ждут. Ждем-с уже как четвертый год 😁 или может уже был видос и мы ено пропустили? 😇
Без знания 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.17 и меньше). Мы же учим правильно писать)
На самом деле это мелкая проблема. Большая проблема, что первый пользователь может добавить в массив не свои документы. Поэтому должна быть проверка на право работы с контрагентом, организацией , складом и т.п.
Это уже совсем другая тема.... И она гораздо объёмнее. Хотя и сам способ изменения статуса заказов (ручками) - это полная лажа. Но как пример для подачи инфы по программированию очень наглядный. А Иван - молодца!
@@panalikeэто актуально только при интерактивной записи из формы. И для настройки такого поведения даже специальное свойство формы есть "Проводить при записи" или примерно как-то так называется.
Я теперь понял почему ролик называется "Программист, не пиши так". Ваня ну ладно бы склад поменять, ну ответственного, но состояние! Объясни пожалуйста хоть в комментах новичкам, что в большинстве случаев состояние надо выносить в регистр.
В целом резонное замечание, но СостояниеЗаказа - именно реквизит в данной демобазе от 1С, думаю, что в коротком ролике Иван хотел показать именно момент с блокировками, а не архитектурой 1С.
Всё таки какая-то странная логика у 1С. Пользователь начал редактировать документ, возникла блокировка, но процедура в другом сеансе увидит её только тогда, когда сама попытается наложить блокировку. А если не попытается, то ей можно всё. Как будто выхватывает надкусанный бутерброд из чужого рта.
Почему странное, попробуй заказать билет на каком-нибудь сайте, система тебе позволит открыть форму заказа билета, но если после открытия, другой пользователь билет купит, то при попытке купить этот билет, тебе вылезет сообщение, что билетов больше нет.
Человек на видео исправил одну ошибку и родил другую. Попытка не для этого используется и да есть метод Заблокирован(). За Попытка и вывод такого сообщения нужно увольнять.
Тебя в детстве Нуралиев покусал что ли, откуда такая токсичность? Программирование - это создание или модификация программы, если для тебя данное определение трудное, то лучше больше читай, а не пиши.
обожаю! быстро четко и по делу, предельно понятное изложение, очень круто, удачи!
В данном случае это подходит но не всегда. Иногда смена данных может оказаться важнее чем не доредактированный документ. Пример после неких действий (регламентного задания) должен к примеру к заказу прикрепиться договор в следствии оплаты которая также была обработана регламентным заданием и если мы подобным образом заблокируем то к заказу не прикрепиться договор. Проще перепрочитать недоредактируемую форму и сообщить об этом пользоваьелю
Иван, спасибо большое за Ваш труд! Не останавливайтесь никогда!)))
Как всегда, четко ёмко и очень доходчиво! 👍 самые лучшие обучающие видео🤝
Очень ждем курс по подготовке к специалисту по платформе и эксперту по технологическим вопросам😎
неее, тебе что мало то что уже есть у Леонтьева там часов 200, есть более интересные темы, например разбирать логику работы типовых и бсп. а спец по платформе уже устарел. так никто не пишет все гораздо сложнее.
@@Sa000Nya У Ивана подача материала лучше чем у других. Спец по платформе всегда отличался от реальных задач и он актуален до сих пор, так как проверяет умение программировать. А логику типовых и бсп мы сами осваиваем в процессе ежедневной работы.
@@1C-Developer В природе нет более легкого курса чем у ильи там все разжевано буквально на пальцах. Просто подготовься и забудь уже про этот дурацкий экзамен =) Конечно Иван мог бы сделать похожий но зачем, да и билеты экзаменационные искать по Тг каналам как это делал Илья не совсем законно в противном случае получится обрубок который не готовит к реальным билетам.
@@Sa000Nya Ну, особо билеты искать не нужно. :) И они на 99% актуальны. Изменения в условиях задач на экзамене незначительны.
Смеёшься что ли? Какой эксперт, иван показывет хелоу ворды для новичков.
Перехожу с WebDev на 1С, причем это уже вторая попытка, первая завершилась неудачей, потому что ну душно очень 1С, таблицы итд, но благодаря Ивану и его титанической работе,становится не так душновато, а давольно таки интересно. спасибо тебе Иван, ты лучший!!!
Очень понравился такой формат. Продолжайте, это очень интересно)
Иван, как всегда, очень полезное видео!!! Продолжай в том же духе!
Впитваем, учимся, всяческие благодарности тебе, добрый человек)
На чужих ошибках сложнее учиться. Их мозг в долговременную память не хочет записывать. А когда сам накосячил на себе прочувствовал и исправил - тут да ))
Как всегда все на Высшем уровне, спасибо Иван.
Как всегда отлично. Четко, доходчиво! Отличное видео!
Иван, спасибо вам большое! У вас прекрасная подача! Благодаря вам увидела, что 1С может быть очень даже интересным😊
Отличный ролик, очень полезно, спасибо!
Спасибо за ролик, как всегда супер!
Спасибо Вам большое. Как всегда все четко и по делу. 👍👍👍
Спасибо. Все по делу: кратко и понятно! 👍👍👍
Спасибо, очень полезный и качественный урок!
Если рассматривать задачу как теоретическую, чтоб показать, что такое пессимистическая блокировка, то норм. А так нужно исходить из ситуации и нужд заказчика. Я например считаю, что логика вполне нормальная, кто первый изменил документ, тот и прав, т.е. блокировка на форме обоснована и пользователь должен переоткрыть документ. А вообще если стоит задача одновременно и статусы изменять и чтобы пользователи работали необходимо вынести статусы в отдельный объект, например регистр ну или вообще вместо статусов использовать другие документы. Потом просто с этими статусами в документе начинается такая путаница, например сделали реализацию, не поставили статус "Закрыт" или клиент просить добавить специальные права на статус "В работе". Поэтому можно сделать так 3 документа Заказ -> Поступление -> Реализация, если нужно еще делать отмену заказа, то тоже специальный документ для этого, так же, если нужно регистр, где отслеживается статусы заказа. На основании заказа, создаются остальные документы, если нужно ограничить права, то это можно сделать типовым способом без костылей и проверок, какой там статус у заказа, если нужно просмотреть статус заказа, делаешь отчет по регистру, который отслеживает статусы заказа.
Было интересно, узнал про %1 и %2 😊
Классное видео. Полезное. По чаще бы видео на канале. Поддержите лайкосом!
Полезная информация!
Спасибо, круто
Иван как всегда красавчик! Ликбез нужен и важен...
То что нужно!
Рахмет из Казахстана.
Иван спасибо за видео Чыжоука смотрит :)
Жилая вам блага двух миров
За Статус как реквизит документа, нормализация БД говорит вам Привет!
это чтоб в списках быстрее отображалось, наверняка там еще и при проведении в какой-нибудь регистр пишется
Здравствуйте, Иван, скажите, пожалуйста, будет ли 3 часть по барбершопу? Очень жду продолжения!
Спасибо большое
Никогда не пиши так: "программист 1с"
Четко, локанично. Держите подписку!
Спасибо за видео)
Спасибо.
Супер полезно, спасибо. Ролики по сложным запросам будут?
Лучший!😊
Отличное видео. Иван, какой есть альтернативный канал, а то с ютубом беда.
Можно открывать транзакцию при начале редактирования объектов, блокировка установится автоматически
НачатьТранзакцию();
Попытка
ДелаемЧтоТо();
ЗафиксироватьТранзакцию();
Исключение
Если ТранзакцияАктивна() Тогда
ОтменитьТранзакцию();
КонецЕсли;
ВызватьИсключение;
КонецПопытки;
Это будет работать, если в свойствах конфигурации режим управления блокировками "автоматический". Но во всех современных конфигурациях стоит "управляемый режим. И зачем Вам в секции исключения проверять начало транзакции? И так понятно, что она стартанула. Если код написан нормально, то такие проверки делать не нужно.
Парень, почитай про транзакции, загугли, первая статья на хабре по этой теме. Человек выше все правильно написал.@@МаксимШипилов-ц5ь
И получить взаимоблокировку
Упр блокировки и объектные это разные вещи, пользователь так же бы получил ошибку с несоответствием версий
И за ТранзакцияАктивна вообще руки отрывают
Thank you, sir
подскажите, на сколько корректно было бы вынести информацию о статусах в отдельный регистр, а вывод о статусе делать в момент открытия формы документа или списка, ведь таким образом мы не завяжемся на заблокирован объект или нет?
А теперь представим ситуацию, когда наш метод после рефакторинга переезжает в общий модуль, а затем переиспользуется в какой-нибудь обработке внутри транзакции. И получаем в итоге головную боль у программиста, который будет ловить плавающий баг с отменой транзакции при выполнении совершенно штатной операции. Браво!
И что вы предлагаете?
@@kuzyara555 Не давать абсолютных рекомендаций и все инструменты, которые предлагает платформа, использовать к месту и с умом. Например, код, который потенциально может переиспользоваться в других местах, не писать с применением обработки исключений, а если вам нужна обработка исключений и вы работаете с данными формы, то делать привязку к этим самым данным формы, чтобы код нельзя было ошибочно переиспользовать. В общем, думать, что будет дальше, а не только сейчас.
В 1С конечно очень специфичная и спорная реализация работы с транзакциями и вообще атомарных операций, но имеем что имеем, как говорится и нужно учиться пользоваться теми инструментами, что есть.
Придираетесь, ничего страшного в данном примере нет, при рефакторинге вменяемый программист организует проброс исключения
в одной фирме внедрял подсистему, которая на основе продаж, формировала документы, которые помогали снабженцам с подтоваркой. И возник момент, когда снабженец открывал документ и что то начинал делать и до тех пор пока они не поставят флажок "принят в работу" и не запишет, то документ воспринимался системой как неактивным и при выполнении регламентного задания перемещался в архив и естественно без объектной блокировки стали возникать такие проблемы. Но если бы внедрил объектную блокировку, то система бы начала работать криво.
Поэтому главный вывод, программист сам должен знать когда нужно применять объектную блокировку.
Главный вывод, у вас кривая архитектура. Документ если проведен, должен применять изменения, без каких-либо галок "принят в работу". Галки и статусы в документах это зло и делается это зло с целью экономии и недостаточного понимания процесса работы.
@@ДенисКошкаров-м3в Погоди, а как тогда называется Статус в документе Заказы клиентов в той же УТ11 ???
Ты видимо тяжелее печатных форм ничего не делал, раз такие поспешные выводы строишь!
@ и что, если статусы есть в документах в УТ, значит по другому нельзя сделать? Или УТ это священный Грааль? Открою тебе секрет, в УТ тоже есть проблемы с архитектурой.
@@ДенисКошкаров-м3в вот именно. Знаешь а есть еще такая штука как хотелка постановщика задачи. Для тех же самописных, управленческих документов, мне одна говорит - делай что бы я могла поставить в документе галку Принят в работу и Выполнен. И там спорить было бесполезно, типа а может создать документ, при вводе на основании которого будет меняться его статус и в случае чего можно будет отследить кто и когда это делал. А знаешь почему? Потому что им так проще и удобней. Я сделал и от меня отвязались.
А вот бывают такие моменты, когда по другому просто не как. Особенно когда в моем случае, даже тех. задания не то что не было, они (постановщики) даже не знали, что и как должно работать. Тыж программист, вот я сидел придумывал.
@ я тебя полностью понимаю, сам с таким постоянно сталкиваюсь. Вот и пишу, что это не есть хорошо.
Иван, коллеги. Как теперь смотреть ютуб то? У меня даже на телефоне не грузит?
Класс 👌👍
ПолучитьОбъект() тоже может вызвать исключение)) т.е. изначально попытка тоже нужна была.
В каких случаях?
например, в модуле объекта расположен код инициализации (снизу), который выполняется при любом обращении к объекту (и при получении объекта тоже), и может выдать исключение.
В теории да, но в практике это крайне маловероятная ситуация. Гораздо чаще встречается ситуация, когда два оператора пытаются в режиме пользователя редактировать один и тот же документ и портят друг другу работу
если пользователей много, то такая ситуация возникает не редко - постоянно кто-то какие-то документы редактирует и очень обидно бывает потерять свои изменения
У нас и так есть массив ссылок на документы, за чем их пихать в запрос для цикла, если можно сразу идти по циклу с проверкой статуса?
Почему на курсах это не озвучивают (
Привет ошибки когда версия объекта уже изменилась)
И снова здравствуйте, Иван. 🙄 все тот же вопрос: "О внешних компонентах замолвите слово? Ну да, знаю, что обещали, что обещанного три года ждут. Ждем-с уже как четвертый год 😁 или может уже был видос и мы ено пропустили? 😇
Без знания 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 с исходниками.
@@PTolkachev У Ивана есть талант излагать понятным языком, может у него получится. 😁
Эффект гонок)
Да опытные тоже так делают, когда надо разрабатываться в режиме "хренакс-хренакс и в прод", потому что вчера должно работать. Кто там за блокировки вспомнит?
А вариант , Выбрать ДЛЯ ИЗМЕНЕНИЯ , в запросе ?
А это для каких транзакционных блокировок актуально?
А когда блокировка будет снята с заказа, когда пользователь 2 сможет править свой заказ?
Все равно док надо менять! Кто первый встал того и тапки :))) а у пользака несколько дней док может в захвате висеть!
Рулите, ребята!)))
Так все таки, расскажите подробнее почему мы пользуемся "попытка заблокировать()". А не " если заблокирован() тогда"?
Метод Заблокирован(): Определяет, заблокирован ли документ данным объектом.
В данном случае этот метод не подходит.
Разработчики вендора не читают стандартов. Классика жанра
👍
Как все упомнить...
Рекомендуется писать ОбработкаОшибок.ПодробноеПредставлениеОшибки, вместо ПодробноеПредставлениеОшибки (если конечно не сидите на 8.3.17 и меньше). Мы же учим правильно писать)
Что за оработкаОшибок?
Может менеджерОбработкиОшибок?
Или вы про модуль БСП?
Почему рекомендация такая?
@@kuzyara555 вопрос к разработчикам платформы, не сюда.
@@NameNotFoundDD а у вас откуда эта информация про правильно/неправильно?
@@kuzyara555 синтаксический помощник 1с
На самом деле это мелкая проблема. Большая проблема, что первый пользователь может добавить в массив не свои документы. Поэтому должна быть проверка на право работы с контрагентом, организацией , складом и т.п.
Это уже совсем другая тема.... И она гораздо объёмнее. Хотя и сам способ изменения статуса заказов (ручками) - это полная лажа. Но как пример для подачи инфы по программированию очень наглядный. А Иван - молодца!
получитьобъект так же может вызвать исключение - отгадай когда
Когда этого объекта нет в БД. Только исключения не будет. Будет Неопределено вместо объекта.
Вроде бы еще есть третий способ блокировки - с помощью объекта БлокировкаДанных?
Это вообще другое. Это управляемая блокировка.
1:46 зачем проверять проведен документ или нет, если он проведен, то даже если просто запишем его, он и так перепроведется
Не всегда при записи происходит проведение.
@@EduardKarabovich если док проведен, то при записи уже проведенного документа, всегда происходит перепроведение хоть и не явное
@@panalike 🤡
Конечно нет, попробуйте программно изменить состав заказа и перезаписать, в движениях ничего не изменится.
@@panalikeэто актуально только при интерактивной записи из формы. И для настройки такого поведения даже специальное свойство формы есть "Проводить при записи" или примерно как-то так называется.
Я теперь понял почему ролик называется "Программист, не пиши так".
Ваня ну ладно бы склад поменять, ну ответственного, но состояние!
Объясни пожалуйста хоть в комментах новичкам, что в большинстве случаев состояние надо выносить в регистр.
В целом резонное замечание, но СостояниеЗаказа - именно реквизит в данной демобазе от 1С, думаю, что в коротком ролике Иван хотел показать именно момент с блокировками, а не архитектурой 1С.
Всё таки какая-то странная логика у 1С. Пользователь начал редактировать документ, возникла блокировка, но процедура в другом сеансе увидит её только тогда, когда сама попытается наложить блокировку. А если не попытается, то ей можно всё. Как будто выхватывает надкусанный бутерброд из чужого рта.
Почему странное, попробуй заказать билет на каком-нибудь сайте, система тебе позволит открыть форму заказа билета, но если после открытия, другой пользователь билет купит, то при попытке купить этот билет, тебе вылезет сообщение, что билетов больше нет.
сообщитьпользователю не правильно, правильно ОбщегоНазначения.СообщениеПользователю
Почему неправильно?
"общегоНазначения" - это если в конфе имеется БСП. А Иван правильно делает, что показывает платформенный функционал.
Человек на видео исправил одну ошибку и родил другую. Попытка не для этого используется и да есть метод Заблокирован(). За Попытка и вывод такого сообщения нужно увольнять.
Какую другую ошибку он сделал? Все правильно у Ивана
@@kolya2323 любое действие можно реализовать без Попытка, Попытка - это ошибка программиста, которую ему лень переписывать..
Иван все верно описал, какую такую ошибку он совершил?
Какая разница, ну проверишь ты на заблокирован, и так же в исключение упадешь и все, так что иди Радченко заново учи)
он же буквально написание из справки повторил, алеша)
Нет никаких программистов 1С. 1С - это не программирование это чушь собачья
Да, так их, этих 1Сников 😅
А что? А почему? а куда они пропали?
А как называть людей которые 1с занимаются?
Да хоть как их называй. Получают они неплохо и это главное.
Тебя в детстве Нуралиев покусал что ли, откуда такая токсичность? Программирование - это создание или модификация программы, если для тебя данное определение трудное, то лучше больше читай, а не пиши.
Спасибо
Полезная информация!