База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как исправить ошибку «Поле не найдено ‘СебестоимостьТоваров.СтоимостьПриход'» в
- В этой теме 1 ответ, 2 участника, последнее обновление 4 минуты назад сделано
Odin — Одинэсник.
-
АвторЗаписи
-
-
29 сентября 2026 в 15:39 #38750
но тогда ошибка с ресурсами…
Ошибка при вызове метода контекста (ВыполнитьПакет)
{ОД Документ.ПриобретениеТоваровУслуг.МодульМенеджера(172)}:МассивРезультатов = Запрос.ВыполнитьПакет();
{ОД Документ.ПриобретениеТоваровУслуг.МодульМенеджера(5)}:УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, «Накладная», НСтр(«ru = ‘Накладная'»), СформироватьПечатнуюФормуНакладнаяКонтроль(МассивОбъектов, ОбъектыПечати));
{ОбщийМодуль.УправлениеПечатью.Модуль(4416)}:МенеджерПечати.Печать(ОбъектыСоответствующиеПечатнойФорме, ПараметрыПечати, ВременнаяКоллекцияДляОднойПечатнойФормы,
{ОбщаяФорма.ПечатьДокументов.Форма(792)}:ПечатныеФормы = УправлениеПечатью.СформироватьПечатныеФормы(Параметры.ИмяМенеджераПечати, ИменаМакетов,
{ОбщаяФорма.ПечатьДокументов.Форма(61)}:КоллекцияПечатныхФорм = СформироватьПечатныеФормы(Параметры.ИменаМакетов, Отказ);
{ОбщийМодуль.УправлениеПечатьюСлужебныйКлиент.Модуль(388)}:ОткрытьФорму(«ОбщаяФорма.ПечатьДокументов», ПараметрыОткрытия, ВладелецФормы, Строка(Новый УникальныйИдентификатор));
{ОбщийМодуль.УправлениеПечатьюГлобальный.Модуль(13)}:УправлениеПечатьюСлужебныйКлиент.ПродолжитьВыполнениеКомандыПечати();[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
{(218, 44)}: Поле не найдено «СебестоимостьТоваров.СтоимостьПриход»
СУММА(СебестоимостьТоваров.<<?>>СтоимостьПриход) КАК Стоимость, -
29 сентября 2026 в 15:39 #38751
Ошибка закономерна: в основной таблице регистра накопления ресурсов
СтоимостьПриходиСтоимостьБезНДСПриходнет.Такие имена обычно появляются у виртуальных таблиц, например:
1С (Код)12|Остатки.СтоимостьОстаток|Обороты.СтоимостьОборотВ основной таблице регистра хранятся реальные поля регистра с их исходными именами. Если ресурс регистра называется
Стоимость, обращаться нужно так:1С (Код)1|СебестоимостьТоваров.СтоимостьА направление движения определяется полем
ВидДвижения.Запрос для регистра накопления с видом регистра
Остаткидолжен выглядеть так:1С (Код)1234567891011121314151617|ВЫБРАТЬ| СебестоимостьТоваров.Регистратор КАК Регистратор,| СебестоимостьТоваров.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,| СебестоимостьТоваров.АналитикаУчетаНоменклатуры.Характеристика КАК Характеристика,| СебестоимостьТоваров.АналитикаУчетаНоменклатуры.Серия КАК Серия,| СУММА(СебестоимостьТоваров.Стоимость) КАК Стоимость,| СУММА(СебестоимостьТоваров.СтоимостьБезНДС) КАК СтоимостьБезНДС|ИЗ| РегистрНакопления.СебестоимостьТоваров КАК СебестоимостьТоваров|ГДЕ| СебестоимостьТоваров.Регистратор В (&МассивДокументов)| И СебестоимостьТоваров.ВидДвижения = &ВидДвиженияПриход|СГРУППИРОВАТЬ ПО| СебестоимостьТоваров.Регистратор,| СебестоимостьТоваров.АналитикаУчетаНоменклатуры.Номенклатура,| СебестоимостьТоваров.АналитикаУчетаНоменклатуры.Характеристика,| СебестоимостьТоваров.АналитикаУчетаНоменклатуры.СерияПараметры:
1С (Код)12345Запрос.УстановитьПараметр("МассивДокументов", МассивДокументов);Запрос.УстановитьПараметр("ВидДвиженияПриход",ВидДвиженияНакопления.Приход);Если нужно получить расходные движения, используйте:
1С (Код)1234Запрос.УстановитьПараметр("ВидДвиженияРасход",ВидДвиженияНакопления.Расход);и условие:
1С (Код)1| И СебестоимостьТоваров.ВидДвижения = &ВидДвиженияРасходЛибо можно вообще не отбирать вид движения, если нужны и приход, и расход. Тогда запрос будет таким:
1С (Код)12345678910111213141516|ВЫБРАТЬ| СебестоимостьТоваров.Регистратор КАК Регистратор,| СебестоимостьТоваров.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,| СебестоимостьТоваров.АналитикаУчетаНоменклатуры.Характеристика КАК Характеристика,| СебестоимостьТоваров.АналитикаУчетаНоменклатуры.Серия КАК Серия,| СУММА(СебестоимостьТоваров.Стоимость) КАК Стоимость,| СУММА(СебестоимостьТоваров.СтоимостьБезНДС) КАК СтоимостьБезНДС|ИЗ| РегистрНакопления.СебестоимостьТоваров КАК СебестоимостьТоваров|ГДЕ| СебестоимостьТоваров.Регистратор В (&МассивДокументов)|СГРУППИРОВАТЬ ПО| СебестоимостьТоваров.Регистратор,| СебестоимостьТоваров.АналитикаУчетаНоменклатуры.Номенклатура,| СебестоимостьТоваров.АналитикаУчетаНоменклатуры.Характеристика,| СебестоимостьТоваров.АналитикаУчетаНоменклатуры.Серия### Если нужны отдельные суммы прихода и расхода
Тогда можно использовать условную агрегацию:
1С (Код)123456789101112131415161718192021222324252627282930313233343536373839404142|ВЫБРАТЬ| СебестоимостьТоваров.Регистратор КАК Регистратор,| СебестоимостьТоваров.АналитикаУчетаНоменклатуры.Номенклатура КАК Номенклатура,| СебестоимостьТоваров.АналитикаУчетаНоменклатуры.Характеристика КАК Характеристика,| СебестоимостьТоваров.АналитикаУчетаНоменклатуры.Серия КАК Серия,| СУММА(| ВЫБОР| КОГДА СебестоимостьТоваров.ВидДвижения = &ВидДвиженияПриход| ТОГДА СебестоимостьТоваров.Стоимость| ИНАЧЕ 0| КОНЕЦ| ) КАК СтоимостьПриход,| СУММА(| ВЫБОР| КОГДА СебестоимостьТоваров.ВидДвижения = &ВидДвиженияРасход| ТОГДА СебестоимостьТоваров.Стоимость| ИНАЧЕ 0| КОНЕЦ| ) КАК СтоимостьРасход,| СУММА(| ВЫБОР| КОГДА СебестоимостьТоваров.ВидДвижения = &ВидДвиженияПриход| ТОГДА СебестоимостьТоваров.СтоимостьБезНДС| ИНАЧЕ 0| КОНЕЦ| ) КАК СтоимостьБезНДСПриход,| СУММА(| ВЫБОР| КОГДА СебестоимостьТоваров.ВидДвижения = &ВидДвиженияРасход| ТОГДА СебестоимостьТоваров.СтоимостьБезНДС| ИНАЧЕ 0| КОНЕЦ| ) КАК СтоимостьБезНДСРасход|ИЗ| РегистрНакопления.СебестоимостьТоваров КАК СебестоимостьТоваров|ГДЕ| СебестоимостьТоваров.Регистратор В (&МассивДокументов)|СГРУППИРОВАТЬ ПО| СебестоимостьТоваров.Регистратор,| СебестоимостьТоваров.АналитикаУчетаНоменклатуры.Номенклатура,| СебестоимостьТоваров.АналитикаУчетаНоменклатуры.Характеристика,| СебестоимостьТоваров.АналитикаУчетаНоменклатуры.СерияПараметры:
1С (Код)123456789Запрос.УстановитьПараметр("МассивДокументов", МассивДокументов);Запрос.УстановитьПараметр("ВидДвиженияПриход",ВидДвиженияНакопления.Приход);Запрос.УстановитьПараметр("ВидДвиженияРасход",ВидДвиженияНакопления.Расход);Но если вам нужны только приходные движения, лучше не использовать условную агрегацию, а отфильтровать их в
ГДЕ. Это проще и обычно эффективнее:1С (Код)123|ГДЕ| СебестоимостьТоваров.Регистратор В (&МассивДокументов)| И СебестоимостьТоваров.ВидДвижения = &ВидДвиженияПриход### На что обратить внимание
Проверьте точные имена ресурсов регистра
СебестоимостьТоваровв конфигураторе. Например, они могут называться неСтоимостьиСтоимостьБезНДС, а:1С (Код)123456СуммаСуммаБезНДССтоимостьСтоимостьБезНДССебестоимостьСебестоимостьБезНДСВ запросе необходимо использовать именно имена ресурсов регистра, а не имена полей виртуальной таблицы.
Для основной таблицы регистра:
1С (Код)1|РегистрНакопления.СебестоимостьТоваровиспользуются реальные имена:
1С (Код)12|Стоимость|СтоимостьБезНДСДля виртуальных таблиц имена формируются иначе:
1С (Код)12|СтоимостьОстаток|СтоимостьОборотОшибка указывает именно на это:
1С (Код)1Поле не найдено "СебестоимостьТоваров.СтоимостьПриход"Следовательно, в регистре нет ресурса с именем
СтоимостьПриход. Скорее всего, правильное имя ресурса:1С (Код)1|СебестоимостьТоваров.СтоимостьЕсли ошибка возникает внутри
ВыполнитьПакет(), это не меняет сути проблемы. Платформа сообщает об ошибке в одном из запросов пакета, в данном случае на строке 218, где используется несуществующее поле. Проверить нужно также остальные запросы пакета, если там встречаются конструкцииСтоимостьПриходилиСтоимостьБезНДСПриход.
-
-
АвторЗаписи
- Для ответа в этой теме необходимо авторизоваться.