- 34
- 240 029
Веселый1С
Netherlands
เข้าร่วมเมื่อ 13 ส.ค. 2019
Мы - компания людей, съевших собаку на 1С. Здесь мы собираемся и веселимся, обсуждаем все что происходит в мире 1С, применяя слова docker, java, git, devops и п..дец. Только уникальный контент, только хардкор!
Транзакции и исключения в 1С. Как правильно готовить?
Пытаемся возобновить традицию выпуска занимательных видео на Веселом 1С.
Сегодня речь пойдет об исключениях в транзакциях. Отменяет ли исключение транзакцию? Что будет если исключение возникло? Кто должен управлять состоянием транзакции и как?
Обо всем этом - в видео!
Материалы, упомянутые в видео:
- стандарт разработки 783 its.1c.ru/db/v8std#content:783:hdoc
- статья "Вы не умеете работать с транзакциями" habr.com/ru/post/419715/
------
Attributions:
Background image by upklyak on Freepik
Сегодня речь пойдет об исключениях в транзакциях. Отменяет ли исключение транзакцию? Что будет если исключение возникло? Кто должен управлять состоянием транзакции и как?
Обо всем этом - в видео!
Материалы, упомянутые в видео:
- стандарт разработки 783 its.1c.ru/db/v8std#content:783:hdoc
- статья "Вы не умеете работать с транзакциями" habr.com/ru/post/419715/
------
Attributions:
Background image by upklyak on Freepik
มุมมอง: 10 447
วีดีโอ
Красное на желтом (архивное демо)
มุมมอง 2.4Kปีที่แล้ว
Данное видео мы хотели записать на студии с красивыми кадрами, живыми инструментами и вот это всё, но видимо не судьба. Мы написали эту песню к игре "Что, Если, Когда" в 2021г. для новогодней игры. На нашем канале она не выкладывалась, исправлем данное упущение. Авторы текста: Андрей Овсянкин, Никита Федькин Если кто-то захочет включить в своё репертуар, то вот оригинал шпаргалки, в которую исп...
1С:Предприятие.Элемент. Разбор анонса.
มุมมอง 16K3 ปีที่แล้ว
Очередной партнерский семинар принес нам много интересно. Разбираемся, что же скрывается за загадочным словосочетанием 1С:Предприятие.Элемент, анонсированным нашей 1Сной Поднебесной. Анонс на Зазеркалье: wonderland.v8.1c.ru/blog/novaya-tekhnologiya-razrabotki-prilozheniy/
Автоматический поиск повторяющихся выражений в коде 1С
มุมมอง 3.8K3 ปีที่แล้ว
Статический анализатор кода 1С в действии. Демонстрируем работу улучшенной диагностики "Идентичные подвыражения". Сайт проекта: 1c-syntax.github.io/bsl-language-server/ Ссылки на смежные проекты: Диагностики для SonarQube 1c-syntax.github.io/sonar-bsl-plugin-community/ Диагностики для EDT: github.com/otymko/bslls-connector-for-edt Диагностики для конфигуратора: otymko.github.io/phoenixbsl/ Диаг...
Сверхбыстрый Журнал Регистрации 1C с помощью Yandex Clickhouse
มุมมอง 12K3 ปีที่แล้ว
Ни для кого не секрет, что поиск в журнале регистрации 1С очень медленный. И в то же время, журнал регистрации несет в себе большое количество интересной аналитической информации: данные о возникавших ошибках, проблемные модули, сбойные фоновые задания. Все лежит в ЖР, но достать проблема. Больше нет! Теперь все данные ЖР под рукой, за секунды и с нужной детализацией. Скрипты, используемые в ви...
Сверхбыстрый код 1С. Анонс функциональности 1Script.Native с JIT на борту
มุมมอง 8K3 ปีที่แล้ว
В 1Script 2.0 появится новый компилятор, позволяющий превращать код 1С в статически типизированный байткод .NET с поддержкой JIT-трансляции в железный машинный код. В этом видео я покажу его возможности на примере уже знакомого вам Решета Эратосфена. Это пушка, ребята!
Квартирник - ОдинЭС
มุมมอง 3.3K3 ปีที่แล้ว
На правах послепервого апреля. Внимание, содержит нецензурную лексику. Музыка: Сергей Михалок - группа "Ляпис Трубецкой". Слова: Андрей Овсянкин, Никита Грызлов, Анна Волынская.
В чем подвох с управляемыми блокировками 1С? Как правильно их применять?
มุมมอง 17K3 ปีที่แล้ว
Вы наверняка знаете, что такое управляемые блокировки и зачем они нужны. Но в их применении есть небольшой подвох. Дело в том, что ими надо уметь пользоваться правильно. Одно из таких правил применения блокировок мы и рассмотрим!
Кто быстрее: Исполнитель, 1Скрипт или 1С? Гонка века!
มุมมอง 4.5K3 ปีที่แล้ว
Кто быстрее: Исполнитель, 1Скрипт или 1С? Гонка века!
Разбор стандарта разработки #733 - Эффективное обращение к виртуальной таблице «Остатки»
มุมมอง 11K3 ปีที่แล้ว
Разбор стандарта разработки #733 - Эффективное обращение к виртуальной таблице «Остатки»
Как работают стековые машины в языках программирования.
มุมมอง 5K3 ปีที่แล้ว
Как работают стековые машины в языках программирования.
Асинх/Ждать или Как устроены асинхронные процедуры в 1С
มุมมอง 13K3 ปีที่แล้ว
Асинх/Ждать или Как устроены асинхронные процедуры в 1С
Обзор 1С:Исполнитель. Новости с пылу с жару
มุมมอง 10K4 ปีที่แล้ว
Обзор 1С:Исполнитель. Новости с пылу с жару
Обзор новейшей 1C:EDT 2020 года. Распаковываем и смотрим, что внутри.
มุมมอง 7K4 ปีที่แล้ว
Обзор новейшей 1C:EDT 2020 года. Распаковываем и смотрим, что внутри.
Docker для 1С-ников. Создаем свои образы, изучаем dockerfile
มุมมอง 7K4 ปีที่แล้ว
Docker для 1С-ников. Создаем свои образы, изучаем dockerfile
Отладчик 1Script. Как пользоваться, настраивать, подключать.
มุมมอง 3.7K5 ปีที่แล้ว
Отладчик 1Script. Как пользоваться, настраивать, подключать.
материться зачем ????? Андрей, ты забыл, что не все люди употребляют гнилые слова ?
Прошел год, пересмотрел. Нашел кой-чего новое )) Полезное.
Отличный видос! Полностью развеял мой предпросмотровый скепсис о его полезности :)
Отличный видос, подчеркивает то, что не всем очевидно. Спасибо! Но все-таки было бы лучше, если вы не тыкали. Ну и разнести 2 клиента предприятий на правую и левую часть экрана добавило бы наглядности. Лайк!
Сразу видно кто 1Сник, а кто нет
Как запустить службу? а то шибка "1053 служба не ответила на запрос своевременно" и чтобы ее запустить нужно что-то написать тут и что именно?: "Mask": "upp_main", "Template": "[IBNAME]_el"
Если запустить C:\elexporter\EventLogExporter.exe/dll то просит установить .NET 5.0 Runtime (v5.0.17) Установил. И теперь жалуется на это: Unhandled exception. System.Exception: Database name is not specified at OneSTools.EventLog.Exporter.Core.ClickHouse.ClickHouseStorage.Init() at OneSTools.EventLog.Exporter.Core.ClickHouse.ClickHouseStorage..ctor(ILogger`1 logger, IConfiguration configuration) at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor, Boolean wrapExceptions) at System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitIEnumerable(IEnumerableCallSite enumerableCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSiteMain(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitCache(ServiceCallSite callSite, RuntimeResolverContext context, ServiceProviderEngineScope serviceProviderEngine, RuntimeResolverLock lockType) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitRootCache(ServiceCallSite singletonCallSite, RuntimeResolverContext context) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteVisitor`2.VisitCallSite(ServiceCallSite callSite, TArgument argument) at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.Resolve(ServiceCallSite callSite, ServiceProviderEngineScope scope) at Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine.<>c__DisplayClass1_0.<RealizeService>b__0(ServiceProviderEngineScope scope) at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngine.GetService(Type serviceType, ServiceProviderEngineScope serviceProviderEngineScope) at Microsoft.Extensions.DependencyInjection.ServiceLookup.ServiceProviderEngineScope.GetService(Type serviceType) at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetService[T](IServiceProvider provider) at Microsoft.Extensions.Hosting.Internal.Host.StartAsync(CancellationToken cancellationToken) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.RunAsync(IHost host, CancellationToken token) at Microsoft.Extensions.Hosting.HostingAbstractionsHostExtensions.Run(IHost host) at OneSTools.EventLog.Exporter.Program.Main(String[] args)
Что это за ошибка?: ! collector Warning pull access denied for v8logexporter, repository does not exist or may require 'docker login': denied: requested access to...
Вы какую команду выполняете? Образ собрали предварительно?
Для работы этого параметра необходимо включить поддержку выходных параметров это как включить в VS?
При этом какой бы КОНКРЕТНЫЙ товар не заблокировали, блокируются абсолютно ВСЕ товары. Элемент.УстановитьЗначение("Товар", БлокируемыйТовар) - не работает как надо В чем подвох?
@user-zr4uw5ng3r Полный код в видео. Решил повторить, но при тестировании попробовал выбрать другую (не заблокированную в первом сеансе) номенклатуру. В результате второй сеанс тоже завис. Т.е. блокируется весь регистр
Ура Ваша работа помогает миллионам программистов 1С в стране))) Я немного научился пойду стандарт учить. Кто если не я)))) Нас миллионы, но всегда нужны мы)))
Единственный кто нормально объяснил. Эх мне бы такого учителя. Со всей благодарностью!
Но я нихера не понимаю: Зачем использовать асинхронные методы - если они один йух блокируют форму? Кажется я чего то не понимаю в асинхронности. Фирма 1С пишет «блаблабла потому что браузеры блокируют всплывающие окна поэтому сделали асинх и тд», но ведь все равно в тонком клиенте все блокируется когда вызываешь асинх методы / функции.
@user-zr4uw5ng3r ну я вот прям сейчас сижу за компьютером. У меня висит диалог выбора файла с оповещением. И я не могу никуда переключиться пока не закрою диалог. как называется состояние если: пока я не закрою диалог я не смогу переключиться в другую форма?! . Это блокировка интерфейса видимо, поток кода выполняется дальше, это я проверил отладчиком, только какой смысл всей этой псевдо-асинхронности если Мышкой ты все равно в программе работать не можешь…
Автор молодец, «я нахер устал». Правильно. Нехер особо заморачиваться. Хорошая подача контента 😂
Никита крут. Да хочется ровняться на ровняться.
Отличный преподаватель, Андрей Овсянкин, учился у него на курсах 1С: Разработчик с нуля от Нетологии
Всем привет! Что только не делал... При запуске GitLab не предлагает создать пароль, а спрашивает сразу. Стандартный не подходит. Пробовал менять в конфигурации, не принимает... Кто сталкивался? Что подскажите?
И всё таки я поменял root_password в контейнере. docker exec -it a4774bc84168 /home/git/gitlab/Rakefile "gitlab:password:reset[root]"
Интересно звучит клавиатура. Какая модель?
Мощно, стильно, современно!
Здравствуйте. Можно коротко ответить для чего изобрели эту технологию? Т.е из описания понятно , что идет расширение 1С:Предприятия, но почему нельзя было совершенствовать основную платформу, что явилось камнем преткновения?
Думаю, полной правды мы не узнаем никогда :) Некоторые продукты проще переписать с нуля, чем пытаться натянуть сову на старый продукт. В Элементе другая архитектура, подходы к работе, язык в конце концов (как с точки зрения пользователя, так и под капотом). Система лицензирования тоже отличается. Да, можно было бы назвать это 1С:Предприятие 9, но пока вендор открещивается от этой цифры :)
@@Веселый1С спасибо большое за ответ.
Спасибо, реально понятное видео !
Кайтеру привет. Можно следующей зимой сгонять в Муйне в компании.
Питончик бы еще замерить, тоже скриптовый язык )
Спасибо! Прояснили!
спасибо за скример
Огонь парни! Надо еще...
всегда актуально)))
все по видео, но точка останова не ставится нигде :( 1.86.2
@user-zr4uw5ng3r вообще красный кружок не ставит
@user-zr4uw5ng3r только то что вы в видео сказали
Стараюсь работать с транзакциями правильно, всегда закрываю или отменяю их, возможно излишне часто используя ТранзакцияАктивна(). Но недавно попал на "В данной транзакции уже происходили ощибки". И попал на нее когда в исключении использовал Сообщить(Док), где Док - ДокументОбъект который не записался в этой транзакции. И до сих пор не понимаю почему попытка сообщить в каком документе произошел сбой вызвала такую ошибку?
@user-zr4uw5ng3r Представление ... не сообразил. Спасибо.
Ну когда же новое видео 😢
Да, смотрю на котиков
а никто не делал в yml запуск джобов по условию поясню: пайплайн по шедулеру каждый 15мин запускает джоб, в нем дергается сервис и проверяется есть ли событие на запуск сборки. Если нет, то должно без ошибок отработать, но дальше не начать собирать и наоборот. Сейчас если ошибка то падает и не идет, всё хорошо, но каждые 15мин приходит письмо о том, что пайплайн упал :( А следить за "реальным" падением нужно. была идея сделать глобальную переменную и присвоить по умолчанию [CODE] variables: start_pipeline: 0 stages: - check_issue - deploy get_issue_release: stage: check_issue script: - pwsh .Scripts\track.ps1 1 allow_failure: false only: - schedules - manual after_script: # тут не работает IF а идея тут или в секции Script (что тоже часто нужно) словить возврат запуска команды и выставить $start_pipeline=1 - echo %CI_JOB_STATUS% - if: '$CI_JOB_STATUS == "success"' variables: start_pipeline: 1 #а уже в след. stage писать вместо only: что то типа rules: - if: '$start_pipeline == 0' when: never [/CODE]
А почему X2Go не заходит вместо xRDP?
Зачем они этот косяк "В результате любой запрос к данным прежде всего обрабатывается собственным менеджером транзакционных блокировок" в статье оставляют? Все что написано в оф документации надо перепроверять.
Заметил гитару, играешь? Я тоже играю
Яхуюнит - топчик💣💥
А можно ли использовать ПРАВОЕ соединение с виртуальной таблицей? По идее же в этом случае виртуальная таблица соберётся в таком же виде, как и вообще без соединений
Обычно - да. Если не вешается планировщик :)
Спасибо за объяснение!!!
Класс: спасибо за ваш профессионализм, ни когда бы не подумал что при изучении смарт контрактов попаду на канал по 1с 😀👍
Ишь ты какой метросексуал, кремушками пользуется. Еще небось вечерами в ночнушке перед зеркалом красуешься )))
Вроде здоровый мужик, а к логопеду сходить не догадался...
Заебись когда людям делать нехуй
Добрый вечер. Так и не понял про передачу из ВК в 1С каких-нибудь коллекций. Вообще ничего нельзя? Или можно как-то обходными путями? Ну и про передачу в ВК коллекций тот же вопрос...
Классное видео, огромное спасибо!
Браво !
не могу запустьть отладку, VS код не может найти мой файл, путь прописываю прямо ему в лоб!!!!!! все равно в ошибку, Cant't lanuch debugee (не удаеься найти указанные файл)!"!!!!
Придумывают какието дибильные кейсы и кучу статей по из исправлению пишут 🤦♂️
А ясно кто эту хрень на хабре написал
Проверил сейчас в 1С предприятии этот кусок кода консолью кода, проверял на двух версиях: 8.3.24 и 8.3.17. Я ожидал, что более новая версия будет тормознутее, но нет. При исполнении на клиенте 8.3.24 показала результат 49 секунд, а 8.3.17 - 58.5 секунд. При выполнении на сервере вообще весело. 44 секунды и 58. То есть 1С оптимизировала свой язык программирования в 1С:Предприятие. Могу только поздравить и от всей души похвалить!
то есть в данном случае, если сравнивать односкрипт с предприятием, предприятие судя по всему будет быстрее)
Какая-то оптимизация в обратную сторону...
@@Веселый1С не понял) новая версия же быстрее
Как же быстрее, если на 8.3.24 было 49, а на 8.3.25 стало 58?
@@Веселый1С виноват, не 25, а 17. 25 даже в бету ещё не вышла))) опечатка
Усе написано в главе 9 работа с данными. Разделяемый режим блокировки подразумевает, что заблокированные данные не могут быть изменены другой транзакцией до окончания текущей транзакции. Исключительный режим блокировки подразумевает, что заблокированные данные не могут быть изменены другой транзакцией до окончания текущей транзакции, а также не могут быть прочитаны ! другой транзакцией, устанавливающей разделяемую блокировку на эти данные.