Часто пользователи 1С:Управление торговлей редакции 10.3 сталкиваются с ситуацией, которая кажется на первый взгляд нелогичной: вы прикрепляете файл к документу (например, с рабочего стола), затем удаляете этот файл с компьютера, но в 1С он продолжает открываться как ни в чем не бывало. Давайте подробно разберем, как устроена эта система, и выясним, где на самом деле находятся ваши данные.
Для начала проанализируем, какой объект в системе отвечает за работу с прикрепленными изображениями, сертификатами и документами. В конфигурации УправлениеТорговлей версии 10 за это отвечает специальный справочник ХранилищеДополнительнойИнформации. Когда вы нажимаете кнопку "Добавить" в форме списка файлов документа, система запускает процедуру копирования.
Важно понимать: 1С никогда не работает с файлом на вашем рабочем столе напрямую как с первоисточником. Как только вы выбрали файл в диалоговом окне, программа считывает его двоичные данные и создает дубликат внутри своей структуры. Именно поэтому, когда вы удаляете исходную картинку с рабочего стола, это никак не влияет на работоспособность ссылки в 1С — программа обращается к своей собственной копии.
В настройках системы (обычно это доступно в настройках параметров учета или настройках пользователя) можно выбрать, каким именно образом 1С будет создавать эти копии. Рассмотрим подробнее каждый вариант:
ХранилищеЗначения и записывается прямо в таблицу базы данных (SQL или файл 1Cv8.1CD).
Выясним причину, по которой пользователь видит путь вроде C:\Users\Admin\Desktop\photo.jpg, даже если файл там давно удален. В справочнике ХранилищеДополнительнойИнформации есть реквизиты, которые фиксируют метаданные исходного файла. Поле "Имя файла" или "Путь" в данном контексте является чисто информационным. Оно сохраняется для того, чтобы вы знали, как назывался файл в момент загрузки и откуда он пришел. Программа не использует этот путь для открытия файла, если он уже был успешно импортирован в систему.
Давайте разберем по шагам, что делает 1С, когда вы дважды кликаете по прикрепленному файлу в списке:
ХранилищеДополнительнойИнформации.%Temp% или подпапки в AppData\Local\Temp.Именно поэтому файл открывается в привычном вам просмотре картинок или PDF-ридере. Даже если в этот момент сервер хранения будет кратковременно недоступен, файл может открыться, если он сохранился в кэше временных файлов вашего компьютера с прошлого сеанса просмотра.
Если вы хотите точно знать, куда уходят ваши данные, проанализируем ситуацию с помощью инструментов разработчика или администратора:
Во-первых, проверьте настройки программы. Перейдите в меню Сервис — Настройки учета — Настройки параметров учета. Там должна быть закладка, связанная с хранением файлов. Если флаг "Хранить файлы в томах на диске" не установлен, значит, все ваши файлы "раздувают" саму базу данных.
Во-вторых, если вы обладаете навыками программирования, можно посмотреть на код извлечения данных. В типовых решениях на обычных формах (как УТ 10) это может выглядеть примерно так:
// Пример логики получения данных
ДанныеХранилища = СсылкаНаЭлементХранилища.Хранилище.Получить();
Если ТипЗнч(ДанныеХранилища) = Тип("ДвоичныеДанные") Тогда
ИмяВременногоФайла = ПолучитьИмяВременногоФайла(СсылкаНаЭлементХранилища.Расширение);
ДанныеХранилища.Записать(ИмяВременногоФайла);
ЗапуститьПриложение(ИмяВременногоФайла);
КонецЕсли;
Здесь метод Получить() извлекает данные из объекта ХранилищеЗначения, после чего они записываются на диск во временную директорию методом Записать(). Именно эта цепочка действий объясняет независимость 1С от оригинального файла на рабочем столе.
Мы выяснили, что "внешний файл" в терминах 1С:УТ 10 — это не прямая ссылка на файл на вашем диске, а копия, помещенная во внутреннее или внешнее хранилище системы. Удаление оригинала — это нормальная практика, так как 1С уже "забрала" все необходимые данные себе. Если ваша база стала слишком тяжелой, рассмотрите возможность настройки Томов хранения файлов, чтобы вынести данные из SQL-таблиц на обычный жесткий диск сервера.