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

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

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

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

Добавлен: 30.06.2023

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

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

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

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

// регистр ОстаткиТовара Приход

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

Движения. ОстаткиТовара. Очистить ();

Для Каждого ТекСтрокаТовары Из Товары Цикл

Движение = Движения. ОстаткиТовара. Добавить ();

Движение. ВидДвижения = ВидДвиженияНакопления. Приход;

Движение. Период = Дата;

Движение. Товары = ТекСтрокаТовары. Наименование;

Движение. Контрагент = Поставщик;

Движение. Сумма = ТекСтрокаТовары. Сумма;

Движение. КолВо = ТекСтрокаТовары. КолВо;

КонецЦикла;

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

Документ ЗаявкаПокупателя:

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

// регистр ОстаткиТовара Приход

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

Движения. ОстаткиТовара. Очистить ();

Для Каждого ТекСтрокаТовары Из Товары Цикл

Движение = Движения. ОстаткиТовара. Добавить ();

Движение. ВидДвижения = ВидДвиженияНакопления. Приход;

Движение. Период = Дата;

Движение. Контрагент = Покупатель;

Движение. Товары = ТекСтрокаТовары. Наименование;

Движение. Сумма = ТекСтрокаТовары. Сумма;

Движение. КолВо = ТекСтрокаТовары. КолВо;

КонецЦикла;

Документ ПродажаТовара:

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

// регистр ОстаткиТовара Расход

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

Движения. ОстаткиТовара. Очистить ();

Для Каждого ТекСтрокаТовары Из Товары Цикл

Движение = Движения. ОстаткиТовара. Добавить ();

Движение. ВидДвижения = ВидДвиженияНакопления. Расход;

Движение. Период = Дата;

Движение. Товары = ТекСтрокаТовары. Наименование;

Движение. Контрагент = Покупатель;

Движение. Сумма = ТекСтрокаТовары. Сумма;

Движение. КолВо = ТекСтрокаТовары. КолВо;

КонецЦикла;

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

Работа с журналами документов. Создаем 2 журнала: Документы по закупкам и Документы по продажам. Журналы должны включать дополнительные реквизиты Контрагент и Сумма по документу.

Работа с отчетами. Создаем 4 отчета: Прайс-лист, Остатки товаров на складе, Отчет по закупкам и Отчет по продажам. Отчёт Остатки товаров на складе должен иметь возможность детализации по отдельным товарам. Отчёты по закупкам и продажам должны формироваться за период с детализацией по контрагентам. Существует необходимость осуществления сложной обработки данных, которую очень сложно получить, непосредственно работая со справочниками, документами, регистрами и журналами, для выполнения такой обработки существует механизм запросов. Запросы мы используем при создании отчета Остатки, а остальные создаем с помощью схемы компоновки данных.


Рисунок 10 - Окно отчета Прайс - лист

Рисунок 14 - Окно отчета Отчет по закупкам

Рисунок 11 - Окно отчета Отчет по продажам

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

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

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

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

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

ОбластьМакета. Параметры. ТекущаяДата = ТекущаяДата ();

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

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

Если Товары. Наименование <> "" Тогда

Запрос. Текст = "

Выбрать

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

ОстаткиТовараОстатки. Товары. Наименование КАК Наименование,

ОстаткиТовараОстатки. КолВоОстаток КАК Количество

Из

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

Где

ОстаткиТовараОстатки. Товары В (&Товары)

";

Иначе

Запрос. Текст = "

ВЫБРАТЬ

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

ОстаткиТовараОстатки. Товары. Наименование КАК Наименование,

ОстаткиТовараОстатки. КолВоОстаток КАК Количество

Из

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

";

КонецЕсли;

Запрос. УстановитьПараметр ("Товары", Товары);

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

Выборка = Результат. Выбрать ();

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

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

ОбластьМакета. Параметры. Товар = Выборка. Наименование;

ОбластьМакета. Параметры. Количество = Выборка. Количество;

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

КонецЦикла;

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

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

Создание пользователей.

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

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


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

Изменяем свойство конфигурации Основной режим запуска на "Управляемое приложение". Создаем подсистемы Закупки и Продажи, и определяем состав объектов каждой подсистемы.

Рисунок 12 - Окно подсистемы

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

Рисунок 13 - Окно рабочего стола

Рисунок 14 - Окно подсистемы Закупки

Рисунок 15 - Окно подсистемы Продажи

Сформируем отчет по закупкам в управляемом приложении.

2 Реализация процесса «Продажи»

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

Создаем регистр сведений РегистрАдресации.

Рисунок 16 - Окно регистра

Определяем параметр сеанса Текущий исполнитель.

Рисунок 17 - Окно свойства

Создаем объект конфигурации Задача.

Рисунок 18 - Окно свойства задачи

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

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

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

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

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

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

КонецЕсли;

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

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

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

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

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

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

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

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

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

КонецЕсли;

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

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

Рисунок 19 - Окно свойства бизнес - процесса


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

Рисунок 20 - Окно карты маршрута

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

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

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

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

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

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

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

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

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

КОНЕЦЕСЛИ;

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

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

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

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

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

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

КОНЕЦЕСЛИ;

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

Записать ();

КОНЕЦЕСЛИ;

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

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

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

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

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

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

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

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

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

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

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

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

КонецЕсли;

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

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

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

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

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

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

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

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

КонецЕсли;

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

Из

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

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

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

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

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

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

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

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

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

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

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

КонецЕсли;

КонецЕсли;

КонецЕсли;

КонецЦикла;

КонецЕсли;

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

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

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

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

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

Из

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

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

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

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

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

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

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

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

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

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

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

КонецЕсли;