Если вы только начали разбираться в 1С, то наверняка уже слышали про СКД — систему компоновки данных. Звучит страшно, но на деле это почти волшебный инструмент. С его помощью можно делать отчеты за пару часов, а не тратить недели на программирование. Сегодня разберем, что это такое и как на практике собрать свой первый отчет.
Что такое СКД простыми словами
СКД — это встроенный в 1С механизм, который берет данные из базы и превращает их в отчеты: списки, таблицы, диаграммы.
Раньше программисту приходилось писать длинный код, чтобы вывести даже простой список остатков. Теперь достаточно составить запрос и настроить визуальное отображение.
Представьте, что у вас есть огромный шкаф с документами. СКД — это умный помощник, который быстро перебирает бумаги, собирает нужные данные и выкладывает их в аккуратную таблицу.
С чего начинается работа над отчетом
Первый шаг — понять, какую задачу ставит пользователь.
Например:
«Хочу знать, сколько у меня было продуктов на кухне на любую дату».
Значит, в отчете должны быть поля: продукт, количество, возможно сумма.
Дальше думаем: откуда брать данные? Важно запомнить правило: из документов данные напрямую не берем. Документы — это только действия (приход, расход). Информация для отчетов хранится в регистрах.
В нашем случае нужен регистр накопления в режиме остатков. Там как раз есть виртуальная таблица «Остатки», которая умеет показывать картину на конкретную дату.
Как составить запрос для отчета
Запрос — это основа отчета. Его можно собрать через консоль запросов или конструктор в конфигураторе.
Минимальный запрос для остатков по продуктам будет включать:
- поле «Продукт»
- поле «КоличествоОстаток»
- поле «СуммаОстаток»
Виртуальная таблица «Остатки» сама умеет работать с датой, так что чаще всего указывать период внутри запроса не нужно.
Совет: когда проверяете запрос, временно включайте сортировку (например, по продукту). Так легче отлаживать. Но в итоговом варианте сортировку можно убрать — в СКД она не нужна.
Создание отчета в конфигураторе
Когда запрос готов, идем в конфигуратор.
- Создаем новый отчет (например, «ОстаткиПродуктов»).
- Включаем его в нужную подсистему, чтобы пользователь его увидел (например, «Кухня → Отчеты»).
- Открываем схему компоновки данных (СКД).
- Добавляем набор данных типа «Запрос» и вставляем туда текст запроса.
СКД автоматически подхватит список полей. Дальше нужно немного донастроить:
- На вкладке «Ресурсы» перенести поля, которые надо суммировать (Количество, Сумма).
- Проверить параметр «Период». Он создается автоматически, но важно поставить галочку, чтобы пользователь мог сам менять дату.
Теперь можно заняться внешним видом. Через «Конструктор настроек» выбираем тип отчета: список, таблица или диаграмма. Для нашего примера подойдет список.
Поля отчета: Продукт, Количество, Сумма.
Группировки и сложные условия пока не нужны.
Запускаем и проверяем
После сохранения открываем базу в режиме «1С:Предприятие».
Отчет должен появиться в меню. Задаем период, жмем «Сформировать» — и видим таблицу остатков.
Важно сравнить данные отчета с документами. Если все сходится — значит, запрос и СКД настроены правильно.
Внешние отчеты: удобный лайфхак
Иногда нужно быстро сделать отчет для рабочей базы, не лезя в конфигурацию. Для этого есть внешний отчет.
- В конфигураторе создаем «Новый внешний отчет».
- Настраиваем СКД так же, как в обычном.
- Сохраняем файл с расширением .erf.
- В «1С:Предприятии» открываем его через меню «Файл → Открыть».
Плюс в том, что таким отчетом можно поделиться с коллегами.
Но есть предостережение: всегда проверяйте отчеты на тестовых данных и согласовывайте с программистами. Неправильный запрос может нагрузить сервер.
СКД — это инструмент, который реально облегчает жизнь разработчику и даже опытному пользователю. Начинайте с простых задач: остатки, продажи за период, список контрагентов. С опытом вы сможете собирать сложные отчеты с группировками, диаграммами и расчетами.
Главное — не бояться экспериментов. СКД не «сломает» базу, а вот полезный отчет может стать вашим первым шагом к настоящему профессионализму в 1С.
Чек-лист: как сделать свой первый отчет в 1С через СКД
1. Определите задачу
- Что нужно пользователю? (например: остатки продуктов на дату)
- Какие поля должны быть в отчете? (продукт, количество, сумма)
2. Найдите источник данных
- Откройте регистры накопления в конфигураторе
- Убедитесь, что есть виртуальная таблица «Остатки»
3. Составьте запрос
- Откройте консоль запросов
- Выберите таблицу Остатки регистра
- Добавьте поля: Продукт, КоличествоОстаток, СуммаОстаток
- Проверьте выполнение запроса
4. Создайте новый отчет
- В конфигураторе зайдите в «Отчеты»
- Создайте новый объект (например: ОстаткиПродуктов)
- Включите его в подсистему (например: Кухня → Отчеты)
5. Настройте схему компоновки данных
- Откройте «Схема компоновки данных»
- Добавьте набор данных → Запрос
- Вставьте туда текст запроса
- Перетащите Количество и Сумму во вкладку «Ресурсы»
- Проверьте параметр Период, отметьте галочку «Доступен пользователю»
6. Настройте внешний вид отчета
- Через «Конструктор настроек» выберите тип: Список
- Укажите отображаемые поля: Продукт, Количество, Сумма
- При желании настройте сортировку по продукту
7. Запустите отчет
- Перейдите в «1С:Предприятие»
- Откройте свой отчет в меню подсистемы
- Укажите дату и нажмите «Сформировать»
- Сравните данные отчета с документами
8. (Опционально) Сделайте внешний отчет
- В конфигураторе → Файл → Новый внешний отчет
- Настройте СКД аналогично
- Сохраните в формате *.erf
- В «1С:Предприятие» откройте через Файл → Открыть
Типичные ошибки при работе со СКД и как их исправить
Ошибка 1. Берем данные из документов
Многие новички пишут запрос прямо к документам (Поступление, Реализация). Но документы — это только движения, они не хранят итоговую картину.
Как правильно: всегда ищите регистры (накопления, бухгалтерии, расчета). Там уже лежат готовые остатки и обороты.
Ошибка 2. Не используем виртуальные таблицы
Забывают, что у регистров есть виртуальные таблицы Остатки, Обороты и т.д., и лезут вручную считать приход минус расход.
Как правильно: используйте готовые виртуальные таблицы — они делают всю работу за вас.
Ошибка 3. Перегружают запрос условиями
Ставят кучу фильтров прямо в запросе, хотя половину можно настроить через СКД. В итоге запрос громоздкий и тормозит.
Как правильно: оставьте в запросе только базовые поля, а отборы и группировки делайте средствами СКД.
Ошибка 4. Забывают про ресурсные поля
Например, поле Количество или Сумма оставляют просто в «Поля», а не в «Ресурсы». Из-за этого отчет не суммирует значения.
Как правильно: переносите числовые поля (количество, сумма, цена) во вкладку «Ресурсы».
Ошибка 5. Не дают пользователю менять период
Если оставить параметр «Период» без галочки «Доступен пользователю», отчет всегда будет показывать данные только на фиксированную дату.
Как правильно: включайте возможность редактировать период, чтобы пользователь мог сам задавать диапазон.
Ошибка 6. Слишком много данных в запросе
Запрашивают сразу все товары и все периоды за несколько лет. Отчет формируется полчаса или вовсе подвисает.
Как правильно: всегда ограничивайте выборку. Если нужен отчет «на дату», не тащите всю историю базы.
Ошибка 7. Не проверяют результат
Сделали отчет, посмотрели — вроде цифры есть, и на этом остановились. А потом пользователи жалуются, что данные не совпадают.
Как правильно: проверяйте результаты отчета на маленьком кусочке данных: берите один документ и сверяйте его с результатом отчета.
Ошибка 8. Думают, что отчет может «сломать» базу
Многие боятся экспериментировать, потому что «вдруг все упадет». На самом деле СКД безопасна: она просто формирует выборку, не меняя данные.
Как правильно: пробуйте, тестируйте. Максимум, что произойдет — вы сделаете медленный отчет.