1С 8.3 УТ
Необходимо сделать монитор руководителя для оценки работы предприятия.
При запуске программы выводится на рабочий стол, позволяя моментально оценить основные показатели работы.
ТехЗадание:
1-й монитор состоит из 3-х таблиц:
1 таблица "Отгрузка":
Сделать сравнение продаж текущего месяца и периода с начала года с таким же периодом прошлого года, вывести данные о продажах, рассчитать и вывести относительное изменение.
2-я таблица "Оплачено":
Сделать сравнение оплаты текущего месяца и периода с начала года с таким же периодом прошлого года, вывести данные об оплате, рассчитать и вывести относительное изменение.
3-я таблица "Оборотные средства":
Вывести данные о дебиторской заложенности за периоды: сегодня, вчера, месяц назад. Рассчитать и вывести относительное изменение задолженности.
Показать данные стоимости остатков готовой продукции и материалов на складах за периоды: сегодня, вчера, месяц назад. Рассчитать и вывести относительное изменение.
При нажатии на строку монитора об остатках материалов и готовой продукции выводить отчет расшифровку в разрезе номенклатуры.
Выполнение:
Монитором можно сделать любой отчет, имеющий форму.
1 Итак, сделаем отчет с формой. Процесс создания отчета описывать не буду.
2 Теперь вытащим его на рабочий стол. Для этого произведем такие действия:
- На корне конфигурации кликнем правой кнопкой мыши;
- Выберем "Открыть рабочую область начальной страницы";
- В появившемся окне нажмем значок "+" и выберем форму нашего отчета;
- Чтобы монитор появлялся только у пользователя с полными правами нажмем на "Различная" в поле "Видимость";
- Выберем "полные права"
3 В данном мониторе при нажатии на значения 3-й таблицы происходит расшифровка. Делается это так:
Вначале создается отчет-расшифровка. Я его сделал с помощью СКД. Процесс разработки тут приводить не буду. Вот такие параметры он использует. Мы их передадим из монитора.
В мониторе используем событие "Выбор" для 3-й таблицы
и на это событие вешаем такую процедуру:
&НаКлиенте
Процедура Таблица3Выбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) // при нажатии на запись таблицы 3
// запустить отчет при нажатии на продукцию
если (элементы.таблица3.ТекущиеДанные.Реквизит1="Готовая продукция") тогда
//параметры отчета
парам=получитьПараметры("продукция");
видНпродукция=неопределено;
ценаПродукция=неопределено;
парам.Свойство("видНпродукция",видНпродукция);
парам.свойство("ценаПродукция",ценаПродукция);
//
ИмяОтчета = "продукция";
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("СформироватьПриОткрытии",Истина);
ПараметрыФормы.Вставить("ПользовательскиеНастройки",ЗаполнитьПользовательскиеНастройкиОтчета(ИмяОтчета,"Основной",ценаПродукция,видНпродукция));
ОткрытьФорму("Отчет." + ИмяОтчета + ".Форма", ПараметрыФормы);
конецЕсли;
// запустить отчет при нажатии на материалы
если (элементы.таблица3.ТекущиеДанные.Реквизит1="Материалы") тогда
//параметры отчета
парам=получитьПараметры("материалы");
видНматериалы=неопределено;
ценаМатериалы=неопределено;
парам.Свойство("видНматериалы",видНматериалы);
парам.свойство("ценаМатериалы",ценаМатериалы);
//
ИмяОтчета = "продукция";
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("СформироватьПриОткрытии",Истина);
ПараметрыФормы.Вставить("ПользовательскиеНастройки",ЗаполнитьПользовательскиеНастройкиОтчета(ИмяОтчета,"Основной",ценаМатериалы,видНматериалы));
ОткрытьФорму("Отчет." + ИмяОтчета + ".Форма", ПараметрыФормы);
конецЕсли;
КонецПроцедуры
Функция ЗаполнитьПользовательскиеНастройкиОтчета(ИмяОтчета,ИмяВарианта,ВидЦен,ВидНоменклатуры) Экспорт
ОтчетОбъект=Отчеты[ИмяОтчета].Создать();
КомпоновщикНастроек = ОтчетОбъект.КомпоновщикНастроек;
Если ИмяВарианта<>"" Тогда
Варианты=ОтчетОбъект.СхемаКомпоновкиДанных.ВариантыНастроек;
НайденныйВариант=Варианты.Найти(ИмяВарианта);
Если НайденныйВариант<>Неопределено Тогда
Настройки=НайденныйВариант.Настройки;
// Передаем параметры
Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("датаН",КонецДня(ТекущаяДата()));
Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("видНоменклатуры",ВидНоменклатуры);
Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("видЦены",ВидЦен);
//
КонецЕсли;
Иначе
Настройки = КомпоновщикНастроек.ПолучитьНастройки();
КонецЕсли;
КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
Возврат КомпоновщикНастроек.ПользовательскиеНастройки;
КонецФункции
Функция нужна для заполнения параметров вызываемого отчета "Продукция".
В итоге при нажатии на строку "Материалы" 3-й таблицы монитора открывается отчет расшифровка