Имя: Пароль:
1C
1С v8
Подскажите как реализовать привязку массива к строке табличного поле.
0 DirecTwiX
 
05.04.13
23:58
Суть такова:
Есть табличное поле. При выводе строки у неё может быть (а может и не быть) массив ссылок на документы. Нужно при двойном клике на строку показывать этот массив, а после выбора открывать сам документ.
Делал ТЧ с колонкой состояние (основная строка для ТП) и колонкой Документы (тип Любая ссылка). Думал при выводе строки в Документы вставлять ссылку на массив с документами, но это не сработало. Как быть? Сейчас есть вариант хранить массив массивов, и при двойном клике лезть в этот массив по номеру строки и доставать оттуда массив доков. Но хочется по-красивее. Это первый вопрос.
Второй заключается в том, как предоставить пользователю выбрать документ из этого списка. Есть две идеи: первая - нарисовать свою форму, вторая - попробовать реализовать через ВыбратьИзСписка. Как бы вы поступили?
Спасибо
1 Torquader
 
06.04.13
00:17
В Аксессе это называлось подчинённая форма. В данном случае, лучше сделать отдельную таблицу, которую обновлять при изменении активной строки основной табличной части.
В основную ввести поле, где хранить ключ для связи с подчинённой, чтобы проще было запросом выбирать.
2 DirecTwiX
 
06.04.13
16:34
Сделал так, может кому пригодится:


   Если Не значениеЗаполнено(ВыбраннаяСтрока) ИЛИ Не ВыбраннаяСтрока.ЕстьДокументы Тогда
       Возврат;    
   КонецЕсли;
   
   Доки = ХранилищеДокументов["н"+Формат(ВыбраннаяСтрока.НомерСтроки, "ЧГ=")];
   
   Список = новый СписокЗначений;
   Список.ЗагрузитьЗначения(Доки);
   
   ВыбЭлемент = Список.ВыбратьЭлемент("Выберите документ");
   Если ВыбЭлемент = Неопределено Тогда
      Возврат
   Иначе
       ВыбЗначение = ВыбЭлемент.Значение;
       ВыбЗначение.ПолучитьФорму(,ЭтаФорма).Открыть();
   КонецЕсли;



P.s. Если у ТП включена возможность добавлять/удалять строки, то придётся немного допилить.
3 DirecTwiX
 
06.04.13
16:35
Это всё в событии Выбор у ТП
Ошибка? Это не ошибка, это системная функция.