Имя: Пароль:
1C
1С v8
Работа с табличной частью на формею
,
0 Technik
 
26.04.15
02:22
Здравствуйте.
Сначала расскажу исходные данные.

1С Предприятие 8.2. Конфигурация с нуля. Учусь :).
Есть справочники "МатеринскиеПлаты", "Процессоры", "МодулиПамяти".
Есть документ с Табличной частью и одним реквизитом "Компонент".
Тип этого реквизита составной и ссылается на эти три справочника.
Получается, при вызове Формы выбора для строки Табличной части, сначала выбирается один из трёх справочников, а затем запись из выбранного справочника. В саму табличную часть попадает только Наименование записи из соответствующего справочника.
Например, добавляем строку в Табличную часть и выбираем данные "Материнские Платы" -> "B75M-PLUS". В строке Табличной части записывается только "B75M-PLUS".

Как можно реализовать следующее?
Чтобы в строке Табличной части записывалось не только "B75M-PLUS", а "Материнская плата ASUS B75M-PLUS"?
"Материнская плата" можно узнать по Типу справочника. "ASUS" можно узнать по реквизиту "Производитель" для записи справочника. "B75M-PLUS" - Наименование записи.
1 Technik
 
26.04.15
02:28
Как я пытался сделать.

В Табличной части добавить Поле со строковым типом данных, куда будет пвыводиться "Материнская плата ASUS B75M-PLUS"
На Командной панели для Табличной части создать свою кнопку "Добавить". Действия этой кнопки: ДобавитьСтроку() в ТЧ и ... тут надо бы вызвать Форму выбора для реквизита "Компонент" ТЧ документа.
Как это сделать?

В результате, как я вижу, в реквизит запишется ссылка на строку "B75M-PLUS" справочника "Материнские платы". А выводиться на форме будет "Материнская плата ASUS B75M-PLUS".
2 GROOVY
 
26.04.15
02:30
Тут надо использовать механизм характеристик (гугли ПВХ - план видов характеристик).
3 GROOVY
 
26.04.15
02:31
Еще не понятно как идентифицировать сущность полученную из состава значений, в документе строка, а дальше что с ней будет? А если состав сущности поменяется?
4 Technik
 
26.04.15
02:40
Я планировал, что в реквизит ТЧ будет записываться ссылка на элемент справочника "Материнская плата" -> "B75M-PLUS". А на форме в ТЧ будет только Колонка со строковым типом. При открытии формы документа будут перечитываться коллекция и формироваться "Материнская плата ASUS B75M-PLUS" в видимой колонке со строковым типом.
5 GROOVY
 
26.04.15
02:43
(4)  Тогда можно просто вывести представление, а не ссылку, и не заморачиваться со строкой.
Представление можно переопределить в модуле менеджера справочников.
6 Technik
 
26.04.15
02:45
Вот что-то типа того я думаю.
Правда не знаю будет ли работать.


Процедура СвояКнопкаДобавить(Команда)
    Элементы.СоставКомпьютера.ДобавитьСтроку();
    СтрокаСоставКомпьютера = Элементы.СоставКомпьютера.ТекущаяСтрока;
    
    ... тут вызов формы выбора для реквизита ТЧ ...
        
    СтрокаСоставКомпьютера.ТипКомпонента = Строка(ТипЗнч(СтрокаСоставКомпьютера.Компонент));
    СтрокаСоставКомпьютера.ПроизводительКомпонента = ВернутьПроизводителяКомпонента(СтрокаСоставКомпьютера.Компонент);
    СтрокаСоставКомпьютера.ПолноеНаименованиеКомпонента = СтрокаСоставКомпьютера.ТипКомпонента + " " + СтрокаСоставКомпьютера.ПроизводительКомпонента + " " + СтрокаСоставКомпьютера.Компонент;
КонецПроцедуры
7 Technik
 
26.04.15
02:46
Как вызвать Форму выбора?
8 GROOVY
 
26.04.15
02:48
Нафига это все?

Идешь в модуль менеджера справочника Материнские платы и переопределяешь представление ссылки. 3 строки кода.
9 Technik
 
26.04.15
02:50
Изучаю этот вопрос. Скорее всего то что надо :).
10 GROOVY
 
26.04.15
02:52
Но у тебя все равно тупиковый путь. Гугли ПВХ.