Опубликован: 06.12.2011 | Уровень: для всех | Доступ: платный
Лекция 7:

Документы, регистры накопления, СКД

< Лекция 6 || Лекция 7: 123456 || Лекция 8 >

Отчет ОстаткиМатериалов, введение в СКД

Ранее мы рассматривали построение простейшего отчета самостоятельно формируя макет отчета, код вывода данных. Такой подход имеет право на жизнь, им нужно владеть, по крайней мере, на тот случай, если вам придется редактировать отчет в какой-либо конфигурации, где применяется такой подход. Однако, наиболее правильным способом построения отчетов в системе 1С:Предприятие 8.2. является использование системы компоновки данных, или, сокращенно, СКД. Начиная с этой лекции мы будем строить отчеты именно с использованием СКД.

Итак, прежде чем строить отчет, поймем, чего мы ждем от этого отчета.

Нам хотелось бы получать сведения о количественных и суммовых остатках номенклатуры по ответственным лицам на заданную дату. Эти данные мы можем найти в регистре накопления ОстаткиМатериалов.

Добавим в дереве конфигурации новый отчет, назовем его ОстаткиМатериалов. Включим его в состав подсистемы ОперативныйУчетМатериалов.

На закладке Основные нажмем на кнопку с увеличительным стеклом в поле Основная схема компоновки данных. Появится окно конструктора макета, где мы можем задать имя (нас устроит имя по умолчанию – ОсновнаяСхемаКомпоновкиДанных), тип макета ограничен единственным – Схема компоновки данных. Нажмем в этом окне Готово и попадем в окно конструктора СКД. Здесь нам, в первую очередь, нужно добавить новый источник данных, в нашем случае это будет Запрос, рис. 6.17.

Добавление нового набора данных - запроса

увеличить изображение
Рис. 6.17. Добавление нового набора данных - запроса

Когда набор данных, названный НаборДанных1, будет добавлен, мы можем нажать на кнопку КонструкторЗапроса, находящуюся над полем Запрос в нижней части окна. Это приведет к открытию окна конструктора запроса.

Из виртуальной таблицы регистра накопления ОстаткиМатериалов выберем следующие поля, рис. 6.18.

  • Номенклатура
  • ОтвественныйСотрудник
  • КоличествоОстаток
  • СуммаОстаток
Создание запроса

увеличить изображение
Рис. 6.18. Создание запроса

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

Автозаполнение списка полей на закладке Наборы данных

увеличить изображение
Рис. 6.19. Автозаполнение списка полей на закладке Наборы данных

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

Настройка состава ресурсов отчета

увеличить изображение
Рис. 6.20. Настройка состава ресурсов отчета

Теперь займемся настройкой внешнего вида отчета.

Перейдем на закладку Настройки, вызовем кнопкой с соответствующим названием Конструктор настроек и выберем на его первой странице тип отчета – таблицу. Нажмем на кнопку Далее и в следующем окне выберем поля, которые будут отображаться в отчете в следующем порядке ( рис. 6.21.):

  • Номенклатура
  • ОтветственыйСотрудник
  • КоличествоОстаток
  • СуммаОстаток
Выбор полей, которые будут отображаться в отчете

Рис. 6.21. Выбор полей, которые будут отображаться в отчете

Нажмем кнопку Далее, в следующем окне конструктора, служащим для настройки группировки таблиц, в группу Строки добавим поле Номенклатура, в поле КолонкиОтветственныйСотрудник. Тип группировки оставим в состоянии Без иерархии.

В следующем окне конструктора, который позволяет задать упорядочение отчета, зададим упорядочивание по полю Номенклатура, по возрастанию, рис. 6.22.

Настройка упорядочивания отчета

Рис. 6.22. Настройка упорядочивания отчета

Нажмем ОК, в отчет будет добавлена новая таблица. В нижней части формы конструктора СКД, на закладке Параметры, выделим параметр Период и нажмем на кнопку Свойства элемента пользовательских настроек. В появившемся окне установим флаг Включать в пользовательские настройки, режим редактирования оставим в значении Быстрый доступ, рис. 6.23. Это позволит нам вывести данный параметр в форму отчета, позволит пользователю выбирать нужный период перед построением отчета

Настройка вывода параметра

увеличить изображение
Рис. 6.23. Настройка вывода параметра

Запустим систему в режиме 1С:Предприятие и построим отчет, рис. 6.24.

Готовый отчет по количественным и суммовым остаткам материалов

Рис. 6.24. Готовый отчет по количественным и суммовым остаткам материалов

Перед построением отчета, если мы хотим задать параметр Период, установим флаг перед этим параметром и выберем нужную дату.

Выводы

В этой лекции мы познакомились с объектом конфигурации Документ, создали и настроили несколько новых документов, создали регистр накопления с видом регистра Остатки и, воспользовавшись конструктором, сформировали процедуру проведения одного из документов по регистру. Кроме того, мы ознакомились с методикой построения отчетов с использованием системы компоновки данных.

< Лекция 6 || Лекция 7: 123456 || Лекция 8 >
Лариса Дятчина
Лариса Дятчина

Код 

&НаКлиенте

Процедура ОсновноеКонтактноеЛицоПриИзменении(Элемент)

Если НЕ ПроверитьЗаполнениеРеквизита() Тогда

 Сообщить("Выбранное контактное лицо, "+Объект.ОсновноеКонтактноеЛицо+",не работает у контрагента.");

КонецЕсли;

КонецПроцедуры

 

&НаСервере

Функция ПроверитьЗаполнениеРеквизита()

 Возврат (Объект.ОсновноеКонтактноеЛицо.ПредставительРаботает);  

КонецФункции

&НаСервере

Процедура УстановитьНомерПредставителя()

 

 Объект.ТелефонКонтактногоЛица=Объект.ОсновноеКонтактноеЛицо.КонтактныеСведения;

КонецПроцедуры

При проверке выдает ошибку:

{Справочник.Контрагенты.Форма.ФормаСписка.Форма(12,11)}: Переменная не определена (Объект)
 Возврат (<<?>>Объект.ОсновноеКонтактноеЛицо.ПредставительРаботает);   (Проверка: Сервер)
{Справочник.Контрагенты.Форма.ФормаСписка.Форма(17,2)}: Переменная не определена (Объект)
 <<?>>Объект.ТелефонКонтактногоЛица=Объект.ОсновноеКонтактноеЛицо.КонтактныеСведения; (Проверка: Сервер)
{Справочник.Контрагенты.Форма.ФормаСписка.Форма(17,32)}: Переменная не определена (Объект)
 Объект.ТелефонКонтактногоЛица=<<?>>Объект.ОсновноеКонтактноеЛицо.КонтактныеСведения; (Проверка: Сервер)
{Справочник.Контрагенты.Форма.ФормаСписка.Форма(6,41)}: Переменная не определена (Объект)
 Сообщить("Выбранное контактное лицо, "+<<?>>Объект.ОсновноеКонтактноеЛицо+",не работает у контрагента."); (Проверка: Тонкий клиент)

 

работаю на версии 1С:Предприятие 8.3 (8.3.10.2650)

максим матасов
максим матасов
Леонид Альбрехт
Леонид Альбрехт
Россия, Екатеринбург, 10, 2004
Оксана Максимова
Оксана Максимова
Россия, Екатеринбург, Уральский государственный университет им. А. М. Горького, 2013