Групповое создание счет-фактур на основании Передачи ОС
По теме из базы знаний
- Перенос документов из УТ 11 в БП 3.0
- 1С:Бухгалтерия государственного учреждения 8
- Обновление для конфигураций КА 1.1, ЗУП 2.5, Бухгалтерия 2.0
- От заказов покупателей до выпуска продукции (на примере работы в 1С:ERP предприятия химической отрасли)
- Интеграция с маркетплейсами МегаМаркет, Wildberries, OZON, ЯндексМаркет, VK, Avito, Леруа Мерлен, Aliexpress, КУПЕР, Dostavista
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
где искать код процедуры создания счет-фактур на основании документа "ПередачаОС"
В модуле формы документа СчетФактура, вестимо.
Есть ли такие обработки по групповому созданию счет-фактур выданных на основании документа "ПередачаОС"?
Воспользуйтесь поиском.
Есть обработка, которая делает групповое создание счет-фактур на основании "Оказания услуг". В процедуре создания такой код:
Что нужно тут изменить, чтобы создавались СФ на основании док-тов "ПередачаОС"?
Процедура СформироватьСчФ() // сделано по ОказаниюУслуг
СпрСотр=СоздатьОбъект("Справочник.Сотрудники");
СпрСотр.НайтиПоКоду("000072");
СпрСотрЛоб=СпрСотр.ТекущийЭлемент();
Приходы.ВыбратьСтроки();
Пока приходы.получитьстроку() = 1 Цикл
Если Приходы.Флаг = "V" Тогда
иначе
продолжить;
КонецЕсли;
Если Приходы.ДОк.Вид() = "ОказаниеУслуг" Тогда
// по занесенным в список актам проверми - нет ли подчиненной счет-фактуры
ДокОсн = Приходы.ДОк;
ДокПодч = создатьОбъект("Документ");
Если ДокПодч.ВыбратьПодчиненныеДокументы(ДатаНачала,ДатаКонца,ДокОсн) = 1 Тогда
Если ДокПодч.Вид() = "СчетФактура" Тогда
ДокСчФ = создатьОбъект("Документ.СчетФактура");
докподч.СделатьНеПроведенным();
докподч.УдалитьСтроки();
докподч.Записать();
ДоксчФ.НайтиДокумент(докПодч.ТекущийДокумент());
докподч = "";
Иначе
продолжить;
КонецЕсли;
иначе
ДокСчФ = создатьОбъект("Документ.СчетФактура");
ДокСчФ.Новый();
ДокСчф.ВерсияОбъекта = Константа.НомерРелиза;
КонецЕсли;
Доксчф.ДатаДок=ДокОсн.ДатаДок;
Доксчф.документоснование = ДокОсн.текущийДокумент();
Доксчф.СчетАкциза = 1;
Доксчф.Грузоотправитель = ПолучитьПустоеЗначение();
Доксчф.ВариантОтправки = 1;
ДОксчф.Контрагент = ДокОсн.контрагент;
//
Если Константа.МетодОпределенияВыручки.Получить(ДокСчФ.ДатаДок) = глПоОтгрузке Тогда
ДокСчФ.СчетНДС = 1;
Иначе
ДокСчФ.СчетНДС = 2;
Если ДокОсн.Вид() = "ОказаниеУслуг" Тогда
Если (ДокОсн.ТипУслуги = 2) и (ДокОсн.ЗачетТребований = 1) Тогда
ДокСчФ.СчетНДС = 1;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ДокОсн.Вид()="ОказаниеУслуг" Тогда
ДокСчФ.Руководитель= ДокОсн.Руководитель;
КонецЕсли;
ДокСчФ.Договор = ДокОсн.Договор;
ПриВыбореДоговора();
ДокСчФ.Контрагент=ДокОсн.Контрагент;
ДокСчФ.ТипЦен = ДокОсн.ТипЦен;
// Заполнение грузополучателя и грузоотправителя
ДокСчФ.Грузополучатель=ДокОсн.Контрагент;
ДокСчФ.Аванс = 0;
ДокСчФ.ВидОперации = Перечисление.ВидыОперацийСчетаФактурыВыданного.Реализация;
ДокСчФ.КомментарийАкта = ДокОсн.Комментарий;
ДокОсн.ВыбратьСтроки();
Пока ДокОсн.ПолучитьСтроку()=1 Цикл
ДокСчФ.НоваяСтрока();
ДокСчФ.НазначитьТип("Товар", "Справочник.Номенклатура");
Если ( ДокОсн.Вид()="ОказаниеУслуг" ) Тогда
ДокСчФ.Товар=ДокОсн.Услуга;
ИначеЕсли ( ДокОсн.Вид()="ВыполнениеЭтапаРабот" ) Тогда
ДокСчФ.Товар=ДокОсн.Работа;
Иначе
ДокСчФ.Товар=ДокОсн.Товар;
КонецЕсли;
ДокСчФ.Количество=ДокОсн.Количество;
ДокСчФ.СтавкаНДС = глСтавкаНалога(ДокОсн, "НДС");
Кол = ?(ДокСчФ.Количество = 0, 1, ДокСчФ.Количество);
Если (Цел(ДокСчФ.СтавкаНДС.Ставка) = ДокСчФ.СтавкаНДС.Ставка) или
(ДокОсн.ВариантРасчетаНалогов.СуммаВключаетНДС = 0) Тогда
Если ДокОсн.ВариантРасчетаНалогов.СуммаВключаетНП = 1 Тогда
Если ДокОсн.ВариантРасчетаНалогов.СуммаВключаетНДС = 0 Тогда
ДокСчФ.Цена = (ДокОсн.Всего - ДокОсн.НП)/Кол;
Иначе
ДокСчФ.Цена = (ДокОсн.Всего - ДокОсн.НДС - ДокОсн.НП)/Кол;
КонецЕсли;
Иначе
Если ДокОсн.ВариантРасчетаНалогов.СуммаВключаетНДС = 0 Тогда
ДокСчФ.Цена = ДокОсн.Цена;
Иначе
ДокСчФ.Цена = (ДокОсн.Всего - ДокОсн.НДС)/Кол;
КонецЕсли;
КонецЕсли;
ДокСчФ.Сумма = ДокОсн.Всего - ДокОсн.НДС - ДокОсн.НП;
Иначе
ДокСчФ.Цена = (ДокОсн.Всего - ДокОсн.НП)/Кол;
ДокСчФ.Сумма = ДокОсн.Всего - ДокОсн.НП;
КонецЕсли;
ДокСчФ.НДС=ДокОсн.НДС;
ДокСчФ.Счет = СчетПоКоду("90.3");
ПриВыбореСчета();
Если ДокОсн.Вид() = "ОказаниеУслуг" Тогда
Если ДокОсн.ТипУслуги = 3 Тогда
ДокСчф.Счет = СчетПоКоду("91.2.0");
ПриВыбореСчета();
ДокСчф.Субконто1 = ДокОсн.СтатьяПрочихДоходовИРасходов;
КонецЕсли;
КонецЕсли;
Если Цел(ДокСчф.СтавкаНДС.Ставка) = ДокСчф.СтавкаНДС.Ставка Тогда
ДокСчф.Всего=ДокСчф.Сумма+ДокСчф.НДС;
Иначе
ДокСчф.Всего=ДокСчФ.Сумма;
КонецЕсли;
КонецЦикла;// Перебор строк табличной части дока основания
Доксчф.руководитель = ДокОСн.Руководитель;
Доксчф.ГлБухгалтер = СпрСотрЛоб;
//Доксчф.ПриказДир = "";
Доксчф.ПриказГлБух = "согласно приказа № 29 от 16.02.11";
доксчф.Комментарий = "Введен на основании: "+ГлПредставлениеДокумента(ДокОсн);
доксчф.Записать();
доксчф.Комментарий = доксчф.Комментарий + "@" + РасчДоки(ДокСчф.ТекущийДокумент());
Доксчф.НомерПлатРасчДок = Доксчф_НомерПлатРасчДок ;
Доксчф.ДатаПлатРасчДок = Доксчф_ДатаПлатРасчДок;
Доксчф.датаоплаты = "" + Доксчф_датаоплаты ;
доксчф.Записать();
Сообщить("Записан документ : " + доксчф.ПредставлениеВида() + " " + доксчф.НомерДок + " от " + доксчф.ДатаДок, "I");
// попробуем провести данную счет фактуру
попытка
доксчф.Провести();
исключение
Сообщить("Не удалось провести докумет: " + доксчф);
конецпопытки;
иначе
продолжить;
КонецЕсли;
КонецЦикла;
ЗаполнитьПриходы();
Конецпроцедуры
ПоказатьЧто нужно тут изменить, чтобы создавались СФ на основании док-тов "ПередачаОС"?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот