Информатизация кооператива СПК "Гора" Московской области с внедрением компьютерной системы информационного обеспечения на основе платформы "1С: Предприятие 8.2"

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 11.06.2016
Размер файла 3,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Теперь создаю общий модуль "Работа с документами" и переношу в него процедуру расчета суммы (листинг 2). А в документе "Приходная накладная" записываю вызовы этой процедуры из общего модуля для полей "Количество" и "Цена".

Листинг 2 - Общий модуль "Работа с документами"

В окне редактирования объекта конфигурации "Документ Оказание услуги" на закладке "Данные" создаю реквизиты документа:

"Склад";

"Клиент";

"Мастер".

Далее создаю табличную часть "Перечень номенклатуры" с реквизитами "Номенклатура", "Количество", "Цена", "Сумма". Устанавливаю для табличной части в целом и для каждого ее реквизита свойство "Проверка заполнения" в значение "Выдавать ошибку".

На закладке "Формы" создаю основную форму документа. Для полей "Перечень Номенклатуры Количество" и "Перечень Номенклатуры Цена" создаю обработчики события "При изменении", в которых вызываю процедуру "Рассчитать Сумму (Строка табличной части)" из общего модуля "Работа с документами".

Теперь в окне "Все подсистемы" для раздела "Оказание услуг" в группе "Панель действий. Создать" включаю видимость у команды "Оказание услуги: создать".

Кооперативу СПК "Гора" в процессе своей работы может понадобиться информация о том, сколько и каких материалов есть у нее на складах. Для этого я создаю регистр накопления "Остатки материалов".

В окне редактирования объекта конфигурации "Регистр накопления Остатки материалов" на закладке "Данные" создаю его структуру (рисунок 23).

Рисунок 23 - Структура регистра накопления "Остатки материалов"

Теперь сформирую движения регистра накопления "Остатки материалов" в процессе проведения двух созданных мною документов "Приходная накладная" и "Оказание услуг".

Для этого в окне редактирования объекта конфигурации "Документ Приходная накладная" на закладке "Движения" раскрываю список "Регистры накопления" и отмечаю регистр накопления "Остатки материалов" (рисунок 24). Далее вызываю "Конструктор движений". В появившемся окне в поле выбора "Табличная часть" выбираю табличную часть "Материалы".

Рисунок 24 - Создание движений документа "Приходная накладная" в регистре "Остатки материалов"

Теперь нажимаю кнопку "Заполнить выражения". В нижнем окне сформировалось соответствие полей (измерений и ресурсов) регистра и выражений для их расчета (рисунок 25).

Рисунок 25 - Выбор табличной части документа "Приходная накладная" и заполнение выражений для расчета движений регистра "Остатки материалов"

Теперь в окне "Все подсистемы" для разделов "Бухгалтерия", "Оказание услуг" и "Учет материалов" в группе "Панель навигации. Обычное" включаю видимость у команды "Остатки материалов" и мышью перетаскиваю ее в группу "Панель навигации. См. также", так как она не так часто используется (рисунок 26).

Рисунок 26 - Настройка командного интерфейса подсистем

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

Чтобы реализовать такую возможность, открываю форму документа "Приходная накладная". В левом верхнем окне выбираю закладку "Командный интерфейс". В разделе "Панель навигации" раскрываю группу "Перейти" и включаю видимость у команды для открытия списка регистра накопления "Остатки материалов" (рисунок 27).

Рисунок 27 - Настройка командного интерфейса формы документа "Приходная накладная"

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

Следующим шагом будет создание печатной формы документа "Оказание услуги".

Для этого в окне редактирования объекта конфигурации "Документ Оказание услуги" на закладке "Макеты" запускаю конструктор печати (рисунок 28).

Рисунок 28 - Запуск конструктора печати

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

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

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

На четвертом шаге конструктор предложил сформировать мне подвал (нижнюю часть) печатной формы. Я здесь ничего не указываю.

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

Нажимаю "ОК".

В открывшемся макете документа "Оказание услуги" (рисунок 29) добавлю итоговую сумму этого документа в новую область.

Рисунок 29 - Макет документа "Оказание услуги"

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

В созданной области, в колонке "Цена", записываю "ВСЕГО:", а в колонке "Сумма" записываю "Всего по документу" (рисунок 30).

Рисунок 30 - Создание ячеек для вывода итогов

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

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

Листинг 3 - Строки из процедуры печать

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

Теперь создаю периодический регистр сведений "Цены", который будет хранить развернутые во времени розничные цены материалов и стоимости услуг, оказываемых кооперативом СПК "Гора".

В окне редактирования объекта конфигурации "Регистр сведений Цены" на закладке "Данные" создаю измерение "Номенклатура" и ресурс "Цена".

Цена номенклатуры теперь хранится в отдельном регистре сведений. А для того чтобы при создании или изменении документа "Оказание услуги" добавилась в табличную часть для каждой номенклатуры актуальная цена соответствующая дате документа из регистра сведений "Цены" сначала записываю функцию "Розничная цена()" в общем модуле "Работа со справочниками" (листинг 4), которая будет возвращать актуальную цену номенклатуры, а после этого создаю процедуру обработчика события "При изменении" элемента "Перечень номенклатуры Номенклатура" в форме документа "Оказание услуги" (листинг 5).

Листинг 4 - Функция "Розничная цена()"

Листинг 5 - Процедура обработчика события "При изменении" элемента "Перечень номенклатуры Номенклатура"

Для того чтобы однозначно определить принадлежность элемента справочника "Номенклатура" к материалам или услугам, независимо от изменения иерархической структуры справочника создаю объект конфигурации "Перечисление" с именем "Виды номенклатуры", имеющий значения "Материал" и "Услуга". После этого у справочника "Номенклатура" создаю специальный реквизит "Вид номенклатуры". Это поможет легко определить, чем является элемент справочника "Номенклатура":

услугой;

материалом.

Теперь создаю регистр накопления "Стоимость материалов" с измерением "Материал" и ресурсом "Стоимость", в котором будут учитываться денежные средства, затраченные на приобретение тех или иных материалов, материальные запасы фирмы СПК "Гора" будут в денежном выражении и весь суммовой учет материалов будет вестись по средней стоимости.

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

Следующим шагом будет внесение изменений в процедуры проведения документов.

В окне редактирования объекта конфигурации "Документ Приходная накладная" на закладке "Движения" в списке регистров отмечаю, что документ будет создавать теперь движения и по регистру "Стоимость материалов".

Для создания движения данного документа я выбираю закладку "Прочее" и открываю модуль объекта.

В появившемся окне в процедуру обработчика события "Обработка проведения" добавляю строки кода, создающие движения в регистре "Стоимость материалов" (листинг 6).

Листинг 6 - Строки кода процедуры обработчика события "Обработка проведения"

Теперь в форме документа "Приходная накладная" на закладке "Командный интерфейс" в разделе "Панель навигации" в группе "Перейти" включаю видимость у команды для открытия регистра накопления "Стоимость материалов".

Далее добавляю в табличную часть документа "Оказание услуги" реквизит "Стоимость", в котором будет указываться стоимость номенклатуры.

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

Рисунок 31 - Редактирование формы документа "Оказание услуги"

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

Также в форме документа "Оказание услуги" на закладке "Командный интерфейс" в разделе "Панель навигации" раскрываю группу "Перейти" и включаю видимость команды для открытия регистра накопления "Стоимость Материалов".

Следующим шагом будет редактирование движения документа "Оказание услуги" для максимального ускорения процесса проведения документа.

Для этого в модуле документа "Оказание услуги" перед циклом обхода табличной части документа создаю новый запрос (листинг 7), выбрав пункт "Конструктор запроса с обработкой результата" из контекстного меню.

Листинг 7 - Текст запроса в модуле документа "Оказание услуги"

Теперь вместо комментария "// Вставить обработку выборки ВыборкаДетальныеЗаписи" записываю условие "Если ВыборкаДетальныеЗаписи.ВидНоменклатуры = Перечисления. ВидыНоменклатуры.Материал Тогда" и переношу существовавшие ранее в этом модуле строки, описывающие движения регистров, внутрь цикла обхода результата запроса. Оставшийся цикл обхода табличной части я удаляю.

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

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

Рисунок 32 - Создание оборотного регистра "Продажи"

В окне редактирования объекта конфигурации "Регистр накопления Продажи" на закладке "Данные" создаю измерения регистра:

"Номенклатура";

"Клиент";

"Мастер".

У регистра также будет три ресурса:

"Количество";

"Выручка";

"Стоимость".

Теперь в окне "Все подсистемы" для разделов "Бухгалтерия", "Оказание услуг" и "Учет материалов" включаю видимость у команды "Продажи" в группе "Панель навигации. Обычное" и мышью перетаскиваю ее в группу "Панель навигации. См.также".

Следующим шагом будет изменение процедуры проведения документа "Оказание услуги".

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

На закладке "Прочее" открываю модуль документа. В процедуре обработчика события "Обработка проведения" добавляю строки кода, создающие движения регистра "Продажи", производимые документом "Оказание услуги" (листинг 8).

Листинг 8 - Строки кода процедуры обработчика события "Обработка проведения"

Теперь в форме этого документа на закладке "Командный интерфейс" в разделе "Панель навигации" раскрываю группу "Перейти" и включаю видимость команды для открытия регистра накопления "Продажи".

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

Для этого удаляю реквизит табличной части "Стоимость" документа "Оказание услуги" и соответствующее поле в форме данного документа. В конструкторе запроса этого документа создаю временную таблицу "Номенклатура документа" (рисунок 33), которая будет храниться в менеджере временных таблиц "МенеджерВТ".

Рисунок 33 - Создание временной таблицы "Номенклатура документа"

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

"Номенклатура";

"Вид номенклатуры";

"Количество в документе";

"Сумма в документе";

"Стоимость Остаток" из регистра "Стоимость номенклатуры";

"Количество Остаток" из регистра "Остатки номенклатуры".

В данном запросе применяю функцию "ЕСТЬNULL()" к полям "Стоимость" и "Количество" для того, чтобы функция вернула 0, если значение одного из этих полей NULL, в остальных случаях функция вернет само значение поля.

Возможна ситуация, когда поле "Количество" будет равно 0, поэтому после начала цикла обхода результата запроса рассчитываю стоимость для текущей номенклатуры (листинг 9).

Листинг 9 - Расчет стоимости в обработчике события "Обработка проведения" документа "Оказание услуги"

Чтобы в обработчике проведения документа прочитать данные базы данных без учета предыдущих движений, которые мог выполнять документ, перед выполнением второго запроса записываю пустые наборы записей в регистры "Стоимость материалов" и "Остатки материалов" (листинг 10), из которых собираются читать.

Листинг 10 - Пустые наборы записей в обработчике события "Обработка проведения" документа "Оказание услуги"

Теперь у объекта конфигурации "Документ Оказание услуги" устанавливаю свойство оперативного проведения на закладке "Движения".

Далее в процедуре "Обработка проведения" документа "Оказание услуги" организовываю контроль оперативного проведения документа, и если появились отрицательные остатки, отменяю проведение документа (листинг 11).

Листинг 11 - Проверка отрицательных остатков в обработчике события "Обработка проведения" документа "Оказание услуги"

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

Для этого в процедуру "Обработка проведения()" перед записью пустых наборов записей записываю строчки кода, представленные в листинге 12.

Листинг 12 - Блокировка данных в обработчике события "Обработка проведения" документа "Оказание услуги"

Так в кооператив СПК "Гора" поступает материал, его будут заносить в базу данных системы "1С:Предприятие", но ведь материал имеет определенные характеристики, которые тоже нужно указать. Для этого существует объект конфигурации "План видов характеристик".

Итак, создаю несколько новых объектов конфигурации:

"Справочник Варианты номенклатуры", чтобы описывать "партии" материалов;

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

"План видов характеристик Свойства номенклатуры", чтобы создавать виды характеристик (рисунок 34);

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

"Набор свойств";

"Вид свойства;

"Значение".

Рисунок 34 - План вида характеристик "Свойства номенклатуры"

Затем справочнику "Дополнительные свойства номенклатуры" указываю владельца -- план видов характеристик "Свойства номенклатуры".

Теперь в окне редактирования объекта конфигурации "Справочник Номенклатура" на закладке "Данные" стандартному реквизиту "Родитель" задаю синоним "Группа номенклатуры" (рисунок 35).

Рисунок 35 - Свойства стандартного реквизита "Родитель" справочника "Номенклатура"

Далее создаю форму списка справочника "Варианты номенклатуры" для улучшения пользовательского интерфейса.

В форме элемента справочника "Варианты номенклатуры" задаю заголовок формы в единственном числе, "Вариант номенклатуры", удаляю поля "Код" и "Владелец". Задаю реквизиту "Наименование" синоним "Название" и переименовываю команду перехода к подчиненной информации как "Состав варианта номенклатуры".

В форме списка регистра "Состав варианта номенклатуры" переименовываю заголовок колонки "Вид свойства" в "Свойство" и делаю колонку "Набор свойств" невидимой в форме списка регистра "Значения свойств номенклатуры" с помощью обработчика события формы "При создании на сервере" (Листинг 13).

Листинг 13 - Обработчик события "При создании на сервере" формы списка регистра "Значения свойств номенклатуры"

В форме записи регистра "Значения свойств номенклатуры" изменяю заголовок формы на "Свойство и значение" и удаляю колонку "Набор свойств" (рисунок 36).

Рисунок 36 - Форма записи регистра "Значения свойств номенклатуры"

Теперь хотелось бы иметь возможность еще и учитывать номенклатуру в разрезе этих характеристик. А именно:

приходовать товар, указывая характеристики;

расходовать товар, указывая характеристики;

получать отчеты не просто по номенклатуре, а по номенклатуре с определенными характеристиками.

Для этого открываю окно редактирования объекта конфигурации "Регистр накопления Остатки материалов" и на закладке "Данные" добавляю измерение "Набор свойств".

В окне редактирования объекта конфигурации документа "Приходная накладная" на закладке "Данные" добавляю в табличную часть документа новый реквизит "Набор свойств" и располагаю его в табличной части формы документа.

В заключение в окне редактирования объекта конфигурации "Документ Приходная накладная" на закладке "Прочее" открываю модуль объекта и в процедуру обработчика события "Обработка проведения()" добавляю к формируемым движениям присвоение значения измерению "Набор свойств" регистра "Остатки материалов" (листинг 14).

Листинг 14 - Присвоение значения измерению "Набор свойств" регистра "Остатки материалов" в процедуру обработчика события "Обработка проведения()"

Теперь аналогичным образом доработаю документ "Оказание услуги".

Поскольку я оптимизировала процедуру проведения документа и получаю все данные документа с помощью запроса, то в текст запроса добавляю строки для получения нового реквизита документа (листинг 15).

Листинг 15 - Получение реквизита "Набор свойств"

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

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

Добавляю набор данных в виде запроса и вызываю конструктор запроса.

В качестве источника данных для запроса выбираю виртуальную таблицу регистра накопления "Остатки материалов. Остатки и обороты". Из этой таблицы выбираю следующие поля:

"Материал";

"Набор свойств";

"Количество начальный остаток";

"Количество Приход";

"Количество Расход";

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

После этого на закладке "Объединения/Псевдонимы" задаю псевдонимы числовых полей без слова "Количество".

Теперь описанию характеристики полей на закладке "Характеристики", нажав кнопку "Добавить" (рисунок 37).

Рисунок 37 - Характеристики полей запроса

На этом создание запроса закончено. Нажимаю "ОК". Передо мной появилось окно схемы компоновки данных отчета "Остатки материалов по свойствам".

Приступлю к редактированию схемы компоновки данных. Прежде всего, на закладке "Ресурсы" выбираю все доступные ресурсы.

Далее выбираю закладку "Настройки" и добавляю группировку "Детальные записи". Затем на закладке "Выбранные поля" выбираю те поля, которые будут выводиться в отчет (рисунок 38).

Рисунок 38 - Поля отчета "Остатки материалов по свойствам"

На закладке "Другие настройки" задаю заголовок отчета -- "Остатки материалов по свойствам",

В окне "Состав пользовательских настроек группировки" включаю настройку "Отбор" в состав быстрых пользовательских настроек.

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

На этом создание отчета завершено.

Теперь организую бухгалтерский учет.

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

Поскольку мне понадобится некий вспомогательный справочник, в котором пользователи будут осуществлять "свободное творчество" по созданию значений новых объектов аналитического учета, добавляю объект конфигурации "Справочник" и называю его "Субконто". Затем на закладке "Владельцы" указываю, что этот справочник будет подчинен плану видов характеристик "Виды субконто" (рисунок 39).

Рисунок 39 - Выбор владельца справочника "Субконто"

В окне редактирования объекта конфигурации "План видов характеристик Виды субконто" на закладке "Основные" задаю составной тип данных:

"Справочник Ссылка. Клиенты";

"Справочник Ссылка. Номенклатура"

"Справочник Ссылка. Субконто".

Затем указываю, что дополнительные значения характеристик будут находиться в справочнике "Субконто" (рисунок 40).

Рисунок 40 - План видов характеристик "Виды субконто"

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

Рисунок 41 - Предопределенные значения плана видов характеристик "Виды субконто"

Теперь создаю план счетов "Основной" кооператива СПК "Гора", который содержит всего четыре счета:

"Товары";

"Расчеты с поставщиками";

"Капитал";

"Дебиторская задолженность".

В окне редактирования объекта конфигурации "План счетов Основной" на закладке "Данные" создаю признак учета "Количественный".

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

Теперь создаю регистр бухгалтерии "Управленческий". В окне редактирования данного объекта на закладке "Данные" создаю два ресурса:

"Сумма"; "Количество".

На этом создание регистра бухгалтерии завершено.

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

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

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

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

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

Рисунок 42 - Данные в конструкторе запроса отчета "Оборотно-сальдовая ведомость"

На закладке "Связи" указываю, что из таблицы "Основной" я выбираю все записи, а из таблицы регистра -- только те, которые соответствуют условию связи.

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

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

На закладке "Ресурсы" выбираю все доступные ресурсы.

Бухгалтерские отчеты, как правило, формируются для определенного периода. Поэтому на закладке "Параметры", добавляю параметр с именем "Период", а для параметров "Начало периода" и "Конец периода" указываю выражение для расчета и запрещаю их редактирование пользователями (рисунок 43).

Рисунок 43 - Параметры схемы компоновки данных

В заключение выбираю закладку "Настройки" и создаю структуру отчета, представленную на рисунке 44.

Рисунок 44 - Отчет "Оборотно-сальдовая ведомость"

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

Теперь организую расчет зарплаты в системе "1С:Предприятие".

Для этого создаю новый объект конфигурации "План видов расчета" с именем "Основные начисления". В окне редактирования этого объекта на закладке "Расчет" устанавливаю основные свойства, представленные на рисунке 45.

Рисунок 45 - Основные свойства плана видов расчета "Основные начисления"

Выбираю закладку "Прочее" и задаю предопределенные виды расчета:

"Невыход";

"Оклад";

"Премия".

Далее создаю новый объект конфигурации "Справочник" с именем "Виды графиков работы". В окне редактирования данного объекта на закладке "Прочее" создаю для справочника два предопределенных графика работы -- "График администрации" и "График мастеров".

После этого создаю объект конфигурации "Регистр сведений" с именем "Графики работы".

В окне редактирования объекта конфигурации "Регистр сведений Графики работы" на закладке "Данные" создаю два измерения:

"График работы";

"Дата".

Затем создаю единственный ресурс регистра -- "Значение".

Теперь добавляю новый объект конфигурации "Регистр расчета" с именем "Начисления".

В качестве плана видов расчета, используемого регистром, выбираю "Основные начисления". Устанавливаю, что регистр будет использовать период действия, график будет задаваться в регистре сведений "Графики работы", значение графика будет находиться в ресурсе "Значение", а дата графика -- в измерении "Дата". Указываю, что регистр расчета будет использовать базовый период и периодичность регистра будет месяц (рисунок 46).

На закладке "Данные" создаю следующие колонки:

измерение "Сотрудник";

ресурс "Результат";

реквизит "График работы";

реквизит "Исходные данные".

Рисунок 46 - Окно редактирования конфигурации "Регистр расчета Начисления"

Теперь выбираю закладку "Перерасчеты" и создаю объект конфигурации "Перерасчет", который называю -- "Перерасчет", с единственным измерением -- "Сотрудник" (рисунок 47).

Рисунок 47 - Перерасчеты регистра расчета "Начисления"

Далее в окне "Все подсистемы" для раздела "Расчет зарплаты" в группе "Панель навигации. Обычное" включаю видимость у команды "Начисления".

На этом создание объекта конфигурации "Регистр расчета Начисления" завершено.

Для того чтобы иметь возможность регистрировать в базе данных начисления сотрудникам я создаю документ "Начисления сотрудникам". В окне редактирования этого объекта на закладке "Данные" создаю табличную часть "Начисления", содержащую следующие реквизиты:

"Сотрудник";

"График работы";

"Дата начала";

"Дата окончания";

"Вид расчета";

"Начислено".

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

В окне конструктора выбираю табличную часть "Начисления" и нажимаю кнопку "Заполнить выражения".

Для реквизитов "Период действия Конец" и "Базовый период Конец" указываю выражение "Конец дня (ТекСтрокаНачисления. Дата окончания)", для поля "Период регистрации" указываю выражение "Дата", реквизиту "Исходные данные" поставляю в соответствие реквизит табличной части "Начислено", а для ресурса "Результат" оставляю пустое выражение. Нажимаю "ОК".

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

Теперь создаю новый объект конфигурации "Отчет". В окне редактирования этого отчета на закладке "Основные" задаю ему имя "Перерасчет" и нажимаю кнопку "Открыть схему компоновки данных". В появившемся окне "Конструктор макета" щелкаю левой кнопкой мыши по кнопке "Готово".

В схеме компоновки данных добавляю набор данных в виде запроса и открываю конструктор запроса.

В списке "База данных" раскрываю ветвь "Перерасчеты" и из виртуальной таблицы перерасчета "Начисления. Перерасчет" выбираю все поля (рисунок 48).

Рисунок 48 - Поля и таблицы запроса

На этом создание запроса закончено, нажимаю "ОК".

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

На закладке "Выбранные поля" выбираю для вывода в отчет поля "Объект перерасчета", "Вид расчета" и "Сотрудник".

На этом создание схемы компоновки данных закончено.

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

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

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

В открывшемся окне выбираю таблицу регистра расчета "Начисления" и из нее выбираю следующие поля:

"Сотрудник";

"Вид расчета";

"Период действия Начало";

"Период действия Конец";

"Регистратор";

"Результат".

На этом создание запроса закончено, нажимаю "ОК".

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

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

"Вид расчета";

"Начало";

"Окончание";

"Регистратор";

"Результат".

На закладке "Сортировка" указываю, что сортировка должна выполняться по возрастанию значения поля "Сотрудник" и "Регистратор".

И в заключение на закладке "Другие настройки" задаю заголовок отчета -- "Начисления сотрудникам".

На этом создание схемы компоновки данных закончено.

В окне редактирования объекта конфигурации "Отчет Начисления сотрудникам" на закладке "Подсистемы" указываю, что отчет будет вызываться из подсистем "Расчет зарплаты" и "Бухгалтерия".

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

Поскольку единственным способом получения итоговой информации о начислениях сотрудникам в конфигурации является отчет "Начисления сотрудникам", для вызова этой процедуры я создаю основную форму этого отчета и добавляю в командную панель формы кнопку "Перерассчитать", по которой будет выполняться перерасчет данных регистра (рисунок 49).

Рисунок 49 - Форма отчета "Начисления сотрудникам"

Теперь создам отчет, который в графическом виде будет показывать фактический период действия записей расчета.

Создаю новый объект конфигурации "Отчет" и называю его "Диаграмма начислений".

Создаю основную форму отчета и в ней формирую и настраиваю диаграмму "Диаграмма Ганта" (рисунок 50).

В заключение в окне редактирования объекта конфигурации "Отчет Диаграмма начислений" на закладке "Подсистемы" указываю, что отчет будет вызываться из подсистемы "Расчет зарплаты".

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

Рисунок 50 - Форма отчета "Диаграмма начислений"

Для этого выбираю пункт основного меню "Все функции", далее "Стандартные", "Управление полнотекстовым поиском... ". В результате открылось окно управления полнотекстовым поиском (рисунок 51).

Рисунок 51 - Окно "Управление полнотекстовым поиском"

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

Для того чтобы создать полнотекстовый индекс, нажимаю кнопку "Обновить индекс".

Итак, я создала полнотекстовый индекс для информационной базы. Теперь создам отчет, который позволит выполнять полнотекстовый поиск в базе данных.

Добавляю в конфигурацию новый объект "Отчет" с именем "Поиск данных" и создаю основную форму этого отчета (рисунок 52).

Рисунок 52 - Форма отчета "Поиск данных"

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

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

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

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

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

Сначала создам первое регламентное задание по обновлению индекса.

Для этого раскрываю ветвь "Общие" дерева объектов конфигурации, выделяю строку "Регламентные задания" и добавляю новый объект конфигурации "Регламентное задание". В окне "Свойства: Регламентные задания 1" задаю имя -- "Обновление индекса" и метод задания, который и будет выполнять обновление полнотекстового индекса информационной базы (рисунок 53).

Рисунок 53 - Первое регламентное задание "Обновление индекса"

После этого в свойствах регламентного задания в строке "Расписание" нажимаю на ссылку "Открыть". Появился диалог редактирования расписания (рисунок 54).

Рисунок 54 - Окно редактирования расписания регламентного задания "Обновление индекса"

Прежде всего, на закладке "Общее" указываю, что запуск задания должен повторяться каждый день ("Повторять каждые: 1 дн.").

Теперь выбираю закладку "Дневное" и задаю порядок запуска задания в течение дня. Указываю, что запуск задания должен повторяться каждые 60 секунд ("Повторять через: 60 сек.").

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

На этом создание расписания регламентного задания закончено, нажимаю "ОК".

В качестве последнего штриха устанавливаю в свойствах регламентного задания флажок "Предопределенное".

Теперь по аналогии создаю второе регламентное задание -- "Слияние индексов".

В свойствах этого задания устанавливаю также флажок "Предопределенное" и приступаю к редактированию расписания. Для этого нажимаю на ссылку "Открыть" в свойствах регламентного задания в строке "Расписание".

На закладке "Общее" указываю, что задание будет запускаться каждый день ("Повторять каждые: 1 дн."), а на закладке "Дневное" указываю время начала выполнения задания ("Время начала: 01:00"). Окно редактирования расписания регламентного задания "Слияние индексов" представлено на рисунке 55.

Рисунок 55 - Окно редактирования расписания регламентного задания "Слияние индексов"

На этом создание регламентного задания "Слияние индексов" завершено, нажимаю "ОК".

Теперь создам простую обработку, которая будет запускать задания по расписанию.

Итак, выделяю ветвь "Обработки" в дереве объектов конфигурации и добавляю новый объект конфигурации "Обработка" с именем "Планировщик заданий".

На закладке "Формы" создаю основную форму обработки. В окне "Обработка Планировщик заданий: Форма" редактирую данную форму (рисунок 56).

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

Рисунок 56 - Форма обработки "Планировщик заданий"

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

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

После этого выбираю закладку "Формы" и создаю основную форму документа (рисунок 57).

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

Листинг 16 - Обработчик события "Перед записью" документа "Ввод начальных остатков номенклатуры"

Рисунок 57 - Форма документа "Ввод начальных остатков номенклатуры"

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

Для этого в окне редактора форм на закладке "Командный интерфейс" устанавливаю видимость для команды открытия регистра "Остатки материалов".

В окне редактирования объекта конфигурации "Документ ввод начальных остатков номенклатуры" на закладке "Подсистемы" я указываю его принадлежность к подсистеме "Бухгалтерия".

Далее отредактирую командный интерфейс этой подсистемы. Для этого выделяю в списке подсистем подсистему "Бухгалтерия" и в списке команд этой подсистемы устанавливаю видимость команды "Ввод начальных остатков номенклатуры: создать" в группе "Панель действий. Создать".

Теперь придам форме списка справочника "Номенклатура" "нестандартный" вид в окне настройки динамического списка с использованием запроса для добавления реквизита "Цена" (рисунок 58).

Рисунок 58 - Форма списка справочника "Номенклатура"

У кооператива СПК "Гора" есть удаленный филиал и отдел, с которыми необходимо поддерживать связь. Такую связь можно реализовать с помощью системы "1С:Предприятие 8".

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

Теперь создаю общий модуль "Обмен", представленный в листинге 17, который вызываю в модулях объектов, участвующих в обмене.

Листинг 17 - Общий модуль "Обмен"

Далее создаю объект конфигурации "План обмена" с именем "Филиалы". В окне редактирования этого объекта на закладке "Данные" создаю реквизит "Главный".

На закладке "Основные" определяю состав объектов, участвующих в обмене. А на закладке "Формы" создаю основную форму узла и форму списка, представленные на рисунках 59, 60.

Рисунок 59 - Форма узла плана обмена "Филиалы"

Рисунок 60 - Форма списка плана обмена "Филиалы"

Для того чтобы был обмен данными между фирмой и ее филиалом создаю объект конфигурации "Обработка" с именем "Обмен данными" и на закладке "Формы" создаю форму обработки, представленную на рисунке 61.

Теперь сохраняю конфигурацию в файл и создаю новую информационную базу на основе созданной конфигурации для филиала.

Для того чтобы фирма обменивалась данными еще и с отделом, я создаю как и для филиала объект конфигурации "План обмена" с именем "Отделения". Дополнительно устанавливаю свойство "Распределенная информационная база".

Рисунок 61 - Форма обработки "Обмен данными"

После этого в режиме "1С:Предприятие" создаю начальный образ информационной базы для отделения (рисунок 62).

Рисунок 62 - Создание начального образа информационной базы для отделения

Разработка пользовательского интерфейса

Теперь я создала полную конфигурацию на платформе "1С:Преприятие 8.2" для кооператива СПК "Гора".

Сейчас я создавала структуру базы данных для кооператива СПК "Гора" в режиме "Конфигуратор". В системе "1С:Предприятие" есть еще управляемое приложение, с которым работают пользователи. Это приложение я и разработаю далее.

Для этого открываю созданную конфигурацию в режиме "1С:Предприятие", выбираю подсистему "Оказание услуг" и команду "Создать: Клиент". В появившемся окне создаю клиентов, которых обслуживала фирма СПК "Гора". Формы списка клиентов и элемента представлены на рисунке 63.

Рисунок 63 - Запись клиентов в базу данных в режиме "1С:Предприятие"

Таким же образом создаю список номенклатуры (рисунок 64), список сотрудников (рисунок 65), список складов (рисунок 66).

Рисунок 64 - Запись номенклатуры в базу данных в режиме "1С:Предприятие"

Рисунок 65 - Список сотрудников

Рисунок 66 - Список складов

Теперь создаю документы "Приходная накладная" (рисунок 67), "Оказание услуги" (рисунок 68) и "Начисление сотрудникам" (рисунок 69), выбрав соответствующие подсистемы и команды.

Рисунок 67 - Создание документа "Приходная накладная"

Рисунок 68 - Создание документа "Оказание услуги"

Рисунок 69 - Создание документа "Начисление сотрудникам"

Аналогичным образом я заполняю другие объекты конфигурации.

Разработка отчетов для вывода на принтер

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

В режиме "Конфигуратор" выделяю в дереве объектов конфигурации объект "Отчет", вызываю его контекстное меню и выбираю из появившегося списка пункт "Добавить".

Передо мной появилось окно редактирования объекта конфигурации "Отчет".

На закладке "Основные" задаю имя отчета -- "Материалы" и нажимаю кнопку "Открыть схему компоновки данных" (рисунок 70).

Рисунок 70 - Создание схемы компоновки данных отчета

В появившемся окне "Конструктор макета" нажимаю кнопку "Готово".

Платформа создала новый макет, содержащий схему компоновки данных, и сразу же его открыла. На закладке "Наборы данных" добавлю новый набор данных в виде запроса (рисунок 71).

Рисунок 71 - Добавление набора данных в конструкторе схемы компоновки данных

Для того чтобы создать текст запроса, запускаю конструктор запроса.

В появившемся окне выбираю таблицу "Остатки материалов. Остатки и обороты" и из нее следующие поля:

"Склад";

"Материал";

"Количество Начальный остаток";

"Количество Приход";

"Количество Расход";

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

Теперь нажимаю "ОК".

В появившемся окне конструктора схемы компоновки данных на закладке "Настройки" добавляю в отчет группировку "Детальные записи" (рисунок 72).

Рисунок 72 - Группировка "Детальные записи" в отчете "Материалы"

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

"Склад";

"Материал";

"Количество Начальный остаток";

"Количество Приход";

"Количество Расход";

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

На закладке "Параметры" указываю, что параметры отчета "Дата начала" и "Дата окончания" будут включены в состав пользовательских настроек в режиме "Быстрый доступ" (рисунок 73).

Рисунок 73 - Редактирование пользовательских настроек

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

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

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

Добавляю в конфигуратор объект конфигурации "Отчет" с именем "Реестр документов оказание услуги". Далее создаю схему компоновки данных отчета.

В открывшемся диалоговом окне конструктора макета нажимаю "Готово". В конструкторе схемы компоновки данных создаю набор данных в виде запроса и запускаю конструктор запроса.

В появившемся окне в качестве источника данных для запроса выбираю объектную (ссылочную) таблицу документа "Оказание услуги". Из этой таблицы выбираю следующие поля:

"Склад";

"Мастер"

"Клиент";

"Ссылка".

Выбираю закладку "Объединения/Псевдонимы" и указываю, что поле "Ссылка" будет иметь псевдоним "Документ" (рисунок 74).

Рисунок 74 - Установка псевдонима для поля "Ссылка"

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

Рисунок 75 - Порядок записей в запросе

Нажимаю "ОК". Появилось окно схемы компоновки данных со сформированным запросом.

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

"Документ";

"Склад";

"Мастер";

"Клиент".

Далее определяю, что этот отчет будет отображаться в подсистеме "Оказание услуг".

Еще один отчет - отчет "Рейтинг услуг", который будет содержать информацию о том, выполнение каких услуг принесло кооперативу СПК "Гора" наибольшую прибыль в указанном периоде.

Для этого добавляю новый объект конфигурации "Отчет" с именем "Рейтинг услуг" и запускаю конструктор схемы компоновки данных.

В окне данного конструктора добавляю набор данных в виде запроса и вызываю конструктор запроса.

В качестве источника данных для запроса выбираю объектную (ссылочную) таблицу "Номенклатура" и виртуальную таблицу регистра накопления "Продажи. Обороты".

Чтобы исключить неоднозначность имен в запросе, переименовываю таблицу "Номенклатура" в "спрНоменклатура".

В список полей переношу поля "спрНоменклатура. Ссылка" и "Продажи Обороты. Выручка Оборот" из этих таблиц (рисунок 76).

Так как в запросе теперь участвуют несколько таблиц, на закладке "Связи" устанавливаю флажок "Все" у таблицы "спрНоменклатура". Тем самым я задала тип связи как "Левое соединение", то есть в результат запроса будут включены все записи справочника "Номенклатура" и те записи регистра "Продажи", которые удовлетворяют условию связи по полю "Номенклатура".

Рисунок 76 - Выбранные поля

Выбираю закладку "Условия" и устанавливаю отбор по полю "Это группа", чтобы группы справочника "Номенклатура" не попадали в отчет (рисунок 77).

Рисунок 77 - Создание условия в запросе по полю "Это группа"

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

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

Создание запроса закончено, нажимаю кнопку "ОК". Появилось окно конструктора схемы компоновки данных.

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

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

Для этого выбираю закладку "Параметры", дважды щелкаю в ячейке "Тип", соответствующей параметру "Начало периода". Затем нажимаю кнопку выбора и в нижней части окна редактирования типа данных устанавливаю "Состав даты" в значение "Дата". Нажимаю "ОК"

Для параметра "Конец периода" устанавливаю флажок "Ограничение доступности".

Затем добавляю новый параметр "Дата окончания". Задаю тип значения параметра -- "Дата". При этом, как и для параметра "Начало Периода", указываю состав даты -- "Дата". А также для параметра "Начало периода" задаю заголовок, который будет отображаться пользователю, -- "Дата начала".

В ячейке "Выражение" задаю для параметра "Конец периода" выражение: "Конец периода (&Дата окончания, "Дата")".

Функция "Конец Периода()" позволяет получить дату, соответствующую концу какого-либо периода, например, указанного дня.

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

Поэтому его задаю непосредственно в схеме компоновки как "Перечисление. Виды номенклатуры. Услуга".

Флажок ограничения использования у параметра "Вид номенклатуры" платформа установила по умолчанию (рисунок 78).

Рисунок 78 - Параметры отчета "Рейтинг услуг"

На закладке "Настройки" добавляю группировку "Детальные записи". На закладке "Выбранные поля" указываю поля "Услуга" и "Выручка" (рисунок 79).

Рисунок 79 - Структура отчета "Рейтинг услуг"

Затем выбираю закладку "Другие настройки" и задаю заголовок отчета -- "Рейтинг услуг".

На закладке "Параметры" выделяю по очереди параметры "Начало периода" и "Дата окончания" и включаю в пользовательские настройки со значением "Быстрый доступ" (рисунок 80).

Рисунок 80 - Определение пользовательских настроек

Далее создаю еще настройки отчета - "Условное оформление", "Непопулярная услуга" (рисунок 81) и "Отбор" (рисунок 82).

Рисунок 81 - Создание настройки отчета "Непопулярная услуга"

Рисунок 82 - Настройка отчета "Отбор"

Все созданные настройки включаю в состав пользовательских настроек.

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.