СКД в 1С

Ошибка «Поле не найдено» и «Не найдено поле замены» в СКД 1С

Коротко

Ошибки «Поле не найдено», «Не найдено поле замены», «Повторяющееся поле итога», «Неоднозначное выражение для расчета ресурса» и «Ошибка обработки представления» возникают при вызове КомпоновщикМакетаКомпоновкиДанных.Выполнить(), когда НастройкиКомпоновкиДанных или сама СхемаКомпоновкиДанных содержат обращения к несуществующим путям данных либо противоречивые правила агрегации в коллекции ПоляИтога.

Для исправления проверьте закладки «Выбранные поля», «Отбор», «Порядок», «Условное оформление», «Пользовательские поля» и «Ресурсы», согласуйте флаг АвтоЗаполнениеДоступныхПолей с конструкциями {ВЫБРАТЬ ...} и ролями РольПоляНабораДанныхКомпоновкиДанных, а перед программной компоновкой вызывайте КомпоновщикНастроек.Восстановить(СпособВосстановленияНастроекКомпоновкиДанных.Полное).

Карта ошибок компоновки макета СКД

Система компоновки данных в 1С:Предприятие 8.3 собирает итоговый запрос и правила расчёта только для тех полей, которые реально задействованы в текущем варианте отчёта. Эту сборку выполняет КомпоновщикМакетаКомпоновкиДанных. Если на этапе генерации макета обнаруживается ссылка на отсутствующий ПутьКДанным, разрыв в цепочке подстановки характеристик или коллизия формул итога, платформа выбрасывает исключение ещё до обращения к СУБД.

Текст ошибки платформы 1С Где возникает сбой Главная причина Быстрое решение
Поле не найдено "<ИмяПоля>" НастройкиКомпоновкиДанных, сохранённые ПользовательскиеНастройки, ВычисляемыеПоля, ПоляИтога Поле удалено или переименовано в запросе, но осталось в выборе, отборе, сортировке, условном оформлении или кеше настроек пользователя Удалить битую ссылку в варианте настроек или вызвать КомпоновщикНастроек.Восстановить()
Не найдено поле замены "<ИмяПоля>" Генератор запроса макета при работе с АвтоЗаполнениеДоступныхПолей, вложенными запросами и характеристиками В секции {ВЫБРАТЬ} или {ХАРАКТЕРИСТИКИ} не выведено ссылочное поле-владелец, либо в роли поля указано РодительскоеИзмерение / ПолеСчета, отсутствующее в выборке Добавить базовое поле в список выбора и в {ВЫБРАТЬ}, проверить РольПоляНабораДанныхКомпоновкиДанных и ключи структуры ВнешниеНаборыДанных
Повторяющееся поле итога "<ПутьКДанным>" Закладка «Ресурсы» (коллекция Схема.ПоляИтога) Для одного ПутьКДанным создано несколько строк ресурсов с пересекающимися областями расчёта в колонке «Рассчитывать по...» (Группировки) Развести группировки без пересечений либо удалить дублирующую запись из ПоляИтога
Неоднозначное выражение для расчета ресурса "<ПутьКДанным>" Компоновка группировок, кросс-таблиц или расшифровка детальных записей Ресурс имеет разные формулы для отдельных группировок, но не имеет однозначного правила для пересечения строк и колонок или для временной настройки расшифровки Задать единую формулу через ВЫБОР КОГДА Уровень() = ... или разделить показатели на разные ВычисляемыеПоля
Ошибка обработки представления "<Поле>" Свойство ВыражениеПредставления или ВыраженияУпорядочивания поля схемы Синтаксическая ошибка в формуле представления или обращение к реквизиту/полю, не включённому в набор данных Исправить синтаксис в колонке «Выражение представления» и вывести используемые поля в запрос

Ошибка «Поле не найдено»: где искать «призраки» удалённых полей

Самая частая ситуация при доработке отчёта: разработчик переименовал псевдоним колонки в запросе (например, СуммаПродажи на СуммаВыручки) или удалил ненужное измерение, нажал «Сформировать» и получил ошибку Поле не найдено "СуммаПродажи". В конструкторе схемы на вкладке «Настройки» такие поля часто помечаются иконкой с красным крестиком или вопросительным знаком, но могут скрываться на вложенных уровнях.

Проверьте по порядку все 7 мест, где сохраняются ссылки на ПолеКомпоновкиДанных:

  • Структура и индивидуальные настройки группировок — поле может быть полем самой группировки (ПоляГруппировки), а также лежать в локальных закладках «Выбранные поля», «Отбор» или «Порядок» конкретной строки дерева структуры отчёта (а не только на уровне отчёта в целом).
  • Условное оформление (Настройки.УсловноеОформление) — старое поле остаётся сразу в трёх местах элемента условного оформления: в списке ОформляемыеПоля, в левой или правой части Отбор (условие срабатывания) либо внутри параметра оформления «Текст», когда вместо значения задано другое поле компоновки.
  • Пользовательские поля (Настройки.ПользовательскиеПоля) — формулы в ВыражениеДетальныхЗаписей и ВыражениеИтоговыхЗаписей у объектов ПользовательскоеПолеВыражениеКомпоновкиДанных, а также отборы в ПользовательскоеПолеВыбораКомпоновкиДанных являются обычными строками и не переименовываются автоматически при правке запроса.
  • Вычисляемые поля и Ресурсы схемы — проверьте вкладки «Вычисляемые поля» (Схема.ВычисляемыеПоля), «Ресурсы» (Схема.ПоляИтога) и «Связи наборов данных» (ВыражениеИсточника, ВыражениеПриемника, УсловиеСвязи).
  • Обязательные поля набора данных (Роль.Обязательное) — если у поля на вкладке «Наборы данных» конструктора схемы в колонке «Роль» установлен флажок «Обязательное» (свойство только для чтения РольПоляНабораДанныхКомпоновкиДанных.Обязательное имеет значение Истина), компоновщик принудительно включает его в набор данных макета при использовании любого другого поля этого набора. Если само поле при этом удалили из основного списка ВЫБРАТЬ запроса, сборка макета упадёт с ошибкой.
  • Собственные макеты СКД (Схема.Макеты) — если на вкладке «Макеты» переопределён макет поля, группировки или заголовка, в параметрах ячеек и в свойстве ПараметрРасшифровки остаются жёсткие текстовые привязки к старому имени поля.
  • Кеш пользовательских настроек в базе (ПользовательскиеНастройки) — в Конфигураторе схема полностью исправлена, но у конкретного бухгалтера в режиме «1С:Предприятие» при открытии отчёта из ХранилищеСистемныхНастроек или регистра БСП НастройкиВариантовОтчетов подгружается старый сохранённый отбор по удалённому полю.
В ИИ Консоли отчётов 1С агент перед сборкой внешнего отчёта .erf автоматически сверяет пути к данным во всех группировках, ресурсах, отборах и условном оформлении с полями запроса, исключая ошибку «Поле не найдено» ещё до открытия отчёта в 1С.

Ошибка «Не найдено поле замены»: автозаполнение, роли и характеристики

Исключение Ошибка компоновки данных: Не найдено поле замены "<ИмяПоля>" возникает тогда, когда генератор запроса СКД пытается динамически подставить в итоговый текст запроса поле, представление, владельца или характеристику, но не находит для него базового выражения в текущем контексте выборки.

В платформе 1С:Предприятие 8.3 эта ошибка воспроизводится в четырёх основных сценариях:

  1. Вложенные запросы и виртуальные поля (Владелец, Родитель, Представление) при включённом АвтоЗаполнениеДоступныхПолей. Когда в отчёте выводится ссылочное поле (например, ДоговорКонтрагента или его дочерние реквизиты), СКД для построения иерархии, упорядочивания и получения представления автоматически формирует служебные поля замены (например, ДоговорКонтрагентаВладелец). Если запрос обёрнут во вложенный подзапрос или пакет с временной таблицей, а на вкладке «Компоновка данных» конструктора запроса в секции {ВЫБРАТЬ ...} указано дочернее выражение без выноса самого ссылочного поля во внешний запрос, компоновщик теряет источник подстановки.
  2. Конфликт ролей полей (РольПоляНабораДанныхКомпоновкиДанных). На вкладке «Наборы данных» у каждого поля настраивается объект Роль. Если для поля задан признак РеквизитИзмерения = Истина и указано РодительскоеИзмерение, либо для ресурса бухгалтерского остатка заполнено свойство ПолеСчета (имя поля счёта, для которого рассчитываются остатки), а само родительское измерение или поле счёта с ролью Счет = Истина отсутствует в запросе или отключено в {ВЫБРАТЬ}, генератор макета выдаёт «Не найдено поле замены». Если же служебное поле нужно только внутри запроса (например, для соединения), но не должно участвовать в автозаполнении полей СКД, на вкладке «Компоновка данных» конструктора запроса его исключают из списка {ВЫБРАТЬ} (или в конструкторе схемы в диалоге «Роль» включают флажок «Не учитывать как поле»), чтобы компоновщик не строил для него цепочку замены.
  3. Использование характеристик ({ХАРАКТЕРИСТИКИ ...}). Когда в запросе СКД описано получение дополнительных реквизитов и сведений через расширение языка запросов {ХАРАКТЕРИСТИКИ ТИП(Справочник.Номенклатура) ...}, в списке доступных полей основного запроса обязательно должно присутствовать само поле ссылки Номенклатура, по которому СКД выполняет левое соединение с источником значений характеристик. Если ссылка осталась только внутри вложенного запроса или переименована без обновления описания характеристик, возникает ошибка поля замены.
  4. Внешний набор данных (НаборДанныхОбъектСхемыКомпоновкиДанных). Если отчёт строится по ТаблицаЗначений, передаваемой через структуру ВнешниеНаборыДанных в метод ПроцессорКомпоновкиДанных.Инициализировать(), ошибка Не найдено поле замены "Ссылка" (или другого поля) появляется, когда ключ структуры не совпадает со свойством ИмяОбъекта в схеме, в переданной таблице отсутствует соответствующая колонка либо у поля в схеме не задан ТипЗначения.
// Корректное оформление вложенного запроса для автозаполнения СКД:
// ссылочное поле и его владелец явно проброшены на внешний уровень
ВЫБРАТЬ
    ДанныеПродаж.Номенклатура КАК Номенклатура,
    ДанныеПродаж.ДоговорКонтрагента КАК ДоговорКонтрагента,
    ДанныеПродаж.ДоговорКонтрагентаВладелец КАК ДоговорКонтрагентаВладелец,
    ДанныеПродаж.СуммаОборот КАК СуммаОборот
{ВЫБРАТЬ
    Номенклатура.*,
    ДоговорКонтрагента.*,
    ДоговорКонтрагентаВладелец,
    СуммаОборот}
ИЗ
    (ВЫБРАТЬ
        ПродажиОбороты.Номенклатура КАК Номенклатура,
        ПродажиОбороты.ДоговорКонтрагента КАК ДоговорКонтрагента,
        ПродажиОбороты.ДоговорКонтрагента.Владелец КАК ДоговорКонтрагентаВладелец,
        ПродажиОбороты.СуммаОборот КАК СуммаОборот
    ИЗ
        РегистрНакопления.Продажи.Обороты(&НачалоПериода, &КонецПериода, , ) КАК ПродажиОбороты) КАК ДанныеПродаж
{ГДЕ
    ДанныеПродаж.Номенклатура.* КАК Номенклатура,
    ДанныеПродаж.ДоговорКонтрагента.* КАК ДоговорКонтрагента}
РольПоляНабораДанныхКомпоновкиДанных
ИзмерениеБулево — поле является измерением (нужно для расчёта остатков)
РодительскоеИзмерениеСтрока — путь к данным родительского поля-измерения
РеквизитИзмеренияБулево — признак реквизита измерения
ОбязательноеБулево — всегда включать поле в макет при обращении к набору
ПолеСчетаСтрока — имя поля счёта для расчёта бухгалтерских остатков

«Повторяющееся поле итога» и «Неоднозначное выражение для расчета ресурса»

На вкладке «Ресурсы» (коллекция Схема.ПоляИтога, элементы типа ПолеИтогаСхемыКомпоновкиДанных) разработчик задаёт формулы расчёта итоговых значений для группировок. Каждая запись содержит три свойства: ПутьКДанным (Поле), Выражение и Группировки (колонка «Рассчитывать по...»).

1. Почему возникает «Повторяющееся поле итога». Ошибка появляется, когда в коллекции ПоляИтога для одного и того же ПутьКДанным добавлено две или более строки, у которых совпадает или пересекается область расчёта Группировки. Например, в первой строке колонка «Рассчитывать по...» оставлена пустой (что означает расчёт по всем группировкам и общему итогу), и ниже добавлена ещё одна строка для того же поля без указания конкретной группировки либо с дублированием уже указанного измерения. В типовых отчётах на ERP 2 и УТ 11 ошибка часто всплывает при попытке отредактировать в Конфигураторе сложную схему (например, «Ведомость по денежным средствам»), где ресурсы привязаны к виртуальным группировкам показателей.

2. Почему возникает «Неоднозначное выражение для расчета ресурса». Платформа разрешает задать одному ресурсу разные формулы для разных группировок: например, по группировке Склад считать Сумма(Количество), а по группировке Номенклатура — Максимум(Количество). Однако в двух случаях процессор компоновки не может выбрать единственную формулу и выбрасывает исключение:

  • На пересечении строк и колонок кросс-таблицы (ТаблицаКомпоновкиДанных) — если в строках таблицы стоит группировка Склад, а в колонках — Номенклатура, то на пересечении ячейка принадлежит обеим группировкам одновременно, и два разных выражения вступают в неразрешимый конфликт.
  • При расшифровке отчёта или формировании общих итогов — когда пользователь двойным кликом расшифровывает ячейку по другому полю, СКД строит новую временную настройку, где исходная иерархия группировок меняется. Если для ресурса заданы частные формулы по отдельным группировкам, но не определено базовое правило или возникает коллизия уровней, выполнение прерывается ошибкой неоднозначного выражения.

Надёжный способ избавиться от обеих ошибок — оставить для ресурса ровно одну запись в таблице ПоляИтога с пустой колонкой «Рассчитывать по...», а ветвление логики перенести внутрь самого выражения через конструкцию ВЫБОР и функции Уровень(), УровеньВГруппировке() либо разделить показатели на независимые ВычисляемыеПоля.

// Вместо нескольких конфликтующих строк в «Ресурсах» —
// одна строка для поля СуммаОборот с пустым «Рассчитывать по...»:
ВЫБОР
    КОГДА Уровень() = 1
        ТОГДА Сумма(СуммаОборот)
    КОГДА Уровень() = 2
        ТОГДА Среднее(СуммаОборот)
    ИНАЧЕ Максимум(СуммаОборот)
КОНЕЦ

// Программная проверка и очистка дублей в Схема.ПоляИтога:
УникальныеРесурсы = Новый Соответствие;
Индекс = СхемаКомпоновкиДанных.ПоляИтога.Количество() - 1;
Пока Индекс >= 0 Цикл
    ПолеИтога = СхемаКомпоновкиДанных.ПоляИтога[Индекс];
    КлючИтога = ПолеИтога.ПутьКДанным + "|" + СтрСоединить(ПолеИтога.Группировки, ",");
    Если УникальныеРесурсы.Получить(КлючИтога) <> Неопределено Тогда
        СхемаКомпоновкиДанных.ПоляИтога.Удалить(Индекс);
    Иначе
        УникальныеРесурсы.Вставить(КлючИтога, Истина);
    КонецЕсли;
    Индекс = Индекс - 1;
КонецЦикла;
ПолеИтогаСхемыКомпоновкиДанных
ПутьКДаннымСтрока — путь к полю набора данных или вычисляемому полю
ВыражениеСтрока — агрегатная формула на языке выражений СКД
ГруппировкиМассив (только чтение) — имена полей (с необязательным «Иерархия») и «ОбщийИтог»

Как устранить «Ошибку обработки представления» в СКД

У объектов ПолеНабораДанныхСхемыКомпоновкиДанных и ВычисляемоеПолеСхемыКомпоновкиДанных есть строковое свойство ВыражениеПредставления (колонка «Выражение представления» в конструкторе схемы) и коллекция ВыраженияУпорядочивания. Они позволяют переопределить текст, который увидит пользователь вместо стандартного представления ссылки (например, вывести наименование вместе с артикулом и кодом).

Исключение Ошибка обработки представления возникает при формировании макета компоновки в трёх случаях:

  1. Обращение к полю, которого нет в наборе данных. В ВыражениеПредставления написано Номенклатура.Наименование + " (" + Артикул + ")", но отдельное поле Артикул было удалено из запроса. Обращайтесь либо через точку от самого ссылочного поля (Номенклатура.Артикул), либо убедитесь, что поле Артикул присутствует в наборе данных.
  2. Использование синтаксиса запроса вместо языка выражений СКД. В колонке «Выражение представления» действуют правила языка выражений СКД, а не языка запросов: например, здесь нельзя писать оператор запроса через КАК (ВЫРАЗИТЬ(Поле КАК Строка(50)) — в СКД эта функция вызывается через запятую со строковым типом: Выразить(Поле, "Строка(50)")) или вызывать клиентские методы формы. Для текстового форматирования дат и чисел в представлениях используйте функции Формат() и Строка().
  3. Конкатенация разнородных типов без приведения к строке. Если в выражении представления складываются строка и число или дата (Договор.Наименование + " от " + Договор.Дата) без обёртки Строка(Договор.Дата) или Формат(Договор.Дата, "ДФ=dd.MM.yyyy"), при вычислении представления возникает ошибка типов.

Программная проверка и очистка настроек перед компоновкой

Даже если вы аккуратно вычистили саму схему в Конфигураторе, у пользователей в информационной базе остаются сохранённые варианты и пользовательские отборы, ссылающиеся на старые имена полей. Кроме того, часть полей может быть скрыта от конкретного пользователя функциональными опциями или правами доступа (RLS / право просмотра реквизита).

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

  • Метод КомпоновщикНастроек.Восстановить(Способ) — проверяет текущие настройки в КомпоновщикНастроекКомпоновкиДанных по источнику доступных настроек. При передаче СпособВосстановленияНастроекКомпоновкиДанных.Полное (значение по умолчанию) платформа автоматически снимает флажок Использование у всех выбранных полей, элементов отбора, сортировки и условного оформления, которые потеряли связь с доступными полями схемы. При передаче СпособВосстановленияНастроекКомпоновкиДанных.ПроверятьДоступность метод полностью удаляет из настроек элементы, содержащие поля, недоступные по текущим правам роли и функциональным опциям.
  • Параметр ПроверятьДоступностьПолей в КомпоновщикМакетаКомпоновкиДанных.Выполнить() — шестой параметр метода (по умолчанию Истина) управляет проверкой прав на просмотр полей и включённых функциональных опций при сборке макета.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;

    // 1. Удаляем элементы, недоступные пользователю по правам и функциональным опциям
    КомпоновщикНастроек.Восстановить(
        СпособВосстановленияНастроекКомпоновкиДанных.ПроверятьДоступность
    );

    // 2. Отключаем использование «битых» полей из старых сохранённых настроек
    КомпоновщикНастроек.Восстановить(
        СпособВосстановленияНастроекКомпоновкиДанных.Полное
    );

    // 3. Получаем итоговые настройки с учётом пользовательских отборов
    Настройки = КомпоновщикНастроек.ПолучитьНастройки();
    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;

    // 4. Формируем макет компоновки данных
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(
        СхемаКомпоновкиДанных,
        Настройки,
        ДанныеРасшифровки,
        ,
        Тип("ГенераторМакетаКомпоновкиДанных"),
        Истина
    );

    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);

    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновки);

КонецПроцедуры
КомпоновщикНастроекКомпоновкиДанных.Восстановить
СпособСпособВосстановленияНастроекКомпоновкиДанных (Полное | ПроверятьДоступность)
→ Не возвращается
// Полная сигнатура метода выполнения компоновщика макета СКД
МакетКомпоновки = КомпоновщикМакета.Выполнить(
    СхемаКомпоновкиДанных,
    Настройки,
    ДанныеРасшифровки,
    МакетОформления,
    Тип("ГенераторМакетаКомпоновкиДанных"),
    Истина, // ПроверятьДоступностьПолей
    ПараметрыФункциональныхОпций
);
КомпоновщикМакетаКомпоновкиДанных.Выполнить
СхемаСхемаКомпоновкиДанных — исходная схема отчёта
НастройкиНастройкиКомпоновкиДанных — актуальные настройки варианта
ДанныеРасшифровкиДанныеРасшифровкиКомпоновкиДанных — переменная для приёма расшифровки
МакетОформленияМакетОформленияКомпоновкиДанных — оформление результата
ТипГенератораТип — ГенераторМакетаКомпоновкиДанных или для коллекции значений
ПроверятьДоступностьПолейБулево — проверять права просмотра и функциональные опции (по умолчанию Истина)
ПараметрыФункциональныхОпцийСтруктура — значения параметров функциональных опций
→ МакетКомпоновкиДанных
Чтобы не искать вручную битые ссылки на поля в десятках вкладок конструктора СКД и не разбирать конфликты ролей остатков, опишите задачу в ИИ Консоли отчётов 1С. Агент сам изучит структуру вашей базы, соберёт согласованную схему компоновки данных и протестирует готовый отчёт .erf в 1С.

Частые ошибки при отладке схемы компоновки данных

  • Поиск битого поля только на корневом уровне настроек. Разработчик проверяет общую вкладку «Выбранные поля» и «Отбор» отчёта, не замечая, что удалённое поле осталось в локальном отборе или сортировке вложенной группировки третьей ступени. В конструкторе СКД всегда переключайте радиокнопку внизу панели настроек в режим «Все элементы» или проверяйте каждую группировку дерева.
  • Ручное редактирование списка полей при включённом флаге АвтоЗаполнениеДоступныхПолей. Если флаг «Автозаполнение» установлен, но список полей на вкладке «Наборы данных» частично правили руками, при следующем изменении текста запроса возникает рассинхронизация псевдонимов и ролей. Либо доверьте заполнение конструктору запроса с вкладкой «Компоновка данных», либо отключите АвтоЗаполнениеДоступныхПолей и полностью контролируйте коллекцию полей самостоятельно.
  • Одинаковые псевдонимы в несвязанных наборах данных с разными ролями. Когда в схеме объединяются или связываются два набора данных, а одноимённое поле в первом наборе имеет роль Измерение, но во втором наборе оставлено без роли или с другим типом значения, компоновщик макета может выдать ошибку замены или некорректно рассчитать конечный остаток.
  • Передача в КомпоновщикМакета.Выполнить() свойства КомпоновщикНастроек.Настройки вместо ПолучитьНастройки(). При вызове Восстановить() и применении пользовательских отборов итоговая конфигурация формируется методом КомпоновщикНастроек.ПолучитьНастройки(). Кроме того, метод Восстановить(Полное) сбрасывает использование обычных полей, но не переписывает текст формул внутри ПользовательскиеПоля — если аналитик написал там имя удалённого поля, такое пользовательское поле нужно исправить или удалить.
  • Использование поля с ролью Обязательное без вывода в основной запрос. Если на вкладке «Наборы данных» конструктора схемы в колонке «Роль» полю поставили флажок «Обязательное», СКД будет требовать его присутствия при любом обращении к набору данных, даже если пользователь не выбирал это поле в отчёте.
  • Дублирование ресурсов при настройке расчёта по группировкам. Попытка задать на вкладке «Ресурсы» две строки для одного поля (одну для группировки Подразделение, другую для Номенклатура) приводит к падению кросс-таблицы и расшифровки с ошибкой «Неоднозначное выражение для расчета ресурса». Используйте единое выражение с ВЫБОР КОГДА Уровень() = ... или создавайте отдельные вычисляемые поля под каждый алгоритм расчёта.

Частые вопросы по ошибкам полей и ресурсов в СКД

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

Причина либо в сохранённых пользовательских настройках этого сотрудника (в ХранилищеСистемныхНастроек или регистре сведений НастройкиВариантовОтчетов остался старый отбор, группировка или пользовательское поле с удалённым реквизитом), либо в отсутствии у его роли права просмотра на данное поле метаданных. Сбросьте настройки отчёта по кнопке «Ещё — Стандартные настройки» или добавьте перед формированием вызов КомпоновщикНастроек.Восстановить(СпособВосстановленияНастроекКомпоновкиДанных.ПроверятьДоступность) и КомпоновщикНастроек.Восстановить(СпособВосстановленияНастроекКомпоновкиДанных.Полное).

Как исправить ошибку «Не найдено поле замены» при использовании вложенного запроса или ТаблицыЗначений?

Во вложенном запросе с включённым АвтоЗаполнениеДоступныхПолей явно выведите базовое ссылочное поле и его владельца на внешний уровень запроса и добавьте их в секцию {ВЫБРАТЬ ...} на вкладке «Компоновка данных», а также проверьте, чтобы в РольПоляНабораДанныхКомпоновкиДанных не было ссылок на отсутствующие РодительскоеИзмерение или ПолеСчета. Для внешнего набора данных типа «Объект» (ТаблицаЗначений) убедитесь, что ключ в структуре ВнешниеНаборыДанных совпадает с ИмяОбъекта, колонка физически создана в таблице и у поля в схеме заполнен ТипЗначения.

Как задать разные формулы расчёта ресурса для разных группировок без ошибки «Неоднозначное выражение для расчета ресурса»?

Не создавайте для одного поля несколько конфликтующих строк на вкладке «Ресурсы» при работе с кросс-таблицами и расшифровкой. Оставьте в ПоляИтога одну запись с пустой колонкой «Рассчитывать по...» и напишите единую формулу через ВЫБОР КОГДА Уровень() = 1 ТОГДА ... ИНАЧЕ ... КОНЕЦ либо разделите показатель на два разных поля на вкладке «Вычисляемые поля» и настройте ресурс для каждого из них отдельно.

Тарифы

ИИ Консоль отчётов 1С

Лайт

Бесплатно

Для ознакомления с возможностями

  • Все функции бесплатно на 2 дня +2 дня за подписку на Telegram или Max
  • Полный набор инструментов без урезаний
  • Без ввода карты

Ранний доступ

Популярный выбор
Бесплатно

Тестирование продукта в режиме разработки

  • Формирование панелей и виджетов в чате
  • Поддержка таблиц и популярных типов диаграмм
  • Приоритетный сбор обратной связи по развитию продукта