Для элементов формы установите следующие свойства:
- ДатаНач: Идентификатор – ДатаНач, Тип – Дата, опция Имеет кнопку выбора установлена; 
- ДатаКон: Идентификатор – ДатаКон, Тип – Дата, опция Имеет кнопку выбора установлена; 
- Долж: Идентификатор – Долж, опция Сделать недоступным установлена, Тип – Справочник.Должности; 
- Подр: Идентификатор – Подр, опция Сделать недоступным установлена, Тип – Справочник.Сотрудники; Форма – ФормаСпискаГрупп; 
- первая кнопка Х (для очистки элемента Долж): Формула – Долж="", Подсказка – Очистить должность; 
- вторая кнопка Х (для очистки элемента Подр): Формула – Подр="", Подсказка – Очистить подразделение; 
- переключатель по должностям: Идентификатор – Групп, опция Первый в группе установлена. 
С помощью Конструктора макета отчета или вручную создайте макет следующего вида (рисунок 9.3.3):
Рисунок 9.3.3
Переменные Загл1 и Загл2 будут содержать значение должности и подразделения или наоборот в зависимости от переключателя Группировать. Данную возможность необходимо реализовать программно.
Создадим текст программного модуля:
Процедура Печать()
- // формируем текст запроса 
- Запрос=СоздатьОбъект("Запрос"); 
- ТекстЗапроса=" 
- |Период с ДатаНач по ДатаКон; 
- |Должн=Регистр.ПриемСотрудников.Должность; 
- |Подраз=Регистр.ПриемСотрудников.Подразделение; 
- |Док=Регистр.ПриемСотрудников.ТекущийДокумент; 
- |Кол=Регистр.ПриемСотрудников.Количество; 
- |СуммОкл=Регистр.ПриемСотрудников.СуммаОклада; 
- |"; 
- // в зависимости от выбора устанавливаем группировки 
- Если Групп=1 Тогда - ТекстЗапроса=ТекстЗапроса + 
- "Группировка Должн Упорядочить по Должн.Наименование; 
- |Группировка Подраз Упорядочить по Подраз.Наименование; 
- |"; 
 
- Иначе - ТекстЗапроса=ТекстЗапроса+ - "Группировка Подраз Упорядочить по Подраз.Наименование; 
- |Группировка Должн Упорядочить по Должн.Наименование; 
- |"; 
 
 
- КонецЕсли; 
- // определяем функции 
- ТекстЗапроса=ТекстЗапроса+"Функция Кол_во=Сумма(Кол); 
- |Функция Сумм_Окл=Сумма(СуммОкл); 
- |"; 
- // в зависимости от выбора задаем условия 
- Если Долж.Выбран()=1 Тогда - ТекстЗапроса=ТекстЗапроса+"Условие (Должн=Долж); 
- |"; 
 
- КонецЕсли; 
- Если Подр.Выбран()=1 Тогда - ТекстЗапроса=ТекстЗапроса+"Условие (Подраз=Подр); 
- |"; 
 
- КонецЕсли; 
- Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда - Сообщить("Ошибка в тексте запроса"); 
- Возврат; 
 
- КонецЕсли; 
- // в строке итогов запроса, на которой стоит указатель после выполнения 
- // запроса, проверяем количество найденных значений 
- Если Запрос.Кол_во=0 Тогда - Предупреждение("За данный период не принимались сотрудники"); 
 
- Иначе - Таб = СоздатьОбъект("Таблица"); 
- Таб.ИсходнаяТаблица("Печать"); 
- Таб.ВывестиСекцию("Шапка"); 
- Таб.Опции(0,0,Таб.ВысотаТаблицы(),0); 
- Пока Запрос.Группировка(1)=1 Цикл - // определяем заголовки секций, то есть 
- // в зависимости от группировок 
- // выделяется должность или подразделение 
- Если Групп=1 Тогда - Загл1=Запрос.Должн; 
 
- Иначе - Загл1=Запрос.Подраз; 
 
- КонецЕсли; 
- Таб.ВывестиСекцию("Строка_1"); 
- Пока Запрос.Группировка(2)=1 Цикл - Если Групп=1 Тогда - Загл2=Запрос.Подраз; 
 
- Иначе - Загл2=Запрос.Должн; 
 
- КонецЕсли; 
- Таб.ВывестиСекцию("Строка_2"); 
 
- КонецЦикла; 
 
- КонецЦикла; 
- Таб.ВывестиСекцию("Подвал"); 
- Таб.ТолькоПросмотр(1); 
- Таб.Показать("Печать",""); 
 
- КонецЕсли; 
КонецПроцедуры
// в качестве начальных значений устанавливаем дату точки актуальности итогов,
// так как по ней заполнялся регистр, дату позже точки актуальности
// использовать нельзя
ДатаНач=ПолучитьДатуТА();
ДатаКон=ПолучитьДатуТА();
Групп=1;
Сохраните конфигурацию и запустите 1С в режиме Предприятие. Попробуйте получить отчеты различных видов по различным периодам и группировкам.
Можно создать аналогичный отчет и по оборотному регистру УвольнениеСотрудников.
Задания:
В конфигурациях, созданных на прошлых занятиях, создайте указанные регистры и отчеты по регистру остатков и первому оборотному регистру через запросы (в отчетах даты, периоды, измерения и группировки вводятся с клавиатуры):
Вариант 1
- создайте регистр остатков НаличиеКартин (измерения – ФИО художника, художественный стиль, ресурсы – количество, стоимость) и отчет по нему; 
- создайте оборотный регистр ПриемКартин (измерения – ФИО художника, художественный стиль, ресурсы – количество, стоимость) и отчет по нему; 
- создайте оборотный регистр ПродажаКартин (измерения – ФИО художника, художественный стиль, ресурсы – количество, стоимость). 
Вариант 2
- создайте регистр остатков НаличиеТоваров (измерения – товар, тип товара, ресурсы – количество, цена) и отчет по нему; 
- создайте оборотный регистр ПриемТовара (измерения – товар, тип товара, ресурсы – количество, цена) и отчет по нему; 
- создайте оборотный регистр ПродажаТовара (измерения – товар, тип товара, ресурсы – количество, цена). 
Вариант 3
- создайте регистр остатков НаличиеАбонентов (измерения – ФИО абонента, тип номера, ресурсы – количество, абонплата) и отчет по нему; 
- создайте оборотный регистр РегистрацияАбонентов (измерения – ФИО абонента, тип номера, ресурсы – количество, абонплата) и отчет по нему; 
- создайте оборотный регистр ОтказОтНомера (измерения – ФИО абонента, тип номера, ресурсы – количество, абонплата). 
Вариант 4
- создайте регистр остатков НаличиеКниг (измерения – ФИО автора, тип книги, ресурсы – количество, цена за экземпляр) и отчет по нему; 
- создайте оборотный регистр ПриемКниг (измерения – ФИО автора, тип книги, ресурсы – количество, цена за экземпляр) и отчет по нему; 
- создайте оборотный регистр СписаниеКниг (измерения – ФИО автора, тип книги, ресурсы – количество, цена за экземпляр). 
Вариант 5
- создайте регистр остатков НаличиеНалогоплательщиков (измерения – ФИО налогоплательщика, тип льготы, ресурсы – количество, годовой доход, налог) и отчет по нему; 
- создайте оборотный регистр РегистрацияНалогоплательщиков (измерения – ФИО налогоплательщика, тип льготы, ресурсы – количество, годовой доход, налог) и отчет по нему; 
- создайте оборотный регистр УходНалогоплательщиков (измерения – ФИО налогоплательщика, тип льготы, ресурсы – количество, годовой доход, налог). 
Вариант 6
- создайте регистр остатков НаличиеСоискателей (измерения – профессия, тип образования, ресурсы – количество, желаемая зарплата) и отчет по нему; 
- создайте оборотный регистр РегистрацияСоискателей (измерения – профессия, тип образования, ресурсы – количество, желаемая зарплата) и отчет по нему; 
- создайте оборотный регистр УходСоискателей (измерения – профессия, тип образования, ресурсы – количество, желаемая зарплата). 
Вариант 7
- создайте регистр остатков НаличиеКвартир (измерения – количество комнат, тип квартиры, ресурсы – количество, стоимость) и отчет по нему; 
- создайте оборотный регистр РегистрацияКвартир (измерения – количество комнат, тип квартиры, ресурсы – количество, стоимость) и отчет по нему; 
- создайте оборотный регистр ПродажаКвартир (измерения – количество комнат, тип квартиры, ресурсы – количество, стоимость). 
Вариант 8
- создайте регистр остатков НаличиеНомеров (измерения – тип номера, этаж, ресурсы – количество, стоимость) и отчет по нему; 
- создайте оборотный регистр РегистрацияПостоятельцев (измерения – тип номера, этаж, ресурсы – количество, стоимость) и отчет по нему; 
- создайте оборотный регистр ВыездПостояльцев (измерения – тип номера, этаж, ресурсы – количество, стоимость). 
Вариант 9
- создайте регистр остатков НаличиеПодписчиков (измерения – название издания, тип издания, ресурсы – количество, стоимость) и отчет по нему; 
- создайте оборотный регистр ПродажаПодписки (измерения – название издания, тип издания, ресурсы – количество, стоимость) и отчет по нему; 
- создайте оборотный регистр ОтказОтПодписки (измерения – название издания, тип издания, ресурсы – количество, стоимость). 
Вариант 10
- создайте регистр остатков НаличиеПрописки (измерения – постоянная или временная, тип квартиры, ресурсы – количество, квартплата) и отчет по нему; 
- создайте оборотный регистр Прописка (измерения – постоянная или временная, тип квартиры, ресурсы – количество, квартплата) и отчет по нему; 
- создайте оборотный регистр Выписка (измерения – постоянная или временная, тип квартиры, ресурсы – количество, квартплата). 
Вариант 11
- создайте регистр остатков Касса (измерения – направления, тип вагона, ресурсы – количество, цена за билет) и отчет по нему; 
- создайте оборотный регистр ПродажаБилетов (измерения – направления, тип вагона, ресурсы – количество, цена за билет); 
- создайте оборотный регистр СдачаБилетов (измерения – направления, тип вагона, ресурсы – количество, цена за билет). 
Вариант 12
- создайте регистр остатков НаличиеПутевок (измерения – город, тип размещения, ресурсы – количество, стоимость) и отчет по нему; 
- создайте оборотный регистр ПродажаПутевок (измерения – город, тип размещения, ресурсы – количество, стоимость) и отчет по нему; 
- создайте оборотный регистр СдачаПутевок (измерения – город, тип размещения, ресурсы – количество, стоимость). 
Вариант 13
- создайте регистр остатков НаличиеОбуви (измерения – тип обуви, сезон, ресурсы – количество, стоимость) и отчет по нему; 
- создайте оборотный регистр ПриемОбуви (измерения – тип обуви, сезон, ресурсы – количество, стоимость) и отчет по нему; 
- создайте оборотный регистр ПродажаОбуви (измерения – тип обуви, сезон, ресурсы – количество, стоимость). 
Вариант 14
- создайте регистр остатков НаличиеДрагоценностей (измерения – тип изделия, материал, ресурсы – количество, стоимость) и отчет по нему; 
- создайте оборотный регистр ПриемДрагоценностей (измерения – тип изделия, материал, ресурсы – количество, стоимость) и отчет по нему; 
- создайте оборотный регистр ПродажаДрагоценностей (измерения – тип изделия, материал, ресурсы – количество, стоимость). 
Вариант 15
- создайте регистр остатков НаличиеСтудентов (измерения – группа, тип оплаты, ресурсы – количество, стоимость обучения) и отчет по нему; 
- создайте оборотный регистр ПриемСтудентов (измерения – группа, тип оплаты, ресурсы – количество, стоимость обучения) и отчет по нему; 
- создайте оборотный регистр ОтчислениеСтудентов (измерения – группа, тип оплаты, ресурсы – количество, стоимость обучения). 
Контрольные вопросы:
- Для чего используются регистры в системе 1С? 
- Для чего используются регистр остатков в системе 1С? 
- Что такое измерения и ресурсы регистра? 
- Для чего используются оборотный регистр в системе 1С? 
- Как создать регистр? 
- Как поместить данные в регистр остатков? 
- Как поместить данные в оборотный регистр? 
- Как получить данные из регистра остатков? 
- Как получить данные из оборотного регистра? 
