Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Документ ПриходнаяНакладная.




По приходной накладной мы будем получать комплектующие от поставщиков. Проводка по этому документу сложнее (Д 10.2 – К 60, Д 19.3 – К 60). В данном документе нас интересует следующее: кто поставил нам комплектующие, на какой склад мы их приняли, что конкретно пришло, в каком количестве, по какой цене без НДС, на какую сумму. Сведем все в таблицу:

Идентификатор: ПриходнаяНакладная Журнал: ПриходныеНакладные Нумератор: Нет Периодичность: Год Длина: 5 Тип: число Уникальность: да Автонумерация: да Может являться основанием для документа любого вида?: нет
Проводить: да Автоматическое удаление движений: да Автоматическая нумерация строк: да Бухгалтерский учет: да Расчет: нет Оперативный учет: нет
Создавать операцию: Всегда Редактировать операцию: нет
Является основанием для Вводится на основании
Шапка
Реквизит Описание ТипЗначения Доп.
Поставщик   С.Контрагенты  
Склад   С.Склады  
Таблица
Реквизит Описание ТипЗначения Доп.
Товар   С.Комплектующие  
Кол   Число 5.0 +, И
ЦенаБНДС Цена без НДС Число 7.2 +
ЦенаСНДС Цена с НДС Число 7.2 +
СуммаБНДС Сумма без НДС Число 13.2 +, И
СуммаНДС Сумма НДС Число 13.2 +, И
СуммаСНДС Сумма с НДС Число 13.2 +, И
           

Отредактируем журнал ПриходныеНакладные. Добавим в него две графы – Кол из реквизита таблицы Кол, и Сумма из реквизита СуммаСНДС. Настроим форму журнала.
Перейдем к форме документа. Создаем ее. Поля АвторДокумента и Курс делаем недоступными. В полях ввода Валюта и ДатаКурса пишем формулу Валюта(). Поля табличной части СуммаБНДС, СуммаНДС, СуммаСНДС делаем недоступными. В поле Товар пишем формулу Товар(), в поле Кол – Кол(), в поле ЦенаБНДС – ЦенаБНДС(), в поле ЦенаСНДС – ЦенаСНДС(). Под таблицей добавим текст с формулой для вычисления суммы по колонке Итог("Кол"), Итог("СуммаБНДС"), Итог("СуммаБНДС"). В модуле формы документа пишем:
Перем СтВалюта;
Перем СтДатаКурса;
Перем СтКурс;
//==========================================================
Процедура ВводНового()
АвторДокумента=СокрЛП(ИмяПользователя());
ФирмаДокумента=Константа.ОснФирма;
Валюта=Константа.ОснВалюта;
ДатаКурса=ДатаДок;
Курс=1;
СтВалюта=Валюта;
СтДатаКурса=ДатаКурса;
СтКурс=Курс;
Поставщик = Константа.ОснПоставщик;
КонецПроцедуры
//==========================================================
Процедура ПриОткрытии()
СтВалюта=Валюта;
СтДатаКурса=ДатаКурса;
СтКурс=Курс;
ПриЗаписиПерепроводить(1);
КонецПроцедуры
//==========================================================
Процедура Валюта()
// При смене валюты, либо даты курса
КурсС=СтКурс;
КратС=СтВалюта.Кратность;
КурсН=Валюта.Курс.Получить(ДатаКурса);
КратН=Валюта.Кратность;
Коэфф=Окр((КурсС*КратН)/(КурсН*КратС),6,1); // переводим в валюту документа
Курс=КурсН;
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
// Обходим строки
ЦенаБНДС=Окр(ЦенаБНДС*Коэфф,2,1);
ЦенаСНДС=Окр(ЦенаСНДС*Коэфф,2,1);
СуммаБНДС=Окр(ЦенаБНДС*Кол,2,1);
СуммаСНДС=Окр(ЦенаСНДС*Кол,2,1);
СуммаНДС=СуммаСНДС-СуммаБНДС;
КонецЦикла;
СтВалюта=Валюта;
СтДатаКурса=ДатаКурса;
СтКурс=Курс;
КонецПроцедуры
//==========================================================
Процедура Товар()
// Изменили товар, пересчитаем цену с НДС
ЦенаСНДС=Окр(ЦенаБНДС*(1+(Товар.НДС.Значение/100)),2,1);
СуммаСНДС=Окр(ЦенаСНДС*Кол,2,1);
СуммаНДС=СуммаСНДС-СуммаБНДС;
КонецПроцедуры
//==========================================================
Процедура Кол()
СуммаБНДС=Окр(ЦенаБНДС*Кол,2,1);
СуммаСНДС=Окр(ЦенаСНДС*Кол,2,1);
СуммаНДС=СуммаСНДС-СуммаБНДС;
КонецПроцедуры
//==========================================================
Процедура ЦенаБНДС()
ЦенаСНДС=Окр(ЦенаБНДС*(1+(Товар.НДС.Значение/100)),2,1);
// Определим цену с НДС по цене без НДС
СуммаБНДС=Окр(ЦенаБНДС*Кол,2,1);
СуммаСНДС=Окр(ЦенаСНДС*Кол,2,1);
СуммаНДС=СуммаСНДС-СуммаБНДС;
КонецПроцедуры
//==========================================================
Процедура ЦенаСНДС()
ЦенаБНДС=Окр(ЦенаСНДС*(1-(Товар.НДС.ОбрЗначение/100)),2,1);
// Определим цену без НДС по цене с НДС
СуммаБНДС=Окр(ЦенаБНДС*Кол,2,1);
СуммаСНДС=Окр(ЦенаСНДС*Кол,2,1);
СуммаНДС=СуммаСНДС-СуммаБНДС;
КонецПроцедуры

Теперь переходим к модулю документа. В этом документе наша операция будет уже посложней, в одной операции будет объединено несколько проводок, причем одна проводка будет относиться ко всему документу целиком, а остальные будут формироваться по строкам документа. Пишем следующую процедуру
Процедура ОбработкаПроведения()
Если Склад.Выбран()=0 Тогда
// Если склад не указан
Сообщить("Документ Приходная накладная №"+НомерДок+" от "+ДатаДок+"
|не проведен.
|Не выбран склад получатель");
// Делаем сообщение
НеПроводитьДокумент();
// Указываем, что документ проводить не надо
Возврат;
// Выходим из процедуры
КонецЕсли;
Если Поставщик.Выбран()=0 Тогда
Сообщить("Документ Приходная накладная №"+НомерДок+" от "+ДатаДок+"
|не проведен.
|Не выбран поставщик");
НеПроводитьДокумент();
Возврат;
КонецЕсли;
КурсД=Курс;
КратД=Валюта.Кратность;
КурсУ=Константа.ОснВалюта.Курс.Получить(ДатаДок);
КратУ=Константа.ОснВалюта.Кратность;
Коэфф=Окр((КурсД*КратУ)/(КурсУ*КратД),6,1);
// Переводим в валюту документа
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
// Обходим строки
ПривязыватьСтроку(НомерСтроки);
// Здесь мы хотим указать какая строка документа вызвала эту проводку
Операция.НоваяПроводка();
Операция.Дебет.Счет = СчетПоКоду("10.2",ПланыСчетов.Наш);
Операция.Дебет.МестоХранения = Склад;
Операция.Дебет.Комплектующее = Товар;
Операция.Дебет.ПриходнаяНакладная = ТекущийДокумент();
Операция.Кредит.Счет = СчетПоКоду("60",ПланыСчетов.Наш);
Операция.Кредит.Контрагент = Поставщик;
Операция.Кредит.ПриходнаяНакладная = ТекущийДокумент();
Операция.Количество = Кол;
Операция.Сумма = Окр(СуммаБНДС*Коэфф,2,1);
Операция.Фирма = ФирмаДокумента;
Операция.Комментарий = "Поступление комплектующих";
Операция.НомерЖурнала = "6";
КонецЦикла;
ПривязыватьСтроку(0);
// Эта проводка по всему документу вцелом
Операция.НоваяПроводка();
Операция.Дебет.Счет = СчетПоКоду("19.3",ПланыСчетов.Наш);
Операция.Кредит.Счет = СчетПоКоду("60",ПланыСчетов.Наш);
Операция.Кредит.Контрагент = Поставщик;
Операция.Кредит.ПриходнаяНакладная = ТекущийДокумент();
Операция.Сумма = Окр(Итог("СуммаНДС")*Коэфф,2,1);
Операция.Фирма = ФирмаДокумента;
Операция.Комментарий = "Учет НДС по поступ. комплектующим";
Операция.НомерЖурнала = "6";
Операция.Содержание = "Поступление комплектующих";
Операция.СуммаОперации = Окр(Итог("СуммаСНДС")*Коэфф,2,1);
Операция.Автор = АвторДокумента;
Операция.Записать();
КонецПроцедуры

Теперь, когда создан документ "Приходная накладная", нам надо внести соответствующую поправку в Субконто ПриходнаяНакладная. Укажем в этом Субконто тип как Д.ПриходнаяНакладная.

Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...