Size: a a a

1С, БСП, DevOps и Архитектура

2020 November 05

VN

Vladimir Nadulich in 1С, БСП, DevOps и Архитектура
ID:213788438
Благо, пишем минимум кода в перед записью на форме. Проверки заполнения должны быть в обработке проверки заполнения (ваш кэп)
Да. Перед записью на форме - вообще редкость. Но не говори об это разработчикам ДО. Обидятся еще ))
Там вообще очень большая часть поведенческой логики и апи - клиентские. Попробуй что-то задействовать(((
источник

VN

Vladimir Nadulich in 1С, БСП, DevOps и Архитектура
Gukov Viktor
Господи, что вы тут развели. Эта "ошибка" есть начиная с 8.3.9.
Во-первых, исключения вне транзакции записи элемента используются только для прерывания проверок конкретного обработчика событий, о чем сказано в стандарте
https://its.1c.ru/db/v8std#content:499:hdoc (п. 3.5)

Все нормальные люди в основном работают с параметром Отказ.
И если бы уважаемые программисты читали Радченко, то увидели бы замечательную схему обработчиков событий:
https://i.imgur.com/ERBmZsi.png

Ваше кидаемое исключение остановит запись объекта только если оно кинуто в рамках транзакции (серый цвет). Все остальное выполняется изолировано друг от друга
Ты вообще не вкурил суть проблемы.
источник

JD

John Doe in 1С, БСП, DevOps и Архитектура
Gukov Viktor
Господи, что вы тут развели. Эта "ошибка" есть начиная с 8.3.9.
Во-первых, исключения вне транзакции записи элемента используются только для прерывания проверок конкретного обработчика событий, о чем сказано в стандарте
https://its.1c.ru/db/v8std#content:499:hdoc (п. 3.5)

Все нормальные люди в основном работают с параметром Отказ.
И если бы уважаемые программисты читали Радченко, то увидели бы замечательную схему обработчиков событий:
https://i.imgur.com/ERBmZsi.png

Ваше кидаемое исключение остановит запись объекта только если оно кинуто в рамках транзакции (серый цвет). Все остальное выполняется изолировано друг от друга
Однако выбрасывание исключения в "ПередЗаписьюНаСервере" останавливает запись объекта, но оно не серое (еще не в транзакции)
источник

GV

Gukov Viktor in 1С, БСП, DevOps и Архитектура
John Doe
Однако выбрасывание исключения в "ПередЗаписьюНаСервере" останавливает запись объекта, но оно не серое (еще не в транзакции)
Офигенно
источник

GV

Gukov Viktor in 1С, БСП, DevOps и Архитектура
Вот это уже крайне фигово
источник

VN

Vladimir Nadulich in 1С, БСП, DevOps и Архитектура
Есть любой код.
Написан без попыток.
Без гребанных исключений.
Работает.
Но кто-то что-то доработал. И вот он падает раз в день.
Какая-то логика вынесена на клиент. (не обсуждаю хорошо это или плохо).
Проблема в том, что если падает код (а он должен выполнится на 100% и никакие попытки здесь не уместны, и разумеется нужно разбираться), то я ожидаю остановку на этом месте. И что код "после" никогда не будет выполнен. Только так и не иначе.
А часть кода после получения ошибки и до вызова сервера (записи объекта) тупо выпала. И так случилось, что она была важна. Не критична, но важна. (Не бывает не важного кода)
источник

VN

Vladimir Nadulich in 1С, БСП, DevOps и Архитектура
John Doe
Однако выбрасывание исключения в "ПередЗаписьюНаСервере" останавливает запись объекта, но оно не серое (еще не в транзакции)
Транзакция тут не причем.
Уверен, что просто профукали отмену вызова сервера
источник

ВМ

Василий Мазурок... in 1С, БСП, DevOps и Архитектура
Gukov Viktor
Господи, что вы тут развели. Эта "ошибка" есть начиная с 8.3.9.
Во-первых, исключения вне транзакции записи элемента используются только для прерывания проверок конкретного обработчика событий, о чем сказано в стандарте
https://its.1c.ru/db/v8std#content:499:hdoc (п. 3.5)

Все нормальные люди в основном работают с параметром Отказ.
И если бы уважаемые программисты читали Радченко, то увидели бы замечательную схему обработчиков событий:
https://i.imgur.com/ERBmZsi.png

Ваше кидаемое исключение остановит запись объекта только если оно кинуто в рамках транзакции (серый цвет). Все остальное выполняется изолировано друг от друга
Причем тут "проверки через вызов исключений".

Если речь о том что исключение должно остановить процесс (исполнение кода) так как это ожидается.

Т.е. если я в "ПередЗаписью" делю на Нуль - то  все должно остановится.
А не идти паралельными (Асинхронными) потоками.

Тем более что на означенных Вами схемах нигде не нарисовано что есть какой-либо паралелизм в исполнении.
источник

ВМ

Василий Мазурок... in 1С, БСП, DevOps и Архитектура
И насчет "было с 8.3.9" - может и было но у меня в 8.3.15 - этого нет.
Все работает как ожидается.

(или я таки неправильно воспроизвожу)
источник

JD

John Doe in 1С, БСП, DevOps и Архитектура
Василий Мазурок
И насчет "было с 8.3.9" - может и было но у меня в 8.3.15 - этого нет.
Все работает как ожидается.

(или я таки неправильно воспроизвожу)
Режим совместимости-то какой?
И еще скажи, что толстый клиент. И база файловая.
источник

ВМ

Василий Мазурок... in 1С, БСП, DevOps и Архитектура
И с режимом и без режима.
Клиент тонкий.
И база файловая.
Нужна серверная?

То бишь это только на серверной воспроизводится?
источник

РС

Роман С. in 1С, БСП, DevOps и Архитектура
Интересный холивар, но абсолютно не новый. Да простят меня админы за эту ссыль: https://forum.mista.ru/topic.php?id=791144
источник

JD

John Doe in 1С, БСП, DevOps и Архитектура
Василий Мазурок
И с режимом и без режима.
Клиент тонкий.
И база файловая.
Нужна серверная?

То бишь это только на серверной воспроизводится?
Файловая не катит
источник

РС

Роман С. in 1С, БСП, DevOps и Архитектура
John Doe
Файловая не катит
Тоже так думаю. Никто это не чинил и не собираются, видимо. "никогда такого не было и вот опять"
источник

JD

John Doe in 1С, БСП, DevOps и Архитектура
Роман С.
Тоже так думаю. Никто это не чинил и не собираются, видимо. "никогда такого не было и вот опять"
В файловой поток скорее всего не разделяется при переходе из клиента формы на сервер, поэтому там исключение на клиенте прокатывает как стопор
источник

ВМ

Василий Мазурок... in 1С, БСП, DevOps и Архитектура
Ну мутить целую серверную для тестов я не буду.
источник

JD

John Doe in 1С, БСП, DevOps и Архитектура
Василий Мазурок
Ну мутить целую серверную для тестов я не буду.
источник

КЧ

Кирилл Черненко... in 1С, БСП, DevOps и Архитектура
John Doe
В файловой поток скорее всего не разделяется при переходе из клиента формы на сервер, поэтому там исключение на клиенте прокатывает как стопор
У меня в файловой на 8.3.16 выше описанное поведение воспроизвелось, т.е объект записался код в МО выполнился
источник

KK

Konstantin Kozyrev in 1С, БСП, DevOps и Архитектура
Василий Мазурок
Ну мутить целую серверную для тестов я не буду.
На серверной 8.3.17.1549 поведение точно такое же. Правда я новый документ в расширении добавлял, но не думаю, что это играет роль.
источник

NK

ID:0 in 1С, БСП, DevOps и Архитектура
Кто угадает модуль и метод? И может быть подскажет домашний адрес автора....
Update: Стандарт к картинке https://its.1c.ru/db/v8std#content:686
источник