Файл: Разработка конфигурации «Складской учет» в среде 1С:Предприятие 8.3 (Организационная структура предприятия).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 23.04.2023

Просмотров: 419

Скачиваний: 4

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

2.3 Разработка управляемого приложения

С выпуском в 2003 г. программной системы «1С:Предприятие 8» фирма «1С» заметно ускорила (по сравнению с вариантом 7.x) процесс развития ее базового компонента — технологической платформы.

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

Но в этом сегменте у заказчиков имеются давно устоявшиеся (и постоянно растущие!) требования к бизнес–приложениям, и чтобы соответствовать им, разработчикам «1С» пришлось повысить темпы развития базовых технологий [11].

Основная работа пользователей, по-прежнему, происходит в формах. В управляемом приложении применяются формы, которые построены на основе новой технологии. Такие формы называются управляемые (рис. 2.24).

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

Основные новшества «1С:Предприятие 8. Управляемое приложение» связаны с необходимостью и дальше повышать производительность и масштабируемость платформы, поддерживать работу удаленных пользователей, упростить процесс разработки и сопровождения прикладных решений, а также сделать более удобной работу пользователей.

Одна из ключевых идей системы «Управляемое приложение» заключается в переходе на использование модели декларативного описания программного кода и пользовательского интерфейса. Это существенно повышает управляемость бизнес–приложения и позволяет перейти к применению тонкого Windows- и Web-клиента [1].

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

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


Что же касается контекстов исполнения собственных процедур или функций – их определяет сам разработчик в зависимости от своих нужд.

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

– &НаКлиенте;

– &НаСервере;

– &НаСервереБезКонтекста;

– &НаКлиентеНаСервереБезКонтекста.

В системе 1С: Предприятие 8.3 для авторизации используется список пользователей, для разграничения полномочий мы создаем в объекте роли 2 пользователей и создаем 2 интерфейса, устанавливаем в каждом набор прав, для разрешения доступа только к необходимым объектам.

Изменяем свойство конфигурации Основной режим запуска на "Управляемое приложение".

Создаем подсистемы Закупки и Продажи, и определяем состав объектов каждой подсистемы.

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

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

Роль директор (рис. 2.27). Права:

- просмотр и чтение документов;

- возможность изменять реквизиты организации.

Роль кладовщик (рис. 2.28). Права на возможность изменять такие документы, как:

- заказ на склад;

- приходная накладная;

- расходная накладная;

- остатки на склад;

- поступление на склад;

- ввод начальных остатков;

- просмотр прайс-листов.

2.4 Реализация бизнес-процесса «Продажа товара»

Режим запуска «Обычное приложение». Создаем справочники Сотрудники (данные: Иванов, Петров, Сидоров), Подразделения (данные: отдел продаж, склад), Роли Исполнителей (данные: кладовщик, продавец, руководитель отдела). В форме документа Заявка покупателя создаем реквизит ОплатаСчета.

В модуле объекта определяем обработчики событий.

Процедура ПередВыполнением (Отказ)

Если ДатаВыполнения = '00010101' Тогда

ДатаВыполнения = ТекущаяДата ();

КонецЕсли; Если Исполнитель. Пустая () Тогда

Исполнитель = ПараметрыСеанса. ТекущийИсполнитель;

КонецЕсли;

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

Процедура ПриВыполнении ()

Сообщить ("Задача выполнена: "+""""+Наименование+"""");


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

Процедура ПриЗаписи ()

Если ЭтоНовый () Тогда

Сообщить ("Сформирована задача: "+""""+Наименование+"""");

Сообщить ("Исполнитель"+Исполнитель);

Сообщить ("Подразделение"+подразделение);

КонецЕсли;

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

Создаем объект конфигурации бизнес - процесс "Продажа товара".

Создаем карту маршрута.

Процедуры описываем в модуле объекта:

Процедура СтартПередСтартом (ТочкаМаршрутаБизнесПроцесса, Отказ)

НужноЗаписать = Ложь;

ЕСЛИ Счет. Пустая () ТОГДА

СчетОбъект = Документы. ЗаявкиПокупателя. СоздатьДокумент ();

СчетОбъект. Дата = ТекущаяДата ();

СчетОбъект. Записать ();

Счет = СчетОбъект. Ссылка;

НужноЗаписать = Истина;

КОНЕЦЕСЛИ;

ЕСЛИ РасходнаяНакладная. Пустая () ТОГДА

РасходнаяНакладнаяОбъект = Документы. ПродажаТовара. СоздатьДокумент ();

РасходнаяНакладнаяОбъект. Дата = ТекущаяДата ();

РасходнаяНакладнаяОбъект. Записать ();

РасходнаяНакладная = РасходнаяНакладнаяОбъект. Ссылка;

НужноЗаписать = Истина;

КОНЕЦЕСЛИ;

ЕСЛИ НужноЗаписать ТОГДА

Записать ();

КОНЕЦЕСЛИ;

СООБЩИТЬ ("Старт бизнес-процесса: " + """" + ЭтотОбъект. МетаДанные (). Синоним+"""");

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

Процедура СчетОплаченПроверкаУсловия (ТочкаМаршрутаБизнесПроцесса, Результат)

Результат = Счет. ОплатаСчета;

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

Процедура ВыпискаСчетаОбработкаИнтерактивнойАктивации (ТочкаМаршрутаБизнесПроцесса, Задача, СтандартнаяОбработка)

Счет. ПолучитьФорму ("ФормаДокумента"). Открыть ();

СтандартнаяОбработка=Ложь;

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

Процедура ВыпискаСчетаПередИнтерактивнымВыполнением (ТочкаМаршрутаБизнесПроцесса, Задача, Отказ)

Если Счет. Товары. Количество () =0 тогда

Отказ=Истина;

КонецЕсли;

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

Процедура ВыпискаНакладнойОбработкаИнтерактивнойАктивации (ТочкаМаршрутаБизнесПроцесса, Задача, СтандартнаяОбработка)

РасходнаяНакладная. ПолучитьФорму ("ФормаДокумента"). Открыть ();

СтандартнаяОбработка=Ложь;

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

Процедура ВыпискаНакладнойПередИнтерактивнымВыполнением (ТочкаМаршрутаБизнесПроцесса, Задача, Отказ)

Если РасходнаяНакладная. Товары. Количество () =0 тогда

Отказ=Истина;

КонецЕсли;

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


Процедура ОтгрузкаСоСкладаОбработкаИнтерактивнойАктивации (ТочкаМаршрутаБизнесПроцесса, Задача, СтандартнаяОбработка)

РасходнаяНакладная. ПолучитьФорму ("ФормаДокумента"). Открыть ();

СтандартнаяОбработка=Ложь;

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

Процедура НормальноеЗавершениеПриЗавершении (ТочкаМаршрутаБизнесПроцесса, Отказ)

Сообщить ("Завершение бизнес-процесса: "+""""+ЭтотОбъект. Метаданные (). Синоним+"""");

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

Процедура НетПриЗавершении (ТочкаМаршрутаБизнесПроцесса, Отказ)

Сообщить ("Досрочное завершение бизнес-процесса: "+""""+ЭтотОбъект. Метаданные (). Синоним+"""");

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

В модуле обычного приложения определяем процедуры:

Процедура ПриНачалеРаботыСистемы ()

ПараметрыСеанса. ТекущийИсполнитель=Справочники. Сотрудники. НайтиПоКоду (ИмяПользователя ());

ПодключитьОбработчикОповещения ("ОбработчикОповещения");

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

Процедура ОбработчикОповещения (ИмяСобытия, Параметр, Источник) Экспорт

Если ИмяСобытия="ЗаписьСчета" Тогда

Запрос=Новый Запрос;

Запрос. УстановитьПараметр ("Парам", Источник. Ссылка);

Запрос. Текст="ВЫБРАТЬ

|Задача. Ссылка

|Из

|БизнесПроцесс. ПродажаТовара КАК ПродажаТовара ЛЕВОЕ СОЕДИНЕНИЕ Задача. Задача. ЗадачиПоИсполнителю КАК Задача

|ПО ПродажаТовара. Ссылка=Задача. БизнесПроцесс

|ГДЕ (Задача. Выполнена=Ложь) и (ПродажаТовара. Счет=&Парам)";

Выборка=Запрос. Выполнить (). Выбрать ();

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

ТекущаяЗадача=Выборка. Ссылка. ПолучитьОбъект ();

Если ТекущаяЗадача. ТочкаМаршрута=БизнесПроцессы. ПродажаТовара. ТочкиМаршрута. ВыпискаСчета Тогда

ФормаСчета=ТекущаяЗадача. БизнесПроцесс. Счет. ПолучитьФорму ();

Если ФормаСчета. Открыта () =Истина Тогда

Если Вопрос ("Пометить задачу"""+ТекущаяЗадача. Наименование+"""как выполненную?",РежимДиалогаВопрос. ДаНет) =КодВозвратаДиалога. Да Тогда

ТекущаяЗадача. ВыполнитьЗадачу ();

КонецЕсли;

КонецЕсли;

КонецЕсли;

КонецЦикла;

КонецЕсли;

Если ИмяСобытия="Списание" Тогда

Запрос=Новый Запрос;

Запрос. УстановитьПараметр ("Парам", Источник. Ссылка);

Запрос. Текст="ВЫБРАТЬ

|Задача. Ссылка

|Из

|БизнесПроцесс. ПродажаТовара КАК ПродажаТовара ЛЕВОЕ СОЕДИНЕНИЕ Задача. Задача. ЗадачиПоИсполнителю КАК Задача


|ПО ПродажаТовара. Ссылка=Задача. БизнесПроцесс

|ГДЕ (Задача. Выполнена=Ложь) и (ПродажаТовара. РасходнаяНакладная=&Парам)";

Выборка=Запрос. Выполнить (). Выбрать ();

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

ТекущаяЗадача=Выборка. Ссылка. ПолучитьОбъект ();

Если ТекущаяЗадача. ТочкаМаршрута=БизнесПроцессы. ПродажаТовара. ТочкиМаршрута. ВыпискаНакладной Тогда

ФормаДокумента=ТекущаяЗадача. БизнесПроцесс. РасходнаяНакладная. ПолучитьФорму ();

Если ФормаДокумента. Открыта () =Истина Тогда

Если Вопрос ("Пометить задачу"""+ТекущаяЗадача. Наименование+"""как выполненную?",РежимДиалогаВопрос. ДаНет) =КодВозвратаДиалога. Да Тогда

ТекущаяЗадача. ВыполнитьЗадачу ();

КонецЕсли;

КонецЕсли;

КонецЕсли;

КонецЦикла;

КонецЕсли;

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

В модуле формы документа Заявка покупателя и Продажа товара прописываем процедуру ПриЗаписи для оповещения:

Процедура ПриЗаписи (Отказ)

Оповестить ("ЗаписьСчета",, ЭтотОбъект);

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

Процедура ПриЗаписи (Отказ)

Оповестить ("Списание",, ЭтотОбъект);

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

2.5 Анализ данных в системе 1С 8.3

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

Процедура КнопкаСформироватьНажатие (Кнопка)

Анализ = Новый АнализДанных;

Анализ. ТипАнализа = Тип ("АнализДанныхОбщаяСтатистика");

запрос = Новый Запрос;

Запрос. Текст = "Выбрать

|ОстаткиТовара. Товары,

|ОстаткиТовара. КолВо

|Из

|РегистрНакопления. ОстаткиТовара КАК ОстаткиТовара";

Анализ. ИсточникДанных = Запрос. Выполнить ();

РезультатАнализа = Анализ. Выполнить ();

Построитель = Новый ПостроительОтчет нализаДанных ();

Построитель. Макет = Неопределено;

Построитель. ТипАнализа = Тип ("АнализДанныхОбщаяСтатистика");

ТабДок = Новый ТабличныйДокумент;

Построитель. Вывести (РезультатАнализа, ТабДок);

ТабДок. Показать ();

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

Создаем отчет ПоискАссоциаций, выполняющий анализ данных типа "Поиск ассоциаций". Процедуру прописываем в модуле:

Процедура КнопкаСформироватьНажатие (Кнопка)