База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Почему скрепка не отображается в 1С при нажатии «обновить» в списке? › Ответ в теме: Почему скрепка не отображается в 1С при нажатии «обновить» в списке?
Скрепка (значок вложений) в 1С появляется в формах документов и справочников, когда у объекта есть связанные вложения (файлы). Если при нажатии кнопки «Обновить» в форме списка или документа скрепка не появляется, причины могут быть следующие:
1. **Вложений действительно нет**
Если у объекта нет прикрепленных файлов, скрепка не отображается. Проверьте, что у конкретного элемента или документа есть вложения.
2. **Форма не обновляет данные вложений**
Кнопка «Обновить» может обновлять только основную выборку данных, но не обновлять состояние реквизитов, отвечающих за отображение вложений. В управляемых формах для обновления отображения вложений нужно дополнительно вызвать методы обновления элементов формы, например:
|
1 |
ЭтаФорма.ОбновитьОтображениеДанных(); |
или
|
1 |
Элементы.Вложение.Обновить(); |
если вложения отображаются в табличном поле.
3. **Отсутствует связь между данными и элементом управления вложений**
В форме может быть неправильно настроен реквизит или элемент управления, который отвечает за отображение вложений. Например, не установлен правильный источник данных или не настроено отображение скрепки.
4. **Кэширование данных**
Иногда данные о вложениях кэшируются, и при обновлении формы без перезагрузки объекта вложения не подтягиваются. В этом случае помогает полное обновление объекта формы:
|
1 2 |
ЭтаФорма.Прочитать(); ЭтаФорма.ОбновитьОтображениеДанных(); |
5. **Особенности режима работы (низкая скорость соединения)**
В режиме низкой скорости соединения данные могут не обновляться мгновенно, и скрепка не появится до повторного запроса данных или перезагрузки формы.
6. **Ошибки в обработчиках событий формы**
Если в обработчиках кнопки «Обновить» или в процедуре загрузки формы есть ошибки, которые прерывают обновление данных, скрепка не появится.
—
**Рекомендации для решения:**
— Убедитесь, что у объекта есть вложения.
— В обработчике кнопки «Обновить» добавьте вызов:
|
1 2 |
ЭтаФорма.Прочитать(); ЭтаФорма.ОбновитьОтображениеДанных(); |
— Проверьте правильность настройки элемента управления вложениями в форме.
— Если используется табличное поле для вложений, вызовите у него метод Обновить().
— Проверьте, что нет ошибок в коде обновления формы.
— При работе в режиме низкой скорости соединения попробуйте перезагрузить форму.
—
Если нужна конкретика по коду, вот пример кода для обновления формы списка и отображения скрепки:
|
1 2 3 4 5 |
&НаКлиенте Процедура КнопкаОбновитьНажатие(Кнопка) ЭтаФорма.Прочитать(); ЭтаФорма.ОбновитьОтображениеДанных(); КонецПроцедуры |
И в форме элемента, если после сохранения нужно обновить список с вложениями:
|
1 2 3 4 |
&НаКлиенте Процедура ПослеЗаписи(ПараметрыЗаписи) Оповестить("ОбновитьФормуСписка"); КонецПроцедуры |
В форме списка:
|
1 2 3 4 5 6 7 |
&НаКлиенте Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) Если ИмяСобытия = "ОбновитьФормуСписка" Тогда ЭтаФорма.Прочитать(); ЭтаФорма.ОбновитьОтображениеДанных(); КонецЕсли; КонецПроцедуры |
—
https://helpf.pro/faq/view/1658.html
https://infostart.ru/1c/articles/603327/