Skip to content

Присоединенные файлы

Настройка определяемых типов

Включить собственный объект в определяемые типы:

  • ВладелецПрисоединенныхФайлов
  • ВладелецПрисоединенныхФайловОбъект (только для справочников)
  • ВладелецПрисоединенныхФайловБЗК (в ЗУП)

Создание справочника для хранения информации о файлах

  • Скопировать любой стандартный справочник БСП, имя которого заканчивается на ПрисоединенныеФайлы. Например: АнкетаПокупателяПрисоединенныеФайлы.
  • Скопированный справочник переименовать, следуя шаблону: <МойСправочник>ПрисоединенныеФайлы. Например: СН_АвтотранспортПрисоединенныеФайлы
  • В скопированном справочнике <МойСправочник>ПрисоединенныеФайлы необходимо откорректировать тип реквизита ВладелецФайла. Как тип необходимо указать тот объект, который подключается к подсистеме. Например СН_АвтотранспортСсылка
  • Справочник <МойСправочник>ПрисоединенныеФайлы нужно включить в определяемые типы ПрисоединенныйФайл и ПрисоединенныйФайлОбъект.

Настройка формы объекта

Создать форму элемента (при отсутствии). В модуле формы необходимо добавить следующий код:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
// При необходимости, гиперссылка
// СтандартныеПодсистемы.РаботаСФайлами
ПараметрыГиперссылки = РаботаСФайлами.ГиперссылкаФайлов();
ПараметрыГиперссылки.Размещение = "КоманднаяПанель";
РаботаСФайлами.ПриСозданииНаСервере(ЭтотОбъект, ПараметрыГиперссылки);
// Конец СтандартныеПодсистемы.РаботаСФайлами
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытии(Отказ)
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
// При необходимости, гиперссылка
// СтандартныеПодсистемы.РаботаСФайлами
РаботаСФайламиКлиент.ПриОткрытии(ЭтотОбъект, Отказ);
// Конец СтандартныеПодсистемы.РаботаСФайлами
КонецПроцедуры
&НаСервере
Процедура ПриЧтенииНаСервере(ТекущийОбъект)
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
КонецПроцедуры
&НаКлиенте
Процедура ПослеЗаписи(ПараметрыЗаписи)
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКомандыКлиент.ПослеЗаписи(ЭтотОбъект, Объект, ПараметрыЗаписи);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
КонецПроцедуры
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
// При необходимости, гиперссылка
// СтандартныеПодсистемы.РаботаСФайлами
РаботаСФайлами.ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи, ЭтотОбъект);
// Конец СтандартныеПодсистемы.РаботаСФайлами
КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
// При необходимости, гиперссылка
// СтандартныеПодсистемы.РаботаСФайлами
РаботаСФайламиКлиент.ОбработкаОповещения(ЭтотОбъект, ИмяСобытия);
// Конец СтандартныеПодсистемы.РаботаСФайлами
КонецПроцедуры
// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
КонецПроцедуры
&НаСервере
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Объект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Объект);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
// ПРИ ИСПОЛЬЗОВАНИИ ГИПЕРССЫЛКИ ИЗ ПОДСИСТЕМЫ "РАБОТА С ФАЙЛАМИ"
// СтандартныеПодсистемы.РаботаСФайлами
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраНажатие(Элемент, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраНажатие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПеретаскивание(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраПеретаскивание(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПолеПредпросмотраПроверкаПеретаскивания(Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка)
РаботаСФайламиКлиент.ПолеПредпросмотраПроверкаПеретаскивания(ЭтотОбъект, Элемент, ПараметрыПеретаскивания, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КомандаПанелиПрисоединенныхФайлов(Команда)
РаботаСФайламиКлиент.КомандаУправленияПрисоединеннымиФайлами(ЭтотОбъект, Команда);
КонецПроцедуры

Настройка формы списка

Подключение к программному интерфейсу

Создать форму списка (при отсутствии). В модуле формы необходимо добавить следующий код:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКоманды.ПриСозданииНаСервере(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
КонецПроцедуры
&НаКлиенте
Процедура <ИмяСписка>ПриАктивизацииСтроки(Элемент)
// СтандартныеПодсистемы.ПодключаемыеКоманды
ПодключаемыеКомандыКлиент.НачатьОбновлениеКоманд(ЭтотОбъект);
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды
КонецПроцедуры
// СтандартныеПодсистемы.ПодключаемыеКоманды
&НаКлиенте
Процедура Подключаемый_ВыполнитьКоманду(Команда)
ПодключаемыеКомандыКлиент.НачатьВыполнениеКоманды(ЭтотОбъект, Команда, Элементы.Список);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ПродолжитьВыполнениеКомандыНаСервере(ПараметрыВыполнения, ДополнительныеПараметры) Экспорт
ВыполнитьКомандуНаСервере(ПараметрыВыполнения);
КонецПроцедуры
&НаСервере
Процедура ВыполнитьКомандуНаСервере(ПараметрыВыполнения)
ПодключаемыеКоманды.ВыполнитьКоманду(ЭтотОбъект, ПараметрыВыполнения, Элементы.Список);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбновитьКоманды()
ПодключаемыеКомандыКлиентСервер.ОбновитьКоманды(ЭтотОбъект, Элементы.Список);
КонецПроцедуры
// Конец СтандартныеПодсистемы.ПодключаемыеКоманды

Вывод изображения скрепки в список

  • Определить запрос для списка как Произвольный

Информация о наличии файлов в БСП хранится в регистре сведений НаличиеФайлов, соответственно для получения информации необходимо присоединить этот регистр к основной таблице. Регистр сведений “Наличие файлов” содержит единственное измерение с типом ОпределяемыйТип.ВладелецПрисоединенныхФайлов, по которому и будет осуществляться соединение.

  • В настройках списка на вкладке “Запрос” добавьте еще одно поле “ЕстьФайлы”, полученное в результате левого соединения с регистром “Наличие файлов”. В простейшем варианте запрос будет выглядеть так:
ВЫБРАТЬ
ДокументЗаявкаНаРазработку.Ссылка КАК Ссылка,
//Произвольные поля,
ВЫБОР
КОГДА НаличиеФайлов.ЕстьФайлы ЕСТЬ NULL
ТОГДА 0
КОГДА НаличиеФайлов.ЕстьФайлы
ТОГДА 1
ИНАЧЕ 0
КОНЕЦ КАК ЕстьФайлы
ИЗ
Документ.ЗаявкаНаРазработку КАК ДокументЗаявкаНаРазработку
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НаличиеФайлов КАК НаличиеФайлов
ПО ДокументЗаявкаНаРазработку.Ссылка = НаличиеФайлов.ОбъектСФайлами
  • После сохранения произвольного запроса необходимо вывести новое поле ЕстьФайлы в таблицу формы. В свойствах этого реквизита устанавливаем свойство Вид в значение Поле картинки, свойство ПоложениеЗаголовка в значение Нет, а в свойстве КартинкаЗначений выбираем стандартную БСПшную картинку КоллекцияСкрепка, которая находится во вкладке Из конфигурации