- 1
- 2
- 3
- 4
- 5
- 6
ВЫБРАТЬ
ЕСТЬNULL(СрокПолезногоИспользования, 0) КАК СрокПолезногоИспользования
ИЗ
РегистрСведений.РасчетАмортизацииОС.СрезПоследних
ГДЕ
ОС = &ОсновноеСредство
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
Всего: 2
−119
ВЫБРАТЬ
ЕСТЬNULL(СрокПолезногоИспользования, 0) КАК СрокПолезногоИспользования
ИЗ
РегистрСведений.РасчетАмортизацииОС.СрезПоследних
ГДЕ
ОС = &ОсновноеСредство
Типовая конфигурация. Там такой запрос используют в печатной форме Основных средств... Думает по 10-15 минут
2 глупых ошибки:
1. Проверка на NULL, в данном случае его быть не может (хотя это особо ни на что не влияет)
2. Условие по законам 1С должно применяться в РегистрСведений.РасчетАмортизацииОС.Срез Последних(,ОС = &ОсновноеСредство), иначе сильно падает скорость выполнения.
−119
Перем СтрокаСрокДействия;
Функция СтрокаСрокДействия()
Если ТекущийЭлемент().ФлагБессрочного = 1 Тогда
Если ПустоеЗначение(ТекущийЭлемент().СрокДействия.Получить(РабочаяДата())) = 1 Тогда
СтрокаСрокДействия = "от "+ ТекущийЭлемент().ДатаДоговора+" до ";
Иначе
СтрокаСрокДействия = "от "+ ТекущийЭлемент().ДатаДоговора+" до "+ТекущийЭлемент().СрокДействия.Получить(РабочаяДата());
КонецЕсли;
ИначеЕсли ТекущийЭлемент().ФлагБессрочного = 2 Тогда
СтрокаСрокДействия = "бессрочно";
ИначеЕсли ТекущийЭлемент().ФлагБессрочного = 3 Тогда
СтрокаСрокДействия = "пролонгируемый";
КонецЕсли;
Возврат(СтрокаСрокДействия);
КонецФункции
1C 7.7 Такая расчудесная функция была в модуле формы списка справочника. Функция была назначена на текстовое поле формы списка... И таким образом при пролистывании формы списка, в поле "Срок действия" непонятным образом попадали абсолютно левые значения, но зато в каждой из строк было одно и то же до следующего пролистывания...