|
Как перегнать таблицу документа в дерево |
☑ |
0
picom
21.03.12
✎
12:51
|
8.2 на обычных формах
В документе есть таблица товаров, но у каждого товара разные склады
Надо превратить эту таблицу в дерево значений с группировкой по складу.
1. Как делать если документ еще не проведен, через запрос не получится?
2. Надо скрывать стандартную таблицу, делать новую в виде дерева и на нее вешать кучу кода "при изменении" и при открытии заполнять ее, так?
|
|
1
Ненавижу 1С
гуру
21.03.12
✎
12:54
|
зачем?
|
|
2
picom
21.03.12
✎
13:05
|
хотят не видеть сразу в списке 200 строк, а только разворачивать свой склад витрины
|
|
3
Fish
гуру
21.03.12
✎
13:08
|
(0) по п.1. Почему не получится? Выгружай таблицу в ТЗ и делай запрос.
|
|
4
picom
21.03.12
✎
13:09
|
Огго, а есть пример с таким запросом?
|
|
5
Vovan1975
21.03.12
✎
13:09
|
бугагага
|
|
6
Fish
гуру
21.03.12
✎
13:10
|
(4) и
|
|
7
picom
21.03.12
✎
13:12
|
А конструктор не будет работать, да?
|
|
8
pessok
21.03.12
✎
13:16
|
Из УПП
// Процедура записи таблицы или табличной части в дерево значений
//
// Параметры
// Таблица – <ТаблицаЗначений>, <ТабличнаяЧасть> - таблица, из которой осуществляется чтение
// Дерево – <ДеревоЗначений>, <СтрокаДереваЗначений> - дерево значений, в которое осуществляется запись данных из таблицы
// НомерСтрокиРодителя – <Число> - параметр связи подчиненных и родительских строк дерева
//
Процедура СтрокиТаблицыВДерево(Таблица, Дерево, НомерСтрокиРодителя = -1)
// Ищем в таблице строки для текущего родителя
ОтборСтрок = Новый Структура;
ОтборСтрок.Вставить("НомерСтрокиРодителя", НомерСтрокиРодителя);
МассивСтрок = Таблица.НайтиСтроки(ОтборСтрок);
// Записываем найденные строки в дерево и вызываем процедуру чтения подчиненных строк
Для каждого СтрокаТаблицы Из МассивСтрок Цикл
НоваяСтрока = Дерево.Строки.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТаблицы);
НоваяСтрока.КлючСтроки = Таблица.Индекс(СтрокаТаблицы);
СтрокиТаблицыВДерево(Таблица, НоваяСтрока, Таблица.Индекс(СтрокаТаблицы));
КонецЦикла;
КонецПроцедуры // СтрокиТаблицыВДерево
|
|
9
catena
21.03.12
✎
13:20
|
(7)Будет работать, если в одном запросе:
Выбрать * поместить тз из &тз как тз;
Выбрать * из тз
|
|
10
catena
21.03.12
✎
13:20
|
И без менеджера тогда можно :)
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший