|
Ошибка SQL деление на ноль. ₽ |
☑ | ||
|---|---|---|---|---|
|
0
Patrio_
O_Muerte 29.07.09
✎
14:29
|
Ситуация: у одного из пользователей валится отчет с ошибкой:
{Форма.Отчет(53)}: Ошибка при вызове метода контекста (Вывести): Ошибка выполнения запроса "Ошибка при выполнении операции над данными: Microsoft OLE DB Provider for SQL Server: Обнаружена ошибка: деление на ноль. HRESULT=80040E14, SQLSrvr: Error state=1, Severity=10, native=8134, line=1 " ПостроительОтчетаОтчет.Вывести(ЭлементыФормы.ПолеТабличногоДокумента); по причине: Ошибка выполнения запроса "Ошибка при выполнении операции над данными: Microsoft OLE DB Provider for SQL Server: Обнаружена ошибка: деление на ноль. HRESULT=80040E14, SQLSrvr: Error state=1, Severity=10, native=8134, line=1 " по причине: Ошибка при выполнении операции над данными: Microsoft OLE DB Provider for SQL Server: Обнаружена ошибка: деление на ноль. HRESULT=80040E14, SQLSrvr: Error state=1, Severity=10, native=8134, line=1 Когда я формирую этот отчет под своим логином с теми же настройками, что и у пользователя отчет формируется нормально. И когда я на компьютере сотрудника под собой захожу тоже все нормально формируется. Ошибка возникает у этого пользователя и у пользователя, созданного копированием от данного не важно на каком компьютере. Как определить причину ошибки? |
|||
|
1
Semargl
29.07.09
✎
14:31
|
Запрос какой
|
|||
|
2
Господин ПЖ
29.07.09
✎
14:31
|
права разные
|
|||
|
3
Господин ПЖ
29.07.09
✎
14:32
|
+ кривой отчет
|
|||
|
4
shuhard
29.07.09
✎
14:33
|
(0) Разрешенные впендюрь
|
|||
|
5
Patrio_
O_Muerte 29.07.09
✎
14:39
|
ВЫБРАТЬ
АссортиментнаяМатрицаОсновная.НоменклатураОсновная КАК Номенклатура, ЗакупочныеЦены.Цена КАК ЦенаЗакупочная, ПродажныеЦены.Цена КАК ЦенаПродажная, ВЫРАЗИТЬ((ВЫРАЗИТЬ(ПродажныеЦены.Цена КАК ЧИСЛО(20, 2))) / (ВЫРАЗИТЬ(ЗакупочныеЦены.Цена КАК ЧИСЛО(20, 2))) * 100 - 100 КАК ЧИСЛО(10, 2)) КАК ПроцентНадбавки, УчетПродаж.СуммаОборот КАК Сумма, УчетПродаж.КоличествоОборот КАК Количество, ЕСТЬNULL(АссортиментнаяМатрицаДляСравнения.Значение, "Пассивный") КАК ЗначениеИзПодчиненнойМатрицы ИЗ (ВЫБРАТЬ АссортиментныеМатрицы.Объект КАК НоменклатураОсновная, АссортиментныеМатрицы.АссортиментнаяМатрица КАК МатрицаОсновная, АссортиментныеМатрицы.Значение КАК Значение ИЗ РегистрСведений.АссортиментныеМатрицы КАК АссортиментныеМатрицы {ГДЕ АссортиментныеМатрицы.Объект.* КАК Номенклатура, АссортиментныеМатрицы.АссортиментнаяМатрица.* КАК АссортиментнаяМатрицаОсновная, АссортиментныеМатрицы.Значение.* КАК ПризнакНоменклатурыВОсновнойМатрице}) КАК АссортиментнаяМатрицаОсновная ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ПериодыИЦены.Цена КАК Цена, МаксимальныеПериоды.Номенклатура КАК Номенклатура, МаксимальныеПериоды.СтруктурнаяЕдиница КАК СтруктурнаяЕдиница ИЗ (ВЫБРАТЬ ЦеныНоменклатурыЗакупочныеСрезПоследних.Номенклатура КАК Номенклатура, МАКСИМУМ(ЦеныНоменклатурыЗакупочныеСрезПоследних.Период) КАК Период, ЦеныНоменклатурыЗакупочныеСрезПоследних.СтруктурнаяЕдиница КАК СтруктурнаяЕдиница ИЗ РегистрСведений.ЦеныНоменклатурыЗакупочные.СрезПоследних({(&КонецПериода)}, {(Номенклатура), (СтруктурнаяЕдиница.АссортиментнаяМатрица) КАК АссортиментнаяМатрицаОсновная}) КАК ЦеныНоменклатурыЗакупочныеСрезПоследних СГРУППИРОВАТЬ ПО ЦеныНоменклатурыЗакупочныеСрезПоследних.Номенклатура, ЦеныНоменклатурыЗакупочныеСрезПоследних.СтруктурнаяЕдиница) КАК МаксимальныеПериоды ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ЦеныНоменклатурыЗакупочныеСрезПоследних.Номенклатура КАК Номенклатура, МАКСИМУМ(ЦеныНоменклатурыЗакупочныеСрезПоследних.Период) КАК Период, ЦеныНоменклатурыЗакупочныеСрезПоследних.Цена КАК Цена, ЦеныНоменклатурыЗакупочныеСрезПоследних.СтруктурнаяЕдиница КАК СтруктурнаяЕдиница ИЗ РегистрСведений.ЦеныНоменклатурыЗакупочные.СрезПоследних({(&КонецПериода)}, {(Номенклатура), (СтруктурнаяЕдиница.АссортиментнаяМатрица) КАК АссортиментнаяМатрицаОсновная}) КАК ЦеныНоменклатурыЗакупочныеСрезПоследних СГРУППИРОВАТЬ ПО ЦеныНоменклатурыЗакупочныеСрезПоследних.Номенклатура, ЦеныНоменклатурыЗакупочныеСрезПоследних.Цена, ЦеныНоменклатурыЗакупочныеСрезПоследних.СтруктурнаяЕдиница) КАК ПериодыИЦены ПО (ПериодыИЦены.Номенклатура = МаксимальныеПериоды.Номенклатура) И (ПериодыИЦены.Период = МаксимальныеПериоды.Период) И МаксимальныеПериоды.СтруктурнаяЕдиница = ПериодыИЦены.СтруктурнаяЕдиница) КАК ЗакупочныеЦены ПО АссортиментнаяМатрицаОсновная.НоменклатураОсновная = ЗакупочныеЦены.Номенклатура И АссортиментнаяМатрицаОсновная.МатрицаОсновная = ЗакупочныеЦены.СтруктурнаяЕдиница.АссортиментнаяМатрица ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ АссортиментныеМатрицы.Объект КАК НоменклатураДляСравнения, АссортиментныеМатрицы.АссортиментнаяМатрица КАК МатрицаДляСравнения, АссортиментныеМатрицы.Значение КАК Значение ИЗ РегистрСведений.АссортиментныеМатрицы КАК АссортиментныеМатрицы {ГДЕ АссортиментныеМатрицы.Объект.* КАК Номенклатура, АссортиментныеМатрицы.АссортиментнаяМатрица.* КАК АссортиментнаяМатрицаДляСравнения}) КАК АссортиментнаяМатрицаДляСравнения ПО АссортиментнаяМатрицаОсновная.НоменклатураОсновная = АссортиментнаяМатрицаДляСравнения.НоменклатураДляСравнения ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ МаксимальныйПериодПродажныхЦен.Номенклатура КАК Номенклатура, ПериодыИЦеныПродажныхЦен.Цена КАК Цена, МаксимальныйПериодПродажныхЦен.КатегорияЦен КАК КатегорияЦен ИЗ (ВЫБРАТЬ МАКСИМУМ(ЦеныНоменклатурыСрезПоследних.Период) КАК Период, ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура, ЦеныНоменклатурыСрезПоследних.КатегорияЦен КАК КатегорияЦен ИЗ РегистрСведений.ЦеныНоменклатуры.СрезПоследних({(&КонецПериода)}, {(Номенклатура), (СтруктурнаяЕдиница.АссортиментнаяМатрица) КАК АссортиментнаяМатрицаОсновная, (КатегорияЦен)}) КАК ЦеныНоменклатурыСрезПоследних СГРУППИРОВАТЬ ПО ЦеныНоменклатурыСрезПоследних.Номенклатура, ЦеныНоменклатурыСрезПоследних.КатегорияЦен) КАК МаксимальныйПериодПродажныхЦен ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ ЦеныНоменклатурыСрезПоследних.Номенклатура КАК Номенклатура, ЦеныНоменклатурыСрезПоследних.Период КАК Период, ЦеныНоменклатурыСрезПоследних.Цена КАК Цена ИЗ РегистрСведений.ЦеныНоменклатуры.СрезПоследних({(&КонецПериода)}, {(Номенклатура), (СтруктурнаяЕдиница.АссортиментнаяМатрица) КАК АссортиментнаяМатрицаОсновная, (КатегорияЦен)}) КАК ЦеныНоменклатурыСрезПоследних) КАК ПериодыИЦеныПродажныхЦен ПО МаксимальныйПериодПродажныхЦен.Период = ПериодыИЦеныПродажныхЦен.Период И МаксимальныйПериодПродажныхЦен.Номенклатура = ПериодыИЦеныПродажныхЦен.Номенклатура) КАК ПродажныеЦены ПО АссортиментнаяМатрицаОсновная.НоменклатураОсновная = ПродажныеЦены.Номенклатура ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ УчетПродажОбороты.Номенклатура КАК Номенклатура, УчетПродажОбороты.Склад.Владелец.АссортиментнаяМатрица КАК СкладВладелецАссортиментнаяМатрица, УчетПродажОбороты.СуммаОборот КАК СуммаОборот, УчетПродажОбороты.КоличествоОборот КАК КоличествоОборот ИЗ РегистрНакопления.УчетПродаж.Обороты({(&НачалоПериода)}, {(&КонецПериода)}, , {(Номенклатура), (Склад.Владелец.АссортиментнаяМатрица) КАК АссортиментнаяМатрицаДляПродаж}) КАК УчетПродажОбороты) КАК УчетПродаж ПО АссортиментнаяМатрицаОсновная.НоменклатураОсновная = УчетПродаж.Номенклатура И АссортиментнаяМатрицаОсновная.МатрицаОсновная = УчетПродаж.СкладВладелецАссортиментнаяМатрица УПОРЯДОЧИТЬ ПО Номенклатура АВТОУПОРЯДОЧИВАНИЕ |
|||
|
6
Patrio_
O_Muerte 29.07.09
✎
14:41
|
(2)Права разные.
|
|||
|
7
borik
29.07.09
✎
14:52
|
(0) Делитель на НОЛЬ проверь.
|
|||
|
8
Господин ПЖ
29.07.09
✎
14:54
|
за левые соединения с "математикой" в полях без ЕСТЬNULL() и прочих проверок (в том числе на 0 в делителе) надо бить по eggs
|
|||
|
9
Patrio_
O_Muerte 29.07.09
✎
14:57
|
переделал на ЕстьNull() - те же самые eggs.
|
|||
|
10
IronDemon
29.07.09
✎
15:02
|
ВЫБОР
КОГДА ЕстьNULL(ЗакупочныеЦены.Цена,0)=0 ТОГДА 0 ИНАЧЕ ВЫРАЗИТЬ((ВЫРАЗИТЬ(ПродажныеЦены.Цена КАК ЧИСЛО(20, 2))) / (ВЫРАЗИТЬ(ЗакупочныеЦены.Цена КАК ЧИСЛО(20, 2))) * 100 - 100 КАК ЧИСЛО(10, 2)) КОНЕЦ |
|||
|
11
Semargl
29.07.09
✎
15:05
|
ВЫБОР
КОГДА ЕстьNULL(ЗакупочныеЦены.Цена,0)=0 ТОГДА 0 -------------------------------------------------------- Тогда 1 |
|||
|
12
Semargl
29.07.09
✎
15:05
|
чтоб не ругалось
|
|||
|
13
Semargl
29.07.09
✎
15:15
|
пардон - Тогда 0
Не тот код смотрел(( |
|||
|
14
Svetlachok
29.07.09
✎
15:31
|
если под твоим пользователем формируется нормально, а у пользователя нет - посмотри настройки пользователя, а-ля основная фирма и т.п.
|
|||
|
15
Patrio_
O_Muerte 30.07.09
✎
14:12
|
Я добавил в запросе проверку на ноль, ошибки нет, но интересно почему под моим пользователем отчет формируется...
|
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |