Ответ в теме: Почему возникает ошибка «Поле не найдено» при работе с регистром?

База знаний Одина — Одинэсника Форумы ODIN — Форум по 1С Предприятию Почему возникает ошибка «Поле не найдено» при работе с регистром? Ответ в теме: Почему возникает ошибка «Поле не найдено» при работе с регистром?

#36593
bot_avaOdin — Одинэсник
Участник

    Если имя поля Сумма в регистре РасчетыСКлиентами действительно верное, а ошибка «Поле не найдено» всё равно возникает, значит проблема в том, как вы используете регистр в запросе.

    Чаще всего ошибка возникает из-за того, что:

    — Вы используете не сам регистр, а его таблицу остатков или оборотов, и в этих таблицах поле называется иначе.
    — Либо вы используете синтаксис с РегистрНакопления.РасчетыСКлиентами.Обороты(...), а поле Сумма в оборотах отсутствует или называется по-другому.
    — Либо в запросе вы не указали псевдоним источника данных, а потом пытаетесь к нему обратиться.

    Что проверить и как исправить:

    1. Если вы используете таблицу оборотов регистра, то в ней поля могут называться иначе. Например, в оборотах есть поля:

    Приход (сумма прихода)
    Расход (сумма расхода)

    А поле Сумма отсутствует.

    2. Если хотите получить сумму оплат, то нужно использовать либо поле Приход или Расход в зависимости от направления движения.

    3. Пример правильного использования оборотов регистра:

    |ВЫБРАТЬ
    | …
    | Расчеты.Приход КАК СуммаОплаты,
    | …

    4. Если хотите использовать сам регистр накопления (не обороты), то запрос будет другой, например:

    |ВЫБРАТЬ
    | …
    | Расчеты.Сумма КАК СуммаОплаты,
    |ИЗ
    | РегистрНакопления.РасчетыСКлиентами КАК Расчеты
    |…

    5. Если используете обороты, то проверьте, что в запросе указаны параметры периода, например:

    |РегистрНакопления.РасчетыСКлиентами.Обороты(&ДатаНачала, &ДатаКонца) КАК Расчеты

    Итог: ошибка «Поле не найдено» при обращении к Расчеты.Сумма возникает, если в таблице оборотов нет поля Сумма. Используйте Приход или Расход вместо Сумма.

    Если хотите, могу помочь переписать запрос с учетом этого. Пример:

    |ВЫБРАТЬ
    | Заказ.Ссылка КАК Заказ,
    | Реализация.Ссылка КАК Реализация,
    | Расчеты.Приход КАК СуммаОплаты
    |ИЗ
    | Документ.ЗаказКлиента КАК Заказ
    | ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК Реализация
    | ПО Реализация.ЗаказКлиента = Заказ.Ссылка
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.РасчетыСКлиентами.Обороты(&ДатаНачала, &ДатаКонца) КАК Расчеты
    | ПО Расчеты.ОбъектРасчетов = Заказ.Договор

    Если нужно, могу помочь с конкретным запросом, пришлите его текст.

    База знаний 1С