Автоматизация процесса складского учета в ООО "Альянс-Трейд"
Дипломная работа - Экономика
Другие дипломы по предмету Экономика
°ПоУмолчанию;
Коэффициент = Единица.Коэффициент;
// Заполним ставки налогов
Если ВариантРасчетаНалогов.СтавкаНДСизНоменклатуры = 1 Тогда
СтавкаНДС = Товар.СтавкаНДС.Получить(ДатаДок);
Иначе
СтавкаНДС = ВариантРасчетаНалогов.СтавкаНДС;
КонецЕсли;
Если ВариантРасчетаНалогов.СтавкаНПизНоменклатуры = 1 Тогда
СтавкаНП = Товар.СтавкаНП.Получить(ДатаДок);
Иначе
СтавкаНП = ВариантРасчетаНалогов.СтавкаНП;
КонецЕсли;
Если ПустоеЗначение(КатегорияЦен) = 1 Тогда
// нет категории, нет и цены
Возврат;
КонецЕсли;
// вычисляем цену
ЦенаТовара = глВернутьЦену(Товар, КатегорияЦен);
Если ПустоеЗначение(ЦенаТовара) = 1 Тогда
// для товара в категории цены нет
Возврат;
КонецЕсли;
// получим параметры цены
ЦенаЦены= ЦенаТовара.Цена.Получить(ДатаДок);
ВалютаЦены= ЦенаТовара.Валюта.Получить(ДатаДок);
ЕдЦены= ЦенаТовара.Единица.Получить(ДатаДок);
ЦенаЦены = ?(ПустоеЗначение(ЕдЦены.Коэффициент)= 0,ЦенаЦены * Коэффициент / ЕдЦены.Коэффициент,0);
ЦенаЦены = глПересчетДляПодбора(ЦенаЦены,ВалютаЦены,Дата_Курса,Валюта,Курс);
Если Валюта = Рубли Тогда
ЦенаЦены = Окр(ЦенаЦены,Константа.КоэффОкрРублЦены,1);
КонецЕсли;
// Получили цену в нужной валюте с НДС, но без НП (так цены задаются в справочнике)
// Приведем к нужному варианту
Цена = глСуммаПриходногоДокумента(ВариантРасчетаНалогов,
ЦенаЦены,
,
Товар.СтавкаНДС.Получить(ДатаДок),
Товар, ДатаДок);
ИначеЕсли ИмяРеквизита = "Количество" Тогда
Если Сумма = 0 Тогда
Сумма = Количество*Цена;
глРассчитатьНалогиПриходногоДокумента(Контекст);
Иначе
Если Константа.ПриИзмененииКоличестваВПриходныхДокументах = 1 Тогда // пересчитывать сумму
Сумма = Цена*Количество;
глРассчитатьНалогиПриходногоДокумента(Контекст);
Иначе // пересчитывать цену
Цена = ?(Количество = 0, 0, Сумма/Количество);
КонецЕсли;
КонецЕсли;
ИначеЕсли ИмяРеквизита = "Единица" Тогда
// сохраним старый коэффициент
ВремКоэфф = Коэффициент;
// заполним коэффициент в документе из единицы
Коэффициент = Единица.Коэффициент;
Если ВремКоэфф <> 0 Тогда
// цена была за другой коэффициент. Пересчетываем
ВремЦена = Цена * Коэффициент / ВремКоэфф;
КонецЕсли;
// если валюта рубли, то нужно округлить цену по коэффициенту
// округления рублевых цен
Если Валюта = Рубли Тогда
ВремЦена = Окр(ВремЦена,Константа.КоэффОкрРублЦены,1);
КонецЕсли;
Цена = ВремЦена;
Сумма = Цена*Количество;
глРассчитатьНалогиПриходногоДокумента(Контекст);
ИначеЕсли ИмяРеквизита = "Цена" Тогда
Сумма = Цена*Количество;
глРассчитатьНалогиПриходногоДокумента(Контекст);
ИначеЕсли ИмяРеквизита = "Сумма" Тогда
глРассчитатьНалогиПриходногоДокумента(Контекст);
Цена = ?(Количество = 0, 0, Сумма/Количество);
ИначеЕсли (ИмяРеквизита = "СтавкаНДС") или (ИмяРеквизита = "СтавкаНП") Тогда
глРассчитатьНалогиПриходногоДокумента(Контекст);
ИначеЕсли (ИмяРеквизита = "НДС") или (ИмяРеквизита = "СуммаНП") Тогда
Всего = глПоказательПриходногоДокумента(Контекст, "СуммаСНалогами");
КонецЕсли;
КонецПроцедуры // Пересчет
//************************************************************
// НАЗНАЧЕНИЕ: возвращает строку, содержащую инфориацию об итогах по колонкам
Процедура Взаиморасчеты()
глПоказатьДолг(Контекст, Клиент, "Закупка");
КонецПроцедуры
//************************************************************
// НАЗНАЧЕНИЕ: выполняет дествия при изменении даты
Процедура ВыборДаты()
глПриИзмененииДатыДокумента(Контекст, СтараяДата);
ОбновитьНадписи();
КонецПроцедуры// ВыборДаты
//************************************************************
// НАЗНАЧЕНИЕ: выполняет дествия при изменении фирмы
Процедура ВыборФирмы()
Перем КонтекстДокумента;
КонтекстДокумента = глВзятьКонтекст(Контекст);
ОткрытьФормуМодально("Обработка.ИнформацияОфирме", КонтекстДокумента);
ОбновитьНадписи();
КонецПроцедуры// ВыборФирмы
//************************************************************
// НАЗНАЧЕНИЕ: вызывается по кнопке кнОплата.
Процедура ВыборОплаты()
Перем КонтекстДокумента;
Перем СтараяКатегорияЦен;
СтараяКатегорияЦен = КатегорияЦен;
КонтекстДокумента = глВзятьКонтекст(Контекст);
ОткрытьФормуМодально("Обработка.ИнформацияОценах", КонтекстДокумента);
Если СтараяКатегорияЦен <> КатегорияЦен Тогда
// изменилась категория цен
// перерисуем
Если ПустоеЗначение(КонтекстПодбора) = 0 Тогда
КонтекстПодбора.Форма.Обновить();
КонецЕсли;
КонецЕсли;
ОбновитьНадписи();
ИспользоватьИнформациюОцене();
КонецПроцедуры// ВыборОплаты
//************************************************************// НАЗНАЧЕНИЕ: вызывается после выбора значения в реквизите Клиент
Процедура ВыборКлиента()
Перем ВремКатегорияЦен;
Если Клиент.Выбран() = 1 Тогда
Если СтарыйКлиент <> Клиент Тогда
Если Константа.ПодставлятьОсновнойДоговор = Да Тогда
// подставим договор по умолчанию
Договор = Клиент.ОсновнойДоговорТорг;
Иначе
// очистим договор
Договор = ПолучитьПустоеЗначение("Справочник.Договора");
КонецЕсли;
ВремКатегорияЦен = Клиент.КатегорияЦенПоставщика;
Если ПустоеЗначение(ВремКатегорияЦен) = 1 Тогда
ВремКатегорияЦен = глПользователь.КатегорияЦен;
КонецЕсли;
Если ПустоеЗначение(ВремКатегорияЦен) = 0 Тогда
КатегорияЦен = ВремК