В процессе работы с программными продуктами на базе 1С:Предприятие 8.3, в частности с 1С:Бухгалтерия 3.0, пользователи часто сталкиваются с ситуацией, когда в списке документов (например, «Поступление (акты, накладные, УПД)») пропадает колонка со значком «скрепки» — решить эту задачу поможет автоматическая загрузка файлов к документам Бухгалтерии. Эта пиктограмма критически важна для быстрого визуального контроля: она позволяет сразу увидеть, прикреплены ли к документу скан-копии или другие файлы, не заходя внутрь каждой карточки.
Рассмотрим подробно причины возникновения этой проблемы и разберем по шагам все способы её решения — от простых пользовательских настроек до глубокого анализа технических механизмов платформы.
Проанализируем наиболее частую причину, которая помогла автору исходного вопроса. В современных версиях конфигураций на базе БСП (Библиотеки стандартных подсистем) предусмотрен механизм оптимизации интерфейса. Для ускорения работы в высоконагруженных базах данных система может принудительно скрывать «тяжелые» колонки, требующие дополнительных запросов к серверу.
Выясним, как включить эту настройку:
Важный момент: если этот флажок снят, платформа исключает из запросов к базе данных левые соединения (LEFT JOIN) с таблицами файлов и регистров состояний. Это значительно ускоряет отрисовку списков, если в них миллионы записей, но делает невозможным вывод «скрепки» или цветовой индикации документов. После установки флага необходимо перезапустить форму списка или саму программу.
Если настройка производительности включена, но колонка всё равно не появляется даже в окне «Изменить форму», проанализируем ситуацию с технической точки зрения. Посмотрим на структуру метаданных и запроса динамического списка документа. Чтобы «скрепка» отображалась, в тексте запроса обязательно должно присутствовать поле, вычисляющее наличие файлов.
Рассмотрим пример кода, который должен присутствовать в тексте запроса динамического списка:
ВЫБОР
КОГДА НаличиеФайлов.ЕстьФайлы ЕСТЬ NULL
ТОГДА 0
КОГДА НаличиеФайлов.ЕстьФайлы
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ КАК ЕстьФайлы
В этом фрагменте происходит обращение к регистру сведений НаличиеФайлов. Если в конфигураторе в основной форме списка этот кусок кода отсутствует или закомментирован, никакие пользовательские настройки не помогут вывести колонку на экран. Можно использовать различные методы доработки динамических списков для вывода данных. Проверьте, что поле ЕстьФайлы выбрано в списке полей и для него настроен путь к данным. Также убедитесь, что в свойствах динамического списка указана Основная таблица (например, Документ.ПоступлениеТоваровУслуг), иначе стандартные механизмы работы с картинками могут игнорироваться платформой.
Иногда программный код верный, но данные в базе отсутствуют или неактуальны. Выясним причину, связанную с регистрами сведений. В системе существует специальный регистр НаличиеФайлов, где хранится соответствие: объект (документ) и булево значение (есть ли у него вложения). Данные в этот регистр записываются автоматически при добавлении файла.
Проанализируем возможные сбои:
НаличиеФайлов могли не создаться. В этом случае поможет только пересчет данных регистра специальной обработкой или небольшим скриптом.Рассмотрим ситуацию, когда в конфигураторе всё настроено верно, а у одного пользователя колонка пропала. Выясним, не связано ли это с «залипанием» настроек интерфейса.
Выполним следующие шаги для очистки настроек:
Если сброс настроек формы не помог, проанализируем влияние кэша платформы. Рекомендуется полностью очистить настройки пользователя через Администрирование — Настройки пользователей и прав — Очистка настроек, выбрав конкретную форму документа для конкретного сотрудника.
Последний этап нашего анализа — проверка прав доступа. Если пользователь не имеет прав на чтение справочника присоединенных файлов (например, ПоступлениеТоваровУслугПрисоединенныеФайлы), то механизм RLS (ограничение на уровне записей) может скрывать связанные данные в динамическом списке — для диагностики ограничений подойдет отчет по правам доступа и RLS.
Посмотрим на это со стороны SQL-запроса: при LEFT JOIN с таблицей, на которую нет прав, результатом всегда будет NULL. В итоге условие ЕстьФайлы всегда будет ложным, и «скрепка» не отобразится, хотя физически файлы в базе есть. Убедитесь, что в профиле групп доступа пользователя включены роли, позволяющие работать с присоединенными файлами соответствующих документов — провести полный аудит поможет инструмент анализа ролей и прав доступа.
Подведем итог: чаще всего проблема решается установкой галочки в разделе Производительность, но если это не помогает, последовательная проверка запроса динамического списка, регистра НаличиеФайлов и очистка пользовательских настроек гарантированно вернут визуальное отображение вложений в ваши списки документов.