Автор работы: Пользователь скрыл имя, 03 Мая 2012 в 17:37, практическая работа
Для создания внешнего отчёта нужно запустить 1С: Предприятие 7.7. в режиме конфигуратора, для этого в диалоговом окне (рис 2.1.) выбираем режим конфигуратор.
2. Разработка и внедрение новых форм отчётности
в 1С:Предприятие
7.7.
2.1
Создание внешнего отчёта
«свод по заработной
плате»
Для создания внешнего отчёта нужно запустить 1С: Предприятие 7.7. в режиме конфигуратора, для этого в диалоговом окне (рис 2.1.) выбираем режим конфигуратор.
рис.2.1. Запуск 1С:Предприятия
Далее во вкладке меню конструкторы выбираем «новый отчёт» (рис 2.2.)
рис 2.2 Интерфейс диалогового окна конфигуратора
После этого в появившемся диалоговом окне «Конструктор отчёта», ставим маркер напротив надписи «внешний отчёт», а ниже прописываем имя файла для нашего отчёта. В моём случае я назвал его «свод» (рис 2.1.3.), а также убираем галочку со строки использования конструктора для создания новых объектов и нажимаем кнопку далее.
рис 2.3 Интерфейс конструктора отчётов
В
последующих диалоговых окнах оставляем
всё как есть и просто нажимаем
далее, после чего перед нами появляется
окно в котором мы приступаем непосредственно
уже к самой модификации
рис2.4
Интерфейс диалогового окна разработки
внешнего отчёта.
2.2.
Добавление кнопок,
полей со списком, полей
ввода, а также надписей.
Прежде чем мы займемся кнопками, , рассмотрим кнопки, созданные самой программой. Начнем с кнопки «Закрыть». Откроем окно ее свойств – щелкнем по ней правой кнопкой мышки и выберем пункт «Свойства». Выделим закладку «Дополнительно» и увидим окно, представленное ниже.
Для кнопок существуют три предопределенных команды: закрыть, записать, провести. Одну из этих команд мы видим в поле «Формула». Так же мы видим, что перед командой стоит знак «#», он означает, что за ним должна следовать одна из вышеперечисленных команд. Если этот знак убрать, 1С не поймет команду.
Поле «Формула» служит для ввода команды или формулы, состоящей из операторов языка 1С. А так же для указания процедуры, которая будут выполняться при щелчке по этой кнопке.
Откроем окно свойств для кнопки «Сформировать».
Видим, в поле «Формула» указано имя процедуры «Сформировать()». Закроем окно и перейдите на вкладку «Модуль» в окне редактирования.
В тексте модуля
мы так же видим процедуру «Выполнить()».
Она связана с кнопкой «
Аналогично мы добавляем на форму другие кнопки и так же прописывая для каждой кнопки идентификатор, заголовок и формулу для выполнения.
После добавлени всех кнопок мы получаем диалоговое окно показанное ниже на рисунке.
2.3.Написание
модуля программы.
В начале мы объявляем переменные, которые нам необходимы для работы:
Перем ДатаАктуальности; // дата актуальности периода отчета
Перем гДатаНачала;
Перем гЭтоКомплекснаяКонфигурация;
Перем гРежим, Жен, ПолЖ, ЖР;
Перем СписокФизЛиц, ВидНач;
Перем ТаблицаДляРасшифровок, ТСотрудников2, ТСотрудников3;
Перем Запрос;
Перем СуммаФЗП, СуммаИзПр, СуммаФЗП1, СуммаИзПр1;
Для обработки нажатия кнопки сальдо используется следующая процедура:
Процедура Сальдо()
Перем Номер;
глСтатусСтрока(
ТаблицаСальдо = СоздатьОбъект("
ТаблицаСальдо.
ТаблицаСальдо.
ТаблицаСальдо.
НомерПП=0;
//сначала конечное сальдо за прошлый месяц
НачПериода = ЖР.НачалоПериодаПоДате(
КонПериода = ЖР.КонецПериодаПоДате(
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(СальдоКон)
|Период с НачПериода по КонПериода;
|Сотрудник = ЖурналРасчетов.Зарплата.
|Расчет = ЖурналРасчетов.Зарплата.
|Результат = ЖурналРасчетов.Зарплата.
|Функция СальдоНач =
Сумма(Результат) когда (Расчет.ВходитВГруппу(
|Функция
|Функция ВсегоУдержано =
Сумма(Результат) когда (Расчет.ВходитВГруппу(
|Функция Выплачено
= Сумма(Результат) когда (Расчет=ВидРасчета.
|Функция Возвращено = Сумма(Результат) когда (Расчет=ВидРасчета.Возврат);
|Группировка
|"//}}ЗАПРОС
;
// Если ошибка
в запросе, то выход из
Если Запрос.Выполнить(ТекстЗапроса)
Возврат;
КонецЕсли;
Пока Запрос.
НомерПП=НомерПП+
СальдоКон = Запрос.СальдоНач + Запрос.ВсегоНачислено - Запрос.ВсегоУдержано -Запрос.Выплачено +Запрос.Возвращено;
ТаблицаСальдо.
ТаблицаСальдо.
ТаблицаСальдо.
ТаблицаСальдо.
КонецЦикла;
//сальдо начальное за текущий период
глСтатусСтрока(
НачПериода = ЖР.НачалоПериодаПоДате(
КонПериода = ЖР.КонецПериодаПоДате(
ТекстЗапроса =
"//{{ЗАПРОС(СальдоНач)
|Период с НачПериода по КонПериода;
|Сотрудник = ЖурналРасчетов.Зарплата.
|Расчет = ЖурналРасчетов.Зарплата.
|Результат = ЖурналРасчетов.Зарплата.
|Функция СальдоНач =
Сумма(Результат) когда (Расчет.ВходитВГруппу(
|Функция
|Функция
|Функция Выплачено
= Сумма(Результат) когда (Расчет=ВидРасчета.
|Функция Возвращено = Сумма(Результат) когда (Расчет=ВидРасчета.Возврат);
|Группировка
|"//}}ЗАПРОС
;
// Если ошибка
в запросе, то выход из
Если Запрос.Выполнить(
Возврат;
КонецЕсли;
Пока Запрос.
НомСтр="";
Если
Номер=
Иначе
Номер=ТаблицаСальдо.
ТаблицаСал
ТаблицаСальдо.
КонецЕсли;
ТаблицаСальдо.
КонецЦикла;
глСтатусСтрока(Контекст,"
Таблица=СоздатьОбъект(
Таблица.
Таблица.ВывестиСекцию(
ИтогоСальдоНач=0;
ИтогоСальдоКон=0;
ТаблицаСальдо.
ТаблицаСальдо.
Пока ТаблицаСальдо.
НомСтр=
Сотрудник=
СальдоКон=
СальдоНач=
ИтогоСальдоНач=
ИтогоСальдоКон=
Если НЕ(Число(
Таблица.
КонецЕсли;
КонецЦикла;
Таблица.ВывестиСекцию(
Таблица.Опции(0,0,0,0)
Таблица.Показать("
КонецПроцедуры
Аналогично
прописываем процедуры для
Информация о работе Разработка и внедрение новых форм отчётности в 1С:Предприятие 7.7.