Быстрое формирование наборов данных Объект схемы СКД

05.07.20

Разработка - СКД

При разработке отчета, использующего наборы данных Объект, зачастую много времени занимает описание самих наборов в схеме СКД. Если таких наборов несколько или количество полей в них достаточно велико, то задача усложняется. В публикации приводится способ сокращения подобных трудозатрат.

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
Быстрое формирование наборов данных Объект схемы СКД:
.erf 25,63Kb
10 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

Предположим, вы разрабатываете отчет на основании работающих в типовой конфигурации «распределенных» запросов. Это такие запросы, текст которых «размазан» по процедуре, а то и нескольким процедурам одновременно (ну вот любят такие подходы некоторые команды). Плюс текст запроса постоянно меняется, а сам запрос периодически выполняется.
Цель таких запросов – собрать в менеджере временных таблиц необходимые для каких-то дальнейших действий данные.

А возможно, у вас есть уже готовый пакет данных в виде таблиц значений, и вы бы хотели использовать его в отчете.

СКД легко позволит это сделать, набор данных Объект подходит великолепно. Только данные менеджера временных таблиц нужно сначала преобразовать в таблицы значений. Это сделать совсем несложно.

Дальше нужно описать таблицы значений и их колонки в схеме СКД. Чтобы не терять зря времени на такую монотонную и скучную операцию – воспользуйтесь следующим программным кодом:

 
 Программный код

Достаточно скормить функции СоздатьСхемуКомпоновкиДанных() ваш менеджер временных таблиц, или структуру с таблицами значений, или просто таблицу или дерево значений, или текст запроса, или сам запрос – вы получите схему компоновки данных, содержащую описание наборов данных:

Наборы легко переносятся между разными схемами банальным копипастом.

На рисунке показана схема, сформированная по запросу из процедуры заполнения квартальной РСВ в ЗУП 3.1, состоящая из 73! временных таблиц.

Отчет, прилагаемый к публикации, иллюстрирует приведенный пример наглядно – формирует и открывает в конструкторе сформированную схему.

Запускать в толстом клиенте. Тестировалось в ЗУП 3.1.14.55 на платформе 8.3.16.1063

За основу взята разработка из публикации Пример универсальной функции для создания схемы компоновки данных (автор dbachinsky).

Для «облагораживания» заголовков формируемых полей в наборах данных использована чуть модифицированная (и не без костылей) функция из публикации Функция Синоним для наименования (автор nick-max).

Вступайте в нашу телеграмм-группу Инфостарт

СКД набор данных объект формирование

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С:Предприятие 8 Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

16500 руб.

02.09.2020    256784    1418    421    

1161

Инструментарий разработчика СКД Программист 1С 8.3 Бесплатно (free)

В этой статье представлен СКДБилдер — общий модуль-обёртка над объектной моделью СКД, который сокращает код в 3-4 раза и делает его читаемым.

29.01.2026    6536    339    shapa_pro    27    

69

СКД Программист 1С:Предприятие 8 Бесплатно (free)

Статья написана по результатам проведенного внутреннего обучающего вебинара для разработчиков ГК «СофтБаланс». Если осилить 25 000 знаков - задача для вас непосильная, где-то на бескрайних просторах интернета видео есть (или будет). Но здесь информация точнее. Разберем, чем запрос для СКД принципиально отличается от обычного запроса и как модифицируется в зависимости от настроек. Изучим «базовый рецепт» написания запроса для СКД, сформируем чек-лист. Полезно будет всем – от стажеров до тех. лидов. Всем, кто не снимает галку «автозаполнение» и пишет запросы для отчетов в консоли запросов – читать (вдумчиво) обязательно.

29.10.2025    19078    ovetgana    112    

112

СКД Программист 1С:Предприятие 8 Бесплатно (free)

Описан способ заполнения списка доступных значений для полей наборов данных и параметров в схеме компоновки данных для любых конфигураций (с использованием БСП или без).

01.07.2025    11045    krasnoshchekovpavel    7    

68

СКД Программист Стажер 1С:Предприятие 8 Россия Бесплатно (free)

Несколько способов управления формами выбора параметров и отборов СКД.

10.04.2025    10582    Neti    0    

41

СКД Программист 1С:Предприятие 8 Бесплатно (free)

Хорошая отчетная форма - сродни искусству. Есть какое-то невероятное эстетическое удовольствие в том, чтобы разобраться в логике учета и анализируемых показателях, спроектировать архитектуру хранения данных так, чтобы оптимально собрать эти показатели вместе с аналитическими разрезами в запросе, а затем настроить отображение так, чтобы, глядя на результат, сразу было понятно, что это за отчет и какие задачи он призван решать. Система компоновки данных - это моя первая, главная и, наверное, единственная "рабочая" любовь. Ее я использую везде, где только можно и где нельзя тоже. Хочу поделиться с вами некоторыми практическими приемами в работе с отчетами на СКД, которые, надеюсь, будут полезны.

27.02.2025    16579    ovetgana    50    

93

СКД Программист 1С:Предприятие 8 Бесплатно (free)

СКД – инструмент, на базе которого в современных конфигурациях реализованы практически все отчеты. СКД используется в динамических списках, печатных формах и универсальных механизмах. Если построить простейший отчет может каждый разработчик, то с нюансами знакомы далеко не все. Расскажем о неочевидных на первый взгляд приемах, способных значительно повысить качество отчетов.

24.12.2024    14243    Akcium    17    

46

СКД Механизмы типовых конфигураций Запросы Программист 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 1С:Зарплата и Управление Персоналом 3.x Россия Бесплатно (free)

Работая с типовыми отчетами в конфигурациях «Зарплата и управление персоналом, редакция 3», «Зарплата и кадры государственного учреждения, редакция 3» и подобных, в схемах компоновки данных можно встретить конструкции запросов, которые обращаются к некоторым виртуальным таблицам.

20.08.2024    11102    AlexeyPROSTO_1C    1    

32
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. kirill_sh 2 06.07.20 12:26 Сейчас в теме
Интересная статья 👍
2. ixijixi 2148 06.07.20 21:27 Сейчас в теме
Я перешел на использование менеджера временных таблиц в СКД вместо Объекта, гораздо удобнее получается
0x00; Azamatex; sapervodichka; +3 1 Ответить
3. Yashazz 4915 07.07.20 06:53 Сейчас в теме
(2) Далеко не у всех 17-й релиз

А вообще я такое десять лет назад уже активно юзал. Ничего нового под Луной)
5. Алексей Воробьев 301 07.07.20 07:10 Сейчас в теме
(3) Вопрос не в новизне решения :-)
Я взял за основу достаточно старую публикацию, несложное решение из которой использовал не раз, за что благодарен ее автору. Он помог сэкономить мне время.
Я добавил, по сути, к этой публикации несколько строчек. И тоже не только своих.
Если эта моя публикация поможет еще кому-то сэкономить понемногу времени, то буду считать, что цели своей добился...
Fox-trot; +1 Ответить
6. Yashazz 4915 07.07.20 08:24 Сейчас в теме
(5) Тогда будьте любезны указать ссылку на "достаточно старую публикацию", а то слегка так плагиатом попахивает...
8. Алексей Воробьев 301 07.07.20 09:01 Сейчас в теме
(6) Возможно, вы не заметили, но ссылки на использованные публикации, приведены в конце моей с указанием ссылок на профили авторов.
9. Yashazz 4915 07.07.20 09:06 Сейчас в теме
(8) Опаньки. Виноват, и правда проскроллилось как-то. Вопрос снят, извиняюсь.
4. Алексей Воробьев 301 07.07.20 06:58 Сейчас в теме
(2) То, о чем вы говорите, немного "из другой оперы". Временные таблицы из менеджера сейчас (с 8.3.17) можно использовать в запросах наборов данных СКД "без лишних объяснений". Такое использование предполагает дополнительную обработку таблиц в запросах наборов данных.

Чтобы, имея уже готовую таблицу значений, использовать ее в СКД с помощью этой новой возможности, нужно в отдельном запросе перегонять ее во временную таблицу, а потом использовать ее уже в запросе набора данных. "Напрямую" в виде набора данных ее использовать не получится.
Здесь же речь о возможности быстро сформировать наборы данных СКД на основании готовых таблиц. Или, в случае использования менеджера временных таблиц, дополнительная обработка которых не требуется, выгрузить эти таблицы в таблицы значений и опять таки использовать их непосредственно в виде наборов данных СКД.
11. ixijixi 2148 07.07.20 12:47 Сейчас в теме
(4)
в отдельном запросе перегонять ее во временную таблицу, а потом использовать ее уже в запросе набора данных. "Напрямую" в виде набора данных ее использовать не получится

Ну, Вы прям жути нагнали)) Фактически все действия займут 4 строки кода:
Запрос = Новый Запрос("ВЫБРАТЬ * ИЗ &ТЗ КАК Т");
Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("ТЗ", ТЗ);
Запрос.Выполнить();

Всё, можно использовать "в виде набора данных".
12. Алексей Воробьев 301 07.07.20 12:57 Сейчас в теме
(11) Вопрос не в перегонке, тут действительно все тривиально. А в последующем использовании в наборе: временная таблица есть в МВТ, а описания ее полей в наборе нет.
Нужно в наборе-запросе рисовать запрос к таблице МВТ, расписывая "звездочку" во все нужные поля и автозаполнять поля набора. Или воспользоваться методом из публикации, чтобы заполнить поля из ТЗ, не делая промежуточных движений с МВТ...
15. ixijixi 2148 07.07.20 14:43 Сейчас в теме
(12) Да, тут соглашусь
14. Yashazz 4915 07.07.20 14:25 Сейчас в теме
(11) Нифига. Надо ещё проверить типизацию колонок и содержимое, а то многим из наполняющего таблицу значений МВТ подавиться может, а кое-что может исказить.
Алексей Воробьев; +1 Ответить
16. Алексей Воробьев 301 07.07.20 15:06 Сейчас в теме
(14) Согласен, не учел такие доп. расходы времени. Просто расписать "звездочку" действительно мало...
7. Yashazz 4915 07.07.20 08:27 Сейчас в теме
Ну и нафига все эти ФОМСы, непонятно, кому оно надо... Делаете репост, так хоть выкиньте неуниверсальное. А то как дипломник, скачавший чужой диплом и выдающий его за свой, и даже не озаботившийся убрать совсем посторонние фрагменты.

...и не стыдно людям такое выкладывать, вот ё-моё...

А мой код 10-летней давности вот: https://infostart.ru/public/1133780/ - как ни странно, актуален и полезен по сей день.
10. Алексей Воробьев 301 07.07.20 09:21 Сейчас в теме
(7) Это не "неуниверсальное". Этот код - костыли, про которые я упоминаю в конце публикации. И эти костыли нужны в рамках рассмотренного мной примера в файле публикации. И нужны в опубликованном коде, для понимания того, что именно за "костыли" я упомнянул.
Я не позиционировал это решение как однозначно универсальное :-) Только, возможно, за это и стыдно - что не нашел универсального решения без "костылей".

Боюсь, что ваш негатив обусловлен тем, что вы не стали просматривать короткую публикацию до конца.

Я однозначно рад актуальности вашего кода 10-летней давности. Меня, более того, это восхищает.
Особенно в рамках того печального соображения, что имея опыт разработки только в 1С более 15 лет (с 7.7 еще) я все еще часто хочу и иногда переписываю свой код всего лишь годовалой давности просто потому, что случайно на него напоролся и он мне перестал нравится. Ну, это когда времени хватает...

В приведенной вами вашей же публикации с актуальным и полезным кодом отдельного внимания заслуживают некоторые комментарии. И ваши ответы на них тоже. Весьма экставагантные подходы к критике "универсального" кода.
Но, в любом случае, пред вашим вкладом в развитие сообщества - снимаю шляпу...
13. Yashazz 4915 07.07.20 14:23 Сейчас в теме
(10)
я все еще часто хочу и иногда переписываю свой код всего лишь годовалой давности просто потому, что случайно на него напоролся и он мне перестал нравится. Ну, это когда времени хватает...
о да, это и у меня любимое занятие, но именно когда сил и времени хватает. Знакомое явление. Я даже как-то свой код, вытащенный с 7.5 на 7.7, писанный ещё году в 98-м, заманьячился на таблицы значений переводить)
Для отправки сообщения требуется регистрация/авторизация