Диплом: Автоматизация процесса учета выполнения заказов на размещение рекламы (на примере АНО "Редакция газеты "Знамя победы")

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
74
Область Таблица = Макет.ПолучитьОбласть("Таблица ");
Для Каждого ТекСтрока Таблица Из график Цикл
ОбластьТаблица.Параметры.Заполнить(ТекСтрокаТаблица);
ТабДок.Вывести(ОбластьТаблица);
КонецЦикла;
ТабДок.ОтображатьСетку = Ложь;
ТабДок.Защита = Ложь;
ТабДок.ТолькоПросмотр = Ложь;
ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.Показать();
КонецПроцедуры
Модуль отчета «Остатки материаллв»
Процедура КнопкаСформироватьНажатие(Кнопка)
ТабДок=Новый ТабличныйДокумент;
Макет = ПолучитьМакет("Макет");
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| СУММА(Номенклатура.Количество) КАК Количество,
| СУММА(Номенклатура.Сумма) КАК Сумма,
| |ИЗ
| РегистрСведений.Заказы КАК Цена
|ГДЕ
| ОтработанноеВремя.Период >= &ДатаНач
| И ОтработанноеВремя.Период <= &ДатаКон
75
|
|СГРУППИРОВАТЬ ПО
| Номенклатура.Название";
Запрос.УстановитьПараметр("ДатаКон", ДатаКон);
Запрос.УстановитьПараметр("ДатаНач", ДатаНач);
РезультатЗапроса = Запрос.Выполнить();
ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
ТабДок.Очистить();
ТабДок.Вывести(ОбластьЗаголовок);
ТабДок.Вывести(ОбластьШапкаТаблицы);
ТабДок.НачатьАвтогруппировкуСтрок();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
ОбластьДетальныхЗапи-
сей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
ОбластьДетальныхЗапи-
сей.Параметры.Коэф=ВыборкаДетальныеЗаписи.Количество/ВыборкаДетальныеЗ
аписи.Цена;
ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗапи-
си.Уровень());
76
КонецЦикла;
ТабДок.ЗакончитьАвтогруппировкуСтрок();
ТабДок.Вывести(ОбластьПодвалТаблицы);
ТабДок.Вывести(ОбластьПодвал);
табдок.Показать();
КонецПроцедуры
&НаКлиенте
Процедура МатериалыЦенаПриИзменении(Элемент)
РассчитатьСумму();
КонецПроцедуры
&НаКлиенте
Процедура МатериалыКоличествоПриИзменении(Элемент)
РассчитатьСумму();
КонецПроцедуры
&НаКлиенте
Процедура РассчитатьСумму();
ТекущаяСтрока=Элементы.Материалы.ТекущиеДанные;
ТекущаяСтрока.Сумма=ТекущаяСтрока.Количество*ТекущаяСтрока.Цена;
КонецПроцедуры
Процедура ОбработкаПроведения(Отказ, Режим)
//Переменная для хранения курса валюты
Перем КурсВалюты;
//Проверим, указан ли один из необходимых счетов
77
//Для учета номенклатуры
Если Объект.СчетУчета<>ПланыСчетов.Хозрасчетный.ПрочиеМатериалы И Объ-
ект.СчетУчета<>ПланыСчетов.Хозрасчетный.МатериалыДляПроизводства Тогда
Сообщить("Нужно указать либо счет Прочие материалы, либо счет Материалы
для производства");
Отказ=Истина;
Возврат;
КонецЕсли;
//Проверим, указана ли в документе валюта
Если Объект.Валюта = Справочники.Валюты.ПустаяСсылка() Тогда
//Формирование движений по документу, данные в котором
//заданы в рублях
//Получаем табличную часть текущего документа, сгруппированную по полю Но-
менклатура
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПоступлениеМатериаловМатериалы.Номенклатура,
| СУММА(ПоступлениеМатериаловМатериалы.Количество) КАК Количество,
| СУММА(ПоступлениеМатериаловМатериалы.Сумма) КАК Сумма
|ИЗ
| Документ.ПоступлениеМатериалов.Материалы КАК ПоступлениеМатериалов-
Материалы
|ГДЕ
| ПоступлениеМатериаловМатериалы.Ссылка.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| ПоступлениеМатериаловМатериалы.Номенклатура";
Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка);
Результат = Запрос.Выполнить();
78
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Объект.Движения.ОстаткиМатериалов.Записывать = Истина;
Объект.Движения.Хозрасчетный.Записывать=Истина;
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
//Формируем движения по регистру накопления ОстаткиМатериалов
Движение = Объект.Движения.ОстаткиМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Объект.Дата;
Движение.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
Движение.ОтветственныйСотрудник = Объект.ОтветственныйСотрудник;
Движение.Количество = ВыборкаДетальныеЗаписи.Количество;
Движение.Сумма = ВыборкаДетальныеЗаписи.Сумма;
//Формируем движения по регистру бухгалтерии Хозрасчетный
Движение=Объект.Движения.Хозрасчетный.Добавить();
Движение.Период=Объект.Дата;
Движение.СчетДт=Объект.СчетУчета;
Движе-
ние.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатура]=Выб
оркаДетальныеЗаписи.Номенклатура;
Движе-
ние.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Сотрудники]=Объек
т.ОтветственныйСотрудник;
Движение.КоличествоДт=ВыборкаДетальныеЗаписи.Количество;
Движение.СчетКт=ПланыСчетов.Хозрасчетный.РасчетыСПоставщикамиВРублях;
Движе-
ние.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Контрагенты]=Объе
кт.Контрагент;
Движение.Сумма=ВыборкаДетальныеЗаписи.Сумма;
КонецЦикла;
Иначе
79
//Формирование движений по документу, данные в котором
//заданы в валюте
//Получаем курс валюты, заданной в документе
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| КурсыВалютСрезПоследних.Курс
|ИЗ
| РегистрСведений.КурсыВалют.СрезПоследних(&МоментВремени, Валюта =
&Валюта) КАК КурсыВалютСрезПоследних";
;
Движение.КоличествоДт=ВыборкаДетальныеЗаписи.Количество;
Движение.СчетКт=ПланыСчетов.Запрос.УстановитьПараметр("Валюта", Объ-
ект.Валюта);
Запрос.УстановитьПараметр("МоментВремени", Объект.МоментВремени());
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
КурсВалюты=ВыборкаДетальныеЗаписи.Курс;
Иначе
Сообщить("Не найден курс валюты!");
Отказ=Истина;
Возврат;
КонецЕсли;
//Получаем табличную часть текущего документа, сгруппированную по полю Но-
менклатура
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПоступлениеМатериаловМатериалы.Номенклатура,
80
| СУММА(ПоступлениеМатериаловМатериалы.Количество) КАК Количество,
| СУММА(ПоступлениеМатериаловМатериалы.Сумма) КАК Сумма
|ИЗ
| Документ.ПоступлениеМатериалов.Материалы КАК ПоступлениеМатериалов-
Материалы
|ГДЕ
| ПоступлениеМатериаловМатериалы.Ссылка.Ссылка = &Ссылка
|
|СГРУППИРОВАТЬ ПО
| ПоступлениеМатериаловМатериалы.Номенклатура";
Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка);
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Объект.Движения.ОстаткиМатериалов.Записывать = Истина;
Объект.Движения.Хозрасчетный.Записывать=Истина;
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
//Формируем движения по регистру накопления ОстаткиМатериалов
Движение = Объект.Движения.ОстаткиМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Объект.Дата;
Движение.Номенклатура = ВыборкаДетальныеЗаписи.Номенклатура;
Движение.ОтветственныйСотрудник = Объект.ОтветственныйСотрудник;
Движение.Количество = ВыборкаДетальныеЗаписи.Количество;
Движение.Сумма = ВыборкаДетальныеЗаписи.Сумма*КурсВалюты;
//Формируем движения по регистру бухгалтерии Хозрасчетный
Движение=Объект.Движения.Хозрасчетный.Добавить();
Движение.Период=Объект.Дата;
Движение.СчетДт=Объект.СчетУчета;
81
Движе-
ние.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Номенклатура]=Выб
оркаДетальныеЗаписи.Номенклатура;
Движе-
ние.СубконтоДт[ПланыВидовХарактеристик.ВидыСубконто.Сотрудники]=Объек
т.ОтветственныйСотрудникХозрасчетный.РасчетыСПоставщикамиВВалюте;
Движе-
ние.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконто.Контрагенты]=Объе
кт.Контрагент;
Движение.ВалютаКт=Объект.Валюта;
Движение.ВалютнаяСуммаКт=ВыборкаДетальныеЗаписи.Сумма;
Движение.Сумма=ВыборкаДетальныеЗаписи.Сумма*КурсВалюты;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Отчет список контрагентов
&НаКлиенте
Процедура СформироватьОтчет(Команда)
ТабличныйДокумент=СформироватьОтчетНаСервере();
КонецПроцедуры
&НаСервереБезКонтекста
Функция СформироватьОтчетНаСервере()
ТабличныйДокумент=Новый ТабличныйДокумент();
Макет=Отчеты.СписокКонтрагентов.ПолучитьМакет("Макет");
Шапка=Макет.ПолучитьОбласть("Шапка");
82
Элемент=Макет.ПолучитьОбласть("Элемент");
Группа=Макет.ПолучитьОбласть("Группа");
Шапка.Параметры.ДатаФормированияОтчета=ТекущаяДата();
ТабличныйДокумент.Вывести(Шапка);
Выборка=Справочники.Контрагенты.ВыбратьИерархически();
Пока Выборка.Следующий() Цикл
Если Выборка.ЭтоГруппа Тогда
Область=Группа;
Иначе
Область=Элемент;
КонецЕсли;
Область.Параметры.Заполнить(Выборка);
ТабличныйДокумент.Вывести(Область);
КонецЦикла;
Возврат (ТабличныйДокумент);
КонецФункции

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)