Изменение процедуры проведения
Поможем в ✍️ написании учебной работы
Поможем с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой

Создадим движения документа ОказаниеУслуги таким же образом, как мы делали это для документа Приходная Накладная.
- На закладке Движения: в списке регистров отметим, что документ будет создавать теперь движения и по региструСтоимостьМатериалов.

- На закладке Прочее: нажмем кнопку Модуль объекта. Откроем процедуру обработчика события ОбработкаПроведения. Отредактируем код следующим образом:

Листинг 11.2

Процедура ОбработкаПроведения(Отказ, Режим)

Движения.ОстаткиМатериалов.Записывать = Истина;
Движения.СтоимостьМатериалов.Записывать = Истина;

Для Каждого ТекСтрокаПереченьНоменклатуры Из ПереченьНоменклатуры Цикл
Если ТекСтрокаПереченьНоменклатуры.Номенклатура.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда

//регистр ОстаткиМатериалов Расход
Движение = Движения.ОстаткиМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Материал = ТекСтрокаПереченьНоменклатуры.Номенклатура;
Движение.Склад=Склад;
Движение.Количество = ТекСтрокаПереченьНоменклатуры.Количество;

//регистр СтоимостьМатериалов Расход
Движение = Движения.СтоимостьМатериалов.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Материал = ТекСтрокаПереченьНоменклатуры.Номенклатура;
Движение.Стоимость=ТекСтрокаПереченьНоменклатуры.Количество
*ТекСтрокаПереченьНоменклатуры.Стоимость;
КонецЕсли;
КонецЦикла;
КонецПроцедуры

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




















В режиме 1С: Предприятие

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

Контрольные вопросы

  • Для чего может понадобиться проведение документа по нескольким регистрам.
  • Как создать движения документа по нескольким регистрам в обработчике проведения документа.
  • Как создать движения документа без использования конс­труктора движений.
  • Как средствами встроенного языка сформировать и запи­сать движения документа в регистр накопления.
  • Как добавить в форму документа новый реквизит.

 




Лабораторная работа № 6

Тема работы: Вывод данных по всем дням в выбранном периоде. Получение Актуальных значений из периодического регистра сведений.

Цель работы: Научиться создавать различные отчеты.

 

Ход выполнения работы.

 

Теоретическая часть.

На этом занятии мы познакомимся с объектом конфигурации Отчет. Вы узнаете, для чего он используется, и создадите отчет, который будет показывать движения и остатки материалов на предприятии.

Что такое отчет?

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

 

Добавление отчета В режиме Конфигуратор

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

Можно быстро и легко разработать отчет с использованием только визуальных средств разработки «без единой строчки кода».

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

2. Создадим основу для построения любого отчета - схему компоновки данных. Для этого нажмем кнопку Открыть схему компоновки да или кнопку открытия со значком лупы.

Макет

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

3. Нажмем кнопку Готово. Платформа создаст новый макет, содержащий схему компоновки данных, и сразу же откроет конструктор схемы компоновки данных. Конструктор обладает большим количеством возможностей для визуального проектирования отчетов, но мы сейчас воспользуемся только самыми простыми его возможностями и определим те данные, которые хотим видеть в результате работы нашего отчета.

4. Добавим новый набор данных - запрос. Для этого нажмем кнопку Добавить или вызовем контекстное меню ветки Наборы данных. Для того чтобы создать текст запроса, запустим конструктор запроса - нажмем кнопку Конструктор запроса. Конструктор запроса - инструмент, созданный для помощи разработчику, позволяющий визуально конструировать запрос, пользователь, не знакомый с языком запросов, может с помощью конструктора создать синтаксически правильный запрос.

5. В списке База данных представлены таблицы для создания запроса. На основе их данных мы имеем возможность построить отчет. Если раскрыть ветку РегистрыНакопления то мы увидим, что кроме таблицы регистра ОстаткиМатериалов в этой ветке присутствуют еще несколько виртуальных таблиц, которые формирует система.

6. Эти виртуальные таблицы, создаваемые платформой для регистров, и используются в основном для построения различных отчетов. Поскольку мы хотим видеть как остатки материалов, так и информацию об их поступлении и расходовании, нас будет интересовать виртуальная таблица ОстаткиМатериалов.ОстаткиИОбороты. Раскроем ее.

7. Эта таблица содержит измерения регистра ОстаткиМатериалов – Материал, Склад и кроме этого начальные и конечные остатки, а также значения прихода, расхода и оборотов для всех ресурсов регистра ОстаткиМатериалов.

8. Начнем выбирать поля таблицы в нужном нам порядке двойным щелчком мыши. Сначала выберем Склад и Материал. Затем выберем КоличествоНачальныйОстаток, КоличествоПриход, КоличествоРасход. В  заключение выберем КоличествоКонечныйОстаток.

Выделенные элементы можно перенести из одного списка в другой перетаскиванием мышью или двойным щелчком на них.

9. В результате окно Поля должно быть заполнено следующим образом (рис.1 ).

 

Рис. 1. Выбранные поля

10. Нажмем ОК и вернемся в конструктор схемы компоновки данных.

 

 

11. Текст запроса, который был создан с помощью конструктора платформа поместит в поле Запрос. Это поле представляет собой текстовый редактор, в котором можно вручную отредактировать существующий запрос. Кроме того, можно снова вызвать конструктор запроса и отредактировать запрос при помощи него. Обратите внимание на список полей системы компоновки данных который платформа заполнила в верхней части конструктора. В нем отображаются поля, которые доступны у текущего набора данных. В нашем случае система 1С:Предприятие заполнила данный список автоматически, из текста запроса, и нет необходимости в его ручной настройке. Итак, мы описали, каким образом будут извлекаться данные для отчета. Но пока мы не создадим стандартных настроек нашего отчета, мы ничего не увидим в результате. Поэтому создадим самые простые настройки отчета для отображения обычных детальных записей информационной базы. В нашем случае это будут записи виртуальной Таблицы регистр накопления ОстаткиМатериалов, выбранные в линейном порядке по мере попадания их в эту таблицу.

12. Настройки отчета. Перейдем на закладку Настройки. В верхнем правом окне будет находиться иерархическая структура нашего отчета. Для добавления нового элемента выделим в дереве структуры отчет корневой элемент Отчет и вызовем его контекстное меню. Можно также нажать кнопку Добавить в командной панели окна или нажать клавишу 1пs.

13. Добавим в отчет группировку (контекстное меню - Новая группировка). При этом не станем указывать поле группировки, а просто нажмем ОК. Тем самым мы определили, что в отчет будут выводиться детальные записи из информационной базы - записи, получаемые в результате выполнения запроса без итогов.

В структуре отчета появится группировка Детальные записи(рис. 2)

 

 рис. 2

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

- Склад,

- Материал,

- КоличествоНачальныйОстаток,

- КоличествоПриход,

- КоличествоРасход,

- КоличествоКонечныйОстаток.

 

ПРИМЕЧАНИЕ

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

15. В результате окно настроек отчета должно иметь вид как на Рис.

 

 

.

16. Затем перейдем на закладку Параметры и укажем, что параметры отчета Дата начала и Дата окончания будут включены в состав поль­зовательских настроек, и эти настройки будут находиться непосредственно в форме отчета, то есть будут «быстрыми» настройками.

17. Сначала укажем, что оба эти параметра будут использоваться в отчете - установим флажки в первой колонке. Затем выделим каждый из параметров, нажмем кнопку Свойство элемента пользовательских настроек и поставим флажок Вкл ~ в пользовательские настройки.

 

 

 

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

19. Закроем конструктор схемы компоновки данных и в окне редактиро­вания объекта конфигурации Отчет Материалы перейдем на закладку Подсистемы. Отметим в списке подсистем конфигурации ветви Учет материалов, Оказание услуг и Бухгалтерия. Таким образом, ссылка на наш отчет автоматически попадет в панель действий этих подсистем.

20. В режиме 1С: Предприятие.  Запустим 1С:Предприятие в режиме отладки и посмотрим, как Работает отчет. В открывшемся окне 1С:Предприятия мы видим, что в панели действий разделов Бухгалтерия, Оказание услуг и Учет материалов появилась новая группа команд для выполнения отчетов и в ней команда для формирования отчета Материалы. Выполним ее.

21. Перед нами откроется автоматически сформированная системой форма отчета.

22. Зададим даты начала и окончания отчетного периода и нажмем на кнопку Сформировать. Как видите, наш отчет полностью отражает движение материалов, произошедшее в нашей организации.

Контрольные вопросы

1. Для чего предназначен объект конфигурации Отчет.

2.  Как создать отчет с помощью конструктора схемы компо­новки данных.

3. Как отобразить отчет в разделах прикладного решения.

 

Лабораторная работа № 7

Тема работы: Макет печатной формы.

Цель работы: Научиться создавать различные макеты печатной формы.

 

Ход выполнения работы.

Теоретическая часть

Что такое макет

Объект конфигурации Макет предназначен для хранения различных форм представления данных, различных данных, которые могут потребоваться каким-либо объектам конфигурации или всему прикладному решению в целом.

Макет может содержать табличный или текстовый документ, двоичные данные, НТМL-документ или Асtive Document, графическую или географическую схему, схему компоновки данных или макет оформления схемы компоновки данных.

Макеты могут существовать как сами по себе (общие макеты), так и быть подчинены какому-либо объекту конфигурации.

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

Порядок заполнения областей данными и вывода их в итоговую форму описывается при помощи встроенного языка. Печатная форма может включать в себя различные графические объекты: картинки. ОLЕ-объекты, диаграммы и т. д.

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

Макет печатной формы

Наша цель будет заключаться в создании печатной формы документа  Оказание услуги.

1. Откроем в конфигураторе окно редактирования объекта конфигурации Документ ОказаниеУслуги.  

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

3.На втором шаге нажатием кнопки >>. определим, что все реквизиты нашего документа будут отображены в шапке печатной формы. Нажмем Далее.

4.На третьем шаге точно так же определим, что все реквизиты табличной части документа будут отображены в печатной форме.

5.На четвертом шаге конструктор предложит сформировать подвал (нижнюю часть) печатной формы. Мы не станем ничего указывать (подвал в данном случае использовать не будем), нажмем и перейдем к пятому шагу. Здесь ничего изменять не будем. Тем самым согласимся с тем, команда для вызова процедуры формирования печатной формы будет помещена в командную панель формы, в раздел Важное.

6. Нажмем ОК. В конфигураторе откроется модуль команды Печать, модуль менеджера документа ОказаниеУслуги и макет этого документа. Разработчик может создать макет печатной формы с нуля и для ее вывода создать соответствующую команду и кнопку в форме документа, но в данном случае всю работу сделал за нас конструктор печати:

- Создан макет печатной формы документа ОказаниеУслуги с именем Печать.

- Создана команда документа ОказаниеУслуги с именем Печать. В модуль этой команды помещен обработчик, вызывающий процедуру печати документа, выполняющуюся на сервере. Сама процедура печати помещена в модуль менеджера документа ОказаниеУслуги.

- В командную панель формы документа ОказаниеУслуги помещена команда Печать для формирования печатной формы документа.

7. Причем поскольку команда Печать принадлежит документу ОказаниеУслуги в целом, а не конкретной его форме, эту команду можно будет помещать в любую форму, созданную для документа.

8. В будущем мы будем самостоятельно создавать процедуры обработчиков команд и размещать соответствующие им кнопки в форме, «пока воспользуемся результатами работы конструктора печати и проверим макет в работе.

9. Запустим 1С: Предприятие в режиме отладки и откроем документ ОказаниеУслуги № 1. Обратите внимание, что в командной панели документа появилась кнопка Печать.

10. Нажмем на нее и увидим печатную форму нашего документа. Как видите, конструктор сформировал вполне подходящую печатную форму для нашего документа. Единственное, чего не хватает в данной форме, - это итоговой суммы документа.

11. Редактирование макета. В режиме Конфигуратор прежде всего добавим итоговую сумму в печатную форму документа ОказаниеУслуги. Откроем конфигуратор, раскроем дерево документа Оказание Услуги и дважды щелкнем на макете Печать.

12. Как видите, макет документа состоит из именованных областей, которые в определенном порядке выводятся на печать. Те именованные области, которые мы видим слева, были созданы с помощью конструктора. Но разработчик может сам создавать или удалять области, переименовывать их и т. п.

13. Добавим новую область для вывода итоговой суммы документа. Выделим мышью две пустые строки под табличной частью документа и выполним пункт главного меню Таблица ► Имена ► Назначить имя.

14. Назовем область Всего, нажмем ОК.

15. Чтобы формат добавленных нами строк совпадал с имеющимся форматом заголовка и табличной части документа, изменим ширину колонок. Для этого потянем мышью в заголовке таблицы за правую границу колонки 2 так, чтобы ее ширина совпала с шириной колонки № в шапке документа. Отпустим мышь. Платформа предложит создать новый формат для выделенных строк. Согласиться с этим. Аналогичные действия выполним и для колонок 3, 4, 5 и 6.

16. В созданной области, в колонке Цена, напишем ВСЕГО, а в колонке Сумма напишем ВсегоПоДокументу. Вызвав палитру свойств для последней заполненной нами ячейки (контекстное меню - Свойства), в свойстве Заполнение укажем, что в этой ячейке будет находиться не текст, а параметр.

17. Каждая ячейка редактируемого нами табличного документа может содержать либо текст, либо некоторый параметр, либо шаблон. Текст, содержащийся в ячейке, будет показан на экране. Параметр будет заменен некоторым значением, которое может быть присвоено ему средствами встроенного языка. Текст, содержащийся в ячейке, является именем этого параметра. Шаблон представляет собой текстовую строку, в определенные места которой будут вставлены значения параметров. Поэтому, указав для ячейки в качестве заполнения Параметр, мы определили параметр области с именем ВсегоПоДокументу, которому присвоим нужное нам значение при формировании печатной формы.

18. Откроем модуль менеджера документа ОказаниеУслуги. Для этого перейдем на закладку Прочее окна редактирования объекта конфигурации Документ ОказаниеУслуги и нажмем кнопку Модуъ менеджера.

Найдем в нем процедуру Печать и отредактируем ее следующим образом (новые строки выделены жирным шрифтом), листинг- 1. 

Листинг – 1. Печать формы документа (фрагмент)

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");

   Шапка = Макет.ПолучитьОбласть("Шапка");

   ОбластьПереченьНоменклатурыШапка=                      

 Макет.ПолучитьОбласть("ПереченьНоменклатурыШапка");

   ОбластьПереченьНоменклатуры = Макет.ПолучитьОбласть("ПереченьНоменклатуры");

   ОбластьИтог=Макет.ПолучитьОбласть("Всего");

   ТабДок.Очистить();

 

   ВставлятьРазделительСтраниц = Ложь;

   Пока Выборка.Следующий() Цикл

               Если ВставлятьРазделительСтраниц Тогда

                          ТабДок.ВывестиГоризонтальныйРазделительСтраниц();

               КонецЕсли;

 

               ТабДок.Вывести(ОбластьЗаголовок);

 

               Шапка.Параметры.Заполнить(Выборка);

               ТабДок.Вывести(Шапка, Выборка.Уровень());

 

               ТабДок.Вывести(ОбластьПереченьНоменклатурыШапка);

               ВыборкаПереченьНоменклатуры = Выборка.ПереченьНоменклатуры.Выбрать();

               СуммаИтог=0;

               Пока ВыборкаПереченьНоменклатуры.Следующий() Цикл

                          ОбластьПереченьНоменклатуры.Параметры.Заполнить(ВыборкаПереченьНоменклатуры);

                          ТабДок.Вывести(ОбластьПереченьНоменклатуры, ВыборкаПереченьНоменклатуры.Уровень());

                          СуммаИтог=СуммаИтог+ВыборкаПереченьНоменклатуры.Сумма;

               КонецЦикла;

               ОбластьИтог.Параметры.ВсегоПоДокументу=СуммаИтог;

               ТабДок.Вывести(Областьитог);

 

               ВставлятьРазделительСтраниц = Истина;

   КонецЦикла;

 

19. Смысл добавленного фрагмента прост. Мы обращаемся к макету дата ОказаниеУслуги по его имени - Макет. Используя его метод ПолучитьОбласть(), получаем область Всего ( ту, которую мы только что добавили к макету) и сохраняем ее в переменной ОбластьИтог.

20. В цикле обхода строк табличной части документа, полученных в результате выполнения запроса, мы накапливаем в переменной СуммаИтог значение суммы табличной части документа по колонке Сумма.

21. Затем мы обращаемся к параметру ВсегоПоДокументу (ОбластьИтог. Параметры. ВсегоПоДокументу), находящемуся в области  Всего, и присваиваем ему значение переменной СуммаИтог.

22. В заключение мы выводим итоговую область в табличный документ, который будет показан на экране и распечатан пользователем - ТабДок.Вывести(ОбластьИтог).

23. Отображение табличного документа на экране выполняется в обработчике команды Печать, в модуле этой команды на клиенте, в то время как сама процедура печати, описанная в модуле менеджера документа, выполняется на сервере.

24. Запустим 1С:Предприятие в режиме отладки и проверим результат наших изменений. Подобным образом, создавая именованные области и ячейки макета, используя их свойства и управляя порядком их вывода с помощью встроенного языка, разработчик имеет возможность создать печатную форму любого дизайна. А теперь, для того чтобы наш документ ОказаниеУслуги, выглядел вполне законченным, добавим итоговую сумму по документу и на экранную форму, чтобы пользователь мог видеть ее в процессе заполнения табличной части документа.

25. Редактирование формы. После того как мы вывели итоговую сумму по табличной части в печатную форму документа, мы можем видеть такую же итоговую сумму и в форме документа. Чтобы в процессе его создания можно было оперативно, не печатая документ, знать итоговую сумму по документу. Для этого мы внесем небольшие изменения в форму документа Оказание Услуги.

26. Для редактирования формы документа откроем конфигуратор, раскроем дерево документа Оказание Услуги и дважды щелкнем на форме ФормаДокумента.

27. Дважды щелкнем на элементе ПереченьНоменклатуры в дереве, элементов формы или правой кнопкой мыши откроем для него палитру свойств (пункт контекстного меню Свойства).

28. Установим свойство Подвал, которое определяет   наличие подвала у таблицы формы.

29. Затем откроем свойства элемента формы ПереченьНоменклатурыЦена и установим:

■ Текст подвала - Всего: .

■ Горизонтальное положение в подвале - Право, а в свойстве Шрифт подвала изменим начертание на Жирный. После этого откроем свойства элемента ПереченьНоменклатурыСумма, установим: Горизонтальное положение в подвале – Право. В свойстве Шрифт подвала тоже изменим начертание на Жирный.

30.  Для того чтобы в подвале колонки Сумма отображался итог по ней, нажмем кнопку выбора в поле ПутьКДаннымПодвала.

31. Раскроем  дерево реквизитов объекта и выберем элемент ИтогСумма. Мы видим, что по колонке Сумма в табличной части документу подсчитывается общий итог документа.

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

. . .

Контрольные вопросы

1. Для чего предназначен объект конфигурации Макет.

2. Что такое конструктор печати.

3. Как создать макет с помощью конструктора печати.

4. Как изменить табличный документ.

5. Какая разница в заполнении ячейки табличного документа текстом, параметром и шаблоном.

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

7. Как изменить внешний вид и поведение элемента формы.

8. Как отобразить сумму по колонке таблицы

Лабораторная работа № 8

Дата: 2019-07-24, просмотров: 349.