Программное добавление файла в 1C
Часто есть необходимость программного добавления файла, например к позиции номенклатуры или справочнику договоров.
В типовых конфигурациях на управляемых формах чаще всего используется Библиотека стандартных подсистем (БСП), а значит для каждого справочника к котрому нужно цеплять файл, создается справочник вида НоменклатураПрисоединенныеФайлы.
Файл добавляется в этот специальный справочник.
АдресФайла = "c:image.jpg";
Ф = Новый Файл(АдресФайла);
Расширение = Ф.Расширение;
ИмяБезРасширения = Ф.ИмяБезРасширения;
РазмерФайла = Ф.Размер();
ДвоичныеДанные = Новый ДвоичныеДанные(АдресФайла);
НоваяКартинка = Справочники.НоменклатураПрисоединенныеФайлы.СоздатьЭлемент();
НоваяКартинка.Наименование = ИмяБезРасширения;
НоваяКартинка.ВладелецФайла = НоменклатураПоКоду(Строка.Код);
НоваяКартинка.ТипХраненияФайла = Перечисления.ТипыХраненияФайлов.ВИнформационнойБазе;
НоваяКартинка.ДатаСоздания = ТекущаяДата();
НоваяКартинка.ДатаМодификацииУниверсальная = ТекущаяДата();
НоваяКартинка.СтатусИзвлеченияТекста = Перечисления.СтатусыИзвлеченияТекстаФайлов.Извлечен;
НоваяКартинка.ФайлХранилище = Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных());
НоваяКартинка.Расширение = Расширение;
НоваяКартинка.Размер = РазмерФайла;
НоваяКартинка.Записать();
РаботаСФайламиСлужебный.ЗаписатьФайлВИнформационнуюБазу(НоваяКартинка.Ссылка, ДвоичныеДанные);
Важно не забыть указать значение реквизита ДатаМодификацииУниверсальная, иначе загруженный программно файл потом не открывается.