8.х Ошибка, деление на 0

Тема в разделе "Общие вопросы "1С:Предприятие 8"", создана пользователем z8491, 8 апр 2013.

  1. TopicStarter Overlay
    z8491
    Offline

    z8491

    Регистрация:
    8 апр 2013
    Сообщения:
    29
    Симпатии:
    0
    Баллы:
    1
    Конфа упп на 8.2
    Ребята, в рукописном отчете который анализирует заказы покупателей, выскакивает ошибка

    Ошибка, деление на 0


    Код:
    Для каждого СтрокаТЗ из ТаблицаЗаказов цикл
    СтрокаТЗ.Валюта = СтрокаТЗ.ДоговорКонтрагента.ВалютаВзаиморасчетов;
    СтрокаТЗ.Долг = СтрокаТЗ.СуммаЗаказа - СтрокаТЗ.Оплата;
    ПроцентОплаты = СтрокаТЗ.Оплата / СтрокаТЗ.СуммаЗаказа * 100; 
    Ругаеться именно на СтрокаТЗ.Оплата / СтрокаТЗ.СуммаЗаказа * 100;

    как обойти .... ошибка появилась недавно, видать криво стали делать заказы или еще что пока не пойму

    отчет прилагаю

    Вложения:

  2. TopicStarter Overlay
    z8491
    Offline

    z8491

    Регистрация:
    8 апр 2013
    Сообщения:
    29
    Симпатии:
    0
    Баллы:
    1
    Сделал так, не знаю правиль но ли ?

    Код:
    Если СтрокаТЗ.СуммаЗаказа = 0 тогда
    ПроцентОплаты = 0 иначе
    
    ПроцентОплаты = СтрокаТЗ.Оплата / СтрокаТЗ.СуммаЗаказа * 100;
    КонецЕсли;
  3. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    поменяйте строку на
    ПроцентОплаты = ?(СтрокаТЗ.СуммаЗаказа=0,100,СтрокаТЗ.Оплата/СтрокаТЗ.СуммаЗаказа*100);

    у вас есть поступление оплаты по заказу, снятому с проведения скорее всего, вот и косяк лезет
  4. SpiritAT
    Offline

    SpiritAT Опытный в 1С

    Регистрация:
    8 авг 2013
    Сообщения:
    157
    Симпатии:
    0
    Баллы:
    26
    а если вот такое условие на что может ругаться?
    Код:
    ВЫБРАТЬ
    ПартииТоваровНаСкладахОстаткиИОбороты.Номенклатура,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоРасход,
    ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор,
    ПартииТоваровНаСкладахОстаткиИОбороты.Регистратор.Дата КАК РегистраторДата,
    ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход / ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьПриход КАК Цена
    ИЗ
    РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(&ДатаНач, &ДатаНач, Авто, , ) КАК ПартииТоваровНаСкладахОстаткиИОбороты
    УПОРЯДОЧИТЬ ПО
    РегистраторДата УБЫВ,
    Цена УБЫВ
    че происходит при получении цены ругается деление на 0 невозможно
  5. nickpugachev
    Offline

    nickpugachev Профессионал в 1С Команда форума

    Регистрация:
    28 май 2012
    Сообщения:
    3.266
    Симпатии:
    131
    Баллы:
    104
    как это невозможно? если есть остаток на начало периода и не было за период оборотов, то у вас как раз в СтоимостьПриход 0 будет

Поделиться этой страницей