Как исправить ошибку «Поле объекта не обнаружено (День 103)» в платежном календаре 1С

Программист 1С v8.3 (Управляемые формы) 1С:Комплексная автоматизация Управленческий учет Финансы и профессиональные услуги
← На главную

При работе в программах 1С:ERP Управление предприятием или 1С:Комплексная автоматизация пользователи иногда сталкиваются с критической ошибкой при попытке открыть «Платёжный календарь». Текст ошибки выглядит следующим образом: Поле объекта не обнаружено (День 103). Ситуация осложняется тем, что ошибка может возникать только у конкретного пользователя, в то время как у остальных коллег отчет работает исправно. Обычная очистка кэша платформы в этом случае, как правило, не помогает.

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

Выясним причину возникновения ошибки «День 103»

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

Название «День 103» прямо указывает на то, что система пытается обратиться к колонке, соответствующей 103-му дню от даты начала планирования, но не находит её в структуре формы. Это происходит по двум основным причинам:

  1. Некорректные данные в документах: Если в системе есть документ (например, Заявка на расход денежных средств или Ожидаемое поступление) с ошибочной датой из далекого будущего (например, 2039 год вместо 2024), алгоритм построения календаря пытается растянуть сетку колонок до этой даты. Если количество дней превышает определенный лимит или конфликтует с сохраненными настройками пользователя, возникает ошибка.
  2. Повреждение сохраненных настроек формы: 1С сохраняет состояние формы для каждого пользователя (состав группировок, видимость колонок, отборы). Если после обновления конфигурации или изменения состава данных структура дерева значений изменилась, старые настройки «накладываются» на новую структуру некорректно, вызывая обращение к несуществующим полям.

Способ 1: Копирование настроек от «рабочего» пользователя

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

Рассмотрим пошагово, как это сделать:

  1. Перейдем в раздел НСИ и Администрирование — Настройки пользователей и прав.
  2. Откроем подраздел Персональные настройки и выберем пункт Копирование настроек.
  3. В поле От кого копировать выберем пользователя, у которого платежный календарь открывается без ошибок.
  4. В списке Кому копировать выберем пользователя, столкнувшегося с ошибкой «День 103».
  5. В окне выбора настроек (кнопка Выбрать настройки...) найдем в списке Платёжный календарь (обработка или настройки формы).
  6. Важное условие: Оба пользователя в момент копирования должны выйти из информационной базы, чтобы настройки корректно перезаписались в хранилище.
  7. Нажмем Скопировать и закрыть.

Способ 2: Полное удаление настроек пользователя через «Обслуживание»

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

  1. Зайдем в раздел Администрирование — Обслуживание.
  2. Перейдем по ссылке Удаление настроек пользователей.
  3. Выберем нужного пользователя в списке.
  4. В режиме Отдельные настройки найдем через поиск Платёжный календарь.
  5. Отметим галочками все найденные элементы (настройки формы, настройки отчетов) и нажмем Удалить.

После этой процедуры при первом открытии платежного календаря система создаст настройки «с чистого листа» по умолчанию.

Способ 3: Поиск и исправление «битых» дат в документах

Если ошибка повторяется даже после сброса настроек, велика вероятность, что причина кроется в первичных данных. Нам нужно найти документы, которые заставляют календарь генерировать колонку «День 103».

Проанализируем данные с помощью Универсального отчета:

  1. Откроем Универсальный отчет (раздел Отчеты — Администрирование).
  2. Выберем тип объекта Регистр накопления.
  3. Проверим два основных регистра: Денежные средства к поступлению и Денежные средства к выплате.
  4. Установим фильтр по полю Дата оплаты (или Дата планирования) со значением «Больше чем текущая дата + 1 год».

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

Способ 4: Программная очистка хранилища (для разработчиков)

В самых сложных случаях, когда визуальные средства администрирования не видят поврежденную запись, мы можем прибегнуть к использованию встроенного языка 1С. Мы можем написать небольшую обработку или воспользоваться консолью кода, чтобы принудительно очистить запись в объекте ХранилищеСистемныхНастроек.

Пример кода для программного сброса настроек формы платежного календаря:


КлючОбъекта = "Обработка.ПлатёжныйКалендарь.Форма.Форма";
Пользователь = "ИмяПользователя"; // Укажите логин проблемного пользователя

// Очищаем системные настройки формы
ХранилищеСистемныхНастроек.Удалить(КлючОбъекта, Неопределено, Пользователь);

// Очищаем настройки компоновки, если они сохранились отдельно
КлючНастроекКД = "Обработка.ПлатёжныйКалендарь.Форма.Форма/НастройкиКомпоновкиДанных";
ХранилищеСистемныхНастроек.Удалить(КлючНастроекКД, Неопределено, Пользователь);

Сообщить("Настройки для пользователя " + Пользователь + " успешно сброшены.");

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

Профилактика проблемы

Чтобы избежать повторения ошибки Поле объекта не обнаружено (День 103) в будущем, рекомендуем:

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

← На главную