Администрирование · 10 мин
Как обновить данные формы в 1С
Как обновить данные формы в 1С: клавиша F5, кнопка «Ещё», программное обновление, автообновление списков и журналов. Разбор типичных ошибок и ответы на вопросы.
Данные в форме 1С не всегда отображаются в актуальном состоянии: документ мог изменить другой пользователь, обработка могла записать объект в фоне, а список товаров — пополниться после проведения приходной накладной. Чтобы увидеть свежие значения, форму нужно обновить — вручную, программно или через настройку автоматического обновления.
Способ обновления зависит от того, что именно открыто: список документов, форма элемента справочника, отчёт или динамический список. Универсальной кнопки «обновить всё» нет, но для каждого сценария есть рабочий приём — от нажатия F5 до вызова методов встроенного языка.
Ручное обновление формы: клавиша F5 и команда «Обновить»
Самый простой способ актуализировать данные — нажать клавишу F5. Она работает в большинстве форм списков: журналах документов, списках справочников, регистров. После нажатия список перечитывается из базы, и в нём появляются новые записи, а изменённые строки показывают актуальные значения.
Если горячие клавиши неудобны, та же команда доступна через меню «Ещё → Обновить» в правом верхнем углу формы списка. В классических интерфейсах часто есть отдельная кнопка с круговой стрелкой на командной панели.
Важно понимать ограничение: F5 обновляет список, но не перечитывает открытый объект. Если вы редактируете документ, а другой пользователь в это время изменил тот же документ, при попытке записи 1С выдаст сообщение о конфликте версий — простое обновление формы здесь не поможет.
Обновление открытого объекта: документа или элемента справочника
Форма объекта (конкретного документа, контрагента, номенклатуры) не обновляется клавишей F5. Чтобы перечитать данные из базы и отбросить несохранённые изменения, используйте команду «Ещё → Перечитать» — она доступна, пока объект не записан после правок.
Если объект уже изменён вами и записан, а актуальность данных вызывает сомнения, надёжнее закрыть форму без сохранения и открыть объект заново из списка. Так вы гарантированно получите текущую версию из базы данных.
В файловых базах, где работает несколько пользователей по сети, и в клиент-серверных базах ситуация «устаревшей формы» встречается чаще всего: пока вы держите форму открытой, коллеги могут провести связанные документы, изменить цены или остатки. Признак того, что данные устарели, — расхождение итогов в форме с данными отчётов.
Программное обновление формы из кода
Разработчику и продвинутому пользователю доступны методы встроенного языка. Выбор метода зависит от того, что нужно обновить:
ЭтаФорма.Прочитать()— перечитывает объект формы из базы данных, заменяя текущие данные формы;ЭтаФорма.ОбновитьОтображениеДанных()— обновляет только отображение элементов, без перечитывания данных;Элементы.Список.Обновить()— обновляет динамический список на форме;ОповеститьОбИзменении(Ссылка)— рассылает оповещение, чтобы другие открытые формы обновили данные по этой ссылке.
Типичный сценарий: из формы документа открывается обработка, которая изменяет данные в базе. Чтобы после закрытия обработки основная форма показала свежие значения, в обработке вызывают ОповеститьОбИзменении(), а в форме документа обрабатывают событие ОбработкаОповещения и вызывают Прочитать().
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если ИмяСобытия = "Запись_ПриходнаяНакладная" Тогда
ЭтаФорма.Прочитать();
КонецЕсли;
КонецПроцедурыАвтообновление динамических списков
Журналы документов и списки справочников в управляемых формах построены на динамических списках, для которых можно включить автоматическое обновление. Откройте «Ещё → Настроить список» (или «Настройка списка» в такси-интерфейсе) и найдите параметр автообновления, если он предусмотрен конфигурацией.
В конфигураторе автообновление задаётся в свойствах динамического списка: указывается период в секундах, через который список перечитывается. Это удобно для диспетчерских рабочих мест — например, монитора заказов или очереди заявок, где данные поступают постоянно.
У автообновления есть цена: каждое срабатывание — это запрос к базе. На больших списках с частым интервалом это создаёт заметную нагрузку и может «дёргать» позицию курсора у пользователя. Практичный компромисс — интервал от 30 секунд и реже, либо обновление по событию вместо таймера.
Сравнение способов обновления
Подходит для ручного обновления списков. Не работает для открытого объекта.
Перечитывает открытый объект из базы. Несохранённые правки будут потеряны.
Гибкий контроль из кода, но требует доработки конфигурации или внешней обработки.
Данные обновляются сами по таймеру. Создаёт нагрузку на базу при малом интервале.
Обновление отчётов и данных после проведения документов
Отчёты в 1С не обновляются автоматически при изменении данных — каждый отчёт формируется на момент нажатия кнопки «Сформировать». Если после формирования отчёта провели или отменили документы, нажмите «Сформировать» повторно, чтобы увидеть актуальные итоги.
Отдельная ситуация — отчёты, построенные на данных, которые не успели попасть в итоги регистров. Если документ записан, но не проведён, его данные в регистровых отчётах не появятся. Проверьте статус документа: проведённые документы в списке обычно отображаются без серого значка и имеют активную кнопку отмены проведения.
В некоторых конфигурациях используется отложенное проведение или фоновое обновление итогов. Тогда свежепроведённый документ может появиться в отчёте с задержкой. Признак — документ проведён, но отчёт его «не видит» в течение нескольких минут. В этом случае подождите завершения фоновых заданий или уточните у администратора расписание регламентных операций.
Как проверить результат обновления
Новые документы видны, итоги совпадают с отчётом
Свежие записи не появляются после F5 — проверьте отборы в списке
После «Перечитать» данные совпадают с версией в базе
Команда недоступна — объект имеет несохранённые изменения
После повторного формирования итоги изменились
Итоги не меняются — документ не проведён или итоги обновляются фоново
Типичные ошибки и спорные ситуации
Самая частая причина «не обновляется форма» — установленный отбор в списке. Пользователь нажимает F5, но новый документ не виден, потому что он не попадает под условия отбора (по организации, периоду, контрагенту). Снимите отбор через «Ещё → Настроить список» и проверьте снова.
Вторая ошибка — попытка обновить данные, которые выводятся из кэша формы или из реквизитов, заполняемых только при создании. Некоторые вычисляемые поля (например, остатки на складе в подборе товаров) пересчитываются только при открытии формы. Закройте и откройте форму заново — это надёжнее любых обновлений.
Третья ситуация — работа в монопольном режиме или с устаревшим кэшем метаданных после обновления конфигурации. Если форма ведёт себя странно сразу после обновления релиза, помогает перезапуск сеанса, а в файловой базе — очистка кэша (удаление папки с снэпшотами базы в каталоге пользователя) при закрытой программе.
Когда обновление не помогает: границы самостоятельной работы
Если после всех способов обновления данные в форме расходятся с реальным состоянием базы, проблема глубже: возможны ошибки в итогах регистров, незавершённые фоновые задания или повреждение кэша. Здесь начинается зона ответственности администратора.
Не пытайтесь исправить расхождения тестированием и исправлением базы или перепроведением документов за закрытые периоды без резервной копии. Перед любыми сервисными операциями сделайте выгрузку базы через конфигуратор или актуальную резервную копию средствами СУБД.
Что важно запомнить
Списки обновляются клавишей F5 или командой «Обновить», открытый объект — командой «Перечитать», отчёты — повторным формированием. Если данные «не обновляются», в первую очередь проверяйте отборы списка и статус проведения документов. Программное обновление выполняется методами Прочитать() и Обновить(), а автообновление списков настраивается с разумным интервалом.
Частые вопросы
Почему F5 не обновляет открытый документ?
Клавиша F5 предназначена для форм списков. Открытый объект перечитывается командой «Ещё → Перечитать» либо закрытием формы без сохранения и повторным открытием. Учтите, что перечитывание отменяет все несохранённые правки.
Новый документ не появляется в журнале даже после обновления. Что проверить?
В первую очередь — отборы списка: период, организацию, контрагента и другие условия. Затем убедитесь, что документ записан, а не остался в открытой несохранённой форме у коллеги. Также проверьте, не включён ли отбор по текущему пользователю.
Можно ли настроить автообновление без доработки конфигурации?
Если разработчики конфигурации вынесли настройку автообновления в пользовательские настройки списка — да, через «Ещё → Настроить список». Если такого пункта нет, автообновление включается только в конфигураторе в свойствах динамического списка.
Отчёт не видит свежепроведённый документ. В чём причина?
Отчёт нужно сформировать заново кнопкой «Сформировать». Если и после этого документа нет — проверьте, что он действительно проведён, попадает в период и отборы отчёта, а в конфигурации не используется отложенное обновление итогов регламентными заданиями.
Чем отличается Прочитать() от ОбновитьОтображениеДанных()?
Прочитать() загружает данные объекта заново из базы, заменяя содержимое формы. ОбновитьОтображениеДанных() лишь заставляет элементы формы перерисовать уже имеющиеся данные — из базы ничего не запрашивается.
Форма глючит после обновления конфигурации. Что делать?
Сначала полностью закройте и заново запустите сеанс 1С. Если не помогло и база файловая — очистите кэш метаданных в каталоге пользователя при закрытой программе. В клиент-серверном варианте с очисткой кэша и перезапуском служб должен работать администратор.