К статье
Практический материал

Отчеты и Аналитика · 10 мин

Ошибка «Не найдено поле замены» в СКД 1С: что это и как исправить

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

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

Типичная ситуация: отчёт работал, после обновления конфигурации или доработки схемы при открытии сохранённого варианта пользователь видит сообщение «Не найдено поле замены» — иногда с указанием имени поля, иногда без него. Ошибка относится к настройкам, а не к данным: информация в базе не повреждена, но отчёт не сформируется, пока настройки не будут приведены в соответствие со схемой.

Проблема почти всегда решается без изменения данных: нужно либо очистить устаревшие настройки, либо исправить схему компоновки, вернув поле с прежним именем. Ниже разобраны причины, способы диагностики и порядок исправления для пользователя и для разработчика.

Что означает ошибка и когда она возникает

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

Основные сценарии появления:

  • поле переименовано в запросе набора данных (было «Менеджер», стало «Ответственный»), а в варианте отчёта осталось старое имя;
  • поле удалено из списка выборки или из ресурсов, но осталось в отборе, сортировке или условном оформлении;
  • изменился путь к полю — например, поле стало вычисляемым или переехало в другой набор данных;
  • пользовательские настройки сохранены для старой версии отчёта и автоматически загружаются при открытии;
  • внешний отчёт обновлён, а сохранённые варианты в справочнике «Варианты отчётов» ссылаются на прежнюю схему.

Важно понимать: ошибка не связана с правами доступа и не означает, что данные удалены. Она говорит только о рассинхронизации между схемой и настройками.

Как быстро устранить ошибку пользователю

Если вы работаете с отчётом как пользователь и не можете менять конфигурацию, начните с простых действий — в большинстве случаев их достаточно.

Порядок действий для пользователя
  1. 1
    В форме отчёта откройте «Ещё» → «Выбрать вариант» и переключитесь на стандартный вариант отчёта
  2. 2
    Если ошибка осталась, откройте «Ещё» → «Изменить вариант» (или «Настройки») и нажмите «Завершить редактирование» / «Стандартные настройки», чтобы сбросить настройки
  3. 3
    Проверьте отборы: удалите строки отбора с полями, которых нет в текущей структуре отчёта
  4. 4
    Очистите пользовательские поля и условное оформление, если они добавлялись вручную
  5. 5
    Сформируйте отчёт заново и убедитесь, что ошибка исчезла

Если отчёт открывается сразу с ошибкой и форма настроек недоступна, попробуйте команду «Сформировать» после выбора другого варианта. В типовых конфигурациях варианты хранятся отдельно от пользовательских настроек, поэтому смена варианта часто снимает проблему мгновенно.

Когда ни один вариант не работает, вероятно, схема отчёта изменилась после обновления конфигурации, а типовой вариант не был обновлён. В этом случае без участия администратора или разработчика не обойтись — передайте им текст ошибки и имя отчёта.

Диагностика: как найти проблемное поле

Текст ошибки иногда содержит имя поля, но часто сообщение выводится без уточнений. Тогда поле придётся искать вручную, сравнивая настройки со схемой.

Порядок поиска:

  • откройте схему компоновки (в конфигураторе: макет отчёта → «Основная схема компоновки данных») и выпишите состав полей наборов данных и вычисляемых полей;
  • в настройках отчёта последовательно проверьте вкладки «Отбор», «Сортировка», «Выбранные поля», «Группировка», «Условное оформление» и «Пользовательские поля»;
  • каждое поле из настроек сверьте со списком доступных полей — расхождение и есть источник ошибки.

Удобный приём: в форме настроек отчёта отключайте разделы по очереди (сначала условное оформление, потом пользовательские поля, затем отборы) и формируйте отчёт после каждого шага. Как только отчёт сформировался — проблемный элемент найден.

Ошибка только у одного пользователяПроблема в его настройках

Сброс пользовательских настроек или выбор стандартного варианта

Ошибка у всех после обновленияСхема изменена, варианты устарели

Сверка имён полей в схеме и в сохранённых вариантах

Ошибка только в одном вариантеВариант ссылается на удалённое поле

Открыть вариант и удалить несуществующие поля из настроек

Имя поля есть в тексте ошибкиПоле переименовано или удалено

Найти это имя в настройках и заменить на актуальное

Исправление на стороне разработчика

Если вы дорабатывали отчёт и после этого появилась ошибка, есть два пути: вернуть совместимость схемы со старыми настройками или почистить сохранённые настройки.

Первый путь безопаснее для пользователей: если поле было переименовано, добавьте в запрос набора данных псевдоним со старым именем, например ВЫБРАТЬ ... КАК Менеджер, чтобы старые варианты продолжали работать. Либо оставьте вычисляемое поле с прежним именем, ссылающееся на новое выражение.

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

Для программной проверки доступности поля в схеме используется коллекция полей настроек компоновки. Пример поиска поля в доступных полях отбора:

ДоступныеПоля = Настройки.Отбор.ДоступныеПоляОтбора;

ПолеКД = Новый ПолеКомпоновкиДанных("Менеджер");

Если ДоступныеПоля.НайтиПоле(ПолеКД) = Неопределено Тогда

// поля нет в схеме — элемент отбора нужно удалить или заменить

КонецЕсли;

Такой подход позволяет написать обработку, которая проходит по сохранённым настройкам и удаляет элементы, ссылающиеся на отсутствующие поля, — это удобно при массовом обновлении отчётов.

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

Самая распространённая ошибка — правка только запроса без проверки остальных разделов схемы. Поле может быть переименовано в запросе, но остаться со старым именем в вычисляемых полях, ресурсах или параметрах, и ошибка сохранится.

Вторая типичная ошибка — исправление схемы без учёта сохранённых пользовательских настроек. Даже если схема корректна, у пользователей с персональными настройками отчёт продолжит падать, пока их настройки не будут сброшены.

Типичные ошибки
01
Переименование поля в запросе без проверки отборов, сортировки и условного оформления — ошибка возвращается в сохранённых вариантах
02
Удаление «лишнего» поля из набора данных, на которое ссылаются пользовательские поля — отчёт перестаёт формироваться у всех
03
Редактирование типового варианта без копии — при следующем обновлении конфигурации правки теряются
04
Очистка всех настроек пользователей вместо точечного удаления проблемного элемента — пользователи теряют рабочие настройки

Как проверить, что проблема решена

После исправления проверьте отчёт в трёх режимах: со стандартным вариантом, с ранее сохранённым пользовательским вариантом и с новым вариантом, созданным с нуля. Во всех трёх случаях отчёт должен формироваться без ошибок и показывать ожидаемые колонки.

Дополнительно попросите пользователя, у которого ошибка возникала изначально, сформировать отчёт под своей учётной записью: его персональные настройки могли отличаться от ваших, и проверка под своим пользователем не гарантирует результат у других.

Контрольные точки

Как проверить результат

Стандартный вариант
Норма

Отчёт формируется, все колонки на месте

Тревожный признак

Ошибка сохраняется — проблема в самой схеме

Сохранённый вариант пользователя
Норма

Формируется без ошибок

Тревожный признак

Ошибка только в этом варианте — в нём ссылка на удалённое поле

Новый вариант с нуля
Норма

Все нужные поля доступны в настройках

Тревожный признак

Поле отсутствует в списке доступных — его нет в схеме

Как предотвратить ошибку в будущем

Чтобы ошибка не возникала при доработках, придерживайтесь простых правил. Не переименовывайте поля в действующих отчётах без необходимости: если новое имя нужно, добавьте поле с новым именем, а старое оставьте как дубль хотя бы на один цикл обновления. После любого изменения состава полей схемы проверяйте все сохранённые варианты отчёта.

При массовых изменениях полезно вести список отчётов, где поле используется, и после доработки прогонять формирование каждого варианта. В крупных внедрениях для этого пишут служебные обработки проверки настроек на соответствие схеме — это дешевле, чем разбирать обращения пользователей после обновления.

Итог

Что важно запомнить

Ошибка «Не найдено поле замены» — это рассинхронизация настроек отчёта со схемой компоновки, а не проблема данных. Пользователю помогает сброс настроек или смена варианта, разработчику — возврат поля под старым именем или очистка устаревших настроек с обязательной проверкой всех вариантов отчёта.

Частые вопросы

Ошибка появилась у всех пользователей сразу после обновления. Что делать в первую очередь?

Сравните состав полей схемы компоновки до и после обновления: почти наверняка поле было переименовано или удалено. Быстрое решение — вернуть поле с прежним именем через псевдоним в запросе, затем планово перенастроить варианты отчёта.

Можно ли исправить ошибку без доступа к конфигуратору?

Да, если проблема только в настройках: выберите стандартный вариант отчёта или сбросьте настройки через форму настроек. Если ошибка повторяется во всех вариантах, включая стандартный, потребуется доработка схемы разработчиком.

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

У этого пользователя сохранены персональные настройки или личный вариант отчёта, содержащий ссылку на удалённое поле. Достаточно сбросить его настройки к стандартным или удалить проблемный элемент в его варианте.

Как найти, какое именно поле вызывает ошибку, если имя не указано в сообщении?

Отключайте разделы настроек по очереди — условное оформление, пользовательские поля, отборы, сортировку — и формируйте отчёт после каждого шага. Раздел, после отключения которого отчёт формируется, содержит проблемное поле.

Опасна ли эта ошибка для данных в базе?

Нет. Ошибка возникает на этапе формирования отчёта и не влияет на данные информационной базы. Риск связан только с возможной потерей пользовательских настроек при их удалении, поэтому перед массовой очисткой делайте резервную копию.