Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Функция ПолучитьЭлементУправленияПоИмени(Форма, Знач ИмяЭлемента)
Перем ЭлементУправления;
Попытка
ЭлементУправления = Вычислить("Форма.ЭлементыФормы."+ИмяЭлемента);
Исключение
КонецПопытки;
Возврат ЭлементУправления;
КонецФункции
Если же необходимость в этом уровне есть, то почему не объединены все списки в одну таблицу?
Зачем там «Попытка» (которую я в свой код скопировал, пытаясь указать на лишний цикл)? Почему при неправильном коде (например при удалении элемента управления или опечатки) программа не должна падать?
Потому что бизнес-процесс (особенно процесс торговли) не должен прерываться ошибками. Оперативно устранить не всегда бывает возможно. А чтобы не падали программы, их нужно тестировать. Хотя бы по-минимуму.
Так зачем там этот уровень абстракции?
Так вы не тестируете, прежде чем накатывать обновление на рабочую базу?
А то, что там куча исключений, о которых вы без падений и не узнаете, а пользователи будут молчать о том, что галочка «Наличная продажа» не влияет на видимость галочки «Пробивать чек», ведь ни не знают о том, что так должно быть?
Так зачем там этот уровень абстракции?Там — это где?
А вы сами как думаете?Думаю, что код вида
Попытка
//Код
Исключение
//молчим
КонецПопытки
негативно влияет на тестирование, а попытка нужна для того, чтобы в случае ошибки (причем только по независящим от программиста причинам, например отсутствие доступа к внешнему ресурсу) что-то с ней сделать (например попробовать еще раз с другим ресурсом или собрать информацию об ошибке и преобразовать её к виду, нужному для техподдержки и остановить выполнение)В управлении доступностью и видимостью
Думаю, что код вида… негативно влияет на тестирование, а попытка нужна для того, чтобы в случае ошибки (причем только по независящим от программиста причинам, например отсутствие доступа к внешнему ресурсу) что-то с ней сделать (например попробовать еще раз с другим ресурсом или собрать информацию об ошибке и преобразовать её к виду, нужному для техподдержки и остановить выполнение)
Так вы не тестируете, прежде чем накатывать обновление на рабочую базу? А то, что там куча исключений, о которых вы без падений и не узнаете
Это очень распространенный workflow в сфере допиливания 1С. Заверни в «попытку», чтобы не было сообщений. Пользователю знать это не надо, ему надо чтобы не падало. Практика порочная, но в уравнении время-деньги-качество играет немаленькую роль.
Приходится много сил тратить, чтобы убедить разработчиков так не делать. Видимая ошибка лучше спрятанной.
Я бы предложил навести порядок с разработкой, тестированием и накатыванием обновлений. Поскольку когда 5 разработчиков могут независимо друг от друга вносить изменения в одну и ту же форму и каждый может внести такое обновление, которое всё порушит это как-то ненормально.
Хабр — не ЖЖ и не центр мирового кросспостинга. Не нужно копировать посты из других блогов и сайтов, указывая, что ранее они были опубликованы в другом месте.
Возможно, я просто тупой и не понимаю чего-то в вашей статье. В таком случае, держите еще одно извинение, но поясните тогда мне, в чем состоит инженерная новизна (красота, если угодно) предлагаемого вами решения?
ЭлементыФормы.Комментарий.ТолькоПросмотр = не (НаличнаяПродажа И НЕ ДисконтнаяКарта.Пустая());ЗначениеРедактированиеТекста = НаличнаяПродажа И НЕ ДисконтнаяКарта.Пустая();
СписокУправлениеРедактированиемТекста.Добавить(ЗначениеРедактированиеТекста, "Комментарий");
Гибкое управление свойствами доступности элементов управления в обычных формах 1С: Предприятия 8.х