Получить себестоимость товара

1. _7445_ 08.04.19 12:09 Сейчас в теме
Здравствуйте. Я плохо знаю русский. Извините за этого. Я еще новичок в 1С программирование. В УТ 10.3. Справочник - Номенклатура - Форма Элемента. Надо создать кнопку "Себестоимость" чтобы если пользователь нажал эту кнопку тогда отображала себестоимость текущего товара. Написал запрос, работает но не отображает результат.
Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ
	               |	ПартииТоваровНаСкладахОстатки.Номенклатура,
	               |	ВЫБОР
	               |		КОГДА ЕСТЬNULL(ПартииТоваровНаСкладахОстатки.КоличествоОстаток, 0) = 0
	               |			ТОГДА 0
	               |		ИНАЧЕ ВЫРАЗИТЬ(ПартииТоваровНаСкладахОстатки.СтоимостьОстаток / ПартииТоваровНаСкладахОстатки.КоличествоОстаток КАК ЧИСЛО(15, 2))
	               |	КОНЕЦ КАК СебестоимостьТовара
	               |ИЗ
	               |	РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&Дата, Номенклатура = &Номенклатура) КАК ПартииТоваровНаСкладахОстатки";
	Запрос.УстановитьПараметр("Дата", КонецДня(ТекущаяДата()));
	Запрос.УстановитьПараметр("Номенклатура", Наименование);
	Результат = Запрос.Выполнить();
	Если НЕ Результат.Пустой() Тогда
Выборка = Результат.Выбрать();
Выборка.Следующий();
	Себестоимость = Выборка.СебестоимостьТовара; 
	КонецЕсли;
Показать

Себестоимость - это реквизить с типом число (15,2). В консул запросов проверил запрос, результат есть но
Результат.Пустой()
всегда Истина. Как исправиться с этим?
Спасибо всем за ранее
По теме из базы знаний
Найденные решения
8. _7445_ 15.04.19 09:39 Сейчас в теме
(1) Здесь надо выбрать не СтоимостьОстаток а СтоимостьПриход. Вот правильный код -
Функция ПолучитьСебестоимостьТовара(Номенклатура) Экспорт 
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ВЫБОР
		|		КОГДА ЕСТЬNULL(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход, 0) = 0
		|			ТОГДА 0
		|		ИНАЧЕ ВЫРАЗИТЬ(ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьПриход / ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход КАК ЧИСЛО(15, 2))
		|	КОНЕЦ КАК Стоимость
		|ИЗ
		|	РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(, &КонецПериода, Авто, , Номенклатура = &Номенклатура) КАК ПартииТоваровНаСкладахОстаткиИОбороты";
	
	Запрос.УстановитьПараметр("КонецПериода", ТекущаяДата());
	Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
	
	РезультатЗапроса = Запрос.Выполнить();
	Если НЕ РезультатЗапроса.Пустой() Тогда
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	ВыборкаДетальныеЗаписи.Следующий();
	Возврат ВыборкаДетальныеЗаписи.Стоимость;
	КонецЕсли;

КонецФункции // ПолучитьСебестоимостьТовара()
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
8. _7445_ 15.04.19 09:39 Сейчас в теме
(1) Здесь надо выбрать не СтоимостьОстаток а СтоимостьПриход. Вот правильный код -
Функция ПолучитьСебестоимостьТовара(Номенклатура) Экспорт 
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ВЫБОР
		|		КОГДА ЕСТЬNULL(ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход, 0) = 0
		|			ТОГДА 0
		|		ИНАЧЕ ВЫРАЗИТЬ(ПартииТоваровНаСкладахОстаткиИОбороты.СтоимостьПриход / ПартииТоваровНаСкладахОстаткиИОбороты.КоличествоПриход КАК ЧИСЛО(15, 2))
		|	КОНЕЦ КАК Стоимость
		|ИЗ
		|	РегистрНакопления.ПартииТоваровНаСкладах.ОстаткиИОбороты(, &КонецПериода, Авто, , Номенклатура = &Номенклатура) КАК ПартииТоваровНаСкладахОстаткиИОбороты";
	
	Запрос.УстановитьПараметр("КонецПериода", ТекущаяДата());
	Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
	
	РезультатЗапроса = Запрос.Выполнить();
	Если НЕ РезультатЗапроса.Пустой() Тогда
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	ВыборкаДетальныеЗаписи.Следующий();
	Возврат ВыборкаДетальныеЗаписи.Стоимость;
	КонецЕсли;

КонецФункции // ПолучитьСебестоимостьТовара()
Показать
2. user-z99999 70 08.04.19 12:14 Сейчас в теме
А проверь регистр РегистрНакопления.ПартииТоваровНаСкладах, там данные есть?
ВЫБРАТЬ ПЕРВЫЕ 10
                   |    ПартииТоваровНаСкладахОстатки.Номенклатура,
                   |    ВЫБОР
                   |        КОГДА ЕСТЬNULL(ПартииТоваровНаСкладахОстатки.КоличествоОстаток, 0) = 0
                   |            ТОГДА 0
                   |        ИНАЧЕ ВЫРАЗИТЬ(ПартииТоваровНаСкладахОстатки.СтоимостьОстаток / ПартииТоваровНаСкладахОстатки.КоличествоОстаток КАК ЧИСЛО(15, 2))
                   |    КОНЕЦ КАК СебестоимостьТовара
                   |ИЗ
                   |    РегистрНакопления.ПартииТоваровНаСкладах;
Показать
3. _7445_ 08.04.19 12:37 Сейчас в теме
4. user-z99999 70 08.04.19 12:39 Сейчас в теме
(3)
и по номенклатуре есть остаток в регистре?
5. _7445_ 08.04.19 12:47 Сейчас в теме
6. meriferi 09.04.19 14:12 Сейчас в теме
Лучше по хозрасчетному делать
7. 1serger 8 11.04.19 13:43 Сейчас в теме
если в erp,посмотри какие регистры берет отчет Себестоимость товаров, сдаётся мне что из одноименного регистра... да и вот такое: Выразить(NULL как число... должно по идее вернуть 0. Попробуй каждое поле в запросе и посмотри...
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот