Форум OlegON > Программы и оборудование для автоматизации торговли > Системы автоматизации торговли > Бэк-офисы платформы 1С

Ошибка деления на 0 при расчете себестоимости : Бэк-офисы платформы 1С

29.03.2024 18:07


09.03.2017 16:22
Dim
 
вообще по уму надо с нулевым количеством разбираться, а не костыли прикручивать
09.03.2017 16:28
Shift
 
Вообще проверка на 0 при делении вроде как и не совсем костыль.
А про нулевые количества вы правы.
09.03.2017 17:22
KirillHome
 
Цитата:
Shift По поводу ошибки, перед "КАК Стоимость" забыл "КОНЕЦ" поставить, должно быть: "КОНЕЦ КАК Стоимость".
Был не прав, вспылил
11.03.2017 10:32
Tigra_N
 
Цитата:
Dim вообще по уму надо с нулевым количеством разбираться, а не костыли прикручивать
я бы с радостью, но нулевого количества и нет. все товары, с которыми возникают проблемы имеют ненулевой остаток ))))
11.03.2017 12:21
KirillHome
 
Если изменить запрос, как я писал - проблема с делением на 0 есть?
Полностью правильный запрос:

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

Что в таблице "ТаблицаПриемник"?
Не очень понятно (а точнее - совсем не понятно) - а что такое "СебестоимостьПоступлений"?
11.03.2017 12:48
Tigra_N
 
Цитата:
KirillHome Что в таблице "ТаблицаПриемник"?
Не очень понятно (а точнее - совсем не понятно) - а что такое "СебестоимостьПоступлений"?
не совсем понял вопрос. Что, где и как посмотреть. Подскажите, поьалуйста.
11.03.2017 19:11
KirillHome
 
Цитата:
Tigra_N не совсем понял вопрос. Что, где и как посмотреть. Подскажите, поьалуйста.
По поводу таблицы "ТаблицаПриемник" - понятно.
Ставим точку останова на "Запрос = Новый Запрос;"
Когда останавливается - смотрим через "правая кнопка мыши" - "Вычислить выражение" - (можно и рукой внести) ТаблицаПриемник.
Это, скорее всего, будет некоторая таблица значений.
Посмотреть - а что у неё внутри.

А вот что такое "СебестоимостьПоступлений" (обращаемся через "ИЗ СебестоимостьПоступлений КАК СебестоимостьПоступлений") - я даже не могу сообразить.
Хотя, возможно, эта таблица уже сидит в МенеджерВременныхТаблиц?
Ну тоже - обратится через отладчик, посмотреть - а что там?
16.03.2017 11:25
Tigra_N
 
Цитата:
KirillHome По поводу таблицы "ТаблицаПриемник" - понятно.
Ставим точку останова на "Запрос = Новый Запрос;"
Когда останавливается - смотрим через "правая кнопка мыши" - "Вычислить выражение" - (можно и рукой внести) ТаблицаПриемник.
Это, скорее всего, будет некоторая таблица значений.
Посмотреть - а что у неё внутри.
Не знаю на сколько правильно я все сделал, но скрин во вложении.
Миниатюры
Нажмите на изображение для увеличения
Название: Error_RT_21.png
Просмотров: 266
Размер:	36.1 Кб
ID:	8268  
16.03.2017 12:10
Dim
 
Цитата:
Tigra_N Не знаю на сколько правильно я все сделал, но скрин во вложении.
на таблице правой кнопкой - показать в новом окне
16.03.2017 18:23
Tigra_N
 
Цитата:
Dim на таблице правой кнопкой - показать в новом окне
вроде сделал, как ты написал, но почему-то таблица пустая
Миниатюры
Нажмите на изображение для увеличения
Название: Error_RT_21.png
Просмотров: 248
Размер:	51.7 Кб
ID:	8270  
Часовой пояс GMT +3, время: 18:07.

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