Имя: Пароль:
1C
1С v8
Экспорт табличного документа в XLS без группировок
0 s-n-a-y
 
19.07.22
16:19
Есть готовый табличный документ с группировками. Нужно конвертировать в excel, но без группировок (т.е. оставить только первый уровень). Есть ли быстрый способ?
1 s-n-a-y
 
19.07.22
16:20
Задача именно удалить группировки, а не скрыть
2 Garykom
 
гуру
19.07.22
16:37
Есть. Называется программист. За деньги.
3 mikecool
 
19.07.22
16:37
что СП говорит?
4 lodger
 
19.07.22
16:42
ОтображатьГруппировки = ложь;
?
5 s-n-a-y
 
19.07.22
16:47
(4) см (1)
6 s-n-a-y
 
19.07.22
16:48
(3) у ТабДок есть метод УдалитьОбласть(), но у меня вложенные группировки могут быть произвольной высоты
7 Kassern
 
19.07.22
16:49
(0) Если бы у вас ТабДок формировался на основе СКД, то вы бы за пару кликов в структуре уже бы этот вопрос решили
8 s-n-a-y
 
19.07.22
16:50
Можно программно определять уровень группировки для каждой строки, но это я так понимаю не быстро
https://infostart.ru/1c/articles/1213983/
9 s-n-a-y
 
19.07.22
16:52
(7) Увы, под СКД переделать возможности нет
10 6awkup_true
 
19.07.22
16:52
построчно выводить в эксель. но геморрой тот еще. не проще ли под капотом формировать тот же таб док, но уже без группировок и сохранять одной командой?
11 Kassern
 
19.07.22
16:53
(9) тогда сформируйте только с первым уровнем табдок и его сохраняйте. Можете отдельную кнопку сохранения прикрутить, которая будет только первый уровень формировать ТД и сохранять.
12 Фантазер
 
19.07.22
16:54
(0) А ручками? Уже в самом экселе убрать? или вы его не открывая - сразу передаете? Если таб.док уже готовый - то в чем проблема?
13 s-n-a-y
 
19.07.22
16:54
(10) Думал об этом, но пользователь на верхнем уровне может руками что-то править
14 s-n-a-y
 
19.07.22
16:55
(12) Хм.. А так можно?
15 Фантазер
 
19.07.22
16:57
(14) Чего только Эксель не может - может Ворд.
Я вот там открыл Консолидацию - в случае отчетных периодов сводить цифры и выверять проще чем в 1С консолью.
16 Kassern
 
19.07.22
16:57
(13) тогда это еще больший бред...
17 6awkup_true
 
19.07.22
17:00
вот еще немного бреда. выгружаем отчет в xml, читаем xml в дерево. обходя дерево формируем новый табдок без группировок(или напрямую в эксель пишем)
18 Kigo_Kigo
 
19.07.22
17:03
(14) Данные - Разгруппировать -  стрелка вниз \/, удалить структуру
19 6awkup_true
 
19.07.22
17:04
вариант номер 3. использовать построитель запроса. таб док передать как источник данных. точно результат можно выгрузить в таблицу значений. с деревом надо пробовать(в СП про дерево не слова, но сказано, что результатом будет - результат запроса. так что может быть можно использовать конструкцию .Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам), но это не точно)
20 Фантазер
 
19.07.22
19:32
(0) ты потом отпишись - получилось ли?
ОффТоп: Значок Бычары 1С дает как раз за уход от Экселя, но в некоторых случаях - 1С пассует, а эксель справляется на ура.
21 СеменовСемен
 
19.07.22
21:59
Может формировать таб док с отступами и по ним уже уровень определять
22 s-n-a-y
 
20.07.22
09:10
(21) Была мысль выводить точку в невидимую колонку, но оказалось еще проще. При просто построчном выводе в новый ТабДок группировки не переносятся
23 lodger
 
20.07.22
09:39
(22) так ты просто пересоздал табдок, потратил в 2 раза больше оперативки. не спортивно.
24 RomanYS
 
20.07.22
10:35
(22) так тебе просто "плюсики" надо было убрать, или сами строки, которые под плюсиками?
Ну и тема имхо кривая: с экселем сабж никак не связан, речь просто про обработку ТД
25 lodger
 
20.07.22
10:42
(24) "плюсики" и "рамочки" с сохранением содержимого, структуры, отступов.
26 RomanYS
 
20.07.22
12:22
(25) тогда всё просто

    Для инд = 1 По ТД.КоличествоУровнейГруппировокСтрок() Цикл
        ТД.Область(1,,ТД.ВысотаТаблицы,).Разгруппировать();//группировки строк
    КонецЦикла;
    Для инд = 1 По ТД.КоличествоУровнейГруппировокКолонок() Цикл
        ТД.Область(,1,,ТД.ШиринаТаблицы).Разгруппировать();//группировки колонок
    КонецЦикла;
27 s-n-a-y
 
20.07.22
12:24
(24) Нужно было сформированный ТабДок сохранить в эксель, но без плюсиков и без содержимого группировок. В этих группировках пользователь вибирает "правильную" цену, которая переносится на верхний уровень. Соответственно при выводе в эксель нужно было оставить только верхний уровень. Решение в (22)
28 s-n-a-y
 
20.07.22
12:24
Всем спасибо
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший