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

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

Просмотр 1 ветки ответов
  • Автор
    Сообщения
    • #36592
      Фото аватараOdineski
      Участник

        Имя верное

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      Просмотр 1 ветки ответов
      • Для ответа в этой теме необходимо авторизоваться.
      База знаний 1С