В отчете Ведомость товаров по складам возникает ошибка: деление на ноль 0.
Сам отчет проверила, там где есть деление есть проверка на 0:

```1c
    ВЫБОР
    КОГДА &ЕдиницыКоличества = 0
    ТОГДА ТоварыНаСкладахОстаткиИОбороты.ВНаличииНачальныйОстаток
    КОГДА &ЕдиницыКоличества = 1
    ТОГДА ВЫБОР
    КОГДА ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов <> 0
    ТОГДА ТоварыНаСкладахОстаткиИОбороты.ВНаличииНачальныйОстаток / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов
    ИНАЧЕ 0
    КОНЕЦ
    КОНЕЦ
```

Больше деления нигде нет, отчет в консоли выполняется без ошибок.
данная ошибка выходит при любых настройках, при любом периоде. Кэш чистили. В отладчике по ошибке не останавливается.
С чем это может быть связано? Или как найти источник проблемы?
---
Вопрос решился. Сохранила отчет как внешний и запустил в отладке. Поругался на справочник единиц измерения,нужно было заполнить кратность для килограммов: 1кг=1кг.
---
КОГДА ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов <> 0

КОГДА ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов, 0) <> 0
---
КОГДА ЕСТЬNULL(ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов, 0) <> 0

В данном случае, проверка на NULL - абсолютно лишняя операция, т.к. соединений быть не должно (99%), а Номенклатура (99%) не может быть NULL,
но если уж (вдруг есть соединение) и добавлять, то вот так (при условии, что реквизит КоэффициентЕдиницыДляОтчетов у ном-ры тип число:

```1c
    ВЫБОР
    КОГДА ТоварыНаСкладахОстаткиИОбороты.Номенклатура Есть NULL
    Тогда 0
    Иначе
    ЕстьNULL(ТоварыНаСкладахОстаткиИОбороты.ВНаличииНачальныйОстаток,0) / ТоварыНаСкладахОстаткиИОбороты.Номенклатура.КоэффициентЕдиницыДляОтчетов
    КОНЕЦ
```

ПС: И в Запросе NULL+5 = NULL
(12) ПС2. реквизит числового типа = null Априори, такого не может быть! Реквизит числового типа = числу, но никак не NULL! NULL- Это отдельный тип!
---
Априори, такого не может быть! Реквизит числового типа = числу, но никак не NULL! NULL- Это отдельный тип!
Реквизиту числового типа можно присвоить Null. Другое дело, что Null в данном случае приведется к 0.
---
Вы хоть сами понимаете, что пишите? Реквизиту числового типа можно присвоить только значение числового типа!

Другое дело, что в коде, если вы говорите о коде, платформа автоматически преобразует патыется преобразовать пустые значения(типа NULL, неоперделено и любые другие не подходящие типы типа ссылки на справочник или документ) к Значению(в случае удачи, например Булево = 54515; //Истина), Пустому значению(Число = Справочники.Номенклатура.ПустаяСсылка(); // 0).

Т.е.
Реквизит = NULL абсолютно то же самое, что и Реквизит = неопределено, аналогично и Реквизит = ПустоеЗначениеТакогоЖеТипа.

Возвращаясь к вашей фразе, повторюсь, Реквизиту числового типа можно НЕ ВОЗМОЖНО присвоить Null, его можно только "обнулить"(привести к пустому значению данного типа) этой операцией
---
Реквизиту числового типа можно НЕ ВОЗМОЖНО присвоить Null, его можно только "обнулить"(привести к пустому значению данного типа) этой операцией
как бы это не называлось...
Хорошо, если Вы так дотошны до буквы, тогда при присваивании Null, он автоматически приведется к 0.
Или будите спорить, что операция Реквизит = Null это не факт присваивания?
Реквизит = NULL абсолютно то же самое, что и Реквизит = неопределено, аналогично и Реквизит = ПустоеЗначениеТакогоЖеТипа.

А вот с этим я никогда и не спорил. Домыслы?
---
А вот с этим я никогда и не спорил. Домыслы?
пример)
Хорошо, если Вы так дотошны до буквы
Просто это принципиально разные вещи.

Согласитесь, если Вам скажут "Я реквизиту присвоил NULL, обработай в запросе только строки с NULL отдельно.."
Звучит очень не однозначно..
---
Согласитесь, если Вам скажут "Я реквизиту присвоил NULL, обработай в запросе только строки с NULL отдельно.."
Звучит очень не однозначно..
Вот мое сообщение, которое было воспринято неоднозначно:
 "Априори, такого не может быть! Реквизит числового типа = числу, но никак не NULL! NULL- Это отдельный тип!"

Реквизиту числового типа можно присвоить Null. Другое дело, что Null в данном случае приведется к 0.
Присвоить Null это операция Реквизит = Null. И он сразу же приводится к 0. Ничего более. Это совсем не означает, что там будет храниться Null.
---
я даже больше скажу.
В С++ допустима такая операция:

```1c
    int a = NULL;
```

Она так же сделает приведение. И переменная а будет равна 0.
---
там NULL - это определенная константа. Но, обычно, было не NULL, а nil - системная константа, равная нулю.

https://habrahabr.ru/post/165021/
На самом деле, в контексте указателей применим как NULL, так и 0, ввиду того что первый — не более чем макрос-обёртка для второго:
#define NULL ((void *)0)

Однако не следует использовать NULL в качестве замены 0 в тех местах, где ноль — алгебраическое значение:
int c = b*a;
if (c != NULL) {
    printf("Neither b nor a is equal to 0\n");
}
---
СКД? А в вычисляемых полях деление есть? А в ресурсах в поле "Выражение"?
---
Сообщение было скрыто модератором.
---
Сдается мне, ошибка не в этом фрагменте (146%), а в каком-нибудь поле форматирования или в доп. полях или еще где.. раз уж в консоли все гуд.
---
Свой отчёт посмотрите в консоле отчётов и там же увидите какой отчёт выполняется и поймёте где идёт ошибка!
---
в консоле отчётовв консоли
---
Спасибо!)

(6) А дано ли деление на null даёт ошибку деления на "0"? )
---
А дано ли деление на null даёт ошибку деления на "0"? )
Если тип числовой, то Null приводится к 0. Это было всегда.
---
Где приводится? В запросе? В СКД?
---
конкретно тут - в математических операциях.
---
вы серьёзно хотите сказать что null + 5 даст вам 5 на выходе?!?!?
---
не null + 5, а реквизит числового типа = null.
Есть реквизит числового типа Ревизит1.
То такой код даст 5:

```1c
    Реквизит1 = Null;
    Сообщить(Реквизит1 + 5);
```

Правда не уверен, что это работает в запросе. Там другая механика.
С запросом скорее всего не сработает. Тут согласен.
---
С таким же успехом можно написать:
Реквизит1 = "Какая-нибудь чушь"
Сообщить(Реквизит1 + 5);

При условии что Реквизит1 имеет тип число, увидим на экране 5))
---
Вот пример:

```1c
    Реквизит1 = "3"
    Сообщить(Реквизит1 + 5);
```

Увидим на экране: 8
Все же происходит приведение?
Вот и с Null тоже самое.
---
Вопрос решился. Сохранила отчет как внешний и запустил в отладке. Поругался на справочник единиц измерения,нужно было заполнить кратность для килограммов: 1кг=1кг.
---
Сообщение было скрыто модератором.