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