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

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

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

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

Добавлен: 29.03.2023

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

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

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

// Заполнение шапки

Покупатель = ДанныеЗаполнения. Покупатель;

СуммаДок = ДанныеЗаполнения. СуммаДок;

Фирма = ДанныеЗаполнения. Фирма;

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

НоваяСтрока = Товары. Добавить ();

НоваяСтрока. КолВо = ТекСтрокаТовары. КолВо;

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

НоваяСтрока. Сумма = ТекСтрокаТовары. Сумма;

НоваяСтрока. Цена = ТекСтрокаТовары. Цена; КонецЦикла;

КонецЕсли;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

КонецЦикла;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

КонецЦикла;

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

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

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

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

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

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

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

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

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

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

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

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


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

КонецЦикла;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

|Выбрать

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

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

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

| Из

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

| Где

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

|»;

Иначе

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

|ВЫБРАТЬ

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

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

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

| Из

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

|»;

КонецЕсли;

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

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

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

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

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


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

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

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

КонецЦикла;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Рисунок 21 - Окно отчета

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

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

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

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

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

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


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

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

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

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

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

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

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

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

КонецЕсли;

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

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

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

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

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

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

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

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

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

КонецЕсли;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

КОНЕЦЕСЛИ;

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

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

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

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

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

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

КОНЕЦЕСЛИ;

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

Записать ();

КОНЕЦЕСЛИ;

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

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

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

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

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

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

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

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

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

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

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

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

КонецЕсли;

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


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

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

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

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

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

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

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

КонецЕсли;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

|Из

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

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

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

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

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

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

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

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

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

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

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

КонецЕсли;

КонецЕсли;

КонецЕсли;

КонецЦикла;