Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Ругается "делить на 0 нельзя"
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
bereznoy
64000000.gif Написал такую проверку, если хоть какое то из знаменателей будет 0, тогда параметр "Пакетировка" = 0 или просто пустое поле, вообщем то как то коряво у меня получается, подскажите какое условие сделать

Если  ВыборкаСтрокТовары.Номенклатура.Пакетировка.Площадьшт = 0 Тогда Упак = 0 Иначе 
        Упак = Цел(ВыборкаСтрокТовары.Количество / ВыборкаСтрокТовары.Номенклатура.Пакетировка.Площадьшт / ВыборкаСтрокТовары.Номенклатура.Пакетировка.Штупак);
        допШт = ВыборкаСтрокТовары.Количество / ВыборкаСтрокТовары.Номенклатура.Пакетировка.Площадьшт - Упак*ВыборкаСтрокТовары.Номенклатура.Пакетировка.Штупак;
КонецЕсли;


        Если Цел(ВыборкаСтрокТовары.Количество / ВыборкаСтрокТовары.Номенклатура.Пакетировка.Площадьшт)=
ВыборкаСтрокТовары.Количество / ВыборкаСтрокТовары.Номенклатура.Пакетировка.Площадьшт Тогда
        ОбластьМакета.Параметры.Упаковки = ""+Упак+" уп. "+допШт+" шт.";
             Иначе
        ОбластьМакета.Параметры.Упаковки = ""+Упак+" уп. ";
         КонецЕсли;
MATEVI
//а это?
ВыборкаСтрокТовары.Номенклатура.Пакетировка.Штупак=0
bereznoy
Код теперь такой, ошибочка на фотке
Если  ВыборкаСтрокТовары.Номенклатура.Пакетировка.Площадьшт = 0 или ВыборкаСтрокТовары.Номенклатура.Пакетировка.Штупак = 0 Тогда Упак = 0 Иначе 
        Упак = Цел(ВыборкаСтрокТовары.Количество /
ВыборкаСтрокТовары.Номенклатура.Пакетировка.Площадьшт /
ВыборкаСтрокТовары.Номенклатура.Пакетировка.Штупак);
        допШт = ВыборкаСтрокТовары.Количество /
ВыборкаСтрокТовары.Номенклатура.Пакетировка.Площадьшт - Упак*ВыборкаСтрокТовары.Номенклатура.Пакетировка.Штупак;
КонецЕсли;


        Если Цел(ВыборкаСтрокТовары.Количество / ВыборкаСтрокТовары.Номенклатура.Пакетировка.Площадьшт) =
ВыборкаСтрокТовары.Количество / ВыборкаСтрокТовары.Номенклатура.Пакетировка.Площадьшт Тогда
        ОбластьМакета.Параметры.Упаковки = ""+Упак+" уп. "+допШт+" шт.";
             Иначе
        ОбластьМакета.Параметры.Упаковки = ""+Упак+" уп. ";
         КонецЕсли;


и скрин
Batchir
Здесь значит происходит деление на 0. А вообще проблема вполне решается сама с использованием глазотладчика
Если Цел(ВыборкаСтрокТовары.Количество / ВыборкаСтрокТовары.Номенклатура.Пакетировка.Площадьшт) = 
ВыборкаСтрокТовары.Количество / ВыборкаСтрокТовары.Номенклатура.Пакетировка.Площадьшт Тогда
        ОбластьМакета.Параметры.Упаковки = ""+Упак+" уп. "+допШт+" шт.";
             Иначе
        ОбластьМакета.Параметры.Упаковки = ""+Упак+" уп. ";
         КонецЕсли;
Ardi
Если  ВыборкаСтрокТовары.Номенклатура.Пакетировка.Площадьшт=0 Тогда
Предупреждение("такидананольделитьнельзя");
Иначе
Если  ВыборкаСтрокТовары.Номенклатура.Пакетировка.Площадьшт = 0 или ВыборкаСтрокТовары.Номенклатура.Пакетировка.Штупак = 0 Тогда Упак = 0 Иначе
        Упак = Цел(ВыборкаСтрокТовары.Количество /
ВыборкаСтрокТовары.Номенклатура.Пакетировка.Площадьшт /
ВыборкаСтрокТовары.Номенклатура.Пакетировка.Штупак);
        допШт = ВыборкаСтрокТовары.Количество /
ВыборкаСтрокТовары.Номенклатура.Пакетировка.Площадьшт - Упак*ВыборкаСтрокТовары.Номенклатура.Пакетировка.Штупак;
КонецЕсли;


        Если Цел(ВыборкаСтрокТовары.Количество / ВыборкаСтрокТовары.Номенклатура.Пакетировка.Площадьшт) =
ВыборкаСтрокТовары.Количество / ВыборкаСтрокТовары.Номенклатура.Пакетировка.Площадьшт Тогда
        ОбластьМакета.Параметры.Упаковки = ""+Упак+" уп. "+допШт+" шт.";
             Иначе
        ОбластьМакета.Параметры.Упаковки = ""+Упак+" уп. ";
         КонецЕсли;
         КонецЕсли;
bereznoy
Спасибо icon_beer17.gif icon_beer17.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.