|
массив в ячейку таблицы | ☑ | ||
---|---|---|---|---|
0
Barmalei
10.10.13
✎
09:01
|
Всем привет
вроде бы не сложная задачка, но за полчаса решения не нашел.. имеем список значений на форме, в списке у нас сотрудники (на выбор) имеем таблицу на той же форме, надо сохранить в ячейку таблицы наш список сотрудников (точнее ссылки на них для последующей работы со ссылками) решение "в лоб" не прошло МассивСотрудников=ЭтаФорма.СписокСотрудников.ВыгрузитьЗначения(); Объект.Таблица[0].Колонка1=МассивСотрудников; Колонка1 - тип строка неограниченная и многострочная. Казалось бы все ок, на первом шаге у нас и правда массив ссылок, а на втором строка со словом "массив" и все. Такое ощущение у Колонки1 не хватает какого то параметра для хранения массивов. Что же ему еще надо. зы ЗначениеИзСтрокиВнутр и ЗначениеВСтрокуВнутр держу на готове, но думаю получится без них. Опять же хранилище в таблицу не вывести. |
|||
1
Рэйв
10.10.13
✎
09:07
|
Напиши в ячейке "Мой массив сотрудников", а сам массив помести в расшифровку. С ней и работай.
|
|||
2
Славен
10.10.13
✎
09:07
|
СпиокЗначений суй
|
|||
3
Бледно Золотистый
10.10.13
✎
09:07
|
(0) Тип колонки почему не массив?
|
|||
4
Бледно Золотистый
10.10.13
✎
09:12
|
(3) Таблица на сколько я понимаю хранит не сам массив, а ссылку на него, при изменении массива, меняется и содержимое таблицы.
|
|||
5
Barmalei
10.10.13
✎
09:34
|
(4) Ну да.. массив то временный и далее чистится. А хотелось этот набор ссылок хранить в реквизите таблицы навсегда.
попробовал совсем в лоб Объект.Таблица[0].Колонка1=ЭтаФорма.СписокСотрудников; выгружает наименования сотрудников через запятую.. то бишь не ссылки. Можно конечно и так оставить, одна проблемка будет с однофамильцами :) когда искать по наименованию |
|||
6
dsdred
10.10.13
✎
09:37
|
5 а колонку эту списком с типом справочник сотрудников сделать не надо случаем?
|
|||
7
Barmalei
10.10.13
✎
09:45
|
(6) так он же больше 1 ссылки не запомнит тогда ?
|
|||
8
dsdred
10.10.13
✎
09:49
|
(7) Как это?
Колонка1 - СписокЗначений с типом Справочник.Сотрудников Объект.Таблица[0].Колонка1.ЗагрузитьЗначения(МассивЗначений) как то так... |
|||
9
alexmobile
10.10.13
✎
09:55
|
(8)реквизиту объекта нельзя поставить тип СписокЗначений.
(7)Можно использовать тип ХранилищеЗначения, но 1с не рекомендует там хранить ссылки - "Важно! В системе не поддерживается ссылочная целостность по объектам, сохраненным в базе данных в полях типа ХранилищеЗначения. Это означает, что при попытке удаления, например, элементов справочников система не контролирует ссылки на эти элементы, сохраненные в ХранилищеЗначения. " |
|||
10
Barmalei
10.10.13
✎
10:01
|
(9) вот и я удивился как это.
у меня 2 варианта пока есть.. 1) ЗначениеИзСтрокиВнутр и ЗначениеВСтрокуВнутр но тут тоже проблемы с поддержкой ссылок.. всякие пометки на удаление не зафиксируются. 2) Табличка на форме с 2 колонками.. в первой будет № строки основной таблицы, а во второй ссылка на сотрудника. Плюс тут есть - ссылка будет прямой и удалить сотрудника на шару не выйдет :) |
|||
11
Бледно Золотистый
10.10.13
✎
10:02
|
Объект.Таблица[0].Колонка1=ЭтаФорма.СписокСотрудников.ВыгрузитьЗначения();
Делай так, тип только у колонки массив установи. |
|||
12
alexmobile
10.10.13
✎
10:15
|
Или как вариант создай еще одну дополнительную табличную часть у объекта, там храни этот список. С основной табличной частью свяжи ключем. При выводе на форму в нужную ячейку сгружай реквизит дополнительной табличной части.
|
|||
13
Barmalei
10.10.13
✎
10:58
|
(11) это в 8.3 можно задавать реквизиту табличной части тип?
У меня дает: строку, ссылку и прочие ненужности. Программно задал ограничение типу, но это не то.. ЭтаФорма.Элементы.ТаблицаСотрудники.ОграничениеТипа = Новый ОписаниеТипов(МассивТипов); (12) угу.. это и был мой план Б ) так я еще в 7.7 выходил из положения, выходит в 8.2 легче не стало. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |