Имя: Пароль:
1C
 
Механизм прикрепленных файлов без изменения конфигурации
,
0 Wefast
 
08.12.15
15:07
Как можно организовать прикрепление файлов с помощью внешней обработки не вмешиваясь в конфигурацию?
1 asady
 
08.12.15
15:09
(0) конфу озвучь (релиз, платформу)
2 butterbean
 
08.12.15
15:09
можно конечно, делай все на внешних файлах
3 Живой Ископаемый
 
08.12.15
15:09
Ну, обработка должна соотвествовать протоколу делегата, который реализует этот функционал.
4 Живой Ископаемый
 
08.12.15
15:10
вернее не реализует, а объявляет.. А обработка должна реализовать
5 Wefast
 
08.12.15
15:13
УСО 1.3 (обычные формы)
6 oslokot
 
08.12.15
15:15
(5) там и так есть механизм прикрепления файлов, этож упп
7 Wefast
 
08.12.15
15:16
(4) я ничего не понял.
(2) Как именно? в чем хранить информацию по путях к файлам и связи их с документами.
Не делать же какой то xml файл откуда каждый раз все считывать и куда записывать новые данные?
8 Wefast
 
08.12.15
15:16
(6) ну у каких то документов он есть, а у нужных заказчику - нет
9 Wefast
 
08.12.15
15:17
(6) там чтобы подключить нужны модуль каждого необходимо документа править и справочник где хранится инфа
10 butterbean
 
08.12.15
15:17
(7) если нет доп. свойств, то все хранить в файлах
11 Fish
 
08.12.15
15:17
(8) Тогда без изменения конфы - имхо никак.
12 sash-ml
 
08.12.15
15:22
через механизм внешних печатных форм например, жмакаешь печать а там внезапно "Прикрепить файл" и "Посмотреть прикрепленные файлы"
13 Wefast
 
08.12.15
15:31
(10) а если есть? Делаю ВПО, они же вроде как прикрепляются не к документам а к подсистемам. Ну и допустим при ее вызове открывается форма со списком файлов(отбор по владельцу файла видимо) и кнопка открыть или открыть к примеру каталог где файл.
Или как то иначе лучше?

(12) Хм, допустим. При вызове функции печать открывается форма вопроса? А и в зависимости от ответа открывается форма списка или диалог прикрепления файлов? И где в таком случае храняться файлы и информация о них? Или ты имел ввиду что то иное?
14 Живой Ископаемый
 
08.12.15
15:33
(13) Почему эти вопросы задаешь ты вместо того, чтобы рассказать что именно тебе нужно - открыть обработку или поместить выбранные файлы в какую-то структуру или что-то еще
15 Wefast
 
08.12.15
15:37
(14) мне нужно к документам прикреплять файлы, не изменяя конфигурацию. Ну и чтобы это не выглядело каким то костылем. Хранить информацию о путях и владельцах файлов считаю бредовой идеей. Будет все тупить постоянно и работать с файлом таким больше 1 человека не смогут
16 Wefast
 
08.12.15
15:38
(15) где хранить файлы при этом конечно важно и я открыт для разных предложений. Эдакий мозговой штурм
17 ГеннадийУО
 
08.12.15
15:38
(15) Храни во внешней базе, в своей храни ссылки на объект во внешней базе.
18 Живой Ископаемый
 
08.12.15
15:42
2(15) Если в конфе нет способа привязывать к документу файл тем или иным образом, то не меняя конфу не получится.
19 Живой Ископаемый
 
08.12.15
15:43
но чисто так... а доп.реквизиты для документов можно ообъявить?
20 Lama12
 
08.12.15
15:43
(0) В принципе все уже написано. Но, подозреваю, что тебе нужно не только прикреплять файлы, но и видеть что они прикреплены? С прикреплением проблем возникнуть не должно, а вот с отображением прикрепленных... Х.з. как сделать не изменяя форм,что б можно было брать информацию из других баз. Ну разве что расширения использовать, но это можно только в новых форматах конфигурации и на новой платформе.
21 Lama12
 
08.12.15
15:45
(18) Можно. Делаю свою базу. В целевой запускаю обработку которая "прикрепляет" файл. По сути обработка будет делать одну последовательность действий. В мою базу будет помещать ссылку на файл (или сам фал), и тип и GUID объекта, из целевой базы, к которому прикрепляется файл. В результате целевая база вообще не меняется. Ссылки и файлы хранятся в другой базе.
22 User_Agronom
 
08.12.15
15:52
(11) Если ты не знаешь как, то это не значит, что невозможно.
Например,
Файлы в шару, путь с именем в комментарий ;)
Ну или в свойства объекта.
23 Wefast
 
08.12.15
15:54
(19) ну там есть какие то свойства в которых можно например хранить строковый тип данных( я подумал записывать туда путь к файлоам. ОБработкой считывать от туда их. Но пока вижу себе это очень смутно.
(21) Т.е. делаю к примеру свою конфигурацию. И из своей УСО подключаюсь к ней. И можно работать как с текущей. К примеру ДругаяБаза.Справочнки.МойСправочник.СоздатьЭлемент()

Или там загружать/выгружать данные придется?
Очень инетересный вариант. Я правда не знаю возникнут ли какие то проблемы с лицензией
24 Лефмихалыч
 
08.12.15
15:54
(18) да схренали?!
Что мешает поднять вебсервис (хоть от документооборота) и с этим вебсервисом общаться своей обработкой в которой будут выбираться на форме объекы, к которым надо присобачить файлы, и сами файлы.
Вот просмотреть или что-либо сделать с фалйами без обработки будет нельзя - да. Но с обработкой-то чо бы нет?
25 sash-ml
 
08.12.15
15:56
+(12) + (13)
по идее у тебя в некоторых справочниках есть кнопка "файлы"
Имитацию нажатия это кнопки делаешь через механизм внешних печатных форм.
Но одно изменение все равно придётся сделать, в справочнике "ХранилищеДополнительнойИнформации" поле объект сделать любая ссылка.

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

    ФормаФайлов.ДополнительныеФайлы.Отбор.Объект.Использование                       = Истина;
    ФормаФайлов.ДополнительныеФайлы.Отбор.Объект.Значение                            = Ссылка;
    ФормаФайлов.ЭлементыФормы.ДополнительныеФайлы.НастройкаОтбора.Объект.Доступность = Ложь;
    ФормаФайлов.ЭлементыФормы.ДополнительныеФайлы.Колонки.Объект.Видимость           = Ложь;

    ОбязательныеОтборы = Новый Структура;
    ОбязательныеОтборы.Вставить("Объект",Ссылка);

    ФормаФайлов.ОбязательныеОтборы = ОбязательныеОтборы;
    
    ФормаФайлов.Открыть();
26 Живой Ископаемый
 
08.12.15
16:01
2(24) а... да...
27 Wefast
 
08.12.15
16:02
(25) Да, тоже интересный вариант, менее трудозатратный с наименьшим вмешательством.
(24) Не знаю что за веб сервис такой, немного погуглив все равно ничего не понял как оно и что. Но спасибо за направление
28 Fish
 
08.12.15
16:03
(22) И что это даст? Например, надо к документу прикрепить 10 файлов. Все их в комментарий писать? А если документ проведён и его нельзя перепроводить? И как потом их открывать на просмотр? И вообще, автор подробно задачу не описал, что именно и для чего ему нужно, так что всё равно это гадание на кофейной гуще.
29 Stim
 
08.12.15
16:04
>>поднять вебсервис

А чем com_объекты-то плохи?
Что за привычка одинесников по каждому пустяку расчехлять зенитные орудия
30 Wefast
 
08.12.15
16:07
(28) подробной задачи и нет, мне нужны все возможные варианты которые я смогу обдумать, выбрать парочку вариантов и озвучить заказчику или поставить перед фактом.

(29) com бъекты это же работа с файлами обычными или под это подходит и подключение к другой ИБ?
31 ejikbeznojek
 
08.12.15
16:07
Может просто обзывать файлики КодЭлементаСправочника+элементсправочника.метаданные().Имя+".jpg"
И кидать в определённую папку?
И при необходимости открывать по такому же принципу?
32 ejikbeznojek
 
08.12.15
16:08
(31) Ну или если документ, то не код, а номер
33 ГеннадийУО
 
08.12.15
16:08
(24) О, кстати если есть Документооборот, в нем какраз и можно хранить эти файлы :)
34 Stim
 
08.12.15
16:08
(30) комобъекты - это когда ты в рабочей базе подключаешься к другой базе по ком-соединению и получаешь от неё файлы по ид элемента
35 Fish
 
08.12.15
16:08
(30) Лично я бы выбрал простейший на мой взгляд: добавил в нужные документы стандартный функционал, уже существующий в конфе. Доработок минимум, зато полное единообразие.
36 sash-ml
 
08.12.15
16:10
(30) а че нельзя конфу менять-то, она что на типовая на поддержке?
37 Phace
 
08.12.15
16:11
(35) Подозреваю что автор не хочет снимать конфигурацию с поддержки, а так конечно, один новый регистр, одна форма списка регистра и готово.
38 Лефмихалыч
 
08.12.15
16:15
(27) >Не знаю что за веб сервис такой
это повод узнать

В конфигурации 1С Документооборот есть веб-сервис, позволяющий транспарентно хранить в документообороте файлы, прикрепляемые в других конфигурациях.
39 Лефмихалыч
 
08.12.15
16:16
а можно и свой вебсервис сделать для тех же целей. А можно и без вебсервиса, но тогда права доступа на место хранения файлов должны будут быть у всех и полные, а это не надежно. Вебсервис нужен, чтобы изолировать фактическое хранилище важных данных за урезанным в умат интерфейсом.
40 Fish
 
08.12.15
16:17
(37) Так а зачем её снимать с поддержки? И нового регистра не нужно, в конфе уже всё есть, надо только прицепить этот функционал к другим объектам.
41 Wefast
 
08.12.15
16:22
Мне то вот все равно, я бы добавил в модуль формы каждого документа функцию существующего функционала. Вывел команду "Файлы" на форму. Исправил бы справочник с этими файлами и все.

Но заказчик узнал что при обновление это дополнительный геромой. Типовую то они и сами может обновлять будут, а так им еще придется платить каждый раз
42 Wefast
 
08.12.15
16:23
(38) ну только если свой делать, не покупать же им еще документооборот. Было бы забавно.
43 Phace
 
08.12.15
16:23
(37)+ А иначе в любой реализации (без изменения конфигурации) нужно будет предусмотреть:

1. Удаление прикрепленных файлов при удалении объекта (например, документа);

2. Если хранятся только пути к файлам, то предусмотреть возможность в дальнейшем правил расположения файлов. А то у нас был случай, сканер перестал работать с папкой т.к. там накопилось несколько десятков тысяч файлов, пришлось разбивать все по нескольким папкам. И в таком случае недостаточно только смены каталога в константе.

3. Если файлы не хранятся в базе, а лежат в расшаренном каталоге, то любой из пользователей может его удалить или изменить имя, и данные будут уже недостоверными.
44 Лефмихалыч
 
08.12.15
16:25
(41) а формы хорошие управляемые или омерзительные обычные?
45 Лефмихалыч
 
08.12.15
16:27
(42) ну, можно предложить - конфа-то полезная, могут из нее много добра получить. Ну, и ДО не обязательно - можно и без него, сделать самопильное какое-нибудь говно уёжищьное и в нем хранить файлы.
46 Fish
 
08.12.15
16:27
(44) Это надо в мемы :)
47 Wefast
 
08.12.15
16:28
(44) омерзительные обычные
48 Phace
 
08.12.15
16:28
(40) вообще да, функционал в большинстве конфигураций есть, но без снятия с поддержки не взлетит все одно.
49 Лефмихалыч
 
08.12.15
16:28
(47) фу! переходите на хорошие - с ними не надо в каждую форму вламываться ради такой глупой задачи.
50 Phace
 
08.12.15
16:29
(49) поддержка она и "хорошие" изменить не даст
51 Лефмихалыч
 
08.12.15
16:35
(50) достаточно снять только корень и гуляй на все. Обновляемость cfu-шками ты от этого не потеряешь
52 sash-ml
 
08.12.15
16:41
(41) обычно такие конфы как УСО не взлетают без допила.
Так что скорее всего там включена возможность изменения.
а вот во все формы лезть это не очень приятный момент при обновлении. Бюджет какой вообще?
53 Phace
 
08.12.15
16:41
(50) Да я то не против, но автору нельзя.

А так можно было бы создать отдельно простейшую конфигурацию, и обработку которая из основной базы в новую помещает и считывает данные об объекте (тип объекта, ИД, сами данные файла, дату добавления), в расширении конфигурации новые команды ко всем необходимым объектам, чтобы кнопку в форме документов/справочников вывести, а впрочем это все для управляемых форм. В обычных без отдельного вызова обработки и выбора в ней конкретного документа пожалуй никак.
54 Лефмихалыч
 
08.12.15
16:44
(53) это уклебандопецкое УСО, как и почти все отраслевые, наверняка еще полтораста лет будет в режиме совместимости с 8.0 и до расширений, как и до управляемых форм ему, как до китая на карачках из Калининграда...
55 Wefast
 
08.12.15
17:07
Ну они внедряют(УСОшники) несколько лет уже управляемые формы. Но функционал частичный, видимо просто для галочки.

Есть еще вариант создавать файл с описанием и сами файлы в отдельной папке к примеру разбив по годам и месяцам или по типам документов. Обработка при открытие считывает данные из файла и выводит в форму.
А потом записывает все обратно если что то добавилось.
Я правда не уверен как это будет работать если несколько пользователей захотят открыть этот файл.
56 sash-ml
 
08.12.15
17:12
(55) а они что, хотят редактировать вложения, и сразу сохранять?
57 Wefast
 
09.12.15
00:08
(56) не знаю как они хотят, тут вопрос в том что они могут сделать.
Попробую записывать пути в доп св-ва. а файлы будут хранится где то в локальной сети
58 timurhv
 
09.12.15
00:19
(9)(53)
+ для размышления: можно в базу SQL писать отдельную + проблема с бэкапами решается
http://catalog.mista.ru/public/77329/
59 Wefast
 
09.12.15
10:40
В общем встал вопрос а как собственно обработку из документа вызывать.
Думал из печати, но она тоже не во всех документах.
Думал к таб частям, но почти у всех нет командной панели, чтобы эта кнопка была видна
60 Phace
 
09.12.15
14:06
(59) Так писали же уже выше что без снятия с поддержки никак из обычных форм, только из управляемых.
61 Лефмихалыч
 
09.12.15
14:16
(59) файл...открыть, Карл