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

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

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

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

Добавлен: 28.03.2023

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

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

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

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

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

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

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

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

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

//

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

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

Возврат;

КонецЕсли;

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

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

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

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

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

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

ЭтотОбъект,

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

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

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

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

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

//

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

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

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

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

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

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

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

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

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

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

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

//

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

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

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

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

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

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

КонецЕсли;

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

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

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

КонецЕсли;

КонецЕсли;

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


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

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

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

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

КонецЕсли;

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

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

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

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

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

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

// Прочее

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

//

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

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

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

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

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

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

КонецЕсли;

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

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

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

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

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

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

//

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

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

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

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

//

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ЭтотОбъект,

"Услуги",

Отказ

);

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

ЭтотОбъект,

"Услуги",

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

Отказ

);

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

ЭтотОбъект,

"Услуги",

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

Отказ

);

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

ЭтотОбъект,

"Услуги",

Отказ,

);

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

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

//

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

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

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

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

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

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

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

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

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


//

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

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

Возврат;

КонецЕсли;

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

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

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

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

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

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

ЭтотОбъект,

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

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

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

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

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

//

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

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

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

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

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

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

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

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

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

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

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

//

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

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

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

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

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

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

КонецЕсли;

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

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

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

КонецЕсли;

КонецЕсли;

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

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

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

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

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

КонецЕсли;

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


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

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

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

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

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

// Прочее

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

//

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

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

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

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

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

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

КонецЕсли;

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

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

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

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

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

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

//

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

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

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

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

//

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

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

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

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

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

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

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

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

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

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

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

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

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