Расходная накладная
Модуль документа:
// ********************
//
Процедура ОбработкаПроведения()
Сч41_1 = СчетПоКоду("41.1");
Сч62_1 = СчетПоКоду("62.1");
Сч68_3 = СчетПоКоду("68.3");
Сч90_1 = СчетПоКоду("90.1");
Сч90_2 = СчетПоКоду("90.2") ;
Сч90_3 = СчетПоКоду("90.3");
//Проверим, заполнены ли все реквизиты шапки
Если Склад.Выбран()=0 Тогда
Сообщить("Не выбран склад! Документ ""Расходная накладная"" №"+ НомерДок+" от "+ДатаДок+" не проведен.");
НеПроводитьДокумент();
СтатусВозврата(0);
Возврат;
КонецЕсли;
Если Контрагент.Выбран()=0 Тогда
Сообщить("Не выбран поставщик! Документ ""Расходная накладная"" №"+НомерДок+" от "+ДатаДок+" не проведен.");
НеПроводитьДокумент();
СтатусВозврата(0);
Возврат;
КонецЕсли;
ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
//посчитаем среднюю цену выбранного товара по итогам на сч. 41.1
всего=окр(количество*цена)+СуммаНДС;
БИ=СоздатьОбъект("БухгалтерскиеИтоги");
БИ.ВключатьСубсчета(1,1);
БИ. Использоватьсубконто (ВидыСубконто. Товары, товар, 2);
БИ.Использоватьсубконто(ВидыСубконто.Склады,Склад,2);
БИ.ВыполнитьЗапрос(,датадок ,СчетПоКоду ("41.1"),,,,,5);
КолОст = БИ.СКД("К");
СуммОст = БИ.СКД("С");
Операция.НоваяПроводка();
Операция.Дебет.Счет = СчетПоКоду("90.2");
Операция.Кредит.Счет = СчетПоКоду("41.1");
Операция.Дебет.Товары = Товар;
Операция.Кредит.Склады = Склад;
Операция.Кредит.Товары = Товар;
Операция.СодержаниеПроводки = "Списана себестоимость отгруженно-го товара";
Операция.Количество = Количество;
Операция.Сумма = количество*окр(СуммОст/КолОст,2);
// Начисляем долг на покупателя сум_отгр = Окр(КолИчество_Списания*(Всего/Количество),2,1);
Операция.НоваяПроводка();
Операция.Дебет.Счет = СчетПоКоду("62.1");
Операция.Кредит.Счет = СчетПоКоду("90.1");
Операция.Кредит.Товары = Товар;
Операция.Дебет.Контрагенты = Контрагент;
Операция.СодержаниеПроводки = "Отражена выручка от продажи товара";
Операция.Сумма = всего;
//добавлено позже для получения количества в отчете "Анализ покупателей"
Операция.Количество = Количество;
// Начисляем НДС
Если СуммаНДС > 0 Тогда
Операция.НоваяПроводка();
Операция.Дебет.Счет = СчетПоКоду("90.3");
Операция.Кредит.Счет = СчетПоКоду("68.3");
Операция.Дебет.Товары = Товар;
Операция.СодержаниеПроводки = "Начислен НДС с реализации товара";
Операция.Сумма = СуммаНДС;
КонецЕсли;
// Уменьшаем остаток списания на уже списанное // количест-во
//Отгрузить = Отгрузить - Количество_Списания;
КонецЦикла; // по товарам
Операция.Содержание = "Отгрузка (реализация) продукции";
//Операция.СуммаОперации = Окр(Итог("Всего"),2,1);
Операция.Записать();
КонецПроцедуры
Модуль Расходная накладная:
Процедура ПриНачалеРедактированияСтроки()
Если ПустоеЗначение(Склад)=1 Тогда
Предупреждение("Задайте не пустое значение склада");
КонецЕсли;
КонецПроцедуры
Процедура ПриОткрытии()
ПриЗаписиПерепроводить(1);
ПриНачалеРедактированияСтроки();
КонецПроцедуры
Функция СуммаПоДокументу()
ИнфоТекст="";
с_Всего=итог("Сумма")+итог("СуммаНДС");
если с_Всего<>0 тогда
ИнфоТекст=ИнфоТекст+"Сумма по документу" + " " + с_Всего+" руб. В т.ч. НДС"+ " "+ итог("суммаНДС")+" руб.";
конецесли;
Возврат(ИнфоТекст);
КонецФункции
//используется как формула в ряде полей ввода таблицы документа: количество, цена, товар.
Процедура пересчитатьсумму();
Сумма=Цена*Количество;
СуммаНДС=Сумма/100*СтавкаНДС.ПроцентНДС;
Конецпроцедуры
//используется как формула в поле ввода таблицы товар.
Процедура ПриСменеТовара();
Цена=Товар.ЦенаОптовая;
Единица=Товар.ЕдиницаИзмерения;
СтавкаНДС=Товар.СтавкаНДС;
пересчитатьсумму();
Конецпроцедуры
Функция ФактическийОстаток(ТекТов)
ФактОст =0 ;
БИ=СоздатьОбъект("БухгалтерскиеИтоги");
БИ.ВключатьСубсчета(1,1);
БИ. Использоватьсубконто (ВидыСубконто. Товары, ТекТов, 2);
БИ.Использоватьсубконто(ВидыСубконто.Склады,Склад,2);
БИ.ВыполнитьЗапрос(,датадок ,СчетПоКоду ("41.1"),,,,,5);
ФактОст = БИ.СКД("К");
Возврат ФактОст;
БИ=0;
КонецФункции // ФактическийОстаток()
Процедура ПриСменеКоличества()
ФактОст=ФактическийОстаток(Товар);
если ФактОст<Количество тогда
Предупреждение ("Указанное количество превышает остаток товара на складе!");
Количество=ФактОст;
Конецесли;
ПересчитатьСумму();
КонецПроцедуры
//{{ПРОЦЕДУРА_ПЕЧАТИ(Печать)
//Данный фрагмент построен конструктором.
//При повторном использовании конструктора, внесенные вручную изменения будут потеряны!!!
Процедура Печать()
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Печать");
Таб.ВывестиСекцию("Шапка");
Таб.Опции(0,0,0,0);
ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
Таб.ВывестиСекцию("Строка");
КонецЦикла;
Таб.ВывестиСекцию("Подвал");
Таб.ТолькоПросмотр(1);
Таб.Показать("Печать РасходнаяНакладная","");
КонецПроцедуры
//}}ПРОЦЕДУРА_ПЕЧАТИ
Рисунок 3 - Форма Расходная накладная
Рисунок 4 – Печать Расходная накладная
