#0
by ГдеСобакаЗарыта
Допустим есть код в котором организован ряд проверок в процедурах/функциях произвольной вложенности. Какой вариант кода будет более православным, читабельным? 1. Использовать функции возвращающие булево Если НЕ УсловиеВыполнено Тогда Возврат; КонецЕсли 2. Использовать процедуры и переменную Отказ ПроверитьВыполнениеУсловия(Отказ);
#5
by Ёпрст
И смотря, что именно должна вернуть функция. Если одно значение, то достаточно и Возврат Ложь/Истина если возвращает структуру, то 2-ой вариант.
#7
by Лефмихалыч
параметр Отказ нужен тогда, когда, во-первых, метод должен вернуть что-то отличное от простого результата проверки, во-вторых, проверка этого условия либо установка отказа - это побочный эффект у метода. Причем - одновременно. Когда у тебя метод служит целиком и полностью, чтобы только проверить условие, то параметр - это копрокод.
#9
by vde69
если подразумевается вызов нескольких обработчиков подряд, то лучше "Отказ" и проверка на него внутри обработчика, пример:
#11
by Йохохо
возвращать Неопределено слишком просто? Зачем Отказ в предопределенных процедурах понятно, в своих сам себе буратино заклюют за лишнее время. Ставить в начале каждого если не отказ возврат - на троечку
#13
by senior
У Отказ'а одна задача - зафиксировать, что документ не может быть проведен, но при этом не прерывать выполнение и продолжить дальнейшие проверки. Это стандартная методика 1С. Если такое поведение не нужно, то Отказ не нужен в принципе.
#15
by Альбатрос
Ну не факт. Ибо обычно при отказе выводят информацию почему, собссно, отказ. И тогда сразу провенрить по всем условиям лучше.
#16
by Лефмихалыч
неопределено оно на то и неопределено, что это не ответ, а его отсутствие. Возвращать Неопределено, когда смысл в том, что какая-то проверка не пройдена - очень плохо. В результате проверки неопределено должно означать, что выполнить проверку не удалось - например, ресурс, участвующий в проверке, не доступен или еще что-то такое. Неопределено вместо отказа - это копрокод и вообще голимое пхп. Профессионалы так не делают.
#17
by Лефмихалыч
это не то, о чем автор спрашивает. В этой статье описывается, как правильно обращаться с inout-флагами Отках, СтандартнаяОбработка и т.д. Автор же спрашивает, как православно инкапсулировать длинные проверки каких-то условий.
#18
by vde69
у меня лишним является столь малое количество, что им можно пренебречь... зато 1. читабельность основной процедуры отличная 2. в обработчиках можно предусмотреть например вывод логов и т.д.
#19
by Лефмихалыч
таки это хреновый вариант, усложняющий поддержку и сопровождение кода. Читабельность он как раз усирает в край - без чтения содержимого этих обработчиков ты ни когда не поймешь, что сделает последующий, если предыдущий вернул отказ. Это безусловно плохо.
#20
by Zamestas
От ситуации зависит - я иногда вообще структуру со структурами между функциями гоняю.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Есть ли в 1С функции автоматического запуска обработки?
- JOB: А у кого какая была самая длинная переменная или название функции в програм
- Как получить значение из функции, для использования в другой функции?
- СКД. Можно использовать встроенные функции или только функции общего модуля?
- Функции использующие Административные функции
- Функции в MS SQL 2008. Хочу понять как работает фильтр по результату функции.
- v7: Как отловить отказ от сохранения и отказ от проведения документа
В этой группе 1С
- УНФ 1.6 Добавление отчета
- Штрих-М-01Ф скидки
- Какие отличия эмуляции ком -порта от режима клавиатуры сканера штрихкода в Рознице?
- договор цессии в erp
- Планировщик 1с
- Ошибка при отправке сообщения из 1С БП
- Печать чеков УТ 11.3 на Атол 30Ф
- Как долго ждать удаление записей регистра сведений?
- ЗначениеВДанныеФормы Несоответствие типов (параметр номер '1')
- Расширения конфигурации. не заходит в процедуру
- Подключение ФР Штрих-Лайт-02Ф
- Операция не может быть выполнена из-за несоответствия версии или отсутствия записи базы да
- ЕГАИС: Не приходят ТТН после перезапроса.
- Проверить ХТТП сервис Пост запросом
- ЗУП 3.1 Список сотрудников по подразделениям
- Вылетает конфигуратор на синтаксис-помощнике, win 10, 8.2
- Ошибка Для состава плана обмена не указана регистрация объекта
- Отправка почты из 1С через Stunnel.
- Значение по умолчанию уникального идентификатора
- Перезаполнение видов запасов УТ 11.3