Автоматизация процесса складского учета в ООО "Альянс-Трейд"

Дипломная работа - Экономика

Другие дипломы по предмету Экономика

°ПоУмолчанию;

Коэффициент = Единица.Коэффициент;

// Заполним ставки налогов

Если ВариантРасчетаНалогов.СтавкаНДСизНоменклатуры = 1 Тогда

СтавкаНДС = Товар.СтавкаНДС.Получить(ДатаДок);

Иначе

СтавкаНДС = ВариантРасчетаНалогов.СтавкаНДС;

КонецЕсли;

 

Если ВариантРасчетаНалогов.СтавкаНПизНоменклатуры = 1 Тогда

СтавкаНП = Товар.СтавкаНП.Получить(ДатаДок);

Иначе

СтавкаНП = ВариантРасчетаНалогов.СтавкаНП;

КонецЕсли;

Если ПустоеЗначение(КатегорияЦен) = 1 Тогда

// нет категории, нет и цены

Возврат;

КонецЕсли;

// вычисляем цену

ЦенаТовара = глВернутьЦену(Товар, КатегорияЦен);

Если ПустоеЗначение(ЦенаТовара) = 1 Тогда

// для товара в категории цены нет

Возврат;

КонецЕсли;

// получим параметры цены

ЦенаЦены= ЦенаТовара.Цена.Получить(ДатаДок);

ВалютаЦены= ЦенаТовара.Валюта.Получить(ДатаДок);

ЕдЦены= ЦенаТовара.Единица.Получить(ДатаДок);

ЦенаЦены = ?(ПустоеЗначение(ЕдЦены.Коэффициент)= 0,ЦенаЦены * Коэффициент / ЕдЦены.Коэффициент,0);

ЦенаЦены = глПересчетДляПодбора(ЦенаЦены,ВалютаЦены,Дата_Курса,Валюта,Курс);

Если Валюта = Рубли Тогда

ЦенаЦены = Окр(ЦенаЦены,Константа.КоэффОкрРублЦены,1);

КонецЕсли;

// Получили цену в нужной валюте с НДС, но без НП (так цены задаются в справочнике)

// Приведем к нужному варианту

Цена = глСуммаПриходногоДокумента(ВариантРасчетаНалогов,

ЦенаЦены,

,

Товар.СтавкаНДС.Получить(ДатаДок),

Товар, ДатаДок);

ИначеЕсли ИмяРеквизита = "Количество" Тогда

Если Сумма = 0 Тогда

Сумма = Количество*Цена;

глРассчитатьНалогиПриходногоДокумента(Контекст);

Иначе

Если Константа.ПриИзмененииКоличестваВПриходныхДокументах = 1 Тогда // пересчитывать сумму

Сумма = Цена*Количество;

глРассчитатьНалогиПриходногоДокумента(Контекст);

Иначе // пересчитывать цену

Цена = ?(Количество = 0, 0, Сумма/Количество);

КонецЕсли;

КонецЕсли;

ИначеЕсли ИмяРеквизита = "Единица" Тогда

// сохраним старый коэффициент

ВремКоэфф = Коэффициент;

 

// заполним коэффициент в документе из единицы

Коэффициент = Единица.Коэффициент;

Если ВремКоэфф <> 0 Тогда

// цена была за другой коэффициент. Пересчетываем

ВремЦена = Цена * Коэффициент / ВремКоэфф;

КонецЕсли;

// если валюта рубли, то нужно округлить цену по коэффициенту

// округления рублевых цен

Если Валюта = Рубли Тогда

ВремЦена = Окр(ВремЦена,Константа.КоэффОкрРублЦены,1);

КонецЕсли;

Цена = ВремЦена;

Сумма = Цена*Количество;

глРассчитатьНалогиПриходногоДокумента(Контекст);

ИначеЕсли ИмяРеквизита = "Цена" Тогда

Сумма = Цена*Количество;

глРассчитатьНалогиПриходногоДокумента(Контекст);

ИначеЕсли ИмяРеквизита = "Сумма" Тогда

глРассчитатьНалогиПриходногоДокумента(Контекст);

Цена = ?(Количество = 0, 0, Сумма/Количество);

ИначеЕсли (ИмяРеквизита = "СтавкаНДС") или (ИмяРеквизита = "СтавкаНП") Тогда

глРассчитатьНалогиПриходногоДокумента(Контекст);

ИначеЕсли (ИмяРеквизита = "НДС") или (ИмяРеквизита = "СуммаНП") Тогда

Всего = глПоказательПриходногоДокумента(Контекст, "СуммаСНалогами");

КонецЕсли;

КонецПроцедуры // Пересчет

//************************************************************

// НАЗНАЧЕНИЕ: возвращает строку, содержащую инфориацию об итогах по колонкам

Процедура Взаиморасчеты()

глПоказатьДолг(Контекст, Клиент, "Закупка");

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

//************************************************************

// НАЗНАЧЕНИЕ: выполняет дествия при изменении даты

Процедура ВыборДаты()

глПриИзмененииДатыДокумента(Контекст, СтараяДата);

ОбновитьНадписи();

КонецПроцедуры// ВыборДаты

//************************************************************

// НАЗНАЧЕНИЕ: выполняет дествия при изменении фирмы

Процедура ВыборФирмы()

Перем КонтекстДокумента;

КонтекстДокумента = глВзятьКонтекст(Контекст);

ОткрытьФормуМодально("Обработка.ИнформацияОфирме", КонтекстДокумента);

ОбновитьНадписи();

КонецПроцедуры// ВыборФирмы

//************************************************************

// НАЗНАЧЕНИЕ: вызывается по кнопке кнОплата.

Процедура ВыборОплаты()

Перем КонтекстДокумента;

Перем СтараяКатегорияЦен;

СтараяКатегорияЦен = КатегорияЦен;

КонтекстДокумента = глВзятьКонтекст(Контекст);

ОткрытьФормуМодально("Обработка.ИнформацияОценах", КонтекстДокумента);

Если СтараяКатегорияЦен <> КатегорияЦен Тогда

// изменилась категория цен

// перерисуем

Если ПустоеЗначение(КонтекстПодбора) = 0 Тогда

КонтекстПодбора.Форма.Обновить();

КонецЕсли;

КонецЕсли;

ОбновитьНадписи();

ИспользоватьИнформациюОцене();

КонецПроцедуры// ВыборОплаты

//************************************************************// НАЗНАЧЕНИЕ: вызывается после выбора значения в реквизите Клиент

Процедура ВыборКлиента()

Перем ВремКатегорияЦен;

Если Клиент.Выбран() = 1 Тогда

Если СтарыйКлиент <> Клиент Тогда

Если Константа.ПодставлятьОсновнойДоговор = Да Тогда

// подставим договор по умолчанию

Договор = Клиент.ОсновнойДоговорТорг;

Иначе

// очистим договор

Договор = ПолучитьПустоеЗначение("Справочник.Договора");

КонецЕсли;

ВремКатегорияЦен = Клиент.КатегорияЦенПоставщика;

Если ПустоеЗначение(ВремКатегорияЦен) = 1 Тогда

ВремКатегорияЦен = глПользователь.КатегорияЦен;

КонецЕсли;

Если ПустоеЗначение(ВремКатегорияЦен) = 0 Тогда

КатегорияЦен = ВремК