Имя: Пароль:
1C
1С v8
Переполнение поля
0 Вадяс
 
24.09.12
12:47
ВЫБРАТЬ
   ОстаткиТоваров.Номенклатура,
   ОстаткиТоваров.ХарактеристикаНоменклатуры,
   ОстаткиТоваров.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаХранения,
   ОстаткиТоваров.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КоэффициентЕдиницыХранения,
   ОстаткиТоваров.Качество,
   СУММА(ОстаткиТоваров.КоличествоОстаток) КАК Количество,
   ВЫБОР
       КОГДА (СУММА(ОстаткиПартий.КоличествоОстаток) = 0)
         ИЛИ (СУММА(ОстаткиПартий.КоличествоОстаток) ЕСТЬ NULL) ТОГДА
          Выразить (0 как число (16,2))
       ИНАЧЕ
          Выразить (
           СУММА(ОстаткиПартий.СтоимостьОстаток)*СУММА(ОстаткиТоваров.КоличествоОстаток)
           / СУММА(ОстаткиПартий.КоличествоОстаток)
           как число (16,2))
   КОНЕЦ                                  КАК Сумма
ИЗ
   РегистрНакопления.ТоварыНаСкладах.Остатки(&МоментДокумента, Склад = &Склад)
КАК ОстаткиТоваров

ЛЕВОЕ СОЕДИНЕНИЕ
   РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&МоментДокумента,
                                                     Склад = &ПартионныйСклад) КАК ОстаткиПартий
ПО
   ОстаткиТоваров.Номенклатура = ОстаткиПартий.Номенклатура
   И ОстаткиТоваров.ХарактеристикаНоменклатуры = ОстаткиПартий.ХарактеристикаНоменклатуры
   И ОстаткиТоваров.Качество                   = ОстаткиПартий.Качество

{ГДЕ ОстаткиТоваров.Номенклатура КАК Номенклатура,
    ОстаткиТоваров.Номенклатура.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа}

СГРУППИРОВАТЬ ПО
   ОстаткиТоваров.Номенклатура,
   ОстаткиТоваров.ХарактеристикаНоменклатуры,
   ОстаткиТоваров.Качество
1 Вадяс
 
24.09.12
12:48
Выдает ошибку SQL "Переполнение поля"

Выразить - это уже я добавил, начитавшись форума.
А так это кусок типовой УТ 10.3

Что делать???
2 Вадяс
 
24.09.12
13:01
Помогите пожалуйста. Не можем инвентаризацию заполнить - ошибка вылетает
3 Fragster
 
гуру
24.09.12
13:02
Сумма(Выразить...
4 Fragster
 
гуру
24.09.12
13:03
ну и не жадничай, делай 32 длину
5 НЕА123
 
24.09.12
13:21
(0)
СУММА(ОстаткиПартий.СтоимостьОстаток)
           / СУММА(ОстаткиПартий.КоличествоОстаток)*СУММА(ОстаткиТоваров.КоличествоОстаток)
не поможет?
6 Вадяс
 
24.09.12
13:23
(3,4) не помогло.
(5) сейчас попробую
7 Fragster
 
гуру
24.09.12
13:24
(6).1 как не помогло? во все места впилил?
8 Вадяс
 
24.09.12
13:29
(5) не помогло

ВЫБРАТЬ
   ОстаткиТоваров.Номенклатура,
   ОстаткиТоваров.ХарактеристикаНоменклатуры,
   ОстаткиТоваров.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаХранения,
   ОстаткиТоваров.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КоэффициентЕдиницыХранения,
   ОстаткиТоваров.Качество,
   СУММА(ОстаткиТоваров.КоличествоОстаток) КАК Количество,
   Выразить(ВЫБОР
       КОГДА (СУММА(ОстаткиПартий.КоличествоОстаток) = 0)
         ИЛИ (СУММА(ОстаткиПартий.КоличествоОстаток) ЕСТЬ NULL) ТОГДА
          Выразить (0 как число (32,2))
       ИНАЧЕ
          Выразить (
                   СУММА(Выразить(ОстаткиПартий.СтоимостьОстаток как число(32,2)))*СУММА(Выразить (ОстаткиТоваров.КоличествоОстаток как число(32,3)))
   / СУММА(Выразить(ОстаткиПартий.КоличествоОстаток как число(32,3)))

           
           как число (32,2))
   КОНЕЦ как число(32,2))                                 КАК Сумма
ИЗ
   РегистрНакопления.ТоварыНаСкладах.Остатки(&МоментДокумента, Склад = &Склад)
КАК ОстаткиТоваров

ЛЕВОЕ СОЕДИНЕНИЕ
   РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&МоментДокумента,
                                                     Склад = &ПартионныйСклад) КАК ОстаткиПартий
ПО
   ОстаткиТоваров.Номенклатура = ОстаткиПартий.Номенклатура
   И ОстаткиТоваров.ХарактеристикаНоменклатуры = ОстаткиПартий.ХарактеристикаНоменклатуры
   И ОстаткиТоваров.Качество                   = ОстаткиПартий.Качество

{ГДЕ ОстаткиТоваров.Номенклатура КАК Номенклатура,
    ОстаткиТоваров.Номенклатура.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа}

СГРУППИРОВАТЬ ПО
   ОстаткиТоваров.Номенклатура,
   ОстаткиТоваров.ХарактеристикаНоменклатуры,
   ОстаткиТоваров.Качество
9 НЕА123
 
24.09.12
13:31
(8)
в (5) имелось ввиду "разделяй, потом уж умножай".
10 Reset
 
24.09.12
13:32
У тебя в (8) не так, в (5) написано
11 Reset
 
24.09.12
13:33
попробуй для теста вывести просто суммы, без перемножения и посмотреть на значения
12 Вадяс
 
24.09.12
13:40
(3,4,5) не помогло.
ВЫБРАТЬ
   ОстаткиТоваров.Номенклатура,
   ОстаткиТоваров.ХарактеристикаНоменклатуры,
   ОстаткиТоваров.Номенклатура.ЕдиницаХраненияОстатков КАК ЕдиницаХранения,
   ОстаткиТоваров.Номенклатура.ЕдиницаХраненияОстатков.Коэффициент КАК КоэффициентЕдиницыХранения,
   ОстаткиТоваров.Качество,
   СУММА(ОстаткиТоваров.КоличествоОстаток) КАК Количество,
   Выразить(ВЫБОР
       КОГДА (СУММА(ОстаткиПартий.КоличествоОстаток) = 0)
         ИЛИ (СУММА(ОстаткиПартий.КоличествоОстаток) ЕСТЬ NULL) ТОГДА
          Выразить (0 как число (32,2))
       ИНАЧЕ
          Выразить (
           СУММА(Выразить(ОстаткиПартий.СтоимостьОстаток как число(32,2)))/ СУММА(Выразить(ОстаткиПартий.КоличествоОстаток как число(32,3)))*СУММА(Выразить (ОстаткиТоваров.КоличествоОстаток как число(32,3)))
           
           
           как число (32,2))
   КОНЕЦ как число(32,2))                                 КАК Сумма
ИЗ
   РегистрНакопления.ТоварыНаСкладах.Остатки(&МоментДокумента, Склад = &Склад)
КАК ОстаткиТоваров

ЛЕВОЕ СОЕДИНЕНИЕ
   РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&МоментДокумента,
                                                     Склад = &ПартионныйСклад) КАК ОстаткиПартий
ПО
   ОстаткиТоваров.Номенклатура = ОстаткиПартий.Номенклатура
   И ОстаткиТоваров.ХарактеристикаНоменклатуры = ОстаткиПартий.ХарактеристикаНоменклатуры
   И ОстаткиТоваров.Качество                   = ОстаткиПартий.Качество

{ГДЕ ОстаткиТоваров.Номенклатура КАК Номенклатура,
    ОстаткиТоваров.Номенклатура.НоменклатурнаяГруппа КАК НоменклатурнаяГруппа}

СГРУППИРОВАТЬ ПО
   ОстаткиТоваров.Номенклатура,
   ОстаткиТоваров.ХарактеристикаНоменклатуры,
   ОстаткиТоваров.Качество
13 Вадяс
 
24.09.12
13:41
Сейчас буду делать (11)
14 Fragster
 
гуру
24.09.12
13:46
(8) не вижу варианта, где везде Сумма(ХХХ) заменено на Сумма(Выразить(ХХХ как Число(32,2)))
15 Reset
 
24.09.12
13:46
я бы так написал расчет (без ВЫБОР):

ЕСТЬNULL(СУММА(ОстаткиПартий.СтоимостьОстаток),0)/СУММА(ОстаткиПартий.КоличествоОстаток)
*СУММА(ОстаткиТоваров.КоличествоОстаток) как Сумма,
16 Reset
 
24.09.12
13:48
хотя гоню, (15) даст ошибку при нулевом количестве партий
17 Вадяс
 
24.09.12
14:16
Сделал (11)
Оказалось что в одной из строк стоимость партии равна 970 000 000 000 000 097,02
Ну или что-то типа того.
Так что запрос не причем.

Не могу понять теперь как такое получилось.
В документах поступления все верно указано.
И нис того ни с сего отчет о розничных продажах начинает списывать партию по стоимости 9 999 999 999 999,99
Закон Брукера: Даже маленькая практика стоит большой теории.