8.х Добавляю строку появляется ошибка СКУЭЛЬ

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем desintegrer, 12 авг 2011.

  1. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте .

    Помогите пожалуйста разобраться со следующей проблеммой .
    Пишу обработку для заполнения табличной части документа УТ 10.3 8.1

    Когда я добавляю на экранную форму таблицы значений новую строку появляется ошибка скуэль


    Код:
    {ВнешняяОбработка.ВозвратТовараОтПокупателяВнешняя(524)}: Ошибка при вызове метода контекста (Выполнить): Ошибка выполнения запроса "Ошибка при выполнении операции над данными:
    Microsoft OLE DB Provider for SQL Server: Divide by zero error encountered.
    HRESULT=80040E14, SQLSrvr: Error state=1, Severity=10, native=8134, line=1
    "
    ВыборкаДетально = ЗапросДетально.Выполнить().Выбрать();
    по причине:
    Ошибка выполнения запроса "Ошибка при выполнении операции над данными:
    Microsoft OLE DB Provider for SQL Server: Divide by zero error encountered.
    HRESULT=80040E14, SQLSrvr: Error state=1, Severity=10, native=8134, line=1
    "
    по причине:
    Ошибка при выполнении операции над данными:
    Microsoft OLE DB Provider for SQL Server: Divide by zero error encountered.
    HRESULT=80040E14, SQLSrvr: Error state=1, Severity=10, native=8134, line=1
    
    
    



    В которой судя потексту идет ссылка нак один из моих запросов
    НО когда я выполняю этот запрос через консоль или через другую табличную часть в этой форме никакой ошибки нет и всё нормально выполняется.

    Так что что-то я не понимаю ?
  2. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.574
    Симпатии:
    717
    Баллы:
    204
    Деление на 0, проверяйте текст запроса и исключите такую ситуацию
  3. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
    Ошибка оказалась в процедуре при активизации строки а можно задать разные процедуры при активизации строки для разных таблицзначений (элемент управления формы)
    на одной и той же форме обработки ???
  4. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.574
    Симпатии:
    717
    Баллы:
    204
    ну как бы обработчики для разных ТЧ создаются изначально
  5. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
    Я чего то не понимаю

    Ошибку выдает на ПриАКтивацииСтроки которая в свою очередь ругается на мой запрос .

    Выполняю запрос в консоли все ок - выполняю в обработке если при вызове при активизации причем номенклатура не указана - то всё не ок
    а если указываю то всё здорово .

    В чём проблемма ? нет никакого деления на ноль.....
  6. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
    прогнал через консоль с нулевой номенклатурой тоже самое - так что буду исправлять запрос .
  7. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.574
    Симпатии:
    717
    Баллы:
    204
    в запросе соединения есть?
  8. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
    да есть аж 2
    - левое соединение
    -внутреннее соединение
  9. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.574
    Симпатии:
    717
    Баллы:
    204
    Конструкции типа ЕСТЬNULL(,) присутствуют?
  10. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Запрос покажите.

    И версию платформы полностью скажите.
  11. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
    есть нулов нет !
    8 .1.15.14

    но не уверен что это имеет отношение к решению моего вопроса я думаю о другом :

    там вся проблема возникает если подаешь на вход не заданную номенклатуру у которой везде всё по нулям - подскажите а как отсечь этот случай ?

    добавляется строка она активизируется - сразу идет запуск моего запроса

    допустим если нет значений то пусть не выполняет запрос

    пытался использовать ЭТО не помогло

    Код:
    Если ТекущиеДанные <> Неопределено или ТекущиеДанные.Номенклатура <> Справочники.Номенклатура.ПустаяСсылка() или ТекущиеДанные.Номенклатура = NULL Тогда
    
    
    
  12. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.574
    Симпатии:
    717
    Баллы:
    204
    запрос покажите
  13. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
    или в самом запросе как можно проверить на входящие "пустые" значения ?

    Код:
    
    ВЫБРАТЬ          
    |	ПродажиОбороты.ДокументПродажи.Дата КАК Дата,
    |	ПродажиОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента,
    |	ПродажиОбороты.Контрагент КАК Контрагент,
    |	ПродажиОбороты.ДокументПродажи КАК ДокументПродажи,
    |	ПродажиОбороты.ДокументПродажи.ТипЦен КАК ТипЦен,
    |	ПродажиОбороты.ХарактеристикаНоменклатуры,
    |	ПродажиОбороты.КоличествоОборот КАК Количество,
    |	ПродажиОбороты.СтоимостьОборот КАК СтоимостьОборот,
    |	ПродажиОбороты.СтоимостьБезСкидокОборот КАК СтоимостьБезСкидокОборот,
    |	ОтчетОРозничныхПродажах.ПроцентСкидкиНаценки КАК РучнаяСкидка,
    |	ОтчетОРозничныхПродажах.ПроцентАвтоматическихСкидок КАК АвтоматическаяСкидка,
    |	ОтчетОРозничныхПродажах.УсловиеАвтоматическойСкидки КАК УсловиеАвтоматическойСкидки,
    |	ОтчетОРозничныхПродажах.ЗначениеУсловияАвтоматическойСкидки КАК ЗначениеУсловияАвтоматическойСкидки,
    |	ВЫБОР
    |		КОГДА СУММА(ПродажиОбороты.КоличествоОборот) > 0
    |			ТОГДА СУММА(ПродажиОбороты.СтоимостьОборот) / СУММА(ПродажиОбороты.КоличествоОборот)
    |		ИНАЧЕ 0
    |	КОНЕЦ КАК ЦенаПродажи,
    |	ВЫБОР
    |		КОГДА ПродажиОбороты.СтоимостьОборот <> ПродажиОбороты.СтоимостьБезСкидокОборот
    |			ТОГДА ((ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот) - (ПродажиОбороты.СтоимостьОборот / ПродажиОбороты.КоличествоОборот)) / ((ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот) / 100)
    |		ИНАЧЕ 0
    |	КОНЕЦ КАК ВычисленныйПроцентРучнойСкидки,
    |	ВложенныйЗапрос.КоличествоДетально КАК КоличествоДетально,
    |	ВложенныйЗапрос.СтоимостьДетально КАК СтоимостьДетально,
    |	ВложенныйЗапрос.СтоимостьБезСкидокДетально КАК СтоимостьБезСкидокДетально,
    |	ВложенныйЗапрос.СтоимостьБезСкидокДетально / ВложенныйЗапрос.КоличествоДетально - ВложенныйЗапрос.СтоимостьДетально / ВложенныйЗапрос.КоличествоДетально КАК СуммаСкидкиДетально,
    |	ВложенныйЗапрос.СтоимостьБезСкидокДетально / ВложенныйЗапрос.КоличествоДетально / 100 КАК ОдинПроцентДетально,
    |	(ВложенныйЗапрос.СтоимостьБезСкидокДетально / ВложенныйЗапрос.КоличествоДетально - ВложенныйЗапрос.СтоимостьДетально / ВложенныйЗапрос.КоличествоДетально)/(ВложенныйЗапрос.СтоимостьБезСкидокДетально / ВложенныйЗапрос.КоличествоДетально / 100) как РучнаяСкидкаДетально,   
    |   ВЫБОР
    |		КОГДА СУММА(ВложенныйЗапрос.КоличествоДетально) > 0
    |			ТОГДА ВложенныйЗапрос.СтоимостьДетально/ВложенныйЗапрос.КоличествоДетально
    |		ИНАЧЕ 0
    |	КОНЕЦ КАК ЦенаПродажиДетально
    |
    |    ИЗ
    |	    РегистрНакопления.Продажи.Обороты(, &ДатаКон, , Номенклатура = &ТекНоменклатура) КАК ПродажиОбороты
    |		ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтчетОРозничныхПродажах.Товары КАК ОтчетОРозничныхПродажах
    |		ПО ПродажиОбороты.Номенклатура.Ссылка = ОтчетОРозничныхПродажах.Номенклатура.Ссылка
    |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    |			Продажи.Количество КАК КоличествоДетально,
    |			Продажи.Стоимость КАК СтоимостьДетально,
    |			Продажи.СтоимостьБезСкидок КАК СтоимостьБезСкидокДетально,
    |			Продажи.Регистратор КАК РегистраторДетально,
    |			Продажи.Номенклатура.Ссылка КАК НоменклатураСсылка
    |		ИЗ
    |			РегистрНакопления.Продажи КАК Продажи) КАК ВложенныйЗапрос
    |		ПО ПродажиОбороты.ДокументПродажи = ВложенныйЗапрос.РегистраторДетально
    |			И ПродажиОбороты.Номенклатура.Ссылка = ВложенныйЗапрос.НоменклатураСсылка
    |   ГДЕ
    |	ПродажиОбороты.СтоимостьОборот <> ПродажиОбороты.СтоимостьБезСкидокОборот
    |   И ОтчетОРозничныхПродажах.ПроцентСкидкиНаценки > 0
    |	И ОтчетОРозничныхПродажах.ПроцентАвтоматическихСкидок = 0
    |	И ВложенныйЗапрос.СтоимостьДетально <> ВложенныйЗапрос.СтоимостьБезСкидокДетально
    |	И ВложенныйЗапрос.КоличествоДетально < ПродажиОбороты.КоличествоОборот
    |
    |   СГРУППИРОВАТЬ ПО
    |	ПродажиОбороты.ДокументПродажи.Дата,
    |	ПродажиОбороты.ДоговорКонтрагента,
    |	ПродажиОбороты.Контрагент,
    |	ПродажиОбороты.ДокументПродажи,
    |	ПродажиОбороты.ДокументПродажи.ТипЦен,
    |	ПродажиОбороты.ХарактеристикаНоменклатуры,
    |	ПродажиОбороты.КоличествоОборот,
    |	ПродажиОбороты.СтоимостьОборот,
    |	ПродажиОбороты.СтоимостьБезСкидокОборот,
    |	ОтчетОРозничныхПродажах.ПроцентСкидкиНаценки,
    |	ОтчетОРозничныхПродажах.ПроцентАвтоматическихСкидок,
    |	ОтчетОРозничныхПродажах.УсловиеАвтоматическойСкидки,
    |	ОтчетОРозничныхПродажах.ЗначениеУсловияАвтоматическойСкидки,
    |	ВложенныйЗапрос.КоличествоДетально,
    |	ВложенныйЗапрос.СтоимостьДетально,
    |	ВложенныйЗапрос.СтоимостьБезСкидокДетально
    |
    |  ИМЕЮЩИЕ
    |	(ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот - ПродажиОбороты.СтоимостьОборот / ПродажиОбороты.КоличествоОборот) / (ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот / 100) <> ОтчетОРозничныхПродажах.ПроцентСкидкиНаценки И
    |	ПродажиОбороты.СтоимостьБезСкидокОборот - ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот / 100 * 100 / (ОтчетОРозничныхПродажах.ПроцентСкидкиНаценки / 100) / 10 * ПродажиОбороты.КоличествоОборот МЕЖДУ 0 И 0.999 И
    |	(ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот - ПродажиОбороты.СтоимостьОборот / ПродажиОбороты.КоличествоОборот) / (ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот / 100) <> 5 и
    |   (ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот - ПродажиОбороты.СтоимостьОборот / ПродажиОбороты.КоличествоОборот) / (ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот / 100) <> 10 и
    |   (ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот - ПродажиОбороты.СтоимостьОборот / ПродажиОбороты.КоличествоОборот) / (ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот / 100) <> 15
    |
    |  УПОРЯДОЧИТЬ ПО
    |	Дата УБЫВ
    
    
  14. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.574
    Симпатии:
    717
    Баллы:
    204
    и это по вашему "нет деления на 0"? :)

    ЛЮБОЕ ДЕЛЕНИЕ В ЗАПРОСЕ нужно через проверку на 0 делать.
  15. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
    а подскажите примером как это сделать ? я добавлял проверку как в 1м варианте Выбор ...не помогло !

    ВЫБОР
    | КОГДА СУММА(ПродажиОбороты.КоличествоОборот) > 0
    | ТОГДА СУММА(ПродажиОбороты.СтоимостьОборот) / СУММА(ПродажиОбороты.КоличествоОборот)
    | ИНАЧЕ 0
    | КОНЕЦ КАК ЦенаПродажи,


    а в имеющие тоже нужно проверку ?

    ВЫБОР
    | КОГДА СУММА(ПродажиОбороты.КоличествоОборот) > 0
    | ТОГДА СУММА(ПродажиОбороты.СтоимостьОборот) / СУММА(ПродажиОбороты.КоличествоОборот)
    | ИНАЧЕ 0
    | КОНЕЦ КАК ЦенаПродажи,


    а в имеющие тоже нужно проверку ?
  16. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.574
    Симпатии:
    717
    Баллы:
    204
    ессесина...и в ГДЕ тоже...
  17. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
    я сделал так

    Код:
    ВЫБРАТЬ          
    ПродажиОбороты.ДокументПродажи.Дата КАК Дата,
    ПродажиОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента,
    ПродажиОбороты.Контрагент КАК Контрагент,
    ПродажиОбороты.ДокументПродажи КАК ДокументПродажи,
    ПродажиОбороты.ДокументПродажи.ТипЦен КАК ТипЦен,
    ПродажиОбороты.ХарактеристикаНоменклатуры,
    ПродажиОбороты.КоличествоОборот КАК Количество,
    ПродажиОбороты.СтоимостьОборот КАК СтоимостьОборот,
    ПродажиОбороты.СтоимостьБезСкидокОборот КАК СтоимостьБезСкидокОборот,
    ОтчетОРозничныхПродажах.ПроцентСкидкиНаценки КАК РучнаяСкидка,
    ОтчетОРозничныхПродажах.ПроцентАвтоматическихСкидок КАК АвтоматическаяСкидка,
    ОтчетОРозничныхПродажах.УсловиеАвтоматическойСкидки КАК УсловиеАвтоматическойСкидки,
    ОтчетОРозничныхПродажах.ЗначениеУсловияАвтоматическойСкидки КАК ЗначениеУсловияАвтоматическойСкидки,
    ВЫБОР
    КОГДА СУММА(ПродажиОбороты.КоличествоОборот) > 0
    ТОГДА СУММА(ПродажиОбороты.СтоимостьОборот) / СУММА(ПродажиОбороты.КоличествоОборот)
    ИНАЧЕ 0
    КОНЕЦ КАК ЦенаПродажи,
    ВЫБОР
    КОГДА ПродажиОбороты.СтоимостьОборот <> ПродажиОбороты.СтоимостьБезСкидокОборот и (ПродажиОбороты.КоличествоОборот) > 0 
    ТОГДА ((ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот) - (ПродажиОбороты.СтоимостьОборот / ПродажиОбороты.КоличествоОборот)) / ((ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот) / 100)
    ИНАЧЕ 0
    КОНЕЦ КАК ВычисленныйПроцентРучнойСкидки,
    ВложенныйЗапрос.КоличествоДетально КАК КоличествоДетально,
    ВложенныйЗапрос.СтоимостьДетально КАК СтоимостьДетально,
    ВложенныйЗапрос.СтоимостьБезСкидокДетально КАК СтоимостьБезСкидокДетально,
    
    ВЫБОР
    КОГДА (ВложенныйЗапрос.КоличествоДетально) > 0
    ТОГДА ВложенныйЗапрос.СтоимостьБезСкидокДетально / ВложенныйЗапрос.КоличествоДетально - ВложенныйЗапрос.СтоимостьДетально / ВложенныйЗапрос.КоличествоДетально
    ИНАЧЕ 0
    КОНЕЦ КАК СуммаСкидкиДетально,
    
    ВЫБОР
    КОГДА (ВложенныйЗапрос.КоличествоДетально) > 0
    ТОГДА ВложенныйЗапрос.СтоимостьБезСкидокДетально / ВложенныйЗапрос.КоличествоДетально / 100 
    ИНАЧЕ 0
    КОНЕЦ КАК ОдинПроцентДетально,
    
    ВЫБОР
    КОГДА (ВложенныйЗапрос.КоличествоДетально) > 0
    ТОГДА (ВложенныйЗапрос.СтоимостьБезСкидокДетально / ВложенныйЗапрос.КоличествоДетально - ВложенныйЗапрос.СтоимостьДетально / ВложенныйЗапрос.КоличествоДетально)/(ВложенныйЗапрос.СтоимостьБезСкидокДетально / ВложенныйЗапрос.КоличествоДетально / 100) 
    ИНАЧЕ 0
    КОНЕЦ  как РучнаяСкидкаДетально,   
    
    ВЫБОР
    КОГДА СУММА(ВложенныйЗапрос.КоличествоДетально) > 0
    ТОГДА ВложенныйЗапрос.СтоимостьДетально/ВложенныйЗапрос.КоличествоДетально
    ИНАЧЕ 0
    КОНЕЦ КАК ЦенаПродажиДетально
    
    ИЗ
    РегистрНакопления.Продажи.Обороты(, &ДатаКон, , Номенклатура = &ТекНоменклатура) КАК ПродажиОбороты
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтчетОРозничныхПродажах.Товары КАК ОтчетОРозничныхПродажах
    ПО ПродажиОбороты.Номенклатура.Ссылка = ОтчетОРозничныхПродажах.Номенклатура.Ссылка
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    Продажи.Количество КАК КоличествоДетально,
    Продажи.Стоимость КАК СтоимостьДетально,
    Продажи.СтоимостьБезСкидок КАК СтоимостьБезСкидокДетально,
    Продажи.Регистратор КАК РегистраторДетально,
    Продажи.Номенклатура.Ссылка КАК НоменклатураСсылка
    ИЗ
    РегистрНакопления.Продажи КАК Продажи) КАК ВложенныйЗапрос
    ПО ПродажиОбороты.ДокументПродажи = ВложенныйЗапрос.РегистраторДетально
    И ПродажиОбороты.Номенклатура.Ссылка = ВложенныйЗапрос.НоменклатураСсылка
    ГДЕ
    ПродажиОбороты.СтоимостьОборот <> ПродажиОбороты.СтоимостьБезСкидокОборот
    И ОтчетОРозничныхПродажах.ПроцентСкидкиНаценки > 0
    И ОтчетОРозничныхПродажах.ПроцентАвтоматическихСкидок = 0
    И ВложенныйЗапрос.СтоимостьДетально <> ВложенныйЗапрос.СтоимостьБезСкидокДетально
    И ВложенныйЗапрос.КоличествоДетально < ПродажиОбороты.КоличествоОборот
    
    СГРУППИРОВАТЬ ПО
    ПродажиОбороты.ДокументПродажи.Дата,
    ПродажиОбороты.ДоговорКонтрагента,
    ПродажиОбороты.Контрагент,
    ПродажиОбороты.ДокументПродажи,
    ПродажиОбороты.ДокументПродажи.ТипЦен,
    ПродажиОбороты.ХарактеристикаНоменклатуры,
    ПродажиОбороты.КоличествоОборот,
    ПродажиОбороты.СтоимостьОборот,
    ПродажиОбороты.СтоимостьБезСкидокОборот,
    ОтчетОРозничныхПродажах.ПроцентСкидкиНаценки,
    ОтчетОРозничныхПродажах.ПроцентАвтоматическихСкидок,
    ОтчетОРозничныхПродажах.УсловиеАвтоматическойСкидки,
    ОтчетОРозничныхПродажах.ЗначениеУсловияАвтоматическойСкидки,
    ВложенныйЗапрос.КоличествоДетально,
    ВложенныйЗапрос.СтоимостьДетально,
    ВложенныйЗапрос.СтоимостьБезСкидокДетально
    
    ИМЕЮЩИЕ
    
    (ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот - ПродажиОбороты.СтоимостьОборот / ПродажиОбороты.КоличествоОборот) / (ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот / 100) <> ОтчетОРозничныхПродажах.ПроцентСкидкиНаценки И
    ПродажиОбороты.СтоимостьБезСкидокОборот - ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот / 100 * 100 / (ОтчетОРозничныхПродажах.ПроцентСкидкиНаценки / 100) / 10 * ПродажиОбороты.КоличествоОборот МЕЖДУ 0 И 0.999 И
    (ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот - ПродажиОбороты.СтоимостьОборот / ПродажиОбороты.КоличествоОборот) / (ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот / 100) <> 5 и
    (ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот - ПродажиОбороты.СтоимостьОборот / ПродажиОбороты.КоличествоОборот) / (ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот / 100) <> 10 и
    (ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот - ПродажиОбороты.СтоимостьОборот / ПродажиОбороты.КоличествоОборот) / (ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот / 100) <> 15
    
    УПОРЯДОЧИТЬ ПО
    Дата УБЫВ
    
    
    
    
    
    Всё равно ошибка деления на 0 когда номенклатура не задана

    Подскажите а как мне наложить условие на имеющие ?
  18. nomad_irk
    Offline

    nomad_irk Гуру в 1С

    Регистрация:
    20 окт 2008
    Сообщения:
    7.574
    Симпатии:
    717
    Баллы:
    204
    Код:
    ИМЕЮЩИЕ
    Выбор когда  ПродажиОбороты.КоличествоОборот <> 0 И ПродажиОбороты.СтоимостьБезСкидокОборот <> 0 Тогда
    (ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот - ПродажиОбороты.СтоимостьОборот / ПродажиОбороты.КоличествоОборот) / (ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот / 100) 
    Иначе 0
    КОнец
    <> ОтчетОРозничныхПродажах.ПроцентСкидкиНаценки
    
    
    
    как-то так...остальные - по подобию...
  19. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
    сейчас попробую
  20. TopicStarter Overlay
    desintegrer
    Offline

    desintegrer Опытный в 1С

    Регистрация:
    11 май 2011
    Сообщения:
    377
    Симпатии:
    0
    Баллы:
    26
    :angry: вот этот вариант заработал - СПАСИБО за ответы !

    Код:
    ВЫБРАТЬ          
    ПродажиОбороты.ДокументПродажи.Дата КАК Дата,
    ПродажиОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента,
    ПродажиОбороты.Контрагент КАК Контрагент,
    ПродажиОбороты.ДокументПродажи КАК ДокументПродажи,
    ПродажиОбороты.ДокументПродажи.ТипЦен КАК ТипЦен,
    ПродажиОбороты.ХарактеристикаНоменклатуры,
    ПродажиОбороты.КоличествоОборот КАК Количество,
    ПродажиОбороты.СтоимостьОборот КАК СтоимостьОборот,
    ПродажиОбороты.СтоимостьБезСкидокОборот КАК СтоимостьБезСкидокОборот,
    ОтчетОРозничныхПродажах.ПроцентСкидкиНаценки КАК РучнаяСкидка,
    ОтчетОРозничныхПродажах.ПроцентАвтоматическихСкидок КАК АвтоматическаяСкидка,
    ОтчетОРозничныхПродажах.УсловиеАвтоматическойСкидки КАК УсловиеАвтоматическойСкидки,
    ОтчетОРозничныхПродажах.ЗначениеУсловияАвтоматическойСкидки КАК ЗначениеУсловияАвтоматическойСкидки,
    ВЫБОР
    КОГДА СУММА(ПродажиОбороты.КоличествоОборот) > 0
    ТОГДА СУММА(ПродажиОбороты.СтоимостьОборот) / СУММА(ПродажиОбороты.КоличествоОборот)
    ИНАЧЕ 0
    КОНЕЦ КАК ЦенаПродажи,
    ВЫБОР
    КОГДА ПродажиОбороты.СтоимостьОборот <> ПродажиОбороты.СтоимостьБезСкидокОборот и (ПродажиОбороты.КоличествоОборот) > 0 
    ТОГДА ((ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот) - (ПродажиОбороты.СтоимостьОборот / ПродажиОбороты.КоличествоОборот)) / ((ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот) / 100)
    ИНАЧЕ 0
    КОНЕЦ КАК ВычисленныйПроцентРучнойСкидки,
    ВложенныйЗапрос.КоличествоДетально КАК КоличествоДетально,
    ВложенныйЗапрос.СтоимостьДетально КАК СтоимостьДетально,
    ВложенныйЗапрос.СтоимостьБезСкидокДетально КАК СтоимостьБезСкидокДетально,
    
    ВЫБОР
    КОГДА (ВложенныйЗапрос.КоличествоДетально) > 0
    ТОГДА ВложенныйЗапрос.СтоимостьБезСкидокДетально / ВложенныйЗапрос.КоличествоДетально - ВложенныйЗапрос.СтоимостьДетально / ВложенныйЗапрос.КоличествоДетально
    ИНАЧЕ 0
    КОНЕЦ КАК СуммаСкидкиДетально,
    
    ВЫБОР
    КОГДА (ВложенныйЗапрос.КоличествоДетально) > 0
    ТОГДА ВложенныйЗапрос.СтоимостьБезСкидокДетально / ВложенныйЗапрос.КоличествоДетально / 100 
    ИНАЧЕ 0
    КОНЕЦ КАК ОдинПроцентДетально,
    
    ВЫБОР
    КОГДА (ВложенныйЗапрос.КоличествоДетально) > 0
    ТОГДА (ВложенныйЗапрос.СтоимостьБезСкидокДетально / ВложенныйЗапрос.КоличествоДетально - ВложенныйЗапрос.СтоимостьДетально / ВложенныйЗапрос.КоличествоДетально)/(ВложенныйЗапрос.СтоимостьБезСкидокДетально / ВложенныйЗапрос.КоличествоДетально / 100) 
    ИНАЧЕ 0
    КОНЕЦ  как РучнаяСкидкаДетально,   
    
    ВЫБОР
    КОГДА СУММА(ВложенныйЗапрос.КоличествоДетально) > 0
    ТОГДА ВложенныйЗапрос.СтоимостьДетально/ВложенныйЗапрос.КоличествоДетально
    ИНАЧЕ 0
    КОНЕЦ КАК ЦенаПродажиДетально
    
    ИЗ
    РегистрНакопления.Продажи.Обороты(, &ДатаКон, , Номенклатура = &ТекНоменклатура) КАК ПродажиОбороты
    ЛЕВОЕ СОЕДИНЕНИЕ Документ.ОтчетОРозничныхПродажах.Товары КАК ОтчетОРозничныхПродажах
    ПО ПродажиОбороты.Номенклатура.Ссылка = ОтчетОРозничныхПродажах.Номенклатура.Ссылка
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    Продажи.Количество КАК КоличествоДетально,
    Продажи.Стоимость КАК СтоимостьДетально,
    Продажи.СтоимостьБезСкидок КАК СтоимостьБезСкидокДетально,
    Продажи.Регистратор КАК РегистраторДетально,
    Продажи.Номенклатура.Ссылка КАК НоменклатураСсылка
    ИЗ
    РегистрНакопления.Продажи КАК Продажи) КАК ВложенныйЗапрос
    ПО ПродажиОбороты.ДокументПродажи = ВложенныйЗапрос.РегистраторДетально
    И ПродажиОбороты.Номенклатура.Ссылка = ВложенныйЗапрос.НоменклатураСсылка
    ГДЕ
    ПродажиОбороты.СтоимостьОборот <> ПродажиОбороты.СтоимостьБезСкидокОборот
    И ОтчетОРозничныхПродажах.ПроцентСкидкиНаценки > 0
    И ОтчетОРозничныхПродажах.ПроцентАвтоматическихСкидок = 0
    И ВложенныйЗапрос.СтоимостьДетально <> ВложенныйЗапрос.СтоимостьБезСкидокДетально
    И ВложенныйЗапрос.КоличествоДетально < ПродажиОбороты.КоличествоОборот
    
    СГРУППИРОВАТЬ ПО
    ПродажиОбороты.ДокументПродажи.Дата,
    ПродажиОбороты.ДоговорКонтрагента,
    ПродажиОбороты.Контрагент,
    ПродажиОбороты.ДокументПродажи,
    ПродажиОбороты.ДокументПродажи.ТипЦен,
    ПродажиОбороты.ХарактеристикаНоменклатуры,
    ПродажиОбороты.КоличествоОборот,
    ПродажиОбороты.СтоимостьОборот,
    ПродажиОбороты.СтоимостьБезСкидокОборот,
    ОтчетОРозничныхПродажах.ПроцентСкидкиНаценки,
    ОтчетОРозничныхПродажах.ПроцентАвтоматическихСкидок,
    ОтчетОРозничныхПродажах.УсловиеАвтоматическойСкидки,
    ОтчетОРозничныхПродажах.ЗначениеУсловияАвтоматическойСкидки,
    ВложенныйЗапрос.КоличествоДетально,
    ВложенныйЗапрос.СтоимостьДетально,
    ВложенныйЗапрос.СтоимостьБезСкидокДетально
    
    ИМЕЮЩИЕ
    
    Выбор когда  ПродажиОбороты.КоличествоОборот <> 0 И ПродажиОбороты.СтоимостьБезСкидокОборот <> 0 Тогда
    (ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот - ПродажиОбороты.СтоимостьОборот / ПродажиОбороты.КоличествоОборот) / (ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот / 100) 
    Иначе 0
    КОнец
    <> ОтчетОРозничныхПродажах.ПроцентСкидкиНаценки И
    
    Выбор когда  ПродажиОбороты.КоличествоОборот <> 0 И ПродажиОбороты.СтоимостьБезСкидокОборот <> 0 Тогда
    ПродажиОбороты.СтоимостьБезСкидокОборот - ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот / 100 * 100 / (ОтчетОРозничныхПродажах.ПроцентСкидкиНаценки / 100) / 10 * ПродажиОбороты.КоличествоОборот 
    Иначе 0
    КОнец
    МЕЖДУ 0 И 0.999 И
    
    Выбор когда  ПродажиОбороты.КоличествоОборот <> 0 И ПродажиОбороты.СтоимостьБезСкидокОборот <> 0 Тогда
    (ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот - ПродажиОбороты.СтоимостьОборот / ПродажиОбороты.КоличествоОборот) / (ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот / 100) 
    Иначе 0
    КОнец
    <> 5 И
    
    Выбор когда  ПродажиОбороты.КоличествоОборот <> 0 И ПродажиОбороты.СтоимостьБезСкидокОборот <> 0 Тогда
    (ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот - ПродажиОбороты.СтоимостьОборот / ПродажиОбороты.КоличествоОборот) / (ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот / 100) 
    Иначе 0
    КОнец
    <> 10 И
    
    Выбор когда  ПродажиОбороты.КоличествоОборот <> 0 И ПродажиОбороты.СтоимостьБезСкидокОборот <> 0 Тогда
    (ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот - ПродажиОбороты.СтоимостьОборот / ПродажиОбороты.КоличествоОборот) / (ПродажиОбороты.СтоимостьБезСкидокОборот / ПродажиОбороты.КоличествоОборот / 100)
    Иначе 0
    КОнец
    <> 15 
    
    УПОРЯДОЧИТЬ ПО
    Дата УБЫВ
    
    
    
    
    
    
    

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