- Всё о программировании на 1С:Предприятие - http://life1c.ru -

Создание простейшего внешнего отчёта на СКД

Для более глубокого изучения 1С скачайте книгу "Разработка оперативного учёта в 1С 8.3" [1]

SKD [2]Система Компоновки Данных (СКД) 1С позволяет создавать программисту массу необходимых отчётов «на лету». Использование этой системы, в отличие от конструктора запроса и непосредственного написания кода отчёта, является явным преимуществом. В этой статье, я хочу показать, как эффективно создавать отчёты СКД в 1С, не затрачивая на это много времени.

Начнём с создания внешнего отчёта. В главном меню выбираем Файл ? Новый… В списке щёлкаем на «Внешний отчет».

image001 [3]

В открывшемся окне указываем имя отчёта и синоним.

image002 [4]

Затем в этом же окне отчёта щёлкаем на кнопку «Открыть схему компоновки данных». Откроется окно создания макета, где нам остаётся только нажать на кнопку «Готово».

image003 [5]

image004 [6]

В окне настройки СКД щёлкаем правой клавишей мыши на «Наборы данных» и выбираем пункт «Добавить наборы данных – запрос».

image005 [7]

Появляется новый набор данных, где нужно прописать выборку данных из текущей информационной базы с помощью запроса. Для создания нового запроса нажимаем на кнопку «Конструктор запроса…» и создаём нужный нам запрос, где выбираем все необходимые для отчёта данные. Описание языка запросов приводится в статье «Язык запросов – быстро и легко! Конструктор запросов» [8].

image006 [9]

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

Для решения этой задачи в конструкторе запроса выбираем таблицу базы данных «ПартииТоваровНаСкладах.Остатки». Таблица «Остатки» является виртуальной и предназначена для получения среза на конкретную дату. Подробнее о регистрах накопления можно узнать из этой статьи: «Регистры накопления в 1С» [10].

image007 [11]

Следующим шагом из таблицы остатков выбираем нужные нам в задаче поля, соответственно это: «Номенклатура», «Организация» и «КоличествоОстаток».

image008 [12]

Чтобы задать срез на конкретную дату, открываем параметры виртуальной таблицы. Выделяем выбранную нами таблицу в поле «Таблицы» и щёлкаем вверху на кнопку «Параметры виртуальной таблицы…». В окне параметров вводим параметр даты среза.

image009 [13]image010 [14]

Всё, задача по построению запроса выполнена. Нажимаем на «ОК» в окне конструктора и переходим к построению структуры отчёта СКД в 1С.

image011 [15]

Текст запроса при этом будет выглядеть так:

 

ВЫБРАТЬ

ПартииТоваровНаСкладахОстатки.Номенклатура,

ПартииТоваровНаСкладахОстатки.Организация,

ПартииТоваровНаСкладахОстатки.КоличествоОстаток

ИЗ

РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&ДатаСреза, ) КАК ПартииТоваровНаСкладахОстатки

 

Чтобы указать отчёту СКД какие поля нужно суммировать для получения общих остатков номенклатуры, в окне настройки СКД переходим на вкладку «Ресурсы» и выбираем поле «КоличествоОстаток» для суммирования.

image012 [16]

Далее на вкладке «Параметры» указываются значения параметров для запроса. Но здесь мы лишь уберём галочку напротив «ДатаСреза», чтобы значение этого параметра можно было задавать в пользовательском режиме 1С:Предприятие. В колонке «Ограничение доступности» ставим галочку в параметре «Период» и убираем в «ДатаСреза».

image013

На вкладке «Настройки» задаём наконец структуру колонок будущего отчёта СКД. Для начала ставим галочку напротив параметра «Дата среза», чтобы этот параметр можно было использовать пользователю.

image014 [17]

Затем в поле структуры отчёта СКД щёлкаем правой кнопкой мыши на элемент «Отчет» и выбираем пункт меню «Новая группировка…» (аналогично можно нажать клавишу Insert на клавиатуре).

image015 [18]

Нам необходимо построить группировку отчёта вначале по организации, а затем разбить каждую организацию по номенклатурам и для каждой строки отобразить соответствующий остаток. Для этого в открывшемся окне группировки выбираем поле «Организация» и нажимаем «ОК».

image016 [19]

Аналогично щёлкаем правой кнопкой по группировке «Организация» и добавляем группировку по полю «Номенклатура». В итоге получаем следующую структуру:

image017 [20]

У элемента «Отчет» выбираем снизу вкладку «Выбранные поля» и перетаскиваем из левого поля ресурс «КоличествоОстаток» в список полей.

image018 [21]

Закрываем окно настроек отчёта СКД в 1С. Отчёт готов для формирования в пользовательском режиме 1С:Предприятие. Для сохранения внешнего отчёта в главном меню выбираем Файл ? Сохранить как… В окне сохранения файла вводим название отчёта и нажимаем кнопку «Сохранить».

image019 [22]

Теперь смотрим что получилось. Заходим в пользовательский режим 1С:Предприятие, в главном меню выбираем Файл ? Открыть…, выбираем наш созданный отчёт и щёлкаем кнопку «Открыть». Открывается стандартная для СКД форма отчёта 1С.

image020 [23]

В форме самого отчётаперед формированием заполняем значения параметров. Для этого нажимаем на кнопку «Настройки…» и для отчёта устанавливаем значение параметра «Дата среза». Дата среза – это как раз та дата, на которую нужно получить остатки по номенклатуре. Нажимаем «ОК».

image021 [24]

В форме отчёта нажимаем кнопку «Сформировать» и получаем готовый отчёт по остаткам с группировкой по организациям и номенклатуре. Отчёт можно свернуть-развернуть по разным организациям, сохранить в формате MSExcel, а также распечатать на принтере.

image022

Скачать созданный отчёт можно здесь [25].

Скачать

Нравится статья? Подпишитесь прямо сейчас и получайте обновления на свой E-Mail:

БЕСПЛАТНЫЕ материалы по изучению конфигурации 1С:Бухгалтерия 8 (ред. 2 и новая ред. 3) [26]