![]() |
![]() |
![]() |
|
Получить линейную таблицу из замороченной СКД findpol, АгентБезопаснойНацио, KJlag, Fedor-1971, DiMel_77, Хряк, TormozIT, vis, Мультук, PLUT, программистище, Hawk_1c, obs191, Михаил_, Доминошник, Crusher, ass1c, Многолетний Апельсин, formista2000, SleepyHead, Ivanich, Shurjk, Franchiser, phabeZ, Asmody, furchia, orakool, Волшебник, sikuda, ads55, youalex, Гипервизор
| ☑ | ||
---|---|---|---|---|
0
findpol
20.06.25
✎
14:49
|
Есть относительно сложный отчёт на СКД с набором данных из множества таблиц, ресурсы/поля вычисляются и так далее. Красиво и удобно для визуального потребления, конечно, но мне нужно программно работать с результатом работы, для чего хочется линейную таблицу (Менеджер, заказ, сумма..) получить на базе этой СКД в отчёте.
Это возможно малой кровью? Буду благодарен за пример где это разобрано - сам такого не нашёл, как вывести в отчёт и прочее есть, а программно получить плоскую таблицу - нет. |
|||
1
Волшебник
20.06.25
✎
14:51
|
Сделайте запрос к исходным таблицам
|
|||
2
findpol
20.06.25
✎
14:56
|
(1) просто запросить, минуя СКД? Там в СКД много таблиц, тысячи строк запросов со стопицот условий для формирования исходных данных. Всё это проработать и перевести в "обычный" запрос будет очень трудоёмко.
|
|||
3
findpol
20.06.25
✎
14:56
|
(1) сейчас так и делаю, но конца и края нет, а часть параметров падает вообще кодом из модуля отчёта и прочие сюрпризы.
|
|||
4
PLUT
гуру
20.06.25
✎
14:58
|
(0) в качестве бреда - сохрани табличный документ (ссуть результат СКД) в XL
а там уже "программно можно работать с результатом работы" |
|||
5
Asmody
20.06.25
✎
15:00
|
(0) сделай вариант настроек, где будет только твоя "плоская таблица". используй его для программного формирования СКД в таблицу значений.
|
|||
6
PLUT
гуру
20.06.25
✎
15:09
|
+(4)
Магия чтения XLЕсли Файл.Существует() Тогда ДвоичныеДанные = Новый ДвоичныеДанные(ИмяФайла); ... &НаСервере ВремФайл = ПолучитьИмяВременногоФайла(Расширение); ДвоичныеДанные.Записать(ВремФайл); ТабличныйДокумент = Новый ТабличныйДокумент; ТабличныйДокумент.Прочитать(ВремФайл, СпособЧтенияЗначенийТабличногоДокумента.Значение); УдалитьФайлы(ВремФайл); Для Каждого Область Из ТабличныйДокумент.Области Цикл ЧитаемаяОбласть = ТабличныйДокумент.ПолучитьОбласть(Область.Имя); // для каждого листа можем сделать свой обработчик чтения или все считать одинаково Если СтрНачинаетсяС(Область.Имя, "ТутКакоеТоИмяЛиста") Тогда .... ПостроительЗапроса = Новый ПостроительЗапроса; ИсточникДанных = ЧитаемаяОбласть.Область(НомерПервойСтроки, НомерПервойКолонки, ЧитаемаяОбласть.ВысотаТаблицы, ЧитаемаяОбласть.ШиринаТаблицы); ПостроительЗапроса.ИсточникДанных = Новый ОписаниеИсточникаДанных(ИсточникДанных ); ПостроительЗапроса.ДобавлениеПредставлений = ТипДобавленияПредставлений.НеДобавлять; ПостроительЗапроса.ЗаполнитьНастройки(); ПостроительЗапроса.Выполнить(); ТаблицаДанных = ПостроительЗапроса.Результат.Выгрузить(); Если ТаблицаДанных.Количество() > 0 Тогда Для Каждого ТекСтрока Из ТаблицаДанных Цикл Для Каждого ТекКолонка Из ТаблицаДанных.Колонки Цикл ... и еще много букв но самое простое в (5) |
|||
7
Мультук
гуру
20.06.25
✎
15:06
|
(0)
а) Читаем например вот это https://infostart.ru/1c/articles/658410/ Пробуем на каком-нибудь маленьком детском отчёте с СКД. б) Получилось ? Пытаемся перенести свои знания на тот большой отчёт P.S. A:А я хочу сразу на большом! Q:Плачь-плачь! Танцуй-танцуй! A:А в большом заказе оказывается строится структура с использованием "Таблица" Q:Постарайся переделать ей в линейную структуру. Выгрузить в таблицуЗначений, затем таблицу значений трансформировать Q:Плачь-плачь! Танцуй-танцуй! (Я как-то танцевал и плакал, угу) A:Я ничего не понимаю, что написано в той статье Q: google / youtube: 1С СКД курсы |
|||
8
DiMel_77
20.06.25
✎
15:06
|
(0) В ЗУП есть отчет "СтатистикаПерсонала", который используется для получения данных в виде коллекции. Там же просто получил схему, установил настройки и вывел в коллекцию? Или я не понял вопроса?
|
|||
9
findpol
20.06.25
✎
15:39
|
(8) не все СКД выводятся в коллекцию. Если там накручено, то в коллекцию вывести нельзя.
|
|||
10
findpol
20.06.25
✎
15:46
|
(4) можно и в табличный документ без экселя, но как его читать, учитывая, что там до 10 уровней вложенности и самые разные сущности в одном столбце. Может туплю, конечно..
|
|||
11
DiMel_77
20.06.25
✎
15:46
|
(9) Даже интересно стало, можно пример когда данные скомпонованные для вывода в табличный документ нельзя вывести в дерево значений? (понятно, что для таблицы значений необходимо делать служебный вариант для плоского вывода). Может я не понимаю как работает СКД и есть настройки вариантов, которые только в табличном поле посмотреть можно :))
|
|||
12
findpol
20.06.25
✎
15:47
|
(5) это сделал, но тогда у меня и пользователю будут разные варианты отчётов, боюсь, что у него просто из-за разных настроек будут отличаться итоговые показатели от моих.
Но так и буду делать, наверное. |
|||
13
findpol
20.06.25
✎
15:50
|
(11) ну вот в такую ошибку падает при попытке использовать ПроцессорВыводаРезультатаКомпоновкиДанныхВКоллекциюЗначений: "Ошибка генерации макета
по причине: Не поддерживается вывод таблиц, диаграмм и вложенных отчетов в универсальную коллекцию значений" |
|||
14
findpol
20.06.25
✎
15:58
|
(5) а можно пользовательский вариант подпихнуть, которые доступны на форме отчёта через "Еще -> Варианты отчета"?
в "СхемаКомпоновкиДанных.ВариантыНастроек" ожидаемо только те варианты, которые заданы в самой СКД. |
|||
15
PLUT
гуру
20.06.25
✎
16:01
|
(14) разрешаю
|
|||
16
findpol
20.06.25
✎
16:05
|
(15) полдела сделано - где их искать подскажешь?
|
|||
17
PLUT
гуру
20.06.25
✎
16:06
|
(16) справочник.вариантыотчетов скорее всего
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |