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