Имя: Пароль:
1C
1С v8
Дополнительные табличные части для объектов
0 Garykom
 
гуру
14.03.16
13:49
Каким образом для конфы можно реализовать аналог "дополнительные реквизиты и сведения", но для добавления произвольных дополнительных табличных частей?

Т.е. в режиме предприятие без конфигуратора добавляется табличная часть для некоего объекта (справочника или документа), устанавливаются тип реквизитов этой ТЧ.
Эта ТЧ автоматически отображается на формах элементов и можно с ней работать почти как с обычной ТЧ.

Вопрос собственно каким образом лучше организовать хранение в конфигурации описания этой программной ТЧ и типов данных?
Как и где хранить данные заполненных дополнительных ТЧ?
1 Cyberhawk
 
14.03.16
13:53
Храни в специальной ТЧ с колонкой "ИмяТЧ", либо в регистре сведений.
Тебе сюда: Где правильнее хранить контактную информацию контрагентов? :)
2 Garykom
 
гуру
14.03.16
13:57
(1) Ту ветку читал (по диагонали из-за срача) но там же не то что мне нужно?

Если бы заранее знать какой будет набор полей у этих ТЧ то проблем нету.
Но тут же любые поля могут быть, нужно будет сворачивать/разворачивать данные для записи или распределять по разным "таблицам" и потом назад собирать из этих таблиц в одну ТЗ
3 Garykom
 
гуру
14.03.16
13:58
(2)+ Привязка к типовым и БСП не нужна совершенно, это "нетленка"
4 Рэйв
 
14.03.16
14:09
Делай не таб части, а ТЗ.
Сами тз храни в строковом реквизите баб части, куда запихивай их  при записи через ЗначениеВСтрокуВнутр()
Обратно соотьвественно наоборот + динамическое формирование таб полей.

Геморно конечно, но и задачка у тебя не торт:-)
5 Cyberhawk
 
14.03.16
14:11
(2) Я бы через сериализацию (в любом виде, даже как в (4)) и десериализацию не стал бы делать.
Зачем сворачивать или разворачивать - показывай в таблице на форме кусочек единой спец. ТЧ с неотключаемым отбором просто
6 Cyberhawk
 
14.03.16
14:12
Хранение описаний доп. ТЧ будет сводиться только к хранению пар "ИД - Представление" для каждого объекта метаданных
7 Garykom
 
гуру
14.03.16
14:16
(4) Задачка в реализации не торт, зато в использовании десерт

Думал насчет сворачивании ТЗ в строку, но хуже с точки зрения получения данных для отчетов, запросами будет никак.
Разбить данные по видам будет оптимальнее, сделав несколько ТЧ для хранения или одну сложную
8 Garykom
 
гуру
14.03.16
14:16
(5) Тормоза будут так как кроме строк еще и колонки скрывать/показывать
9 George Wheels
 
14.03.16
14:43
Экспромт

Справочник для хранения описания табличной части для объектов.

Справочник: ОписанияТЧ
  Поля: Код, Наименование (стандартные)
        Объект - Наименование объекта метаданных
  Табличные части: Значения
    Поля: НаименованиеПоля - Строка
          ТипПоля - ОписаниеТипов

Хранить с привязкой к конкретному объекту в РС.

РС: ЗначенияТЧ
  Измерения: Объект - ЛюбаяСсылка
             НомерСтрокиТЧ - Число или Строка (что удобнее)
  Ресурсы или Реквизиты: Поле - (уже пришла мысль, что описание полей для справочника ОписанияТЧ вынести в отдельный справочник чтобы использовать ссылку на него здесь)
                         Значение - Тип любой

и т.д.


Продумать неспеша.
10 Zhuravlik
 
14.03.16
14:43
1) Справочник "ИдентификаторыТабличныхЧастей" с соотв. формой настройки.
- Имя объекта
- Синоним объекта
- тч "ИменаРеквизитовТЧ"
* ИмяРеквизита
* Синоним реквизита
* Тип реквизита
Форма настройки - форма, в которой интерактивно определяем структуру ТЧ, можно поместить в общую команду доступную из всех документов, или что-то подобное.

2) РС "ДанныеТабличныхЧастей":
Измерения:
- Ссылка на объект-владелец
- НомерСтроки табличной части (или УИД)
- Ресурсы:
- Значение - значение конкретной строки табл. части

3) Реализовать универсальный алгоритм построения ТЧ + Записи модифицированных данных в РС
11 George Wheels
 
14.03.16
14:45
(10) Размышления шли параллельно;)
12 Zhuravlik
 
14.03.16
14:48
(11) Оно и понятно - если все бухать в РС, потребуется нормализация таблицы, самое логичное - справочник. Т.к. нужна ссылка, и подчиненная таблица (табличная часть) для описания структуры. Как-то давно уже обдумывал эту-же идею) Кстати на ИС вроде видел реализацию.
13 Garykom
 
гуру
14.03.16
15:44
Понятно, придется как обычно попробовать реализовать несколько разных вариантов и потестить их в разных видах.

Но вариант с одной ТЗ с отборами неотключаемыми и скрыванием/показом колонок точно отпадает.
Пользователям может легко придти в голову засунуть в эту ЧТ для каждого элемента по паре лямов строк
AdBlock убивает бесплатный контент. 1Сергей