Имя: Пароль:
1C
1С v8
v8: БСП (ПрисоединеныеФайлы)-отдельный спр. для каждого типа объекта. Это нормально?
0 VVi3ard
 
29.08.13
18:49
Внедряю БСП и столкнулся со странным на мой взгляд требованием:

Для каждого типа объекта для которого я хочу хранить прикрепленные файлы требуется заводить отдельный справочник вида <Префикс>ПрисоединенныеФайлы.

Мне нужно для 9 справочников хранить прикрепленные файлы, получается я должен сделать 9 одинаковых справочников <Префикс>ПрисоединенныеФайлы

Вот хотел бы обсудить, может как то по другому можно, ну и вообще хотелось бы понять почему разработчики БСП пошли по такому странному пути.

p.s. Я понимаю что можно использовать подсистему Работа с файлами, но на мой взгляд она тяжела для "просто хранить приложенные файлы" и больше подходит для совместной работы и редактирования файлов.
1 Джинн
 
29.08.13
18:50
Зачем для каждого? Что-то не то Вы делаете.
2 Джинн
 
29.08.13
18:53
Справочник Файлы, реквизит ВладелецФайла - туда запихать Ваш справочник.

Команда ПрисоединенныеФайлы - туда тоже в параметры команды.

И вроде все. Но может чего забыл - давно не брал шашку в руки.
3 pumbaEO
 
29.08.13
19:29
ну типа что бы в файловом варианте дольше времени не перемахнуть в 4 гига на таблицу.
4 Джинн
 
29.08.13
20:59
(3)  откуда 4гига?
5 Ленинград
 
29.08.13
21:01
Был дикий срач с тролингом, выяснили что для РЛСа все
6 banco
 
29.08.13
21:35
(0) да, для каждого объекта свой справочник ПрисоединенныеФайлы. по мне так правильнее, чем 1 справочник для всех объектов  с файлами.
7 Aleksey
 
29.08.13
21:57
(6) может тогда пора вернуть отдельный справочник для номенклатуры и материалов? А так же не забыть контрагентов - разделить покупателей и поставщиков
8 banco
 
29.08.13
23:04
(7) если тебе так нравится, то можешь делать, я не против
9 IamAlexy
 
29.08.13
23:12
(3) какие 4 гига если там хранятся в рабочем режиме только пути к файлам ?
10 banco
 
29.08.13
23:12
(7) а что не нравится в таком подходе? может есть какие то проблемы о которых я не знаю? а с одним справочником, например как в ут 10.3 ХранилищеДополнительнойИнформации, например были проблемы с настройкой прав к этому справочнику.
11 IamAlexy
 
29.08.13
23:12
(7) есть 2 подсистемы:

одна на справочниках - для РЛС - проталкивается "по умолчанию"
вторая - в общем справочнике и регистре - по умолчанию отключена  но в ней есть версионирование файлов.
12 IamAlexy
 
29.08.13
23:13
(10) он видимо любитель делать всю конфигурацию на одном справочнике..
и на одном документе
13 Лефмихалыч
 
29.08.13
23:13
чтобы облегчить rls'ы и прочие однояйцевые дескрипотры
14 VVi3ard
 
30.08.13
10:04
(10) не нравится то что если понадобится рефакторинг этого справочника придется 9 одинаковых изменений делать, и в целом дерево метаданных итак уже под 700 объектов...

(12) Я за декомпозицию отдельными руками но тогда когда это обусловлено здравым смыслом, все таки декомпозиция и копипаста это немного разные вещи.

(13), (5) Да похоже для РЛС, будем надеяться что эти справочники не будут часто изменятся и не придется каждый раз каждый из низ отдельно менять.

(11) 2я подсистема РаботаСФайлами? Если да то он предназначена именно для работы с файлами, и значительно тяжелее, использовать её для хранения прикрепленных файлов совсем не вариант.
И на мой взгляд РЛС там значительно тяжелее.

(1),(2) увы так не получится, это первое что я попробовал.

Спасибо всем за информацию, хотя бы легче стало от того что есть понимание зачем так сделано.
15 Лефмихалыч
 
30.08.13
13:12
(14) >будем надеяться что эти справочники не будут часто изменятся
Чего ты там часто менять собрался? Там полтора реквизита...
16 VVi3ard
 
30.08.13
15:38
(15) я  ничего, а вот 1С запросто, реквизитов там 19 + 2 ТЧ 8 и 3 реквизита итого 30 реквизитов.  

Если кому еше интересно то в "ПрисоединенныеФайлыПереопределяемый"
Есть процедура:

// Позволяет переопределить справочники хранения файлов по типам владельцев.
//
// Параметры:
//  ТипВладелецФайла  - Тип ссылки объекта, к которому добавляется файл.
//
//  ИменаСправочников - Соответствие, содержащее в ключах имена справочников.
//                      При вызове содержит имя одного стандартного справочника.
//                      Если в значении соответствия разместить Истина только
//                      один раз, тогда в случаях, когда требуется один справочник,
//                      будет выбран такой справочник.
//                      Если же справочников несколько, и не один в значении не содержит
//                      Истина или более одного содержат Истина, тогда будет ошибка.
//
Процедура ПриОпределенииСправочниковХраненияФайлов(ТипВладелецФайла, ИменаСправочников) Экспорт

В ней можно анализировать тип владельца и подставлять тот или иной справочник.

Но вообще чем больше я узнаю БСП тем меньше она мне нравится, очень слабая настраиваемость, очень много "хардкода".
У меня есть мысль что я чего то не понимаю в этой системе, но чем дальше тем меньше я в это верю.
Вот пример по теме:

В демо (шаблоне) справочнике <Идентификатор>ПрисоедененныеФайлы есть набор реквизитов, при этом на форме "ПрисоединенныйФайл" реквизитов нет вообще, они добавляются обработчиком:

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

    ДобавитьПолеОбъектаНаФорму("Автор",       Элементы.ГруппаСведенияЧасть1);
    ДобавитьПолеОбъектаНаФорму("Изменил",     Элементы.ГруппаСведенияЧасть1);
    ДобавитьПолеОбъектаНаФорму("Расширение",  Элементы.ГруппаСведенияЧасть1);
    ДобавитьПолеОбъектаНаФорму("Редактирует", Элементы.ГруппаСведенияЧасть1);
    
    ДобавитьПолеОбъектаНаФорму("ДатаСоздания", Элементы.ГруппаСведенияЧасть2, , , , Ложь);
    ДобавитьПолеНаФорму("ДатаМодификации",     Элементы.ГруппаСведенияЧасть2);
    ДобавитьПолеОбъектаНаФорму("Размер",       Элементы.ГруппаСведенияЧасть2, , , ,     , 11);
    
КонецПроцедуры


Казалось бы отличное, правильное решение, разработчик может смело добавить свои реквизиты в Спр.<Идентификатор>ПрисоедененныеФайлы и описать их в этой процедуре.

Но проблема в том что при обновлении подсистемы об этом нужно будет помнить. Т.е. с одной стороны видно что закладывали универсальность, с другой стороны универсальности нет, правильнее было бы сделать в переопределяемом модуле Функцию типа "ПолучитьТаблицуРеквизитов" и по этой таблице в цикле заполнять форму реквизитами.

Или например использовать ПрефиксыИмен реквизитов (такой подход используется в БСП но я не одобряю).

Аналогично и со списком файлов, запрос дин. списка генерируется автоматически, это отлично, но генерация в модуле формы списка, т.е. любое изменение сулит в будущем геморрой с обновлениями.
17 banco
 
30.08.13
15:47
(16) ты как будто ищешь где бы подкопаться. я вот один раз настроил и забыл, все прекрасно работает и обновляется. если тебе не устраивает из БСП, пиши свой справочник, никто не заставляет использовать БСП.
18 VVi3ard
 
30.08.13
16:06
(17) Собственно говоря про "Настроил" и речь, я привел пример когда настроить нельзя, только править код, если править код то будут проблемы с обновлением. Я привел только пример уместный в контексте обсуждаемого вопроса, таких примеров у меня с десяток уже набрался, и везде примерно одно и тоже: архитектура позволяет делать гибкие настройки, но косяки в реализации убивают всю задумку.

В любом случае времени потраченного на БСП не жаль потому что есть чему поучится, многие решения выглядят очень изящно.
2 + 2 = 3.9999999999999999999999999999999...