Для элементов формы установите следующие свойства:
ДатаНач: Идентификатор – ДатаНач, Тип – Дата, опция Имеет кнопку выбора установлена;
ДатаКон: Идентификатор – ДатаКон, Тип – Дата, опция Имеет кнопку выбора установлена;
Долж: Идентификатор – Долж, опция Сделать недоступным установлена, Тип – Справочник.Должности;
Подр: Идентификатор – Подр, опция Сделать недоступным установлена, Тип – Справочник.Сотрудники; Форма – ФормаСпискаГрупп;
первая кнопка Х (для очистки элемента Долж): Формула – Долж="", Подсказка – Очистить должность;
вторая кнопка Х (для очистки элемента Подр): Формула – Подр="", Подсказка – Очистить подразделение;
переключатель по должностям: Идентификатор – Групп, опция Первый в группе установлена.
С помощью Конструктора макета отчета или вручную создайте макет следующего вида (рисунок 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С?
Как создать регистр?
Как поместить данные в регистр остатков?
Как поместить данные в оборотный регистр?
Как получить данные из регистра остатков?
Как получить данные из оборотного регистра?