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