Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет 1С лр 1-10.docx
Скачиваний:
1
Добавлен:
20.09.2019
Размер:
3.34 Mб
Скачать

Расходная накладная

Модуль документа:

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

//

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

Сч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 – Печать Расходная накладная

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]