Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Внешняя печатная форма Счет на оплату 1С БП

Внешняя печатная форма Счет на оплату 1С БП
Я
   ЯТочноНеРобот
 
25.04.19 - 09:33
Приветствую всех!

Я не являюсь 1С программистом.
Помогите мне, пожалуйста, отредактировать форму печатную для счета.
Собственно нужно добавить еще один столбец и выводить туда ставку НДС.
 
 
   ЯТочноНеРобот
 
1 - 25.04.19 - 09:34
Собственно вот код, я его пробовал поправить под мою задачу, но ничего не получилось (появляется ошибка при формировании печатной формы).

Функция ВернутьРасчетныйСчет(СчетКонтрагента)

    БанкДляРасчетов = СчетКонтрагента.БанкДляРасчетов;
    Результат       = ?(БанкДляРасчетов.Пустая(), СчетКонтрагента.НомерСчета, СчетКонтрагента.Банк.КоррСчет);

    Возврат Результат;

КонецФункции// ВернутьРасчетныйСчет()



Функция ПечатьСчетаЗаказа()

    Тип = "Счет";
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
    Запрос.Текст ="
    |ВЫБРАТЬ
    |    Номер,
    |    Дата,
    |    ДоговорКонтрагента,
    |    Организация,
    |    Контрагент КАК Получатель,
    |    Организация КАК Руководители,
    |    Организация КАК Поставщик,
    |    СуммаДокумента,
    |    ВалютаДокумента,
    |    УчитыватьНДС,
    |    СуммаВключаетНДС
    |ИЗ
    |    Документ.СчетНаОплатуПокупателю КАК ЗаказПокупателя
    |
    |ГДЕ
    |    ЗаказПокупателя.Ссылка = &ТекущийДокумент";

    Шапка = Запрос.Выполнить().Выбрать();
    Шапка.Следующий();

    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказПокупателя_СчетЗаказ";

    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
    
    ЧастьЗапросаДляВыбораСодержанияУслуг = ФормированиеПечатныхФорм.ПолучитьЧастьЗапросаДляВыбораСодержанияУслуг("ЗаказПокупателя");
    
    Запрос.Текст = 
    "ВЫБРАТЬ
    |    ВложенныйЗапрос.Номенклатура КАК Номенклатура,
    |    ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК Строка(1000)) КАК Товар,
    |    ВложенныйЗапрос.Номенклатура.Код КАК Код,
    |    ВложенныйЗапрос.Количество,
    |    ВложенныйЗапрос.ЕдиницаИзмерения,
    |    ВложенныйЗапрос.Цена,
    |    ВложенныйЗапрос.Сумма,
    |    ВложенныйЗапрос.СуммаНДС,
    |    ВложенныйЗапрос.СтавкаНДС,
    |    ВложенныйЗапрос.НомерСтроки КАК НомерСтроки,
    |    1 КАК ID
    |ИЗ
    |    (ВЫБРАТЬ
    |        ЗаказПокупателя.Номенклатура КАК Номенклатура,
    |        ЗаказПокупателя.Номенклатура.БазоваяЕдиницаИзмерения.Наименование КАК ЕдиницаИзмерения,
    |        ЗаказПокупателя.Цена КАК Цена,
    |        ЗаказПокупателя.СтавкаНДС КАК СтавкаНДС,
    |        СУММА(ЗаказПокупателя.Количество) КАК Количество,
    |        СУММА(ЗаказПокупателя.Сумма) КАК Сумма,
    |        СУММА(ЗаказПокупателя.СуммаНДС) КАК СуммаНДС,
    |        МИНИМУМ(ЗаказПокупателя.НомерСтроки) КАК НомерСтроки
    |    ИЗ
    |        Документ.СчетНаОплатуПокупателю.Товары КАК ЗаказПокупателя
    |    
    |    ГДЕ
    |        ЗаказПокупателя.Ссылка = &ТекущийДокумент
    |    
    |    СГРУППИРОВАТЬ ПО
    |        ЗаказПокупателя.Номенклатура,
    |        ЗаказПокупателя.СтавкаНДС,
    |        ЗаказПокупателя.Номенклатура.БазоваяЕдиницаИзмерения.Наименование,
    |        ЗаказПокупателя.Цена) КАК ВложенныйЗапрос
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |    " + ЧастьЗапросаДляВыбораСодержанияУслуг + ",
    |    " + ЧастьЗапросаДляВыбораСодержанияУслуг + ",
    |    NULL,
    |    ЗаказПокупателя.Количество,
    |    ЗаказПокупателя.Номенклатура.БазоваяЕдиницаИзмерения.Наименование,
    |    ЗаказПокупателя.Цена,
    |    ЗаказПокупателя.Сумма,
    |    ЗаказПокупателя.СуммаНДС,
    |    ЗаказПокупателя.НомерСтроки,
    |    2
    |ИЗ
    |    Документ.СчетНаОплатуПокупателю.Услуги КАК ЗаказПокупателя
    |
    |ГДЕ
    |    ЗаказПокупателя.Ссылка = &ТекущийДокумент
    |
    |УПОРЯДОЧИТЬ ПО
    |    ID,
    |    НомерСтроки";

    ЗапросТовары = Запрос.Выполнить().Выгрузить();

    Макет = ПолучитьМакет("СчетЗаказ");

    // Выводим шапку накладной

    
    //СтруктурнаяЕдиница = СсылкаНаОбъект.СтруктурнаяЕдиница;


    СведенияОПоставщике = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Поставщик, Шапка.Дата);
    Если Тип = "Счет" Тогда
        ОбластьМакета       = Макет.ПолучитьОбласть("ЗаголовокСчета");
        ОбластьМакета.Параметры.Заполнить(Шапка);
        ОбластьМакета.Параметры.ИНН = СведенияОПоставщике.ИНН;
        ОбластьМакета.Параметры.КПП = СведенияОПоставщике.КПП;
        Если ТипЗнч(СсылкаНаОбъект.СтруктурнаяЕдиница) = Тип("СправочникСсылка.БанковскиеСчета") Тогда
            Банк = ?(НЕ ЗначениеЗаполнено(СсылкаНаОбъект.СтруктурнаяЕдиница.БанкДляРасчетов), СсылкаНаОбъект.СтруктурнаяЕдиница.Банк, СсылкаНаОбъект.СтруктурнаяЕдиница.БанкДляРасчетов);
            //Банк = СсылкаНаОбъект.Банк;

            БИК        = Банк.Код;
            КоррСчет   = Банк.КоррСчет;
            ГородБанка = Банк.Город;
            НомерСчета = ВернутьРасчетныйСчет(СсылкаНаОбъект.СтруктурнаяЕдиница);

            ОбластьМакета.Параметры.БИКБанкаПолучателя               = БИК;
            ОбластьМакета.Параметры.БанкПолучателя                   = СсылкаНаОбъект.СтруктурнаяЕдиница.Банк;
            ОбластьМакета.Параметры.БанкПолучателяПредставление      = СокрЛП(СсылкаНаОбъект.СтруктурнаяЕдиница.Банк) + " " + ГородБанка;
            ОбластьМакета.Параметры.СчетБанкаПолучателя              = КоррСчет;
            ОбластьМакета.Параметры.СчетБанкаПолучателяПредставление = КоррСчет;
            ОбластьМакета.Параметры.СчетПолучателяПредставление      = НомерСчета;
            ОбластьМакета.Параметры.СчетПолучателя                   = НомерСчета;
        КонецЕсли;
        
        Если ПустаяСтрока(СсылкаНаОбъект.СтруктурнаяЕдиница.ТекстКорреспондента) Тогда
            ТекстКорреспондента = ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата), "НаименованиеДляПечатныхФорм");
            Если ЗначениеЗаполнено(СсылкаНаОбъект.СтруктурнаяЕдиница.БанкДляРасчетов) Тогда
                ТекстКорреспондента = ТекстКорреспондента + " р/с " + СсылкаНаОбъект.СтруктурнаяЕдиница.НомерСчета
                + " в " + СсылкаНаОбъект.СтруктурнаяЕдиница.Банк + " " + СсылкаНаОбъект.СтруктурнаяЕдиница.Банк.Город;
            КонецЕсли;    
        Иначе
            ТекстКорреспондента = СсылкаНаОбъект.СтруктурнаяЕдиница.ТекстКорреспондента;
        КонецЕсли;        
        ОбластьМакета.Параметры.ПредставлениеПоставщика = ТекстКорреспондента;
        
        ТабДокумент.Вывести(ОбластьМакета);
    КонецЕсли; 

    ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
    ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, "Счет на оплату");
    
    ТабДокумент.Вывести(ОбластьМакета);

    ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
    ОбластьМакета.Параметры.Заполнить(Шапка);
    ОбластьМакета.Параметры.ПредставлениеПоставщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Организация, Шапка.Дата), "НаименованиеДляПечатныхФорм,ИНН,КПП,ЮридическийАдрес,Телефоны,");
    ТабДокумент.Вывести(ОбластьМакета);

    СведенияОПолучателе = УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Получатель, Шапка.Дата);
    ОбластьМакета = Макет.ПолучитьОбласть("Покупатель");
    ОбластьМакета.Параметры.Заполнить(Шапка);
    ОбластьМакета.Параметры.ПредставлениеПолучателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Получатель, Шапка.Дата), "ПолноеНаименование,ИНН,КПП,ЮридическийАдрес,Телефоны,");
    ТабДокумент.Вывести(ОбластьМакета);

    ОбластьНомера = Макет.ПолучитьОбласть("ШапкаТаблицы|НомерСтроки");
    ОбластьДанных = Макет.ПолучитьОбласть("ШапкаТаблицы|Данные");
    ОбластьСуммы  = Макет.ПолучитьОбласть("ШапкаТаблицы|Сумма");

    ТабДокумент.Вывести(ОбластьНомера);
    ТабДокумент.Присоединить(ОбластьДанных);
    ТабДокумент.Присоединить(ОбластьСуммы);

    ОбластьКолонкаТовар = Макет.Область("Товар");

    ОбластьНомера = Макет.ПолучитьОбласть("Строка|НомерСтроки");
    ОбластьДанных = Макет.ПолучитьОбласть("Строка|Данные");
    ОбластьСуммы  = Макет.ПолучитьОбласть("Строка|Сумма");

    Сумма    = 0;
    СуммаНДС = 0;
    ВсегоСкидок    = 0;
    ВсегоБезСкидок = 0;

    Для каждого ВыборкаСтрокТовары Из ЗапросТовары Цикл 

        ОбластьНомера.Параметры.НомерСтроки = ЗапросТовары.Индекс(ВыборкаСтрокТовары) + 1;
        ТабДокумент.Вывести(ОбластьНомера);

        ОбластьДанных.Параметры.Заполнить(ВыборкаСтрокТовары);
        ОбластьДанных.Параметры.Товар       = СокрЛП(ВыборкаСтрокТовары.Товар);
        ТабДокумент.Присоединить(ОбластьДанных);

        ОбластьСуммы.Параметры.Заполнить(ВыборкаСтрокТовары);
        ТабДокумент.Присоединить(ОбластьСуммы);
        Сумма          = Сумма       + ВыборкаСтрокТовары.Сумма;
        СуммаНДС       = СуммаНДС    + ВыборкаСтрокТовары.СуммаНДС;

    КонецЦикла;

    // Вывести Итого

    ОбластьНомера = Макет.ПолучитьОбласть("Итого|НомерСтроки");
    ОбластьДанных = Макет.ПолучитьОбласть("Итого|Данные");
    ОбластьСуммы  = Макет.ПолучитьОбласть("Итого|Сумма");

    ТабДокумент.Вывести(ОбластьНомера);
    ТабДокумент.Присоединить(ОбластьДанных);
    ОбластьСуммы.Параметры.Всего = ОбщегоНазначения.ФорматСумм(Сумма);
    ТабДокумент.Присоединить(ОбластьСуммы);

    // Вывести ИтогоНДС

    ОбластьНомера = Макет.ПолучитьОбласть("ИтогоНДС|НомерСтроки");
    ОбластьДанных = Макет.ПолучитьОбласть("ИтогоНДС|Данные");
    ОбластьСуммы  = Макет.ПолучитьОбласть("ИтогоНДС|Сумма");
    
    ТабДокумент.Вывести(ОбластьНомера);
    Если СуммаНДС <> 0 Тогда
        ОбластьДанных.Параметры.НДС = ?(Шапка.СуммаВключаетНДС, "В том числе НДС:", "Сумма НДС:");
        ОбластьСуммы.Параметры.ВсегоНДС = ОбщегоНазначения.ФорматСумм(СуммаНДС);
    Иначе
        ОбластьДанных.Параметры.НДС = "Без налога (НДС)";
        ОбластьСуммы.Параметры.ВсегоНДС = "-";
    КонецЕсли;
    ТабДокумент.Присоединить(ОбластьДанных);
    
    ТабДокумент.Присоединить(ОбластьСуммы);
    
    ОбластьМакета = Макет.ПолучитьОбласть("ВсегоКОплате");
    ОбластьМакета.Параметры.КОплате = Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС);
    //ОбластьМакета.Параметры.ВсегоКОплате = ОбщегоНазначения.ФорматСумм(КОплате, Шапка.ВалютаДокумента);

    ТабДокумент.Вывести(ОбластьМакета);
    
    // Вывести Сумму прописью

    ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");
    СуммаКПрописи = Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС);
    ОбластьМакета.Параметры.ИтоговаяСтрока ="Всего наименований " + ЗапросТовары.Количество()
    + ", на сумму " + ОбщегоНазначения.ФорматСумм(СуммаКПрописи, Шапка.ВалютаДокумента);
    ОбластьМакета.Параметры.СуммаПрописью = ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописи, Шапка.ВалютаДокумента);
    ТабДокумент.Вывести(ОбластьМакета);

    // Вывести подписи

    Если Тип = "Счет" Тогда
        ОбластьМакета = Макет.ПолучитьОбласть("ПодвалСчета");

        Руководители = РегламентированнаяОтчетность.ОтветственныеЛицаОрганизаций(Шапка.Руководители, Шапка.Дата,);
        Руководитель = Руководители.Руководитель;
        Бухгалтер    = Руководители.ГлавныйБухгалтер;

        ОбластьМакета.Параметры.ФИОРуководителя = Руководитель;
        ОбластьМакета.Параметры.ФИОБухгалтера   = Бухгалтер;

    Иначе
        ОбластьМакета = Макет.ПолучитьОбласть("ПодвалЗаказа");
    КонецЕсли; 
    ОбластьМакета.Параметры.Заполнить(Шапка);
    ТабДокумент.Вывести(ОбластьМакета);

    Возврат ТабДокумент;

КонецФункции// ПечатьСчетаЗаказа()


// Процедура осуществляет печать документа. Можно направить печать на 

// экран или принтер, а также распечатать необходмое количество копий.
//

//  Название макета печати передается в качестве параметра,
// по переданному названию находим имя макета в соответствии.

//
// Параметры:

//  НазваниеМакета - строка, название макета.
//

Функция Печать() Экспорт
    
      //Тип = Счет;

    // Получить экземпляр документа на печать

    //Если ИмяМакета = "Счет" Тогда

        
        ТабДокумент = ПечатьСчетаЗаказа();
        Возврат ТабДокумент;
        
    //КонецЕсли;

    
    //УниверсальныеМеханизмы.НапечататьДокумент(ТабДокумент, КоличествоЭкземпляров, НаПринтер, ОбщегоНазначения.СформироватьЗаголовокДокумента(СсылкаНаОбъект, ""), НепосредственнаяПечать);

    
КонецФункции// Печать
   sqr4
 
2 - 25.04.19 - 09:38
Задача то простая, обратитесь к специалистам, врятли больше 1к запросят
   sqr4
 
3 - 25.04.19 - 09:45
Там во второй части объединения, тоже нужно вывести ставку ндс ну или поле которое будет вместо нее
   ЯТочноНеРобот
 
4 - 25.04.19 - 11:35
sqr4,
Огромнейшее Вам спасибо!!!
Все заработало!
Еще раз благодарю!!!

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.