Отчеты в системе 1С:Предприятие 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Отчеты в системе 1С:Предприятие



 

Для получения сводной выходной информации в системе 1С Предприятие используются объекты метаданных, называемые «Отчет». Объект данных этого типа представляет собой алгоритм обработки информации на внутреннем языке системы 1С:Предприятие. К алгоритму «прикрепляется» диалог, при помощи которого, при необходимости, можно организовать ввод каких-либо параметров, влияющих на ход его алгоритма. Обычно алгоритм имеет и сделанное в табличном редакторе описание печатной формы, которое используется для вывода результатов выполнения алгоритма на экран и принтер. В некоторых случаях одна и та же таблица используется и для ввода параметров, и для вывода результатов.

Создание формы отчета

Фактически объект метаданных типа «Отчет» представляет собой только форму: модуль формы является алгоритмом построения отчета, диалог позволяет задавать параметры формирования отчета, а таблица служит для выдачи результатов построения отчетов в требуемом виде.

Свойства отчета, присущие ему, как объекту метаданных, идентификатор, синоним, комментарий — идентифицируют отчет в структуре метаданных конфигурации и позволяют обращаться к нему, например, при создании наборов прав или разработке пользовательских интерфейсов.

Для редактирования формы отчета используется комплексный редактор форм, который вызывается выбором пункта «Редактировать форму» из контекстного меню объекта метаданных.

При редактировании диалога отчета редактор форм, помимо прочих функций, позволяет управлять режимом «сохранения настройки». Поясним это подробнее.

В процессе работы с отчетами в режиме запуска «1С:Предприятие» у пользователя существует возможность «сохранить настройку» — запомнить текущие значения реквизитов диалога отчета. Состояние реквизитов запоминается в специальном файле на жестком диске и фактически может сохраняться неограниченное время. При последующих сеансах работы с системой 1С:Предприятие и использовании того же самого отчета пользователь может восстановить сохраненную ранее настройку. Фактически заполнить реквизиты диалога отчета необходимыми значениями. Такая возможность особенно удобна, если диалог отчета содержит большое число различных параметров.

При сохранении набору значений реквизитов отчета присваивается имя. Таким образом, пользователь может сохранять различные наборы значений, а затем вызывать их, выбирая из списка по имени.

Редактор диалогов позволяет управлять режимом сохранения настройки.

В палитре свойств шаблона окна диалога отчета присутствует флажок «Режим сохранения настройки». По умолчанию он установлен, в этом случае для редактируемого отчета в режиме запуска «1С:Предприятие» доступны функции сохранения и восстановления настройки: в меню «Действия» будут присутствовать пункты «Сохранить настройку» и «Восстановить настройку», а на панели инструментов отчета — соответствующие кнопки.

В случае необходимости флажок «Режим сохранения настройки» может быть снят.

В свою очередь, в палитре свойств реквизитов диалога (кроме реквизитов типа «Текст», «Кнопка», «Картинка» и «Рамка группы») присутствует флажок «Сохранять при сохранении настройки». Установкой этого флажка можно задать сохранение значений конкретных реквизитов диалога в процессе сохранения настройки.

Кроме описанных выше возможностей, сохранять и восстанавливать значения реквизитов диалога можно при помощи встроенного языка системы 1С:Предприятие, для этого используются системные функции «СохранитьЗначение()» и «ВосстановитьЗначение()».

 

Создание отчета

 

Создать отчет, имеющий свою отдельную форму.

1. В дереве метаданных, в разделе "Отчеты", создать новый отчет.

2. Идентификатор - "Взаиморасчеты".

3. Добавить поле ввода. Идентификатор - ВыбДата, тип - дата.

4. В модуле формы написать:

Процедура Сформировать() Запрос=СоздатьОбъект("Запрос");

// Запрос — специальный объект в 1С, служит для получения

структурированной // выборки данных Т3="

|Период с ВыбДата по ВыбДата;

|Контр = Регисгр.Взаиморасчеты.Контрагент;

|Дог = Регистр.Взаиморасчеты.Договор;

|Сум = Регистр.Взаиморасчеты.Сумма;

|(Функция СумКонОст = КонОст(Сум);

|(Группировка Контр упорядочить по Контр.Код;

|";'

// Это текст запроса

Если Запрос.Выполнить(ТЗ)=0 Тогда

Сообщить("Запрос не выполнен");

Возврат;

КонецЕсли;

// Если запрос будет не выполнен по какой либо причине, метод

Выполи ить()

// вернет 0. Мы сообщим пользователю о произошедшей ошибке, и //

командой Возврат—прервем выполнение процедуры ИтогоМы=0;

Ито гоНам =0;

// В этих двух переменных мы будем хранить итоговую информацию

по долгу

Таб=СоздатьОбъект("Таблица");

Таб. Исходная Таблица("");

Таб.ВывестиСекцию("Шапка");

Пока Запрос.Группировка("Контр")=1 Цикл

// Получаем очередную запись из запроса

ТЭ=Запрос.Контр;

// Во временную переменную передаем значение выборки Д

олг=3апрос.Cум КонОст;

// Определяем суммарный долг по текущему значению выборки

Если ТЭ.ЭтоГруппа()=1 Тогда

НазГр=СокрЛП(ТЭ.Наименование);

Если Долг=Ю Тогда

ИначеЕсли Долг>0 Тогда

Мы=Долг;

Нам=0;

ИначеЕсли Долг<0 Тогда

Мы=0;

Нам=-Долг;

КонецЕсли;

Таб.ВывестиСекцию("Группа"); Иначе

Наз="("+СокрЛП(Строка(ТЭ.Код))+")

"+СокрЛП(ТЭ.Наименование);

Если Долг--0 Тогда

Продолжить;

ИначеЕсли Долг>0 Тогда

Мы=Долг;

Нам=0;

ИтогоМы=ИтогоМы+Мы; ИначеЕсли Долг<0 Тогда

Мы=0; Нам=-Долг;

ИтогоНам=ИтогоНам+Нам; КонецЕсли;

Таб.ВывестиСекцию("Строка");

КонецЕсли;

КонецЦикла;

Таб.ВывестиСекцию("Итого"); Таб.ТолькоПросмотр(1);

Таб.ПараметрыСтраницы(1,100,1); Таб.Показать(""); КонецПроце

дуры

 

5. Перейти на закладку таблицы, создать шаблон.

6. Закрыть форму отчета.

7. Сохранить конфигурацию.

8. Войти в 1С:Предприятие.

9. Через меню Отчеты вызываем отчет "Взаиморасчеты".

10. Установить дату 02.10.2003.

11. Нажать [Сформировать].

 

Далее необходимо создать документ "Выплата денег", который будет практически аналогичен документу "Приход денег". Поэтому его можно создать простым копированием и потом внести в него ряд небольших изменений.

1. В дереве метаданных скопировать документ "ПриходДенег" в буфер обмена Windows.

2. Вставить из буфера обмена в раздел "Документы" копию.

3. Изменить Идентификатор на "ВыплатаДенег", аналогично изменить Синоним и комментарий.

4. В модуле проведения документа вместо строки: Регистр.Взаиморасчеты.ДвижениеПриходВыполнить() написать

Регистр. Взаиморасчеты. ДвижениеРасходВыполнить().

5. В модуле проведения документа вместо строки: Регистр. Взаиморасчеты. Флаг Движения = 4

написать

Регистр.Взаиморасчеты.ФлагДвижения = 3.

6. В журнале "ДвижениеДенег" изменить реквизит "Сумма".

7. В выбранные значения добавить реквизит "Сумма" из нового документа.

8. Сохранить конфигурацию.

9. Открыть 1С:Г1редприятие.

10. Создать новый документ типа "Выплата денег". Заполнить его. Сохранить. Провести и посмотреть на движения, которые сформировал документ и результат, который выдаст нам отчет.

 

ЛАБОРАТОРНАЯ РАБОТА №6

7.1. Создание документа "Изменение цен"

Документы при проведении могут изменять значения периодических реквизитов справочников. Разумеется, документы могут изменять значения и непериодических реквизитов, но это мало интересно. При изменении периодических реквизитов программа будет запоминать, когда и с помощью чего меняли значения.

В справочнике "Номенклатура" имеются два реквизита интересующего типа: "ЦенаП" и "ЦенаР". В их свойствах было указано, что они могут изменяться документами. Спроектируем такой документ.

Пусть документ будет иметь возможность изменять цену не одного товара, а любого количества. Значит, он будет содержать многострочную часть. Документ должен иметь возможность изменять сразу и цену поступления, и цену реализации. При работе с ценами товара необходимо видеть, какие цены были до изменения. Эти поля должны быть не редактируемые. Для документа будет заведен отдельный журнал. Создать этот документ. Все данные по документу сведены в таблицу:

 

Идентификатор: ИзменениеЦен Журнал: ИзменениеЦен Нумератор: Нет Периодичность: Год Длина: 5 Тип: число Уникальность: да Автонумерация: да Оперативный учет: нет Может являться основанием для документа любого вида?: нет
Является основанием для Вводится на основании
Шапка
Реквизит Описание ТипЗначения Доп.
Таблица
Реквизит Описание ТипЗначения Доп.
Товар Товар С.Номенклатура  
СтЦенаП Старая цена прихода Число 7.2  
ЦенаП Новая цена прихода Число 7.2  
СтЦенаР Старая цена расхода Число 7.2  
ЦенаР Новая цена расхода Число 7.2  

 

1. Создать новый документ.

2. Идентификатор - "ИзменениеЦен", Синоним - "Изменение цен", Комментарий - "изменение цен товара".

3. Документ будет проводиться и перепроводиться.

4. Новый журнал - "ИзменениеЦен".

5. В окне свойств документа заполнить позиции согласно таблицы.

6. Создать форму документа.

7. Графы "СтЦенаП" и "СтЦенаР" сделать недоступными.

8. На поле ввода "Товар" поместить формулу ВыбТовар().

9. На поле ввода "ЦенаП" поместить формулу ЦенаП().

10. В модуль формы добавить две процедуры:

Процедура ВыбТовар()

СтЦенаП=Товар.ЦенаП.Получить(ДатаДок); Це

наП=Товар.ЦенаП.Получить(ДатаДок); СтЦе

наР=Товар.ЦенаР.Получить(ДатаДок); Це

наР=Товар.ЦенаР.Получить(ДатаДок);

// Получаем значения периодических реквизитов справочника на

дату документа

КонеиПроцедуры

//

Процедура ЦенаП()

ЦенаР=Окр(ЦенаП*(1

+(Константа..ПроцентНаценки/100)),2,1);

КонецПроцедуры

11. Перейти к модулю документа;

12. Написать процедуру обработки проведения документа:

Процедура ОбработкаПроведения()

ВыбратьСтроки();

Пока ПолучитьСтроку()=1 Цикл

УстановитьРеквизитСправочни

ка(Товар,"ЦенаП",ЦенаП);

УстановитьРеквизитСправочннка(Товар,"ЦенаР",ЦенаР);

// Мы указываем периодические реквизиты элемента

справочника,

// указанного в поле Товар и значения, которые они будут

теперь

иметь

КонецЦикла;

КонецПроцедуры

 

13. Сохранить конфигурацию.

14. Загрузить 1С:Предприятие и ввести новый документ "Изменение цен".

 



Поделиться:


Последнее изменение этой страницы: 2017-02-10; просмотров: 276; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 44.222.90.25 (0.03 с.)