Файл: Разработка конфигурации «Учет реализации лекарственных препаратов через аптечную сеть.pdf

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

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

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

Добавлен: 17.06.2023

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

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

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

СОДЕРЖАНИЕ

Введение

1 Аналитическая часть

1.1 Выбор комплекса задач автоматизации

1.2 Характеристика документооборота, возникающего при решении задачи

1.3 Обоснование проектных решений по информационному обеспечению

2 Проектная часть

2.1 Характеристика разработанных справочников в среде 1С:Предприятие (справочники, константы, перечисления)

2.2 Характеристика разработанных экранных форм документов в среде 1С:Предприятие

2.2.1 Описание документов, необходимых для получения исходной информации (разработка документов и регистров)

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

2.3 Описание реализации периодических расчетов в среде 1С:Предприятие

2.4 Описание созданной / откорректированной карты маршрута бизнес-процесса в среде 1С:Предприятие

2.5 Описание разработанных подсистем в среде 1С:Предприятие

2.6 Описание разработанного интерфейса пользователя в среде 1С:Предприятие (разработка управляемого интерфейса)

2.7 Контрольный пример реализации проекта в среде 1С:Предприятие и его описание

Заключение

Библиографический список

Приложение А - Листинг ПО

ПроведениеСервер.УстановитьРежимПроведения(Проведен, РежимЗаписи, РежимПроведения);

ДополнительныеСвойства.Вставить("ЭтоНовый", ЭтоНовый());

ДополнительныеСвойства.Вставить("РежимЗаписи", РежимЗаписи);

ОбщегоНазначенияРТ.УстановитьНовоеЗначениеРеквизита(

ЭтотОбъект,

ОбработкаТабличнойЧастиУслугиКлиентСервер.ПолучитьСуммуДокумента(Услуги, ЦенаВключаетНДС),

"СуммаДокумента");

ДополнительныеСвойства.Вставить("Отказ", Отказ);

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

// Процедура - обработчик события "ПриКопировании".

//

Процедура ПриКопировании(ОбъектКопирования)

СкидкиРассчитаны = Ложь;

СкидкиНаценкиСервер.ОтменитьСкидки(ЭтотОбъект, "Услуги");

Серии.Очистить();

ИнициализироватьДокумент();

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

///////////////////////////////////////////////////////////////////////////////

// СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ

///////////////////////////////////////////////////////////////////////////////

// Инициализация и заполнение

// Инициализирует документ

//

Процедура ИнициализироватьДокумент(ДанныеЗаполнения = Неопределено)

Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура") Тогда

ЗаполнитьЗначенияСвойств(ЭтотОбъект, ДанныеЗаполнения);

Если ДанныеЗаполнения.Свойство("Магазин")

И НЕ ЗначениеЗаполнено(Магазин) Тогда

Склад = ЗначениеНастроекПовтИсп.ПолучитьСкладПродажиПоУмолчанию(ДанныеЗаполнения.Магазин,,Склад, Ответственный);

КонецЕсли;

Если ДанныеЗаполнения.Свойство("Организация")

И НЕ ЗначениеЗаполнено(Организация) Тогда

БанковскийСчетОрганизации = ЗначениеНастроекПовтИсп.ПолучитьБанковскийСчетОрганизацииПоУмолчанию(ДанныеЗаполнения.Организация,,БанковскийСчетОрганизации);

КонецЕсли;

КонецЕсли;

Ответственный = Пользователи.ТекущийПользователь();

Магазин = ЗначениеНастроекПовтИсп.ПолучитьМагазинПоУмолчанию(Магазин);

Склад = ЗначениеНастроекПовтИсп.ПолучитьСкладПродажиПоУмолчанию(Магазин,,Склад, Ответственный);

Если ЗначениеЗаполнено(Склад) Тогда

Организация = Склад.Организация;

КонецЕсли;

Организация = ЗначениеНастроекПовтИсп.ПолучитьОрганизациюПоУмолчанию(Организация,Ответственный);

Контрагент = ЗначениеНастроекПовтИсп.ПолучитьПокупателяПоУмолчанию(Контрагент, Ответственный);

БанковскийСчетОрганизации = ЗначениеНастроекПовтИсп.ПолучитьБанковскийСчетОрганизацииПоУмолчанию(Организация,,БанковскийСчетОрганизации);

Продавец = ЗначениеНастроекПовтИсп.ПолучитьПродавцаПоУмолчанию(Продавец, Ответственный);

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


///////////////////////////////////////////////////////////////////////////////

// Прочее

//Процедура формирует массив имен регистров для контроля проведения

//

Процедура СформироватьСписокРегистровДляКонтроля()

Массив = Новый Массив;

// При проведении выполняется контроль превышения остатков на складах

Если ДополнительныеСвойства.РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда

Массив.Добавить(Движения.УслугиНаСкладах);

Массив.Добавить(Движения.ДвиженияСерийныхНомеров);

КонецЕсли;

ДополнительныеСвойства.ДляПроведения.Вставить("РегистрыДляКонтроля", Массив);

ДополнительныеСвойства.ДляПроведения.Вставить("ПопыткиПродажПревышающихОстаток");

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

///////////////////////////////////////////////////////////////////////////////

// ОБРАБОТЧИКИ СОБЫТИЙ

// Процедура - обработчик события "ОбработкаЗаполнения".

//

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)

ИнициализироватьДокумент(ДанныеЗаполнения);

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

// Процедура - обработчик события "ОбработкаПроведения".

//

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

ПроведениеСервер.ИнициализироватьДополнительныеСвойстваДляПроведения(Ссылка, ДополнительныеСвойства, РежимПроведения);

Документы.РеализацияУслуг.ИнициализироватьДанныеДокумента(Ссылка, ДополнительныеСвойства);

ПроведениеСервер.ПодготовитьНаборыЗаписейКРегистрацииДвижений(ЭтотОбъект);

ПродажиСервер.ОтразитьПродажи(ДополнительныеСвойства, Движения, Отказ);

ПродажиСервер.ОтразитьПродажиПоДисконтнымКартам(ДополнительныеСвойства, Движения, Отказ);

ЗапасыСервер.ОтразитьУслугиНаСкладах(ДополнительныеСвойства, Движения, Отказ);

ЗапасыСервер.ОтразитьУслугиОрганизаций(ДополнительныеСвойства, Движения, Отказ);

ЗапасыСервер.ОтразитьУслугиКОтгрузке(ДополнительныеСвойства, Движения, Отказ);

ЗапасыСервер.ОтразитьДвиженияСерийныхНомеров(ДополнительныеСвойства, Движения, Отказ);

ЗапасыСервер.ОтразитьДвиженияСерийУслуг(ДополнительныеСвойства, Движения, Отказ);

СформироватьСписокРегистровДляКонтроля();

ПроведениеСервер.ЗаписатьНаборыЗаписей(ЭтотОбъект);

ПроведениеСервер.ВыполнитьКонтрольРезультатовПроведения(ЭтотОбъект, Отказ);

ПроведениеСервер.ОчиститьДополнительныеСвойстваДляПроведения(ДополнительныеСвойства);

ДополнительныеСвойства.Вставить("Отказ", Отказ);

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

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


МассивНепроверяемыхРеквизитов = Новый Массив;

ОбработкаТабличнойЧастиУслугиСервер.ПроверитьЗаполнениеКоличества(ЭтотОбъект, ПроверяемыеРеквизиты, Отказ);

ОбработкаТабличнойЧастиУслугиСервер.ПроверитьЗаполнениеХарактеристик(ЭтотОбъект,МассивНепроверяемыхРеквизитов,Отказ);

ОбработкаТабличнойЧастиУслугиСервер.ПроверитьЗаполнениеСерий(ЭтотОбъект,Документы.РеализацияУслуг.ПараметрыУказанияСерий(ЭтотОбъект),Отказ);

ОбщегоНазначения.УдалитьНепроверяемыеРеквизитыИзМассива(ПроверяемыеРеквизиты,МассивНепроверяемыхРеквизитов);

МаркетинговыеАкцииСервер.ПроверитьЦеныСертификатов(

ЭтотОбъект,

"Услуги",

Отказ

);

МаркетинговыеАкцииСервер.ПроверитьЗаполнениеТабличнойЧастиСерийныеНомера(

ЭтотОбъект,

"Услуги",

"СерийныеНомера",

Отказ

);

МаркетинговыеАкцииСервер.ПроверитьДвиженияСерийныхНомеров(

ЭтотОбъект,

"Услуги",

"СерийныеНомера",

Отказ

);

МаркетинговыеАкцииСервер.ПроверитьОкончаниеАбсолютныхСроковДействияСертификатов(

ЭтотОбъект,

"Услуги",

Отказ,

);

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

// Процедура - обработчик события "ОбработкаУдаленияПроведения".

//

Процедура ОбработкаУдаленияПроведения(Отказ)

ПроведениеСервер.ИнициализироватьДополнительныеСвойстваДляПроведения(Ссылка, ДополнительныеСвойства);

ПроведениеСервер.ПодготовитьНаборыЗаписейКРегистрацииДвижений(ЭтотОбъект);

СформироватьСписокРегистровДляКонтроля();

ПроведениеСервер.ЗаписатьНаборыЗаписей(ЭтотОбъект);

ПроведениеСервер.ВыполнитьКонтрольРезультатовПроведения(ЭтотОбъект, Отказ);

ПроведениеСервер.ОчиститьДополнительныеСвойстваДляПроведения(ДополнительныеСвойства);

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

// Процедура - обработчик события "ПередЗаписью".

//

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)

Если ОбменДанными.Загрузка Тогда

Возврат;

КонецЕсли;

Справочники.СерийныеНомера.ОчиститьВДокументеНеиспользуемыеСерийныеНомера(Услуги, СерийныеНомера);

ОбщегоНазначенияРТСервер.УдалитьНеиспользуемыеСтрокиСерий(ЭтотОбъект,Документы.РеализацияУслуг.ПараметрыУказанияСерий(ЭтотОбъект));

ПроведениеСервер.УстановитьРежимПроведения(Проведен, РежимЗаписи, РежимПроведения);

ДополнительныеСвойства.Вставить("ЭтоНовый", ЭтоНовый());

ДополнительныеСвойства.Вставить("РежимЗаписи", РежимЗаписи);

ОбщегоНазначенияРТ.УстановитьНовоеЗначениеРеквизита(

ЭтотОбъект,

ОбработкаТабличнойЧастиУслугиКлиентСервер.ПолучитьСуммуДокумента(Услуги, ЦенаВключаетНДС),


"СуммаДокумента");

ДополнительныеСвойства.Вставить("Отказ", Отказ);

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

// Процедура - обработчик события "ПриКопировании".

//

Процедура ПриКопировании(ОбъектКопирования)

СкидкиРассчитаны = Ложь;

СкидкиНаценкиСервер.ОтменитьСкидки(ЭтотОбъект, "Услуги");

Серии.Очистить();

ИнициализироватьДокумент();

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

///////////////////////////////////////////////////////////////////////////////

// СЛУЖЕБНЫЕ ПРОЦЕДУРЫ И ФУНКЦИИ

///////////////////////////////////////////////////////////////////////////////

// Инициализация и заполнение

// Инициализирует документ

//

Процедура ИнициализироватьДокумент(ДанныеЗаполнения = Неопределено)

Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура") Тогда

ЗаполнитьЗначенияСвойств(ЭтотОбъект, ДанныеЗаполнения);

Если ДанныеЗаполнения.Свойство("Магазин")

И НЕ ЗначениеЗаполнено(Магазин) Тогда

Склад = ЗначениеНастроекПовтИсп.ПолучитьСкладПродажиПоУмолчанию(ДанныеЗаполнения.Магазин,,Склад, Ответственный);

КонецЕсли;

Если ДанныеЗаполнения.Свойство("Организация")

И НЕ ЗначениеЗаполнено(Организация) Тогда

БанковскийСчетОрганизации = ЗначениеНастроекПовтИсп.ПолучитьБанковскийСчетОрганизацииПоУмолчанию(ДанныеЗаполнения.Организация,,БанковскийСчетОрганизации);

КонецЕсли;

КонецЕсли;

Ответственный = Пользователи.ТекущийПользователь();

Магазин = ЗначениеНастроекПовтИсп.ПолучитьМагазинПоУмолчанию(Магазин);

Склад = ЗначениеНастроекПовтИсп.ПолучитьСкладПродажиПоУмолчанию(Магазин,,Склад, Ответственный);

Если ЗначениеЗаполнено(Склад) Тогда

Организация = Склад.Организация;

КонецЕсли;

Организация = ЗначениеНастроекПовтИсп.ПолучитьОрганизациюПоУмолчанию(Организация,Ответственный);

Контрагент = ЗначениеНастроекПовтИсп.ПолучитьПокупателяПоУмолчанию(Контрагент, Ответственный);

БанковскийСчетОрганизации = ЗначениеНастроекПовтИсп.ПолучитьБанковскийСчетОрганизацииПоУмолчанию(Организация,,БанковскийСчетОрганизации);

Продавец = ЗначениеНастроекПовтИсп.ПолучитьПродавцаПоУмолчанию(Продавец, Ответственный);

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

///////////////////////////////////////////////////////////////////////////////

// Прочее

//Процедура формирует массив имен регистров для контроля проведения

//

Процедура СформироватьСписокРегистровДляКонтроля()

Массив = Новый Массив;

// При проведении выполняется контроль превышения остатков на складах

Если ДополнительныеСвойства.РежимЗаписи = РежимЗаписиДокумента.Проведение Тогда


Массив.Добавить(Движения.УслугиНаСкладах);

Массив.Добавить(Движения.ДвиженияСерийныхНомеров);

КонецЕсли;

ДополнительныеСвойства.ДляПроведения.Вставить("РегистрыДляКонтроля", Массив);

ДополнительныеСвойства.ДляПроведения.Вставить("ПопыткиПродажПревышающихОстаток");

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

///////////////////////////////////////////////////////////////////////////////

// ОБРАБОТЧИКИ СОБЫТИЙ

// Процедура - обработчик события "ОбработкаЗаполнения".

//

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)

ИнициализироватьДокумент(ДанныеЗаполнения);

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

// Процедура - обработчик события "ОбработкаПроведения".

//

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

ПроведениеСервер.ИнициализироватьДополнительныеСвойстваДляПроведения(Ссылка, ДополнительныеСвойства, РежимПроведения);

Документы.РеализацияУслуг.ИнициализироватьДанныеДокумента(Ссылка, ДополнительныеСвойства);

ПроведениеСервер.ПодготовитьНаборыЗаписейКРегистрацииДвижений(ЭтотОбъект);

ПродажиСервер.ОтразитьПродажи(ДополнительныеСвойства, Движения, Отказ);

ПродажиСервер.ОтразитьПродажиПоДисконтнымКартам(ДополнительныеСвойства, Движения, Отказ);

ЗапасыСервер.ОтразитьУслугиНаСкладах(ДополнительныеСвойства, Движения, Отказ);

ЗапасыСервер.ОтразитьУслугиОрганизаций(ДополнительныеСвойства, Движения, Отказ);

ЗапасыСервер.ОтразитьУслугиКОтгрузке(ДополнительныеСвойства, Движения, Отказ);

ЗапасыСервер.ОтразитьДвиженияСерийныхНомеров(ДополнительныеСвойства, Движения, Отказ);

ЗапасыСервер.ОтразитьДвиженияСерийУслуг(ДополнительныеСвойства, Движения, Отказ);

СформироватьСписокРегистровДляКонтроля();

ПроведениеСервер.ЗаписатьНаборыЗаписей(ЭтотОбъект);

ПроведениеСервер.ВыполнитьКонтрольРезультатовПроведения(ЭтотОбъект, Отказ);

ПроведениеСервер.ОчиститьДополнительныеСвойстваДляПроведения(ДополнительныеСвойства);

ДополнительныеСвойства.Вставить("Отказ", Отказ);

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

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

МассивНепроверяемыхРеквизитов = Новый Массив;

ОбработкаТабличнойЧастиУслугиСервер.ПроверитьЗаполнениеКоличества(ЭтотОбъект, ПроверяемыеРеквизиты, Отказ);

ОбработкаТабличнойЧастиУслугиСервер.ПроверитьЗаполнениеХарактеристик(ЭтотОбъект,МассивНепроверяемыхРеквизитов,Отказ);

ОбработкаТабличнойЧастиУслугиСервер.ПроверитьЗаполнениеСерий(ЭтотОбъект,Документы.РеализацияУслуг.ПараметрыУказанияСерий(ЭтотОбъект),Отказ);