1с ошибка деление на 0 в запросе

   Zombi

24.07.12 — 10:38

В запросе есть поле с таким выражением:

ВЫБОР

   КОГДА ПартииТоваровНаСкладахОбороты.КоличествоРасход <> 0

       ТОГДА ПартииТоваровНаСкладахОбороты.СтоимостьРасход / ПартииТоваровНаСкладахОбороты.КоличествоРасход * РеализацияТоваровУслугТовары.Количество

   ИНАЧЕ 0

КОНЕЦ

При выполнении все равно ругается на деление на 0. Я что то не так сделал?

   vicof

1 — 24.07.12 — 10:39

Весь запрос покажи

   Zombi

2 — 24.07.12 — 10:40

ВЫБРАТЬ

   РеализацияТоваровУслугТовары.Номенклатура,

   РеализацияТоваровУслугТовары.Количество,

   ВЫБОР

       КОГДА РеализацияТоваровУслугТовары.Ссылка.УчитыватьНДС

               И РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС

           ТОГДА РеализацияТоваровУслугТовары.Сумма

       ИНАЧЕ РеализацияТоваровУслугТовары.Сумма + РеализацияТоваровУслугТовары.СуммаНДС

   КОНЕЦ КАК СНДС,

   ВЫБОР

       КОГДА РеализацияТоваровУслугТовары.Ссылка.УчитыватьНДС

               И РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС

           ТОГДА РеализацияТоваровУслугТовары.Сумма — РеализацияТоваровУслугТовары.СуммаНДС

       ИНАЧЕ РеализацияТоваровУслугТовары.Сумма

   КОНЕЦ КАК БезНДС,

   РеализацияТоваровУслугТовары.Ссылка,

   ВЫБОР

       КОГДА ПартииТоваровНаСкладахОбороты.КоличествоРасход <> 0

           ТОГДА ПартииТоваровНаСкладахОбороты.СтоимостьРасход / ПартииТоваровНаСкладахОбороты.КоличествоРасход * РеализацияТоваровУслугТовары.Количество

       ИНАЧЕ 0

   КОНЕЦ КАК Себестоимость,

   ВЫБОР

       КОГДА РеализацияТоваровУслугТовары.Ссылка.УчитыватьНДС

               И РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС

           ТОГДА РеализацияТоваровУслугТовары.Сумма — РеализацияТоваровУслугТовары.СуммаНДС

       ИНАЧЕ РеализацияТоваровУслугТовары.Сумма

   КОНЕЦ — ПартииТоваровНаСкладахОбороты.СтоимостьРасход КАК ВаловаяПрибыль,

   (ВЫБОР

       КОГДА РеализацияТоваровУслугТовары.Ссылка.УчитыватьНДС

               И РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС

           ТОГДА РеализацияТоваровУслугТовары.Сумма — РеализацияТоваровУслугТовары.СуммаНДС

       ИНАЧЕ РеализацияТоваровУслугТовары.Сумма

   КОНЕЦ — ПартииТоваровНаСкладахОбороты.СтоимостьРасход) / ПартииТоваровНаСкладахОбороты.СтоимостьРасход * 100 КАК Эффективность,

   РеализацияТоваровУслугТовары.Склад,

   РеализацияТоваровУслугТовары.Ссылка.Организация,

   РеализацияТоваровУслугТовары.Ссылка.Подразделение,

   РеализацияТоваровУслугТовары.Ссылка.Контрагент

ИЗ

   Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары

       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Обороты(, , Регистратор, ) КАК ПартииТоваровНаСкладахОбороты

       ПО РеализацияТоваровУслугТовары.Номенклатура = ПартииТоваровНаСкладахОбороты.Номенклатура

           И РеализацияТоваровУслугТовары.Склад = ПартииТоваровНаСкладахОбороты.Склад

           И РеализацияТоваровУслугТовары.Ссылка = ПартииТоваровНаСкладахОбороты.Регистратор

ГДЕ

   РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &НачДата И &КонДата

   х86

3 — 24.07.12 — 10:40

(0)скобки расставь

   Ork

4 — 24.07.12 — 10:40

(0) Возможно здесь : РеализацияТоваровУслугТовары.Количество тоже «0».

   romale

5 — 24.07.12 — 10:40

(0) Может тебя ещё и ПартииТоваровНаСкладахОбороты.КоличествоРасход = NULL?

   vicof

6 — 24.07.12 — 10:40

ПартииТоваровНаСкладахОбороты.СтоимостьРасход

   Zombi

7 — 24.07.12 — 10:40

+ (2) это все в СКД

   hhhh

8 — 24.07.12 — 10:43

(7) ну там ниже еще вторая операция деления. Для нее тебе влом на 0 проверять?

   Zombi

9 — 24.07.12 — 10:43

Так тоже деление на 0:

ВЫБОР

   КОГДА ПартииТоваровНаСкладахОбороты.КоличествоРасход <> 0

           И ПартииТоваровНаСкладахОбороты.КоличествоРасход <> NULL

       ТОГДА ПартииТоваровНаСкладахОбороты.СтоимостьРасход / ПартииТоваровНаСкладахОбороты.КоличествоРасход * РеализацияТоваровУслугТовары.Количество

   ИНАЧЕ 0

КОНЕЦ

   romale

10 — 24.07.12 — 10:43

ВЫБОР

       КОГДА ЕСТЬNULL(ПартииТоваровНаСкладахОбороты.КоличествоРасход, 0) = 0

           ТОГДА 0

ИНАЧЕ

ПартииТоваровНаСкладахОбороты.СтоимостьРасход / ПартииТоваровНаСкладахОбороты.КоличествоРасход * РеализацияТоваровУслугТовары.Количество

   КОНЕЦ КАК Себестоимость,

   chelentano

11 — 24.07.12 — 10:43

(ВЫБОР

       КОГДА РеализацияТоваровУслугТовары.Ссылка.УчитыватьНДС

               И РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС

           ТОГДА РеализацияТоваровУслугТовары.Сумма — РеализацияТоваровУслугТовары.СуммаНДС

       ИНАЧЕ РеализацияТоваровУслугТовары.Сумма

   КОНЕЦ — ПартииТоваровНаСкладахОбороты.СтоимостьРасход) / ПартииТоваровНаСкладахОбороты.СтоимостьРасход * 100 КАК Эффективность

   Kashemir

12 — 24.07.12 — 10:43

(9) Кто ж так на NULL проверяет. Смотри (10)

   chelentano

13 — 24.07.12 — 10:44

+(11) здесь нет проверки на ноль

   Zombi

14 — 24.07.12 — 10:44

(8) Ошибка появилась, когда я именно это деление добавил

   rool

15 — 24.07.12 — 10:44

а причем тут скд? просто ПартииТоваровНаСкладахОбороты.КоличествоРасход * РеализацияТоваровУслугТовары.Количество где то равно нулю. проверяй все произведение на ноль

   sash-ml

16 — 24.07.12 — 10:46

можно просто скобки дописать (а/в)*с

   hhhh

17 — 24.07.12 — 10:47

(15) РеализацияТоваровУслугТовары.Количество в числителе, если что.

   rool

18 — 24.07.12 — 10:48

ага. гоню :)

   Zombi

19 — 24.07.12 — 10:49

ВЫБОР

   КОГДА ЕСТЬNULL(ПартииТоваровНаСкладахОбороты.КоличествоРасход, 0) = 0

       ТОГДА 0

   ИНАЧЕ ПартииТоваровНаСкладахОбороты.СтоимостьРасход / ПартииТоваровНаСкладахОбороты.КоличествоРасход * РеализацияТоваровУслугТовары.Количество

КОНЕЦ

так тоже не хочет. А как лучше во втором делении на 0 проверить?

   Kashemir

20 — 24.07.12 — 10:50

(19) Ошибки деления на 0 здесь не может в принципе. Какое еще второе деление ?

   Classic

21 — 24.07.12 — 10:51

(0)

Может не на это поле ругается?

   Ненавижу 1С

22 — 24.07.12 — 10:51

(19) точно также

   Zombi

23 — 24.07.12 — 10:51

(20) ниже там еще одно деление есть, но раньше работало, вот это деление добавил и теперь:

Ошибка исполнения отчета

по причине:

Ошибка получения данных

по причине:

Ошибка создания набора данных «НаборДанных1»

по причине:

Ошибка при исполнении запроса набора данных

по причине:

Ошибка выполнения запроса

по причине:

Ошибка при выполнении операции над данными:

Ошибка SQL: Деление на 0

по причине:

Ошибка SQL: Деление на 0

по причине:

Деление на 0 значения типа Numeric

   Classic

24 — 24.07.12 — 10:53

(23)

Наверняка на второе ругается. Ты ж там на ноль и нул не проверяешь

   Zombi

25 — 24.07.12 — 10:53

Вот щас весь запрос:

ВЫБРАТЬ

   РеализацияТоваровУслугТовары.Номенклатура,

   РеализацияТоваровУслугТовары.Количество,

   ВЫБОР

       КОГДА РеализацияТоваровУслугТовары.Ссылка.УчитыватьНДС

               И РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС

           ТОГДА РеализацияТоваровУслугТовары.Сумма

       ИНАЧЕ РеализацияТоваровУслугТовары.Сумма + РеализацияТоваровУслугТовары.СуммаНДС

   КОНЕЦ КАК СНДС,

   ВЫБОР

       КОГДА РеализацияТоваровУслугТовары.Ссылка.УчитыватьНДС

               И РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС

           ТОГДА РеализацияТоваровУслугТовары.Сумма — РеализацияТоваровУслугТовары.СуммаНДС

       ИНАЧЕ РеализацияТоваровУслугТовары.Сумма

   КОНЕЦ КАК БезНДС,

   РеализацияТоваровУслугТовары.Ссылка,

   ВЫБОР

       КОГДА ЕСТЬNULL(ПартииТоваровНаСкладахОбороты.КоличествоРасход, 0) = 0

           ТОГДА 0

       ИНАЧЕ ПартииТоваровНаСкладахОбороты.СтоимостьРасход / ПартииТоваровНаСкладахОбороты.КоличествоРасход * РеализацияТоваровУслугТовары.Количество

   КОНЕЦ КАК Себестоимость,

   ВЫБОР

       КОГДА РеализацияТоваровУслугТовары.Ссылка.УчитыватьНДС

               И РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС

           ТОГДА РеализацияТоваровУслугТовары.Сумма — РеализацияТоваровУслугТовары.СуммаНДС

       ИНАЧЕ РеализацияТоваровУслугТовары.Сумма

   КОНЕЦ — ПартииТоваровНаСкладахОбороты.СтоимостьРасход КАК ВаловаяПрибыль,

   (ВЫБОР

       КОГДА РеализацияТоваровУслугТовары.Ссылка.УчитыватьНДС

               И РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС

           ТОГДА РеализацияТоваровУслугТовары.Сумма — РеализацияТоваровУслугТовары.СуммаНДС

       ИНАЧЕ РеализацияТоваровУслугТовары.Сумма

   КОНЕЦ — ПартииТоваровНаСкладахОбороты.СтоимостьРасход) / ПартииТоваровНаСкладахОбороты.СтоимостьРасход * 100 КАК Эффективность,

   РеализацияТоваровУслугТовары.Склад,

   РеализацияТоваровУслугТовары.Ссылка.Организация,

   РеализацияТоваровУслугТовары.Ссылка.Подразделение,

   РеализацияТоваровУслугТовары.Ссылка.Контрагент

ИЗ

   Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары

       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Обороты(, , Регистратор, ) КАК ПартииТоваровНаСкладахОбороты

       ПО РеализацияТоваровУслугТовары.Номенклатура = ПартииТоваровНаСкладахОбороты.Номенклатура

           И РеализацияТоваровУслугТовары.Склад = ПартииТоваровНаСкладахОбороты.Склад

           И РеализацияТоваровУслугТовары.Ссылка = ПартииТоваровНаСкладахОбороты.Регистратор

ГДЕ

   РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &НачДата И &КонДата

на что еще ругаться может?

   Kashemir

26 — 24.07.12 — 10:54

У тебя 2 операции деления — неужели так сложно определить ?

   Ненавижу 1С

27 — 24.07.12 — 10:54

ну епта

(ВЫБОР

       КОГДА РеализацияТоваровУслугТовары.Ссылка.УчитыватьНДС

               И РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС

           ТОГДА РеализацияТоваровУслугТовары.Сумма — РеализацияТоваровУслугТовары.СуммаНДС

       ИНАЧЕ РеализацияТоваровУслугТовары.Сумма

   КОНЕЦ — ПартииТоваровНаСкладахОбороты.СтоимостьРасход) / ПартииТоваровНаСкладахОбороты.СтоимостьРасход * 100 КАК Эффективность,

   Zombi

28 — 24.07.12 — 10:55

(24) щас сделал вот так:

ВЫБРАТЬ

   РеализацияТоваровУслугТовары.Номенклатура,

   РеализацияТоваровУслугТовары.Количество,

   ВЫБОР

       КОГДА РеализацияТоваровУслугТовары.Ссылка.УчитыватьНДС

               И РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС

           ТОГДА РеализацияТоваровУслугТовары.Сумма

       ИНАЧЕ РеализацияТоваровУслугТовары.Сумма + РеализацияТоваровУслугТовары.СуммаНДС

   КОНЕЦ КАК СНДС,

   ВЫБОР

       КОГДА РеализацияТоваровУслугТовары.Ссылка.УчитыватьНДС

               И РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС

           ТОГДА РеализацияТоваровУслугТовары.Сумма — РеализацияТоваровУслугТовары.СуммаНДС

       ИНАЧЕ РеализацияТоваровУслугТовары.Сумма

   КОНЕЦ КАК БезНДС,

   РеализацияТоваровУслугТовары.Ссылка,

   ПартииТоваровНаСкладахОбороты.СтоимостьРасход КАК Себестоимость,

   ВЫБОР

       КОГДА РеализацияТоваровУслугТовары.Ссылка.УчитыватьНДС

               И РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС

           ТОГДА РеализацияТоваровУслугТовары.Сумма — РеализацияТоваровУслугТовары.СуммаНДС

       ИНАЧЕ РеализацияТоваровУслугТовары.Сумма

   КОНЕЦ — ПартииТоваровНаСкладахОбороты.СтоимостьРасход КАК ВаловаяПрибыль,

   (ВЫБОР

       КОГДА РеализацияТоваровУслугТовары.Ссылка.УчитыватьНДС

               И РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС

           ТОГДА РеализацияТоваровУслугТовары.Сумма — РеализацияТоваровУслугТовары.СуммаНДС

       ИНАЧЕ РеализацияТоваровУслугТовары.Сумма

   КОНЕЦ — ПартииТоваровНаСкладахОбороты.СтоимостьРасход) / ПартииТоваровНаСкладахОбороты.СтоимостьРасход * 100 КАК Эффективность,

   РеализацияТоваровУслугТовары.Склад,

   РеализацияТоваровУслугТовары.Ссылка.Организация,

   РеализацияТоваровУслугТовары.Ссылка.Подразделение,

   РеализацияТоваровУслугТовары.Ссылка.Контрагент

ИЗ

   Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары

       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Обороты(, , Регистратор, ) КАК ПартииТоваровНаСкладахОбороты

       ПО РеализацияТоваровУслугТовары.Номенклатура = ПартииТоваровНаСкладахОбороты.Номенклатура

           И РеализацияТоваровУслугТовары.Склад = ПартииТоваровНаСкладахОбороты.Склад

           И РеализацияТоваровУслугТовары.Ссылка = ПартииТоваровНаСкладахОбороты.Регистратор

ГДЕ

   РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &НачДата И &КонДата

все работает.

   Zombi

29 — 24.07.12 — 10:56

(27) Подскжите, пожалуйста, как тут проверку на 0 лучше поставить, я вставлю. Но по моему не в этом проблема.

   Kashemir

30 — 24.07.12 — 10:57

(29) Это точно — проблема не в этом

   Classic

31 — 24.07.12 — 11:04

(28)

И какая у тебя эффективность в результате?

   Zombi

32 — 24.07.12 — 11:08

   Classic

33 — 24.07.12 — 11:27

Твой запрос в (25) в конструктор проваливается?

   Zombi

34 — 24.07.12 — 11:38

(33) Да, запросы делаю конструктором в основном, если что то руками дописываю, всегда конструктором открываю для проверки и выравнивания.

   Oleg_Kag

35 — 24.07.12 — 11:47

ИНАЧЕ ПартииТоваровНаСкладахОбороты.СтоимостьРасход / ПартииТоваровНаСкладахОбороты.КоличествоРасход * РеализацияТоваровУслугТовары.Количество

Из чего следует, что РеализацияТоваровУслугТовары.Количество=0 в каком-то документе.

Попробуй умножение убрать.

   Zombi

36 — 24.07.12 — 11:53

(35) Деление же первым выполниться должно, потом на 0 можно и умножить. Но щас попробую уберу.

   Zombi

37 — 24.07.12 — 11:57

(35) Вот так:

ВЫБОР

   КОГДА ЕСТЬNULL(ПартииТоваровНаСкладахОбороты.КоличествоРасход, 0) = 0

       ТОГДА 0

   ИНАЧЕ ПартииТоваровНаСкладахОбороты.СтоимостьРасход / ПартииТоваровНаСкладахОбороты.КоличествоРасход

КОНЕЦ

тоже ошибка

   olegves

38 — 24.07.12 — 11:58

(19)

а так?

ВЫБОР

   КОГДА ЕСТЬNULL(ПартииТоваровНаСкладахОбороты.КоличествоРасход * РеализацияТоваровУслугТовары.Количество, 0) = 0

       ТОГДА 0

   ИНАЧЕ ПартииТоваровНаСкладахОбороты.СтоимостьРасход / ПартииТоваровНаСкладахОбороты.КоличествоРасход * РеализацияТоваровУслугТовары.Количество

КОНЕЦ

  

Zombi

39 — 24.07.12 — 12:33

Сделал все таки проверку во втором делении, все заработало. Странно как раньше работало.

ВЫБРАТЬ

   РеализацияТоваровУслугТовары.Номенклатура,

   РеализацияТоваровУслугТовары.Количество,

   ВЫБОР

       КОГДА РеализацияТоваровУслугТовары.Ссылка.УчитыватьНДС

               И РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС

           ТОГДА РеализацияТоваровУслугТовары.Сумма

       ИНАЧЕ РеализацияТоваровУслугТовары.Сумма + РеализацияТоваровУслугТовары.СуммаНДС

   КОНЕЦ КАК СНДС,

   ВЫБОР

       КОГДА РеализацияТоваровУслугТовары.Ссылка.УчитыватьНДС

               И РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС

           ТОГДА РеализацияТоваровУслугТовары.Сумма — РеализацияТоваровУслугТовары.СуммаНДС

       ИНАЧЕ РеализацияТоваровУслугТовары.Сумма

   КОНЕЦ КАК БезНДС,

   РеализацияТоваровУслугТовары.Ссылка,

   ВЫБОР

       КОГДА ЕСТЬNULL(ПартииТоваровНаСкладахОбороты.КоличествоРасход, 0) = 0

           ТОГДА 0

       ИНАЧЕ ПартииТоваровНаСкладахОбороты.СтоимостьРасход / ПартииТоваровНаСкладахОбороты.КоличествоРасход * РеализацияТоваровУслугТовары.Количество

   КОНЕЦ КАК Себестоимость,

   ВЫБОР

       КОГДА РеализацияТоваровУслугТовары.Ссылка.УчитыватьНДС

               И РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС

           ТОГДА РеализацияТоваровУслугТовары.Сумма — РеализацияТоваровУслугТовары.СуммаНДС

       ИНАЧЕ РеализацияТоваровУслугТовары.Сумма

   КОНЕЦ — ПартииТоваровНаСкладахОбороты.СтоимостьРасход КАК ВаловаяПрибыль,

   ВЫБОР

       КОГДА ЕСТЬNULL(ПартииТоваровНаСкладахОбороты.СтоимостьРасход, 0) = 0

           ТОГДА 0

       ИНАЧЕ (ВЫБОР

               КОГДА РеализацияТоваровУслугТовары.Ссылка.УчитыватьНДС

                       И РеализацияТоваровУслугТовары.Ссылка.СуммаВключаетНДС

                   ТОГДА РеализацияТоваровУслугТовары.Сумма — РеализацияТоваровУслугТовары.СуммаНДС

               ИНАЧЕ РеализацияТоваровУслугТовары.Сумма

           КОНЕЦ — ПартииТоваровНаСкладахОбороты.СтоимостьРасход) / ПартииТоваровНаСкладахОбороты.СтоимостьРасход * 100

   КОНЕЦ КАК Эффективность,

   РеализацияТоваровУслугТовары.Склад,

   РеализацияТоваровУслугТовары.Ссылка.Организация,

   РеализацияТоваровУслугТовары.Ссылка.Подразделение,

   РеализацияТоваровУслугТовары.Ссылка.Контрагент

ИЗ

   Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары

       ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Обороты(, , Регистратор, ) КАК ПартииТоваровНаСкладахОбороты

       ПО РеализацияТоваровУслугТовары.Номенклатура = ПартииТоваровНаСкладахОбороты.Номенклатура

           И РеализацияТоваровУслугТовары.Склад = ПартииТоваровНаСкладахОбороты.Склад

           И РеализацияТоваровУслугТовары.Ссылка = ПартииТоваровНаСкладахОбороты.Регистратор

ГДЕ

   РеализацияТоваровУслугТовары.Ссылка.Дата МЕЖДУ &НачДата И &КонДата

 +3 

   

Распечатать

Это сообщение возникает в том случае, если в алгоритме конфигурации Используется деление и не выполняется проверка значения делителя. Обычно эта ошибка возникает из-за того, что не заполнены какие-либо данные (сумма, количество, коэффициенты и т.п.). Необходимые для работы алгоритма данные должны быть заполнены, например, в документе или справочнике, элемент которого выбран в документе. Обычно эта проблема решается вводом необходимых для работы алгоритма данных и повторным запуском алгоритма (формирования отчета или проведения документов).

Решение:
в коде

Код 1C v 8.х

 //Просто проверка на то что Делитель не равен 0
Если Число(ШиринаБумаги) <> 0 Тогда
КолвоБумСПриладкой = КолвоБумаги / Число(ШиринаБумаги);
КонецЕсли;

в запросе:

Код 1C v 8.х

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

    В общем по теме.
    Директору нужно было изменить один из отчетов. а именно — Запасы (склад) —> стоимостная оценка склада в ценах номенклатуры. Программист постарался, наделал ошибок и исчез.
    в оперативном режиме (остатки) все действует шикарно, а вот в не оперативном, (остатки и себестоимость) выдает ошибку деления на 0.

    с вот таким текстом:
    «{Отчет.УниверсальныйОтчет.МодульОбъекта(86)}: Ошибка при вызове метода контекста (Вывести)
    ПостроительОтчета.Вывести(ТабличныйДокумент);
    по причине:
    Ошибка выполнения запроса
    по причине:
    Ошибка при выполнении операции над данными:
    Ошибка SQL: Деление на 0
    по причине:
    Ошибка SQL: Деление на 0
    по причине:
    Деление на 0 значения типа Numeric
    «

    Буду очень благодарна, если кто-нибудь сможет оказать помощь :unsure:

    Наверняка нужно добавить проверку, да вот только я не пойму в каком месте о.о»
    Прикреплю кусок кода, если кто-либо сможет глянуть :unsure:


  2. mialord

    Offline

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

    Регистрация:
    31 июл 2009
    Сообщения:
    5.460
    Симпатии:
    53
    Баллы:
    54

    Проверку нужно добавлять в запросе
    Пример:

    ВЫБОР КОГДА Регистр.Количество = 0 ТОГДА
    0
    ИНАЧЕ
    //тут расчет
    
    КОНЕЦ

    Это не конкретно к Вашему отчету, это принцип исключения ошибки

  3. Спасибо, сейчас попробую.
    Не понятно что вообще эту ошибку вызывает о.о
    Не заполненная строка типа цены, присваивается к нулю, и при делении на нее происходит ошибка, может быть такое?


  4. leemuar

    Offline

    leemuar
    Опытный в 1С

    Регистрация:
    21 окт 2010
    Сообщения:
    310
    Симпатии:
    0
    Баллы:
    26

    Вы же сами написали — «берется ноль и на него делится», как думаете, такое может быть? :)

  5. я имела ввиду когда поле не заполнено оно присваивается к нулю, или же нет и где-то в коде указано это присваивание


  6. leemuar

    Offline

    leemuar
    Опытный в 1С

    Регистрация:
    21 окт 2010
    Сообщения:
    310
    Симпатии:
    0
    Баллы:
    26

    Да, конечно. В вашем случае это происходит в запросе. Посмотрите текст выполняемого запроса, найдите там операции деления и перепишите их как указал mialord.

  7. :unsure: Сейчас посмотрим

  8. Операций деления больше 15 продублированные по 3 раза :unsure:


  9. x_under

    Offline

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

    Регистрация:
    25 апр 2007
    Сообщения:
    2.576
    Симпатии:
    16
    Баллы:
    29

    А сделайте просто отчет «Ведомость по партиям товаров на складах» и посмотрите нет ли в нем строк, где количество нулевое, а сумма — нет.
    возможно там захотели сделать вывод цены, а ситуацию с делением (как я указал выше) не отловили.

  10. Да, действительно в конечном остатке не было указанно количество товара в некоторых строках, а стоимость была.
    Ошибка происходила при расчете Наценки единицы товара.
    Большое спасибо, все получилось *-*


  11. tonatiuh

    Offline

    tonatiuh

    Регистрация:
    19 ноя 2012
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1

    Доброго времени суток. У меня точно такая же ошибка при создании отчета валовая прибыль. Перечитал уже этот пост несколько раз и не могу понять куда дописать что бы все заработало.

    Проверку нужно добавлять в запросе
    Пример:

    ВЫБОР КОГДА Регистр.Количество = 0 ТОГДА
    0
    ИНАЧЕ
    //тут расчет

    КОНЕЦ

    Можете написать поподробней куда нужно этот код дописать?
    Буду очень благодарен.


  12. Tiger86

    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104

    надо посмотреть, какое поле в запросе может быть 0 (раз ошибка возникает «деление на 0», тогда смотрите именно то поле, на которое делите). Наугад трудно сказать куда вам проверку в запросе поставить

    З.Ы. пользуйтесь тегами для оформления кода — удобнее для чтения


  13. tonatiuh

    Offline

    tonatiuh

    Регистрация:
    19 ноя 2012
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1

    Не подскажете, как можно посмотреть какое поле в запросе может быть 0? Где запрос смотреть? Отчет, валовая прибыль и там в модуле объекта Процедура УстановитьНачальныеНастройки? или я вообще не там ищу? А если там то как правильно все сделать?


  14. Tiger86

    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104

    а в модуле больше никаких процедур нет? по идее должен быть какой-то алгоритм выборки данных


  15. tonatiuh

    Offline

    tonatiuh

    Регистрация:
    19 ноя 2012
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1

    ТекстЗапроса =
    "ВЫБРАТЬ РАЗРЕШЕННЫЕ
    | ВложенныйЗапрос.Организация КАК Организация,
    | ВложенныйЗапрос.Проект КАК Проект,
    | ВложенныйЗапрос.Подразделение КАК Подразделение,
    | ВложенныйЗапрос.Покупатель КАК Покупатель,
    | ВложенныйЗапрос.ДоговорПокупателя КАК ДоговорПокупателя,
    | ВложенныйЗапрос.Номенклатура КАК Номенклатура,
    | ВложенныйЗапрос.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    | ВложенныйЗапрос.ЗаказПокупателя КАК ЗаказПокупателя,
    | ВложенныйЗапрос.Регистратор КАК Регистратор,
    | ПРЕДСТАВЛЕНИЕ(ВложенныйЗапрос.Организация) КАК ОрганизацияПредставление,
    | ПРЕДСТАВЛЕНИЕ(ВложенныйЗапрос.Проект) КАК ПроектПредставление,
    | ПРЕДСТАВЛЕНИЕ(ВложенныйЗапрос.Подразделение) КАК ПодразделениеПредставление,
    | ПРЕДСТАВЛЕНИЕ(ВложенныйЗапрос.Покупатель) КАК ПокупательПредставление,
    | ПРЕДСТАВЛЕНИЕ(ВложенныйЗапрос.ДоговорПокупателя) КАК ДоговорПокупателяПредставление,
    | ПРЕДСТАВЛЕНИЕ(ВложенныйЗапрос.Номенклатура) КАК НоменклатураПредставление,
    | ПРЕДСТАВЛЕНИЕ(ВложенныйЗапрос.ХарактеристикаНоменклатуры) КАК ХарактеристикаНоменклатурыПредставление,
    | ПРЕДСТАВЛЕНИЕ(ВложенныйЗапрос.ЗаказПокупателя) КАК ЗаказПокупателяПредставление,
    | ПРЕДСТАВЛЕНИЕ(ВложенныйЗапрос.Регистратор) КАК РегистраторПредставление,
    | ВложенныйЗапрос.Период КАК Период,
    | ВложенныйЗапрос.ПериодДень КАК ПериодДень,
    | ВложенныйЗапрос.ПериодНеделя КАК ПериодНеделя,
    | ВложенныйЗапрос.ПериодДекада КАК ПериодДекада,
    | ВложенныйЗапрос.ПериодМесяц КАК ПериодМесяц,
    | ВложенныйЗапрос.ПериодКвартал КАК ПериодКвартал,
    | ВложенныйЗапрос.ПериодПолугодие КАК ПериодПолугодие,
    | ВложенныйЗапрос.ПериодГод КАК ПериодГод,
    | ВложенныйЗапрос.Количество КАК Количество,
    | ВложенныйЗапрос.КоличествоЕдиницОтчетов КАК КоличествоЕдиницОтчетов,
    | ВложенныйЗапрос.КоличествоБазовыхЕдиниц КАК КоличествоБазовыхЕдиниц,
    | ВложенныйЗапрос.СтоимостьБезНДС КАК СтоимостьБезНДС,
    | ВложенныйЗапрос.НДС КАК НДС,
    | ВложенныйЗапрос.Стоимость КАК Стоимость,
    | ВложенныйЗапрос.Себестоимость КАК Себестоимость,
    | ВложенныйЗапрос.ВаловаяПрибыль КАК ВаловаяПрибыль,
    | ВложенныйЗапрос.Эффективность КАК Эффективность,
    | ВложенныйЗапрос.Рентабельность КАК Рентабельность
    | //ПОЛЯ_СВОЙСТВА
    | //ПОЛЯ_КАТЕГОРИИ
    |{ВЫБРАТЬ
    | Организация.*,
    | Проект.*,
    | Подразделение.*,
    | Покупатель.*,
    | ДоговорПокупателя.*,
    | Номенклатура.*,
    | ХарактеристикаНоменклатуры.*,
    | ЗаказПокупателя.*,
    | Регистратор.*,
    | Период,
    | ПериодДень,
    | ПериодНеделя,
    | ПериодДекада,
    | ПериодМесяц,
    | ПериодКвартал,
    | ПериодПолугодие,
    | ПериодГод,
    | Количество,
    | КоличествоЕдиницОтчетов,
    | КоличествоБазовыхЕдиниц,
    | СтоимостьБезНДС,
    | НДС,
    | Стоимость,
    | Себестоимость,
    | ВаловаяПрибыль,
    | Эффективность,
    | Рентабельность
    | //ПСЕВДОНИМЫ_СВОЙСТВА
    | //ПСЕВДОНИМЫ_КАТЕГОРИИ
    |}
    |ИЗ
    | (ВЫБРАТЬ
    | ВложенныйЗапрос.Организация КАК Организация,
    | ВложенныйЗапрос.Проект КАК Проект,
    | ВложенныйЗапрос.Подразделение КАК Подразделение,
    | ВложенныйЗапрос.Покупатель КАК Покупатель,
    | ВложенныйЗапрос.ДоговорПокупателя КАК ДоговорПокупателя,
    | ВложенныйЗапрос.Номенклатура КАК Номенклатура,
    | ВложенныйЗапрос.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    | ВложенныйЗапрос.ЗаказПокупателя КАК ЗаказПокупателя,
    | ВложенныйЗапрос.Регистратор КАК Регистратор,
    | ВложенныйЗапрос.Период КАК Период,
    | НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, ДЕНЬ) КАК ПериодДень,
    | НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, НЕДЕЛЯ) КАК ПериодНеделя,
    | НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, ДЕКАДА) КАК ПериодДекада,
    | НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, МЕСЯЦ) КАК ПериодМесяц,
    | НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, КВАРТАЛ) КАК ПериодКвартал,
    | НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, ПОЛУГОДИЕ) КАК ПериодПолугодие,
    | НАЧАЛОПЕРИОДА(ВложенныйЗапрос.Период, ГОД) КАК ПериодГод,
    | СУММА(ВложенныйЗапрос.Количество) КАК Количество,
    | СУММА(ВложенныйЗапрос.КоличествоЕдиницОтчетов) КАК КоличествоЕдиницОтчетов,
    | СУММА(ВложенныйЗапрос.КоличествоБазовыхЕдиниц) КАК КоличествоБазовыхЕдиниц,
    | СУММА(ВложенныйЗапрос.СтоимостьБезНДС) КАК СтоимостьБезНДС,
    | СУММА(ВложенныйЗапрос.НДС) КАК НДС,
    | СУММА(ВложенныйЗапрос.Стоимость) КАК Стоимость,
    | СУММА(ВложенныйЗапрос.Себестоимость) КАК Себестоимость,
    | ВЫБОР
    | КОГДА &НеВключатьНДСВСтоимостьПартий
    | ТОГДА СУММА(ВложенныйЗапрос.СтоимостьБезНДС)
    | ИНАЧЕ СУММА(ВложенныйЗапрос.Стоимость)
    | КОНЕЦ - СУММА(ВложенныйЗапрос.Себестоимость) КАК ВаловаяПрибыль,
    | 100 * ВЫБОР
    | КОГДА &НеВключатьНДСВСтоимостьПартий
    | ТОГДА ВЫБОР
    | КОГДА СУММА(ВложенныйЗапрос.Себестоимость) <> 0
    | ТОГДА (СУММА(ВложенныйЗапрос.СтоимостьБезНДС) - СУММА(ВложенныйЗапрос.Себестоимость)) / СУММА(ВложенныйЗапрос.Себестоимость)
    | ИНАЧЕ 0
    | КОНЕЦ   
    | ИНАЧЕ ВЫБОР
    | КОГДА СУММА(ВложенныйЗапрос.Себестоимость) <> 0
    | ТОГДА (СУММА(ВложенныйЗапрос.Стоимость) - СУММА(ВложенныйЗапрос.Себестоимость)) / СУММА(ВложенныйЗапрос.Себестоимость)
    | ИНАЧЕ 0
    | КОНЕЦ
    | КОНЕЦ КАК Эффективность,
    | 100 * ВЫБОР
    | КОГДА &НеВключатьНДСВСтоимостьПартий
    | ТОГДА ВЫБОР
    | КОГДА СУММА(ВложенныйЗапрос.СтоимостьБезНДС) <> 0
    | ТОГДА (СУММА(ВложенныйЗапрос.СтоимостьБезНДС) - СУММА(ВложенныйЗапрос.Себестоимость)) / СУММА(ВложенныйЗапрос.СтоимостьБезНДС)
    | ИНАЧЕ 0
    | КОНЕЦ
    | ИНАЧЕ ВЫБОР
    | КОГДА СУММА(ВложенныйЗапрос.Стоимость) <> 0
    | ТОГДА (СУММА(ВложенныйЗапрос.Стоимость) - СУММА(ВложенныйЗапрос.Себестоимость)) / СУММА(ВложенныйЗапрос.Стоимость)
    | ИНАЧЕ 0
    | КОНЕЦ
    | КОНЕЦ КАК Рентабельность
    | {ВЫБРАТЬ
    | Организация,
    | Проект,
    | Подразделение,
    | Покупатель,
    | ДоговорПокупателя,
    | Номенклатура,
    | ХарактеристикаНоменклатуры,
    | ЗаказПокупателя,
    | Регистратор,
    | Период,
    | ПериодДень,
    | ПериодНеделя,
    | ПериодДекада,
    | ПериодМесяц,
    | ПериодКвартал,
    | ПериодПолугодие,
    | ПериодГод}
    | ИЗ
    | (ВЫБРАТЬ
    | ПродажиОбороты.Проект КАК Проект,
    | ПродажиОбороты.Подразделение КАК Подразделение,
    | ПродажиОбороты.Контрагент КАК Покупатель,
    | ПродажиОбороты.ДоговорКонтрагента КАК ДоговорПокупателя,
    | ПродажиОбороты.Номенклатура КАК Номенклатура,
    | ПродажиОбороты.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    | ПродажиОбороты.ЗаказПокупателя КАК ЗаказПокупателя,
    | ПродажиОбороты.Организация КАК Организация,
    | ПродажиОбороты.Регистратор КАК Регистратор,
    | ПродажиОбороты.Период КАК Период,
    | ПродажиОбороты.КоличествоОборот КАК Количество,
    | ПродажиОбороты.КоличествоОборот * ЕСТЬNULL(ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент, 1) / ЕСТЬNULL(ПродажиОбороты.Номенклатура.ЕдиницаДляОтчетов.Коэффициент, 1) КАК КоличествоЕдиницОтчетов,
    | ПродажиОбороты.КоличествоОборот * ЕСТЬNULL(ПродажиОбороты.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент, 1) КАК КоличествоБазовыхЕдиниц,
    | ПродажиОбороты.СтоимостьОборот - ПродажиОбороты.НДСОборот КАК СтоимостьБезНДС,
    | ПродажиОбороты.НДСОборот КАК НДС,
    | ПродажиОбороты.СтоимостьОборот КАК Стоимость,
    | ЕСТЬNULL(ТаблицаРегистраПродажиСебестоимость.СтоимостьОборот, 0) КАК Себестоимость
    | ИЗ
    | РегистрНакопления.Продажи.Обороты(&ДатаНач, &ДатаКон, Регистратор, {Организация.* КАК Организация, Проект.* КАК Проект, Подразделение.* КАК Подразделение, Контрагент.* КАК Покупатель, ДоговорКонтрагента.* КАК ДоговорПокупателя, Номенклатура.* КАК Номенклатура, ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры, ЗаказПокупателя.* КАК ЗаказПокупателя}) КАК ПродажиОбороты
    | ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    | ПродажиСебестоимость.Номенклатура КАК Номенклатура,
    | ПродажиСебестоимость.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
    | ПродажиСебестоимость.ЗаказПокупателя КАК ЗаказПокупателя,
    | ВЫБОР
    | КОГДА ПродажиСебестоимость.ДокументДвижения <> НЕОПРЕДЕЛЕНО
    | ТОГДА ПродажиСебестоимость.ДокументДвижения
    | ИНАЧЕ ПродажиСебестоимость.Регистратор
    | КОНЕЦ КАК Регистратор,
    | СУММА(ПродажиСебестоимость.Стоимость) КАК СтоимостьОборот
    | ИЗ
    | РегистрНакопления.ПродажиСебестоимость КАК ПродажиСебестоимость
    | ГДЕ
    | ПродажиСебестоимость.Период МЕЖДУ &ДатаНачала И &ДатаКонца
    | {ГДЕ
    | ПродажиСебестоимость.Проект.* КАК Проект,
    | ПродажиСебестоимость.Подразделение.* КАК Подразделение,
    | ПродажиСебестоимость.Номенклатура.* КАК Номенклатура,
    | ПродажиСебестоимость.ХарактеристикаНоменклатуры.* КАК ХарактеристикаНоменклатуры,
    | ПродажиСебестоимость.ЗаказПокупателя.* КАК ЗаказПокупателя}
    |
    | СГРУППИРОВАТЬ ПО
    | ПродажиСебестоимость.Номенклатура,
    | ПродажиСебестоимость.ХарактеристикаНоменклатуры,
    | ПродажиСебестоимость.ЗаказПокупателя,
    | ВЫБОР
    | КОГДА ПродажиСебестоимость.ДокументДвижения <> НЕОПРЕДЕЛЕНО
    | ТОГДА ПродажиСебестоимость.ДокументДвижения
    | ИНАЧЕ ПродажиСебестоимость.Регистратор
    | КОНЕЦ) КАК ТаблицаРегистраПродажиСебестоимость
    | ПО ТаблицаРегистраПродажиСебестоимость.Номенклатура = ПродажиОбороты.Номенклатура
    | И ТаблицаРегистраПродажиСебестоимость.ХарактеристикаНоменклатуры = ПродажиОбороты.ХарактеристикаНоменклатуры
    | И ТаблицаРегистраПродажиСебестоимость.ЗаказПокупателя = ПродажиОбороты.ЗаказПокупателя
    | И ТаблицаРегистраПродажиСебестоимость.Регистратор = ПродажиОбороты.Регистратор) КАК ВложенныйЗапрос
    |
    | СГРУППИРОВАТЬ ПО
    | ВложенныйЗапрос.Организация,
    | ВложенныйЗапрос.Проект,
    | ВложенныйЗапрос.Подразделение,
    | ВложенныйЗапрос.Покупатель,
    | ВложенныйЗапрос.ДоговорПокупателя,
    | ВложенныйЗапрос.Номенклатура,
    | ВложенныйЗапрос.ХарактеристикаНоменклатуры,
    | ВложенныйЗапрос.ЗаказПокупателя,
    | ВложенныйЗапрос.Регистратор,
    | ВложенныйЗапрос.Период
    |
    | ИМЕЮЩИЕ
    | (СУММА(ВложенныйЗапрос.Количество) <> 0
    | ИЛИ СУММА(ВложенныйЗапрос.Стоимость) <> 0
    | ИЛИ СУММА(ЕСТЬNULL(ВложенныйЗапрос.Себестоимость, 0)) <> 0)) КАК ВложенныйЗапрос
    | //СОЕДИНЕНИЯ
    |{ГДЕ
    | ВложенныйЗапрос.Регистратор.*,
    | ВложенныйЗапрос.Период,
    | ВложенныйЗапрос.ПериодДень,
    | ВложенныйЗапрос.ПериодНеделя,
    | ВложенныйЗапрос.ПериодДекада,
    | ВложенныйЗапрос.ПериодМесяц,
    | ВложенныйЗапрос.ПериодКвартал,
    | ВложенныйЗапрос.ПериодПолугодие,
    | ВложенныйЗапрос.ПериодГод,
    | ВложенныйЗапрос.Количество,
    | ВложенныйЗапрос.КоличествоЕдиницОтчетов,
    | ВложенныйЗапрос.КоличествоБазовыхЕдиниц,
    | ВложенныйЗапрос.СтоимостьБезНДС,
    | ВложенныйЗапрос.НДС,
    | ВложенныйЗапрос.Стоимость,
    | ВложенныйЗапрос.Себестоимость,
    | ВложенныйЗапрос.ВаловаяПрибыль,
    | ВложенныйЗапрос.Эффективность,
    | ВложенныйЗапрос.Рентабельность
    | //УСЛОВИЯ_СВОЙСТВА
    | //УСЛОВИЯ_КАТЕГОРИИ
    |}
    |{УПОРЯДОЧИТЬ ПО
    | Организация.*,
    | Проект.*,
    | Подразделение.*,
    | Покупатель.*,
    | ДоговорПокупателя.*,
    | Номенклатура.*,
    | ХарактеристикаНоменклатуры.*,
    | ЗаказПокупателя.*,
    | Регистратор.*,
    | Период,
    | ПериодДень,
    | ПериодНеделя,
    | ПериодДекада,
    | ПериодМесяц,
    | ПериодКвартал,
    | ПериодПолугодие,
    | ПериодГод,
    | Количество,
    | КоличествоЕдиницОтчетов,
    | КоличествоБазовыхЕдиниц,
    | СтоимостьБезНДС,
    | НДС,
    | Стоимость,
    | Себестоимость,
    | ВаловаяПрибыль,
    | Эффективность,
    | Рентабельность
    | //ПСЕВДОНИМЫ_СВОЙСТВА
    | //ПСЕВДОНИМЫ_КАТЕГОРИИ
    |}
    |ИТОГИ
    | СУММА(Количество),
    | СУММА(КоличествоЕдиницОтчетов),
    | СУММА(КоличествоБазовыхЕдиниц),
    | СУММА(СтоимостьБезНДС),
    | СУММА(НДС),
    | СУММА(Стоимость),
    | СУММА(Себестоимость),
    | ВЫБОР
    | КОГДА &НеВключатьНДСВСтоимостьПартий
    | ТОГДА СУММА(СтоимостьБезНДС)
    | ИНАЧЕ СУММА(Стоимость)
    | КОНЕЦ - СУММА(Себестоимость) КАК ВаловаяПрибыль,
    | 100 * ВЫБОР
    | КОГДА &НеВключатьНДСВСтоимостьПартий
    | ТОГДА ВЫБОР
    | КОГДА СУММА(Себестоимость) <> 0
    | ТОГДА (СУММА(СтоимостьБезНДС) - СУММА(Себестоимость)) / СУММА(Себестоимость)
    | ИНАЧЕ 0
    | КОНЕЦ
    | ИНАЧЕ ВЫБОР
    | КОГДА СУММА(Себестоимость) <> 0
    | ТОГДА (СУММА(Стоимость) - СУММА(Себестоимость)) / СУММА(Себестоимость)
    | ИНАЧЕ 0
    | КОНЕЦ
    | КОНЕЦ КАК Эффективность,
    | 100 * ВЫБОР
    | КОГДА &НеВключатьНДСВСтоимостьПартий
    | ТОГДА ВЫБОР
    | КОГДА СУММА(СтоимостьБезНДС) <> 0
    | ТОГДА (СУММА(СтоимостьБезНДС) - СУММА(Себестоимость)) / СУММА(СтоимостьБезНДС)
    | ИНАЧЕ 0
    | КОНЕЦ
    | ИНАЧЕ ВЫБОР
    | КОГДА СУММА(Стоимость) <> 0
    | ТОГДА (СУММА(Стоимость) - СУММА(Себестоимость)) / СУММА(Стоимость)
    | ИНАЧЕ 0
    | КОНЕЦ
    | КОНЕЦ КАК Рентабельность
    | //ИТОГИ_СВОЙСТВА
    | //ИТОГИ_КАТЕГОРИИ
    |ПО
    | ОБЩИЕ
    |{ИТОГИ ПО
    | Организация.*,
    | Проект.*,
    | Подразделение.*,
    | Покупатель.*,
    | ДоговорПокупателя.*,
    | Номенклатура.*,
    | ХарактеристикаНоменклатуры.*,
    | ЗаказПокупателя.*,
    | Регистратор.*,
    | Период,
    | ПериодДень,
    | ПериодНеделя,
    | ПериодДекада,
    | ПериодМесяц,
    | ПериодКвартал,
    | ПериодПолугодие,
    | ПериодГод
    | //ПСЕВДОНИМЫ_СВОЙСТВА
    | //ПСЕВДОНИМЫ_КАТЕГОРИИ
    |}";
    

    извиняюсь… если это тут где то надо вставить проверку не подскажете где


  16. Tiger86

    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104

    для начала, оформляйте код тегом КОД1С — удобнее читать

    вы отладчиком умеете пользоваться?


  17. tonatiuh

    Offline

    tonatiuh

    Регистрация:
    19 ноя 2012
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1


  18. Tiger86

    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104

    очень жаль, если кратко, то вот принцип: запускаете в конфигураторе, ищите «проблемное» по вашему мнению место, устанавливаете точку останова (напротив нужной строки слева можно щелкнуть, можно через меню установить), затем запускайте через F5 отладку, выполняете в реиме предприятия нужные действия, когда выполнение код адойдет до той самой строки, вас выбросит в конфигуратор и можно будет передвигаться по коды и смотреть изменения значений переменных (типа онлайн) Попробуйте так выяснить где у вас косячит, может дело то и не в запросе?


  19. tonatiuh

    Offline

    tonatiuh

    Регистрация:
    19 ноя 2012
    Сообщения:
    5
    Симпатии:
    0
    Баллы:
    1

    почитаю пока как пользоваться отладчиком


1C-pro.ru - форум по 1С:Предприятию 7.7, 8.0, 8.1, 8.2, 8.3

  1. 05.04.2023, 11:04


    #1

    McTR вне форума


    Гость форума


    По умолчанию Прошу помоч. Деление на 0 значения типа Numeric

    Вот такая вот ошибка у меня, подскажите как исправить. Делаю заполнение «Сведения для реестра прямых выплат ФСС» , выбираю сотрудника и вот такая шляпа, и только у этого сотрудника , по все остальным проблем нет. Это в ЗУПе 3.1
    Деление на 0 значения типа Numeric
    {ОбщийМодуль.КадровыйУчет.� �одуль(3245)}: Запрос.Выполнить();
    {ОбщийМодуль.КадровыйУчет.� �одуль(3155)}: СоздатьВТКадровыеДанныеСо трудников(ОписательВремен� �ыхТаблиц, ТолькоРазрешенные, КадровыеДанные, ПоляОтбораПериодическихДа нных, ФормироватьСПериодичность День);
    {ОбщийМодуль.КадровыйУчет.� �одуль(90)}: СоздатьНаДатуВТКадровыеДа нныеСотрудников(Запрос.Мен еджерВременныхТаблиц, ТолькоРазрешенные, СписокСотрудников, КадровыеДанные, ДатаПолученияДанных, ПоляОтбораПериодическихДа нных, ФормироватьСПериодичность День);
    {Документ.ЗаявлениеСотрудн икаНаВыплатуПособия.Модул� �Объекта(870)}: ТЗКадровыеДанныеСотрудник а = КадровыйУчет.КадровыеДанн� �еСотрудников(Истина, ОбщегоНазначенияКлиентСер вер.ЗначениеВМассиве(Сотру дник), НеобходимыеКадровыеДанные Сотрудника, Дата);
    {Документ.ЗаявлениеСотрудн икаНаВыплатуПособия.Модул� �Объекта(704)}: Если ЗаполнитьКадровыеДанныеСо трудника(ПараметрыФиксаци� �, РайонныйКоэффициентЗаполн енИзОснования) Тогда
    {Документ.ЗаявлениеСотрудн икаНаВыплатуПособия.Форма. ФормаДокумента.Форма(840)}: Если ДокументОбъект.ОбновитьВт� �ричныеДанныеДокумента() Тогда
    {Документ.ЗаявлениеСотрудн икаНаВыплатуПособия.Форма. ФормаДокумента.Форма(1194)}: ОбновитьВторичныеДанныеДо кумента();
    {Документ.ЗаявлениеСотрудн икаНаВыплатуПособия.Форма. ФормаДокумента.Форма(611)}: ОтменитьИзмененияНаСервер е();

    по причине:
    Ошибка выполнения запроса
    по причине:
    Ошибка при выполнении операции над данными:
    Ошибка SQL: Деление на 0
    по причине:
    Ошибка SQL: Деление на 0
    по причине:
    Деление на 0 значения типа Numeric


  2. Пользователь сказал cпасибо:


  3. 05.04.2023, 11:07


    #2

    McTR вне форума


    Гость форума


    По умолчанию Re: Прошу помоч. Деление на 0 значения типа Numeric

    Деление на 0 значения типа Numeric
    {ОбщийМодуль.КадровыйУчет.� �одуль(3245)}: Запрос.Выполнить();
    {ОбщийМодуль.КадровыйУчет.� �одуль(3155)}: СоздатьВТКадровыеДанныеСо трудников(ОписательВремен� �ыхТаблиц, ТолькоРазрешенные, КадровыеДанные, ПоляОтбораПериодическихДа нных, ФормироватьСПериодичность День);
    {ОбщийМодуль.КадровыйУчет.� �одуль(90)}: СоздатьНаДатуВТКадровыеДа нныеСотрудников(Запрос.Мен еджерВременныхТаблиц, ТолькоРазрешенные, СписокСотрудников, КадровыеДанные, ДатаПолученияДанных, ПоляОтбораПериодическихДа нных, ФормироватьСПериодичность День);
    {Документ.ЗаявлениеСотрудн икаНаВыплатуПособия.Модул� �Объекта(870)}: ТЗКадровыеДанныеСотрудник а = КадровыйУчет.КадровыеДанн� �еСотрудников(Истина, ОбщегоНазначенияКлиентСер вер.ЗначениеВМассиве(Сотру дник), НеобходимыеКадровыеДанные Сотрудника, Дата);
    {Документ.ЗаявлениеСотрудн икаНаВыплатуПособия.Модул� �Объекта(704)}: Если ЗаполнитьКадровыеДанныеСо трудника(ПараметрыФиксаци� �, РайонныйКоэффициентЗаполн енИзОснования) Тогда
    {Документ.ЗаявлениеСотрудн икаНаВыплатуПособия.Форма. ФормаДокумента.Форма(840)}: Если ДокументОбъект.ОбновитьВт� �ричныеДанныеДокумента() Тогда
    {Документ.ЗаявлениеСотрудн икаНаВыплатуПособия.Форма. ФормаДокумента.Форма(1194)}: ОбновитьВторичныеДанныеДо кумента();
    {Документ.ЗаявлениеСотрудн икаНаВыплатуПособия.Форма. ФормаДокумента.Форма(611)}: ОтменитьИзмененияНаСервер е();

    по причине:
    Ошибка выполнения запроса
    по причине:
    Ошибка при выполнении операции над данными:
    Ошибка SQL: Деление на 0
    по причине:
    Ошибка SQL: Деление на 0
    по причине:
    Деление на 0 значения типа Numeric


  4. Пользователь сказал cпасибо:


  5. 06.04.2023, 06:55


    #3

    По умолчанию Re: Прошу помоч. Деление на 0 значения типа Numeric

    Цитата Сообщение от McTR
    Посмотреть сообщение

    Вот такая вот ошибка у меня, подскажите как исправить. Делаю заполнение «Сведения для реестра прямых выплат ФСС» , выбираю сотрудника и вот такая шляпа, и только у этого сотрудника , по все остальным проблем нет. Это в ЗУПе 3.1
    Деление на 0 значения типа Numeric
    {ОбщийМодуль.КадровыйУчет.� �одуль(3245)}: Запрос.Выполнить();
    {ОбщийМодуль.КадровыйУчет.� �одуль(3155)}: СоздатьВТКадровыеДанныеСо трудников(ОписательВремен� �ыхТаблиц, ТолькоРазрешенные, КадровыеДанные, ПоляОтбораПериодическихДа нных, ФормироватьСПериодичность День);
    {ОбщийМодуль.КадровыйУчет.� �одуль(90)}: СоздатьНаДатуВТКадровыеДа нныеСотрудников(Запрос.Мен еджерВременныхТаблиц, ТолькоРазрешенные, СписокСотрудников, КадровыеДанные, ДатаПолученияДанных, ПоляОтбораПериодическихДа нных, ФормироватьСПериодичность День);
    {Документ.ЗаявлениеСотрудн икаНаВыплатуПособия.Модул� �Объекта(870)}: ТЗКадровыеДанныеСотрудник а = КадровыйУчет.КадровыеДанн� �еСотрудников(Истина, ОбщегоНазначенияКлиентСер вер.ЗначениеВМассиве(Сотру дник), НеобходимыеКадровыеДанные Сотрудника, Дата);
    {Документ.ЗаявлениеСотрудн икаНаВыплатуПособия.Модул� �Объекта(704)}: Если ЗаполнитьКадровыеДанныеСо трудника(ПараметрыФиксаци� �, РайонныйКоэффициентЗаполн енИзОснования) Тогда
    {Документ.ЗаявлениеСотрудн икаНаВыплатуПособия.Форма. ФормаДокумента.Форма(840)}: Если ДокументОбъект.ОбновитьВт� �ричныеДанныеДокумента() Тогда
    {Документ.ЗаявлениеСотрудн икаНаВыплатуПособия.Форма. ФормаДокумента.Форма(1194)}: ОбновитьВторичныеДанныеДо кумента();
    {Документ.ЗаявлениеСотрудн икаНаВыплатуПособия.Форма. ФормаДокумента.Форма(611)}: ОтменитьИзмененияНаСервер е();

    по причине:
    Ошибка выполнения запроса
    по причине:
    Ошибка при выполнении операции над данными:
    Ошибка SQL: Деление на 0
    по причине:
    Ошибка SQL: Деление на 0
    по причине:
    Деление на 0 значения типа Numeric

    Производственный календарь в этом году заполняли?

    Обновления УНФ, БП, УТ, КА, АА51, АА61, ЗиУП, Розница, Розница Аптека, Риэлтор
    Обращайтесь в личку.


  6. Пользователь сказал cпасибо:


  7. 06.04.2023, 06:56


    #4

    По умолчанию Re: Прошу помоч. Деление на 0 значения типа Numeric

    Цитата Сообщение от McTR
    Посмотреть сообщение

    Вот такая вот ошибка у меня, подскажите как исправить. Делаю заполнение «Сведения для реестра прямых выплат ФСС» , выбираю сотрудника и вот такая шляпа, и только у этого сотрудника , по все остальным проблем нет. Это в ЗУПе 3.1
    Деление на 0 значения типа Numeric
    {ОбщийМодуль.КадровыйУчет.� �одуль(3245)}: Запрос.Выполнить();
    {ОбщийМодуль.КадровыйУчет.� �одуль(3155)}: СоздатьВТКадровыеДанныеСо трудников(ОписательВремен� �ыхТаблиц, ТолькоРазрешенные, КадровыеДанные, ПоляОтбораПериодическихДа нных, ФормироватьСПериодичность День);
    {ОбщийМодуль.КадровыйУчет.� �одуль(90)}: СоздатьНаДатуВТКадровыеДа нныеСотрудников(Запрос.Мен еджерВременныхТаблиц, ТолькоРазрешенные, СписокСотрудников, КадровыеДанные, ДатаПолученияДанных, ПоляОтбораПериодическихДа нных, ФормироватьСПериодичность День);
    {Документ.ЗаявлениеСотрудн икаНаВыплатуПособия.Модул� �Объекта(870)}: ТЗКадровыеДанныеСотрудник а = КадровыйУчет.КадровыеДанн� �еСотрудников(Истина, ОбщегоНазначенияКлиентСер вер.ЗначениеВМассиве(Сотру дник), НеобходимыеКадровыеДанные Сотрудника, Дата);
    {Документ.ЗаявлениеСотрудн икаНаВыплатуПособия.Модул� �Объекта(704)}: Если ЗаполнитьКадровыеДанныеСо трудника(ПараметрыФиксаци� �, РайонныйКоэффициентЗаполн енИзОснования) Тогда
    {Документ.ЗаявлениеСотрудн икаНаВыплатуПособия.Форма. ФормаДокумента.Форма(840)}: Если ДокументОбъект.ОбновитьВт� �ричныеДанныеДокумента() Тогда
    {Документ.ЗаявлениеСотрудн икаНаВыплатуПособия.Форма. ФормаДокумента.Форма(1194)}: ОбновитьВторичныеДанныеДо кумента();
    {Документ.ЗаявлениеСотрудн икаНаВыплатуПособия.Форма. ФормаДокумента.Форма(611)}: ОтменитьИзмененияНаСервер е();

    по причине:
    Ошибка выполнения запроса
    по причине:
    Ошибка при выполнении операции над данными:
    Ошибка SQL: Деление на 0
    по причине:
    Ошибка SQL: Деление на 0
    по причине:
    Деление на 0 значения типа Numeric

    Производственный календарь в этом году заполняли?
    частая проблема https://учетбеззабот.рф/mobile-rasch…programmakh-1s

    Обновления УНФ, БП, УТ, КА, АА51, АА61, ЗиУП, Розница, Розница Аптека, Риэлтор
    Обращайтесь в личку.


  8. Пользователь сказал cпасибо:


Похожие темы

  1. Ответов: 2

    Последнее сообщение: 02.03.2019, 13:23

  2. Ответов: 6

    Последнее сообщение: 21.08.2015, 08:34

  3. Ответов: 5

    Последнее сообщение: 18.04.2015, 11:20

  4. Ответов: 0

    Последнее сообщение: 08.02.2012, 09:40

  5. Ответов: 2

    Последнее сообщение: 02.04.2008, 22:03

Социальные закладки

Социальные закладки


Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
  • BB коды Вкл.
  • Смайлы Вкл.
  • [IMG] код Вкл.
  • [VIDEO] код Вкл.
  • HTML код Выкл.

Правила форума

█ 07.03.2017 14:55

Доброе время суток.
Установили Розница 2.1.9.12 (сделаны некоторые изменения в конфигурации). Магазин работал некоторое время без проблем, был настроен автоматический расчет себестоимости. Автоматический расчет по разным причинам не рассчитывался, приходилось создавать документ расчета вручную. С 1-ого декабря прошлого года при создании документа расчета как вручную, так и регламентным заданием появляется ошибка (см. рис).
Пробовал найти причину ошибки с помощью отладчика и выяснил, что ошибка возникает при исполнении запроса в общем модуле ЗапасыСервер в функции ПоправкаПоСборкамТоваров.
В интернете читал, что проблему можно найти с помощью обработки Консоль Запросов, но не умею пока пользоваться чудом).
Подскажите как быть? куда копать?

Миниатюры

Нажмите на изображение для увеличения
Название: Error_RT_21.jpg
Просмотров: 382
Размер:	142.8 Кб
ID:	8245  

█ 07.03.2017 17:58

В идеале — действительно копать в сторону отладчика и

То есть с помощью отладчика мы видим текст запроса (а зачастую — и параметры).
А с помощью консоли запросов — смотрим, а что у нас на самом деле происходит.

Можно попробовать бросить запрос сюда (если он не на СКД — то так даже проще будет).

█ 09.03.2017 12:14

Опытным путем, т.е. выпытыванием пользователей выяснил, что последний расчет себестоимости проводился вручную и с изменением даты и времени на сервере. Изменили дату и время на последний день прошлого месяца и провели документ расчета себестоимости. После этого и возникла проблема.
Вот текст запроса:
Запрос = Новый Запрос;

Код:

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

█ 09.03.2017 13:15

Цитата:

СУММА(СебестоимостьСоСборкой.СуммаОборот) / СУММА(СебестоимостьСоСборкой.Количество) КАК Стоимость

Возможно количество 0, вот и падает.
Если Это так, то можно попробовать:

Цитата:

«ВЫБРАТЬ
| РезультатКомплект.Магазин,
| РезультатКомплект.Номенклатура,
| РезультатКомплект.Характеристика,
| РезультатКомплект.КоличествоКомплектов КАК КоличествоКомплектов,
| РезультатКомплект.Сумма
|ПОМЕСТИТЬ РезультатКомплект
|ИЗ
| &ТаблицаПриемник КАК РезультатКомплект
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СебестоимостьСоСборкой.Магазин,
| СебестоимостьСоСборкой.Номенклатура,
| СебестоимостьСоСборкой.Характеристика,
| СУММА(СебестоимостьСоСборкой.КоличествоПеремещение) КАК КоличествоПеремещение,
| СУММА(СебестоимостьСоСборкой.Количество) КАК Количество,
| СУММА(СебестоимостьСоСборкой.СуммаОборот) КАК СуммаОборот
| //СУММА(СебестоимостьСоСборкой.СуммаОборот) / СУММА(СебестоимостьСоСборкой.Количество) КАК Стоимость
| ПОМЕСТИТЬ вт
|ИЗ
| (ВЫБРАТЬ
| СебестоимостьПоступлений.Магазин КАК Магазин,
| СебестоимостьПоступлений.Номенклатура КАК Номенклатура,
| СебестоимостьПоступлений.Характеристика КАК Характеристика,
| СебестоимостьПоступлений.КоличествоПеремещение КАК КоличествоПеремещение,
| СебестоимостьПоступлений.Количество КАК Количество,
| СебестоимостьПоступлений.СуммаОборот КАК СуммаОборот
| ИЗ
| СебестоимостьПоступлений КАК СебестоимостьПоступлений
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| РезультатКомплект.Магазин,
| РезультатКомплект.Номенклатура,
| РезультатКомплект.Характеристика,
| 0,
| МАКСИМУМ(РезультатКомплект.КоличествоКомплектов),
| СУММА(РезультатКомплект.Сумма)
| ИЗ
| РезультатКомплект КАК РезультатКомплект
|
| СГРУППИРОВАТЬ ПО
| РезультатКомплект.Номенклатура,
| РезультатКомплект.Характеристика,
| РезультатКомплект.Магазин
|) КАК СебестоимостьСоСборкой
|
|СГРУППИРОВАТЬ ПО
| СебестоимостьСоСборкой.Магазин,
| СебестоимостьСоСборкой.Характеристика,
| СебестоимостьСоСборкой.Номенклатура
|;
|ВЫБРАТЬ
| Магазин, Номенклатура, Характеристика,КоличествоПеремещение,Количество,СуммаОборот,
| ВЫБОР КОГДА Количество<>0 ТОГДА СуммаОборот/Количество ИНАЧЕ СуммаОборот КАК Стоимость
| ИЗ вт»;

█ 09.03.2017 13:32

Цитата:

Shift ➤ | //СУММА(СебестоимостьСоСборкой.СуммаОборот) / СУММА(СебестоимостьСоСборкой.Количество) КАК Стоимость

я пробовал вместо деления сделать операцию умножения, в итоге в документ загружаются позиции номенклатуры с нулевой себестоимостью.

Миниатюры

Нажмите на изображение для увеличения
Название: Error_RT_21.png
Просмотров: 314
Размер:	78.8 Кб
ID:	8248  

█ 09.03.2017 13:36

Цитата:

Shift ➤ |ВЫБРАТЬ
| Магазин, Номенклатура, Характеристика,КоличествоПеремещение,Количество,СуммаОборот,
| ВЫБОР КОГДА Количество<>0 ТОГДА СуммаОборот/Количество ИНАЧЕ СуммаОборот КАК Стоимость
| ИЗ вт»;

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

Миниатюры

Нажмите на изображение для увеличения
Название: Error_RT_21.png
Просмотров: 315
Размер:	16.1 Кб
ID:	8249  

█ 09.03.2017 13:38

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

Цитата:

Tigra_N ➤ последний расчет себестоимости проводился вручную и с изменением даты и времени на сервере. Изменили дату и время на последний день прошлого месяца и провели документ расчета себестоимости

█ 09.03.2017 14:49

Цитата:

Tigra_N ➤ Опытным путем, т.е. выпытыванием пользователей выяснил, что последний расчет себестоимости проводился вручную и с изменением даты и времени на сервере. Изменили дату и время на последний день прошлого месяца и провели документ расчета себестоимости. После этого и возникла проблема.
Вот текст запроса…

Поменять запрос на запрос с проверкой деления на 0

Код:

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

█ 09.03.2017 14:51

И ещё — в отладчике имеет смысл посмотреть на содержимое таблицы ТаблицаПриемник

█ 09.03.2017 16:12

По поводу ошибки, перед «КАК Стоимость» забыл «КОНЕЦ» поставить, должно быть: «КОНЕЦ КАК Стоимость».

Часовой пояс GMT +3, время: 21:10.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.

Возможно, вам также будет интересно:

  • 1с ошибка sdbl поле id имеет тип ref self
  • 1с ошибка sdbl ожидается cast идентификатор или константа
  • 1с ошибка http удаленный узел не прошел проверку
  • 1с ошибка com соединения различаются версии
  • 1с ошибка 7eh неверное значение в поле длины

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии