С прошедшим товарищи, вот сижу и не могу буквы сложить в голове, подскажите говнокод или нет.
Смысл в этом что бы брать строку для квитанции из 3х мест.
Сразу и Справочника Здания - если там пусто из Справочника Организации, а если и там пусто то из Регистра.

```1c
    &НаСервере
    Функция ПолучитьНадписьСогласноПриказу(ТекущийДокумент) //05.01.2021
    //Получение надписи согласно приказу в Квитанции

    //1 Получаем надпись по Справочнику Здания и сооружения
    НадписьСогласноПриказу = ТекущийДокумент.Владелец.НадписьСогласноПриказу;
    Если НадписьСогласноПриказу = " Тогда

    Иначе
    Возврат НадписьСогласноПриказу;
    КонецЕсли;

    //2 Получаем надпись по Справочнику Организации
    НадписьСогласноПриказу = ТекущийДокумент.Владелец.Организация.НадписьСогласноПриказу;
    Если НадписьСогласноПриказу = " Тогда

    Иначе
    Возврат НадписьСогласноПриказу;
    КонецЕсли;

    //3 Получаем надпись из регистра Параметры организации
    ТекОрганизация = ТекущийДокумент.Владелец.Организация;
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ПараметрыОрганизаций.НадписьСогласноПриказуВКвитанции
    |ИЗ
    | РегистрСведений.ПараметрыОрганизаций КАК ПараметрыОрганизаций
    |ГДЕ
    | ПараметрыОрганизаций.Организация = &Организация";

    Запрос.УстановитьПараметр("Организация", ТекОрганизация);

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    НадписьСогласноПриказу = ВыборкаДетальныеЗаписи.НадписьСогласноПриказуВКвитанции;
    Если НадписьСогласноПриказу = " Тогда

    Иначе
    Возврат НадписьСогласноПриказу;
    КонецЕсли;
    КонецЦикла;

    Если НадписьСогласноПриказу = " Тогда
    НадписьСогласноПриказу = "*** НАДПИСЬ СОГЛАСНО ПРИКАЗУ";
    КонецЕсли;

    Возврат НадписьСогласноПриказу;
    КонецФункции
```
---
```1c
    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    // Какой смысл в переменной РезультатЗапроса? Если можно Запрос.Выполнить().Выбрать();

    Если НадписьСогласноПриказу = " Тогда
    // Заменить на
    Если ПустаяСтрока(НадписьСогласноПриказу) Тогда
    // Или
    Если Не ПустаяСтрока(НадписьСогласноПриказу) Тогда
```
---
подскажите говнокод или нет.
Да. Причину указали в (2).

Можно сделать один запрос в котором получить сразу все варианты, а потом в обработке результата этого запроса вернуть нужное.
---
Оценка кода Мои 5 копеек
---
смущает абсолютное отсутствие мысли и работы мозга при написании условия на НИЧЕГОНЕДЕЛАНИЕ. Ну, это можно списать на "индивидуальный стиль программирования"... который действительно... попахивает.

Принципиальный вопрос - работоспособность кода. Ведь в случае:
(1) Справочника Здания - если там пусто то что автор получит как ТекущийДокумент.Владелец.НадписьСогласноПриказу? Часом не строку из пробелов (по длине реквизита)? А это совсем не "", так что сей шедевр у него и работать-то нормально не будет.

Решение этой (только этой!) проблемы уже указано в (9), повторяться не стану.
---
Что сразу бросается в глаза - то это получение через ".", приведет в получению сразу всех полей и можно заменить на запрос (можно воспользоваться функцией ОбщегоНазначения.ЗначениеРеквизитаОбъекта для конфигурации на БСП), так же можно реализовать 3-мя, 2-мя, 1-им запросом проведя замеры и подобрав подходящий вариант.
В дополнение директиву &НаСервере можно заменить &НаСервереБезКонтекста.
---
Хотелось бы без запросов, а за остальное спасибо.
---
Наблюдаю запрос в твоем коде.
---
Верю. Но там он один.
---
И че? Сделай один, но сразу для всех необходимых полей.
---
```1c
    Если НадписьСогласноПриказу = " Тогда

    Иначе
```

Вот это просто за гранью. Увольнение.
---
```1c
    РезультатЗапроса = Запрос.Выполнить();
    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

    // Какой смысл в переменной РезультатЗапроса? Если можно Запрос.Выполнить().Выбрать();

    Если НадписьСогласноПриказу = " Тогда
    // Заменить на
    Если ПустаяСтрока(НадписьСогласноПриказу) Тогда
    // Или
    Если Не ПустаяСтрока(НадписьСогласноПриказу) Тогда
```
---
ИначеЕсли

бред же
---
бред же
Это оценка моего комментария?
---
т.е. смущает конструкция
```1c
    Переменная = "
```
?
---
Нет конечно. Меня смущает абсолютное отсутствие мысли и работы мозга при написании условия на НИЧЕГОНЕДЕЛАНИЕ. Это пипец как тупо.
---
Магические строки тоже не лучшее решение.
Параметр запроса сразу после создания запроса.
Промежуточная переменная для результата запроса лишена логики.
Условие на пустую строку должно быть сразу в запросе, а не в цикле.
Магическая строка в завершении.

Не просто говнокод, а смердящий говном на всю округу отвратительный код.
---
Не просто говнокод, а смердящий говном на всю округу отвратительный код.Блин...