Имя: Пароль:
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) Собственно говоря про "Настроил" и речь, я привел пример когда настроить нельзя, только править код, если править код то будут проблемы с обновлением. Я привел только пример уместный в контексте обсуждаемого вопроса, таких примеров у меня с десяток уже набрался, и везде примерно одно и тоже: архитектура позволяет делать гибкие настройки, но косяки в реализации убивают всю задумку.

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