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

Здравствуйте.

В данной заметке я хочу рассказать как организовать работу с прикрепленными файлами для нового объекта в конфигурациях 1С, которые содержат библиотеку стандартных подсистем (БСП).

Задача. Создать новый документ и для этого документа добавить возможность прикреплять файлы.

Решение данной задачи будем осуществлять на конфигурации «1С: Управление торговлей 11.2», но все действия можно применять и к другим конфигурациям, содержащим БСП (ЗУП 3, БУ 3, ERP 2 и т.д.).

1. Чтобы добавить новый документ необходимо включить возможность редактирования нашей конфигурации.

Снять с поддержки конфигурацию

Редактирование с сохранением поддержки

2. Добавим новый документ с произвольной структурой

Новый документ

3. Добавим копированием новый справочник «БСП_НовыйДокументПрисоединенныеФайлы» и в реквизите «ВладелецФайла» изменим тип на «ДокументСсылка.БСП_НовыйДокумент». Для копирования был выбран справочник «ЗаказКлиентаПрисоединенныеФайлы».

Новый справочник присоединенных файлов

Также не забываем изменить описание и представление объекта.

4. Добавляем в определяемые типы «ВладелецПрисоединенныхФайлов», «ПрисоединенныйФайл», «ПрисоединенныйФайлОбъект» новые объекты.

ПрисоединенныйФайлОбъект

ПрисоединенныйФайлОбъект НовыйТип

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

ПрисоединенныйФайл НовыйТип

ВладелецПрисоединенныхФайлов

ВладелецПрисоединенныхФайлов НовыйТип

5. Если необходимо добавить возможность копирования присоединенных файлов при копировании документа, то необходимо в параметры формы документа добавить параметр «ЗначениеКопирования» и сделать его ключевым.

Копирование присоединенных файлов

В модуль формы добавить процедуру «ПриЗаписиНаСервере».

 
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
	ПрисоединенныеФайлы.ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи, Параметры);
КонецПроцедуры

6. Для отображения в форме списка наличия прикрепленных файлов необходимо доработать форму списка.

Изменим текст запроса списка

 
ВЫБРАТЬ
	ДокументБСП_НовыйДокумент.Ссылка,
	ДокументБСП_НовыйДокумент.ПометкаУдаления,
	ДокументБСП_НовыйДокумент.Номер,
	ДокументБСП_НовыйДокумент.Дата,
	ДокументБСП_НовыйДокумент.Проведен,
	ДокументБСП_НовыйДокумент.Реквизит1,
	ДокументБСП_НовыйДокумент.Реквизит2,
	ДокументБСП_НовыйДокумент.МоментВремени,
	ВЫБОР
		КОГДА НаличиеПрисоединенныхФайлов.ЕстьФайлы ЕСТЬ NULL 
			ТОГДА 1
		КОГДА НаличиеПрисоединенныхФайлов.ЕстьФайлы
			ТОГДА 0
		ИНАЧЕ 1
	КОНЕЦ КАК ЕстьФайлы
ИЗ
	Документ.БСП_НовыйДокумент КАК ДокументБСП_НовыйДокумент
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НаличиеПрисоединенныхФайлов КАК НаличиеПрисоединенныхФайлов
		ПО ДокументБСП_НовыйДокумент.Ссылка = НаличиеПрисоединенныхФайлов.ОбъектСФайлами

В форму списка добавим колонку «ЕстьФайлы» и изменим настройки отображения.

Наличие прикрепленных файлов

7. Тестирование.

Запускаем режим «1С:Предприятие» и с помощью обработки из набора внешних обработок библиотеки стандартных подсистем «ИнструментыРазработчикаОбновлениеВспомогательныхДанных.epf» обновляем наши новые данные.

Обновление вспомогательных данных

Список документов
Список документов с прикрепленными файлами

Форма документа
Кнопка "Файлы"

Прикрепленный файл
Прикрепленный файл документа

Популярность: 11%

Запись опубликована в рубрике Настройка и оптимизация с метками . Добавьте в закладки постоянную ссылку.

16 Responses to Подключение нового объекта конфигурации к подсистеме по работе с файлами

  1. Владимир говорит:

    спасибо за толковую статью

  2. Владимир говорит:

    но без указания типа реквизита владелецФайла в справочнике ЭДПрисоединенныеФайлы не завелось (УТ 11.2.3.177 )

    • Сергей Сопелев говорит:

      Здравствуйте. Про версию 11.2.3.177 ничего не могу сказать, т.к. статься писалась по версии 11.2.3.185, возможной что-то доработали к данному релизу.

  3. Светлана говорит:

    Спасибо. В бухгалтерии КОРП 3.1 все работает

  4. Евгений говорит:

    Спасибо. Полезная статья

  5. Mike Frigin говорит:

    Спасибо!
    Одна из немногих статей размещенных в инете (а ищу я настойчиво), по материалам которой можно быстро создать рабочий код.
    Проверено на БСП 2.3.6.196 в ЕРП 2.2.4.
    Еще раз СПАСИБО 🙂

  6. Дмитрий говорит:

    Также необходимо добавить свой документ в ОбщиеКоманды-ПрисоединенииыеФайлыБП

  7. Алексей говорит:

    ERP 2.1.3.143. В документе перехожу к присоединенным файлам, нажимаю кнопку «Добавить», выбираю необходимый файл, кнопка «Открыть» (стандартный диалог выбора файла Windows) и ERP выдает ошибку: «Ошибка при добавлении присоединенного файла «TestFile.txt»: Не заполнен владелец в файле». Вроде делал все по инструкции, есть идею куда смотреть?

    • Сергей Сопелев говорит:

      Могу предположить, что в новом справочнике, где хранятся файлы, например «КакойтоДокументПрисоединенныеФайлы», в реквизите «ВладелецФайла» указан не верный тип документа

      • Алексей говорит:

        У меня неверно было сформировано имя справочника ПрисоединенныеФайлы, а это оказалось критически важно. Необходимо, чтобы имя этого справочника было сформировано след. образом: ИмяДокументаПрисоединенныеФайлы или ИмяСправочникаПрисоединенныеФайлы. После переименования все заработало.
        Сергей, спасибо за статью, все изложено куда как более понятно, чем в документации к БСП (там прям ужас).

  8. stan.intk говорит:

    Все получилось, своя нетленка, БСП 3.0.2

    Автору — респект…

  9. Яков говорит:

    Добрый день!
    Как появилась кнопка «Файлы»?

    • Сергей Сопелев говорит:

      Добрый день. Данная кнопка появляется автоматически. Пример на сайте создан на версии БСП 2.3.2.72. Если у Вас более новая версия, то возможно есть дополнительные действия.
      Например для 3.0.2 надо в процедуре «ПриСозданииНаСервере» добавить

      
      // СтандартныеПодсистемы.РаботаСФайлами
      ГиперссылкаФайлов = РаботаСФайлами.ГиперссылкаФайлов();
      ГиперссылкаФайлов.Размещение = "КоманднаяПанель";
      РаботаСФайлами.ПриСозданииНаСервере(ЭтотОбъект, ГиперссылкаФайлов);
      // Конец СтандартныеПодсистемы.РаботаСФайлами
      

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.