Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
17 июн 2025, 11:22

Настройка формы документа

Автор lhf826, 25 апр 2025, 18:35

0 Пользователей и 1 гость просматривают эту тему.

lhf826

Пытаюсь загружать файлы в форму документа. Создала табличную часть, где одна колонка "ИмяФайла" - название файла, другая "Файл"- хранилище значений. В итоге не саму форму не получается вывести поле "Файл", и при загрузке документа его название подгружается, а сам файл не отображается, следовательно открыть его я тоже не могу.

&НаСервере
Процедура ЗагрузитьФайлНаСервере(ПутьКФайлу)
    Файл = Новый Файл(ПутьКФайлу);
    Если Не Файл.Существует() Тогда
        Возврат;
    КонецЕсли;
   
    // Читаем содержимое файла
    ДвоичныеДанные = Новый ДвоичныеДанные(ПутьКФайлу);
   
    // Добавляем строку (используйте правильное имя табличной части)
    НоваяСтрока = Объект.ТаблицаФайлов.Добавить(); // Или Объект.ТаблицаФайлов
   
    // Заполняем данные
    НоваяСтрока.ИмяФайла = Файл.Имя;
    НоваяСтрока.Файл = Новый ХранилищеЗначения(ДвоичныеДанные);
КонецПроцедуры


antoneus

А в каком виде файл должен отобразиться и где?

lhf826

antoneus, вот как и где я пока не продумала почему-то... сейчас поняла что проще наверное сразу в программах под эти файлы (эксель и т.п). Просто мне надо реализовать загрузку и просмотр их, и чтобы они не с диска открывались а прямо в базе хранились.

depb

Цитата: lhf826 от 25 апр 2025, 19:33antoneus, вот как и где я пока не продумала почему-то... сейчас поняла что проще наверное сразу в программах под эти файлы (эксель и т.п). Просто мне надо реализовать загрузку и просмотр их, и чтобы они не с диска открывались а прямо в базе хранились.

Хранить файлы в базе плохая идея, база раздуется. Правильно хранить их в какой-нибудь папке на диске, а в 1с записывать  лишь путь к этому файлу и создать кнопку для его открытия. Там несложно. У объекта 1с, к которому хотите цеплять файлы создаете реквизит ИмяФайла (тип строка), вытаскиваете его на форму, в свойствах указываете, что реквизит имеет кнопку выбора. Создаем обработчик события НачалоВыбора, туда вставляте процедуру

&НаКлиенте
Процедура ИмяФайлаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ДиалогВыбора.Заголовок = "Выберите файл";

Если ДиалогВыбора.Выбрать() Тогда
Объект.ИмяФайла = ДиалогВыбора.ПолноеИмяФайла;
КонецЕсли;

КонецПроцедуры

И создаем на форме кнопку для открытия файла, туда процедуру

&НаКлиенте
Процедура ОткрытьФайл(Команда)

ЗапуститьПриложение(Объект.ИмяФайла);

КонецПроцедуры

На этом все

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск