- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
Если Приказ.Выбран() = 1 Тогда
Если Приказ.Вид() = "Приказ" Тогда
// это все-таки приказ
Если Приказ.ТипПриказа <> Перечисление.ТипыПриказов.НаВнутреннееСовмещение Тогда
// но приказ другой, не внутреннее совмещение
Продолжить;
КонецЕсли;
Иначе
Продолжить;
КонецЕсли;
Иначе
Продолжить;
КонецЕсли;
Если Приказ.Выбран() = 1 И Приказ.Вид() = "Приказ" И Приказ.ТипПриказа = Перечисление.ТипыПриказов.НаВнутреннееСо вмещение Тогда
Иначе
Продолжить
КонецЕсли;
Далее после определения вида документа или справочника «Приказ» - из кода этого не понятно, идет обращение непосредсвенно к реквизиту объетка. Если мы определение вида исключим, тогда есть вариант, что у этого объекта нет такого реквизита, и мы опять сможем схватить эксепшен.
Привидений код может и не является красивым, но он ГАРАНТИРОВАНО отработает то, что ему полагается.
По идее, если Приказ.Выбран() = 1 не будет истинным, то остальные условия и не должны выполняться в любом более-менее вменяемом современном языке, и эксепшиона не будет.
Конечно, если 1С принудительно выполняет все элементы логической конструкции, тогда согласен.
То есть если сказать "if FOO and BAR" то проверятся оба условия, даже если FOO ложно?
Ужасно. Хорошо, что 7.7 уже семнадцать лет как неактуальна
Сейчас там 8.3, кажется. Они движутся в сторону нормального приложения с веб-интерфейсным клиентом, брокером (который распределяет работу на воркеров), поддержкой постгрес и линукс и пр
> с веб-интерфейсным клиентом
– странно это слышать от тебя
* Реализовать доступ пяти тыщ питухов проще на веб-сайт, чем на RDP ферму с клиентами (сильно проще)
* Десктопный клиент всегда тормозит
* Используется конечно какой-то пизданутый порт, который поди еще открой везде
* Для дебага там чуть ли не сервер подключается к клиенту, так что через NAT вообще плохо
Такая конструкция вырабатывает правильное понимание работы алгоритма, учит писать неговнокод.
Единственная моя претензия - условия бы всё же вывернуть, чтобы "Продолжить" было 1 раз.
Расскажи пожалуйста подробнее
Во-вторых все три условия можно совместить.
Если ПустоеЗначение(Приказ) = 1 Тогда
продолжить;
КонецЕсли;
Если Приказ.ТипПриказа <> Перечисление.ТипыПриказов.НаВнутреннееСо вмещение Тогда
продолжить;
КонецЕсли;
А если в целом - не такая уж и ересь, вы не согласны?
Они, если честно,
А програмер молодец - разумные коменты пишет.
Ну она же?!
Не? Точно зарплата и управление персоналом!