Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> В отчете вывести нули при отсуствии даных          
candrey Подменю пользователя
сообщение 05.08.16, 12:30
Сообщение #1

Завсегдатай
****
Группа: Пользователи
Сообщений: 155
Спасибо сказали: 6 раз
Рейтинг: 0

Добрый день 1с 8.2 УТП

Есть запрос в СКД далее формируется сам отчет.
Сама проблема если есть данные в РегистрНакопления.ДвиженияДенежныхСредств то отчет формируется отлично Типа такой таблицы

Дата Организация ГСМР

05.08.2016 0:00:00 Вася )
02.08.2016 0:00:00 Вася ) 1 000,00

Если нету данных то отчета нету. Нужно что бы выводило нули вместо пустых ячеек и эти нули имели тип число, что бы можно было с ними работать (При добавлении колонок рядом). Как я понимаю проблема в строке кода "ИНАЧЕ 0" пробовал на "ИНАЧЕ NULL" тот же результат нули не выводятся.

Как быть помогите советом.

ВЫБРАТЬ
   Даты.ДатаДляОтчета КАК Дата,
   ДвиженияДенежныхСредствОбороты.Организация КАК Организация,
   СУММА(ВЫБОР
         КОГДА ДвиженияДенежныхСредствОбороты.Период = Даты.ДатаДляОтчета
            ТОГДА ДвиженияДенежныхСредствОбороты.СуммаОборот
         ИНАЧЕ 0
      КОНЕЦ) КАК ГСМП
ИЗ
   РегистрНакопления.ДвиженияДенежныхСредств.Обороты(
         &НачалоПериода,
         &КонецПериода,
         День,
         ПриходРасход = ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПриходРасход.Приход)
            И СтатьяДвиженияДенежныхСредств.Код = "00016") КАК ДвиженияДенежныхСредствОбороты,
   РегистрСведений.ДатыДляОтчета КАК Даты
ГДЕ
   Даты.ДатаДляОтчета МЕЖДУ &НачалоПериода И &КонецПериода

СГРУППИРОВАТЬ ПО
   ДвиженияДенежныхСредствОбороты.Организация,
   Даты.ДатаДляОтчета



 ! 

Правила: 3
 


candrey @ Сегодня, 12:43 *,

В оформлении настроить ЧН=0 не выход. т.к я потом отнимаю эту колонку и пустоту этих строк(Нули) формула не воспринимает. А нужно что бы понимало что это число

Сообщение отредактировал Vofka - 05.08.16, 12:26

Petre Подменю пользователя
сообщение 05.08.16, 13:16
Сообщение #2

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2903
Из: Київ, Україна
Спасибо сказали: 1145 раз
Рейтинг: 1225

Цитата(candrey @ 05.08.16, 13:30) *
т.к я потом отнимаю эту колонку и пустоту этих строк(Нули) формула не воспринимает.

Как вы это делаете. Т. е. "какие ваши доказательства"?


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

Спасибо сказали: candrey,

sava1 Подменю пользователя
сообщение 05.08.16, 13:43
Сообщение #3

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2684
Из: Проскуров
Спасибо сказали: 678 раз
Рейтинг: 656.7

Сделать вычисляемое поле

Спасибо сказали: candrey,

Нонна Подменю пользователя
сообщение 06.08.16, 18:14
Сообщение #4

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 214
Из: Харьков
Спасибо сказали: 50 раз
Рейтинг: 0

Еще можно настроить это поле : колонка оформление , формат ЧН=0.

XBrut Подменю пользователя
сообщение 07.08.16, 8:48
Сообщение #5

Статус
**********
Группа: Пользователи
Сообщений: 1543
Спасибо сказали: 254 раз
Рейтинг: 0

В віртуальній таблиці регістру є параметр "мєтод дополнєнія" який саме керує поведінкою запиту, коли нема даних за період.
Окрім того, в потрібні місця у запиту ставите вираз
ЕСТЬNULL(ВЫРАЖЕНИЕ,0) і отримуєте свої нулі.

XBrut @ Сегодня, 9:09 *,
а також подивіться вираз формування підсумків ПЕРИОДАМИ(ДЕНЬ, НачДата, КонДата)

Сообщение отредактировал XBrut - 07.08.16, 8:12

Спасибо сказали: candrey,

Нонна Подменю пользователя
сообщение 07.08.16, 22:45
Сообщение #6

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 214
Из: Харьков
Спасибо сказали: 50 раз
Рейтинг: 0

Приведу пример простенького запроса, который решает вашу проблему, т.к разобраться в вашем мне непросто, то попытайтесь понять мой.
Это прайс-лист: Номенклатура и цена. Данные выводятся по всей номенклатуре, если цены нет в регистре сведений, выводится 0.
Здесь используется вложенный запрос к справочнику Номенклатура.
ВЫБРАТЬ
    ЕСТЬNULL(ЦеныНоменклатурыСрезПоследних.Цена, 0) КАК Цена,
    ВлЗапросСпрНоменклатура.Ссылка КАК Номенклатура
ИЗ
    (ВЫБРАТЬ
        Номенклатура.Ссылка КАК Ссылка
    ИЗ
        Справочник.Номенклатура КАК Номенклатура) КАК ВлЗапросСпрНоменклатура
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ) КАК ЦеныНоменклатурыСрезПоследних
        ПО (ЦеныНоменклатурыСрезПоследних.Номенклатура = ВлЗапросСпрНоменклатура.Ссылка)

СГРУППИРОВАТЬ ПО
    ЦеныНоменклатурыСрезПоследних.Цена,
    ВлЗапросСпрНоменклатура.Ссылка


Спасибо сказали: candrey,

candrey Подменю пользователя
сообщение 11.08.16, 11:43
Сообщение #7

Завсегдатай
****
Группа: Пользователи
Сообщений: 155
Спасибо сказали: 6 раз
Рейтинг: 0

Всем спасибо за подсказки и предложения. icon_beer17.gif
Пойду испытывать новые изменения.

Цитата(Petre @ 05.08.16, 14:16) *
Цитата(candrey @ 05.08.16, 13:30) *
т.к я потом отнимаю эту колонку и пустоту этих строк(Нули) формула не воспринимает.

Как вы это делаете. Т. е. "какие ваши доказательства"?



Сама проблема не вычисляет поле ГСМ когда поле ГСМР равно нулю или ГСМП равно нулю. Когда оба значения ГСМР и ГСМП >0 то поле ГСМ все работает отлично. Сам код. Если вы Petre в курсе подскажите где проблема сидит..


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


Есть мысль соединить две строки кода в одну. Подскажите возможно это или нет? И прямо в нем произвести вычисление т.е

ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПриходРасход.Расход)-ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПриходРасход.Приход)


т.е 1 код

 ПриходРасход = ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПриходРасход.Расход)
                        И СтатьяДвиженияДенежныхСредств.Код = "00016") КАК ДвиженияДенежныхСредствОбороты,
            РегистрСведений.ДатыДляОтчета КАК Даты


2 код

 ПриходРасход = ЗНАЧЕНИЕ(Перечисление.ВидыДвиженийПриходРасход.Приход)
                        И СтатьяДвиженияДенежныхСредств.Код = "00016") КАК ДвиженияДенежныхСредствОбороты,
            РегистрСведений.ДатыДляОтчета КАК Даты


Спасибо за подсказку.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 29.03.24, 11:15
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!