Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 мар 2024, 10:32

ЕСТЬNULL() возвращает NULL

Автор vladimirsnc, 22 янв 2016, 16:48

0 Пользователей и 1 гость просматривают эту тему.

vladimirsnc

1С:Предприятие 8.2. Есть такая процедура:

&НаСервере
// Процедура по переданным параметрам начисления получает себестоимость материалов
//
//    Параметры:
//         СтрокаПараметры - ссылка на элемент справочника начислений/удержаний
//
Процедура ПолучитьСебестоимостьМатериалов(СтрокаПараметры, МенеджерВременныхТаблиц)
   
    Запрос = Новый Запрос;
    Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
    Запрос.Текст =
   
    "ВЫБРАТЬ
    |    ПродажиСебестоимостьОбороты.Сотрудник,
    |    ПродажиСебестоимостьОбороты.Контрагент,
    |    ПродажиСебестоимостьОбороты.Номенклатура,
    |    СУММА(ЕСТЬNULL(ПродажиСебестоимостьОбороты.СтоимостьОборот, 0)) КАК Стоимость
    |ПОМЕСТИТЬ ТаблицаСтоимостиМатериалов
    |ИЗ
    |    РегистрНакопления.ПродажиСебестоимость.Обороты(
    |            &НачалоПериода,
    |            &КонецПериода,
    |            Авто,
    |            СтруктурнаяЕдиница = &СтруктурнаяЕдиница
    |                И Материал <> ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
    |                И ВЫБОР
    |                    КОГДА &ОтПродаж = ЗНАЧЕНИЕ(Перечисление.ВариантыЗначенийПоВидамНачисленийУдержаний.ПоСотруднику)
    |                        ТОГДА Сотрудник = &Сотрудник
    |                    ИНАЧЕ ВЫБОР
    |                            КОГДА &ОтПродаж = ЗНАЧЕНИЕ(Перечисление.ВариантыЗначенийПоВидамНачисленийУдержаний.ПродажиОформленныхСотрудником)
    |                                    И (ТИПЗНАЧЕНИЯ(ДокументПродажи) = ТИП(Документ.Реализация)
    |                                        ИЛИ ТИПЗНАЧЕНИЯ(ДокументПродажи) = ТИП(Документ.ЧекККМ))
    |                                ТОГДА ДокументПродажи.Сотрудник = &Сотрудник
    |                            ИНАЧЕ ИСТИНА
    |                        КОНЕЦ
    |                КОНЕЦ) КАК ПродажиСебестоимостьОбороты
    |ГДЕ
    |    ВЫБОР
    |            КОГДА &ОтПродаж = ЗНАЧЕНИЕ(Перечисление.ВариантыЗначенийПоВидамНачисленийУдержаний.ПоСалонуУчитываяГрафик)
    |                ТОГДА ПродажиСебестоимостьОбороты.ПериодДень В
    |                        (ВЫБРАТЬ
    |                            РабочееВремяСотрудников.ПериодДень
    |                        ИЗ
    |                            РегистрНакопления.РабочееВремяСотрудников.Обороты(&НачалоПериода, &КонецПериода, Авто, СтруктурнаяЕдиница = &СтруктурнаяЕдиница
    |                                И Сотрудник = &Сотрудник) КАК РабочееВремяСотрудников)
    |            ИНАЧЕ ИСТИНА
    |        КОНЕЦ
    |
    |СГРУППИРОВАТЬ ПО
    |    ПродажиСебестоимостьОбороты.Сотрудник,
    |    ПродажиСебестоимостьОбороты.Контрагент,
    |    ПродажиСебестоимостьОбороты.Номенклатура";
   
    Запрос.УстановитьПараметр("НачалоПериода",         ПолучитьДату(СтрокаПараметры, "НачалоПериода"));
    Запрос.УстановитьПараметр("КонецПериода",         ПолучитьДату(СтрокаПараметры, "КонецПериода"));
    Запрос.УстановитьПараметр("ОтПродаж",             СтрокаПараметры.ОтПродаж);
    Запрос.УстановитьПараметр("Сотрудник",             СтрокаПараметры.Владелец);
    Запрос.УстановитьПараметр("СтруктурнаяЕдиница", Объект.СтруктурнаяЕдиница);
   
    Запрос.Выполнить();
   
КонецПроцедуры


Вот эта строчка:

    |    СУММА(ЕСТЬNULL(ПродажиСебестоимостьОбороты.СтоимостьОборот, 0)) КАК Стоимость

возвращает NULL, хотя такого в принципе быть не должно, ибо стоит функция ЕСТЬNULL, которая должна возвращать число. Мне нужно, чтобы возвращалась сумма, а не NULL. Куда вообще копать? Где что искать, смотреть? В 1С я полный ноль (специализируюсь на web-программировании), 2-ой день изучаю на решении реальной задачи для бизнеса. Очень нужна ваша помощь! Хотя бы укажите направление! Заранее благодарю!

Vladimir_Sh

Могу предложить быстрый способ решения. Ваш результат помещать в ВТ и в следующем пакете выводить с добавлением замены Null. Думаю проблема может крыться в применении сложной связи.
P.S. Проверить запрос и открыть в консоли нет возможности, предложение на глаз :D
Если я Вам помог, нажми - Спасибо!

vladimirsnc

Цитата: Vladimir_Sh от 22 янв 2016, 17:12
Могу предложить быстрый способ решения. Ваш результат помещать в ВТ и в следующем пакете выводить с добавлением замены Null. Думаю проблема может крыться в применении сложной связи.
P.S. Проверить запрос и открыть в консоли нет возможности, предложение на глаз :D

Благодарю за ответ! А можете расшифровать то, что вы написали? Я этот птичий язык только изучать начал)) ВТ - временная таблица? Кстати, даже когда так пишу:

Сумма(498) КАК Стоимость

То всё равно NULL в Стоимость возвращает.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск