Здравствуйте.
В данной заметке я хочу рассказать как организовать работу с прикрепленными файлами для нового объекта в конфигурациях 1С, которые содержат библиотеку стандартных подсистем (БСП).
Задача. Создать новый документ и для этого документа добавить возможность прикреплять файлы.
Решение данной задачи будем осуществлять на конфигурации «1С: Управление торговлей 11.2», но все действия можно применять и к другим конфигурациям, содержащим БСП (ЗУП 3, БУ 3, ERP 2 и т.д.).
1. Чтобы добавить новый документ необходимо включить возможность редактирования нашей конфигурации.
2. Добавим новый документ с произвольной структурой
3. Добавим копированием новый справочник «БСП_НовыйДокументПрисоединенныеФайлы» и в реквизите «ВладелецФайла» изменим тип на «ДокументСсылка.БСП_НовыйДокумент». Для копирования был выбран справочник «ЗаказКлиентаПрисоединенныеФайлы».
Также не забываем изменить описание и представление объекта.
4. Добавляем в определяемые типы «ВладелецПрисоединенныхФайлов», «ПрисоединенныйФайл», «ПрисоединенныйФайлОбъект» новые объекты.
5. Если необходимо добавить возможность копирования присоединенных файлов при копировании документа, то необходимо в параметры формы документа добавить параметр «ЗначениеКопирования» и сделать его ключевым.
В модуль формы добавить процедуру «ПриЗаписиНаСервере».
&НаСервере
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
ПрисоединенныеФайлы.ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи, Параметры);
КонецПроцедуры
6. Для отображения в форме списка наличия прикрепленных файлов необходимо доработать форму списка.
Изменим текст запроса списка
ВЫБРАТЬ
ДокументБСП_НовыйДокумент.Ссылка,
ДокументБСП_НовыйДокумент.ПометкаУдаления,
ДокументБСП_НовыйДокумент.Номер,
ДокументБСП_НовыйДокумент.Дата,
ДокументБСП_НовыйДокумент.Проведен,
ДокументБСП_НовыйДокумент.Реквизит1,
ДокументБСП_НовыйДокумент.Реквизит2,
ДокументБСП_НовыйДокумент.МоментВремени,
ВЫБОР
КОГДА НаличиеПрисоединенныхФайлов.ЕстьФайлы ЕСТЬ NULL
ТОГДА 1
КОГДА НаличиеПрисоединенныхФайлов.ЕстьФайлы
ТОГДА 0
ИНАЧЕ 1
КОНЕЦ КАК ЕстьФайлы
ИЗ
Документ.БСП_НовыйДокумент КАК ДокументБСП_НовыйДокумент
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НаличиеПрисоединенныхФайлов КАК НаличиеПрисоединенныхФайлов
ПО ДокументБСП_НовыйДокумент.Ссылка = НаличиеПрисоединенныхФайлов.ОбъектСФайлами
В форму списка добавим колонку «ЕстьФайлы» и изменим настройки отображения.
7. Тестирование.
Запускаем режим «1С:Предприятие» и с помощью обработки из набора внешних обработок библиотеки стандартных подсистем «ИнструментыРазработчикаОбновлениеВспомогательныхДанных.epf» обновляем наши новые данные.
Список документов
Форма документа
Прикрепленный файл
Популярность: 27%
Запись опубликована в рубрике Настройка и оптимизация с метками БСП. Добавьте в закладки постоянную ссылку.
|
|||
Sayan_mi
16.06.20 — 09:44 |
Есть ЕРП 2.4.10.94 на платформе 8.3.16.1063. |
||
Галахад
1 — 16.06.20 — 09:48 |
Наверное, программировать нужно… |
||
2S
2 — 16.06.20 — 09:49 |
(0) там не только лишь справочники надо создать |
||
Волшебник
Модератор 3 — 16.06.20 — 09:49 |
Нужно поставить точку останова в модуле формы элементы справочника СметыЗаказчиков на ту строчку, где загружается картинка и посмотреть. |
||
Sayan_mi
4 — 16.06.20 — 09:57 |
(2) А по подробнее? |
||
yzimin
5 — 16.06.20 — 10:00 |
В БСП хорошее описание как это сделать. В двух-словах: создать новый справочник, добавить владельца в определяемый тип |
||
2S
6 — 16.06.20 — 10:03 |
(4) гугли, инфы море |
||
Волшебник
Модератор 7 — 16.06.20 — 10:05 |
(4) У вас ошибка при добавлении присоединенного файла, а не ошибка вывода картинки на форму. |
||
Fish
8 — 16.06.20 — 10:29 |
(4) В определяемые типы свой справочник добавил? |
||
Sayan_mi 9 — 16.06.20 — 10:33 |
(5)(8) Писал не я, надеялся что в определяемые типы справочники добавил, также как и в подписку. Оказалось нет. Из за этого и вылетало. Сейчас всё работает. Спасибо. |
Ошибка? Это не ошибка, это системная функция. |
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
-
Добрый день! УТ 11.1.10
Пытаюсь реализовать присоединение фотографий к документу.
Содрал все из Справочник.Номенклатура формы и процедуры ,в общем все 1 в 1
Но при добавлении фотки к документу вылетает ошибка{ОбщийМодуль.ПрисоединенныеФайлыСлужебный.Модуль(1449)}: Ошибка при добавлении присоединенного файла. У владельца файлов "Документ cервиса 00СЦ-0770 от 24.02.2016 11:31:50" типа "Документ cервиса" не указан основной справочник для хранения файлов. В этом случае параметр "НоваяСсылкаНаФайл" должен быть указан. ВызватьИсключение СокрЛП(ТекстОшибки);
Вроде бы все делал как у справочника номенклатура но не могу понять где искать этот НоваяСсылкаНаФайл
Вот из общего модуля процедура
// Возвращает имя справочника для указанного владельца или вызывает исключение, // если их более одного. // // Параметры: // ВладелецФайлов - Ссылка - объект, к которому добавляется файл. // ИмяСправочника - Строка, если заполнено, то выполняется проверка // наличия справочника среди справочников владельца для хранения файлов. // Если не заполнено, возвращает имя основного справочника. // ЗаголовокОшибки - Строка - заголовок ошибки. // - Неопределено - не вызывать исключение, а вернуть пустую строку. // ИмяПараметра - Строка - имя требуемого параметра для определения имени справочника. // ОкончаниеОшибки - Строка - окончание ошибки (только для случая, когда ИмяПараметра = Неопределено). // Функция ИмяСправочникаХраненияФайлов(ВладелецФайлов, ИмяСправочника = "", ЗаголовокОшибки = Неопределено, ОкончаниеОшибки = Неопределено) Экспорт НеВызыватьИсключение = (ЗаголовокОшибки = Неопределено); ИменаСправочников = ИменаСправочниковХраненияФайлов(ВладелецФайлов, НеВызыватьИсключение); Если ИменаСправочников.Количество() = 0 Тогда Если НеВызыватьИсключение Тогда Возврат ""; КонецЕсли; ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ЗаголовокОшибки + Символы.ПС + НСтр("ru = 'У владельца файлов ""%1"" типа ""%2"" |нет справочников для хранения файлов.'"), Строка(ВладелецФайлов), Строка(ТипЗнч(ВладелецФайлов))); КонецЕсли; Если ЗначениеЗаполнено(ИмяСправочника) Тогда Если ИменаСправочников[ИмяСправочника] <> Неопределено Тогда Возврат ИмяСправочника; КонецЕсли; Если НеВызыватьИсключение Тогда Возврат ""; КонецЕсли; ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ЗаголовокОшибки + Символы.ПС + НСтр("ru = 'У владельца файлов ""%1"" типа ""%2"" |нет справочника ""%3"" для хранения файлов.'"), Строка(ВладелецФайлов), Строка(ТипЗнч(ВладелецФайлов)), Строка(ИмяСправочника)); КонецЕсли; ОсновнойСправочник = ""; Для каждого КлючИЗначение Из ИменаСправочников Цикл Если КлючИЗначение.Значение = Истина Тогда ОсновнойСправочник = КлючИЗначение.Ключ; Прервать; КонецЕсли; КонецЦикла; Если ЗначениеЗаполнено(ОсновнойСправочник) Тогда Возврат ОсновнойСправочник; КонецЕсли; Если НеВызыватьИсключение Тогда Возврат ""; КонецЕсли; ШаблонПричиныОшибки = НСтр("ru = 'У владельца файлов ""%1"" типа ""%2"" |не указан основной справочник для хранения файлов.'") + Символы.ПС; ПричинаОшибки = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( ШаблонПричиныОшибки, Строка(ВладелецФайлов), Строка(ТипЗнч(ВладелецФайлов))); ТекстОшибки = ЗаголовокОшибки + Символы.ПС + ПричинаОшибки + Символы.ПС + ОкончаниеОшибки; ВызватьИсключение СокрЛП(ТекстОшибки); КонецФункции
-
Offline
alexburn
Модераторы
Команда форума
Модератор- Регистрация:
- 5 янв 2009
- Сообщения:
- 15.150
- Симпатии:
- 560
- Баллы:
- 204
На ИТС почитайте статьи по БСП, как и что нужно, а самое главное где, нужно прописать код, чтобы не изобретать велосипед
-
Да вот нет доступа к ИТС
Может ткнете на что то похожее?
Поиском все излазил ну нет нигде НоваяСсылкаНаФайл где указать этот параметр.. -
Offline
alexburn
Модераторы
Команда форума
Модератор- Регистрация:
- 5 янв 2009
- Сообщения:
- 15.150
- Симпатии:
- 560
- Баллы:
- 204
Скорее всего у какого-нибудь справочника нужно установить еще один тип документа, которому разрешено присоединять файлы. Плюс еще, возможно, в подписках на событиях возможно тоже нужно проставить. Это все на коленке написано
-
Вот если я делаю так
Общую команда «ПрисоединенныеФайлы», в свойств «Тип параметра команды» указываю нужный объект (например, «РеализацияТоваров»).
Справочник «Файлы». Указываю нужный объект в типе реквизита «ВладелецФайла».
То все нормально присоединяется, если же по аналогии со справочником Номенклатура то хрен там два -
Offline
alexburn
Модераторы
Команда форума
Модератор- Регистрация:
- 5 янв 2009
- Сообщения:
- 15.150
- Симпатии:
- 560
- Баллы:
- 204
Потому что нужно почитать про внедрение подсистемы хранения файлов на ИТС
-
Вот как бы в конфигурации нашел описание
Но как ее передать что то не допераю… -
Offline
alexburn
Модераторы
Команда форума
Модератор- Регистрация:
- 5 янв 2009
- Сообщения:
- 15.150
- Симпатии:
- 560
- Баллы:
- 204
Ну зайдите в этот справочник — хранения файлов владельца, посмотрите какие реквизиты, какие типы используются. Без документации — скуритесь что-то внедрять