Имя: Пароль:
1C
1С v8
печать в управляемых формах
0 _barracuda_
 
14.03.18
11:25
Добрый день вопросик.В обычных формах к примеру вывожу акт и в конце еще один лист с приложением.Но в управляемых формах ругается на ВывестиПриложение-переменная не определена.Подскажите плиз как вывести к акту в догонку приложение?
Процедура ПечатьАкта()
///вывод акта
....
.....
//вывод акта
ВывестиПриложение();
КонецПроцедуры
1 Lexey_
 
14.03.18
11:27
(0) определи переменную
2 novichok79
 
14.03.18
11:30
(0) в тексте процедуры нету скобок рядом с ВывестиПриложение? а вообще отладчиком лучше посмотреть.
3 novichok79
 
14.03.18
11:31
ни версии платформы, ни версии конфигурации... очень точный запрос на помощь.
4 _barracuda_
 
14.03.18
11:32
(2)непонял
(1)это модуль менеджера
#Если сервер.....
5 _barracuda_
 
14.03.18
11:32
УНФ.модуль менеджера заказ
6 novichok79
 
14.03.18
11:33
(4) тебе написало - "переменная не определена", значит это не функция, рядом с функцией обычно стоят скобочки.
7 Мандалай
 
14.03.18
11:35
Какая директива стоит перед вызовом процедуры
Процедура ПечатьАкта()    
?
&НаКлиенте
или
&НаСервере
?
8 Мандалай
 
14.03.18
11:36
И до кучи, кэш почисти
9 _barracuda_
 
14.03.18
11:36
(6) видно же что скобки стоят ну!
10 _barracuda_
 
14.03.18
11:38
(7) перед процедурой печати акта стоит функция у нее в верху стоит #На сервере
11 novichok79
 
14.03.18
11:38
(9) все мои предположения строятся на догадках, т. к. полного текста в наличии у меня нет.
12 AllJoke
 
14.03.18
11:40
Написать там же процедуру ВывестиПриложени();
13 AllJoke
 
14.03.18
11:41
Процедура ПечатьАкта()
....
ВывестиПриложение();
КонецПроцедуры

Процедура ВывестиПриложение()
.....
КонецПроцедуры
14 _barracuda_
 
14.03.18
12:07
(13)ну я как бы не совсем чайник)))процедура есть
15 Мандалай
 
14.03.18
12:08
Кэш почистил?
16 _barracuda_
 
14.03.18
14:23
почистил но дело не в этом.пишет процедура не доступна на сервере
17 Lexey_
 
14.03.18
14:25
(16) может уже пришло время показать код и точный текст ошибки?
18 _barracuda_
 
14.03.18
14:25
наСервере
функция Остаток()
//////////////
КонецПроцедуры

функция ПечатьАкта()
//////////////
//////////////
ПечатьПриложения();
КонецПроцедуры

функция ПечатьПриложения()
////////////////
Конецфункции
19 Lexey_
 
14.03.18
14:30
(18) здесь только код.
У тебя в (4) написано #Если сервер, в (10) #На сервере, тут наСервере, чему верить?
20 Ц_У
 
14.03.18
14:32
модуль менеджера объекта, какие тут сервер на сервере, объект только на сервере и существует
21 _barracuda_
 
14.03.18
14:37
(19)пардон на Сервере.надо было расчет остатка сделать в функции ПечатьАкта()
боюсь весь код вылить там несколько тысяч строк может сотен.фиг кто читать будет
в кратце я их описал
22 hhhh
 
14.03.18
14:45
(21) ты тут написал придуманный код для примера. Скопипасьть реальный код из программы.
23 _barracuda_
 
14.03.18
14:45
#Если сервер это в модуле менеджера в самом верху стоит.пардон
24 _barracuda_
 
14.03.18
14:45
(22)там не одна сотня  строк.ну ща попробую
25 hhhh
 
14.03.18
14:47
(24) конкретно эту строку

ВывестиПриложение();

и

ПечатьПриложения();

уже видим 10 различий.
26 _barracuda_
 
14.03.18
15:00
&НаСервере
Функция СформироватьЗапросЦены(Номенклатура)
    Запрос=Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |        Номенклатура КАК Номенклатура,
    |        Цена КАК Цена,
    |        ВидЦен КАК ВидЦен
    |    ИЗ
    |        РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Дата, ВидЦен=&ВидЦен И Номенклатура = &Номенклатура) КАК ЦеныНоменклатуры";
    Запрос.УстановитьПараметр("Дата", ТекущаяДата());
    Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
    Запрос.УстановитьПараметр("ВидЦен", Справочники.ВидыЦен.НайтиПоНаименованию("Учетная цена"));
    выб=Запрос.Выполнить().Выбрать();
    Если  выб.Следующий() Тогда
        Цена=выб.Цена;
    КонецЕсли;
    Возврат Цена;
КонецФункции

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

    |    ЗаказПокупателя.ВалютаДокумента КАК ВалютаДокумента,
    |    ЗаказПокупателя.Дата КАК ДатаДокумента,
    |    ЗаказПокупателя.БанковскийСчет КАК БанковскийСчет,
    |    ЗаказПокупателя.Контрагент КАК Контрагент,
    |    ЗаказПокупателя.Ответственный КАК Ответственный,
    |    ЗаказПокупателя.ДополнительныеУсловия КАК ДополнительныеУсловия,
    |    ЗаказПокупателя.Организация.КодПоЕДРПОУ КАК ЕДРПОУОрганизации,
    |    ВЫРАЗИТЬ(ЗаказПокупателя.МестоСоставленияДокумента КАК СТРОКА(1000)) КАК МестоСоставленияДокумента,
    |    ЗаказПокупателя.Работы.(
    |        ВЫБОР
    |            КОГДА (ВЫРАЗИТЬ(ЗаказПокупателя.Работы.Номенклатура.НаименованиеПолное КАК СТРОКА(1000))) = """"
    |                ТОГДА ЗаказПокупателя.Работы.Номенклатура.Наименование
    |            ИНАЧЕ ВЫРАЗИТЬ(ЗаказПокупателя.Работы.Номенклатура.НаименованиеПолное КАК СТРОКА(1000))
    |        КОНЕЦ КАК Запас,
    |        Номенклатура.Артикул КАК Артикул,
    |        Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    |        Цена КАК Цена,
    |        Сумма КАК Сумма,
    |        СуммаНДС КАК СуммаНДС,
    |        Всего КАК Всего,
    |        ЗаказПокупателя.Работы.Количество * ЗаказПокупателя.Работы.Коэффициент * ЗаказПокупателя.Работы.Кратность КАК Количество,
    |        Характеристика,
    |        Содержание,
    |        ПроцентСкидкиНаценки,
    |        ВЫБОР
    |            КОГДА ЗаказПокупателя.Работы.ПроцентСкидкиНаценки <> 0
    |                    ИЛИ ЗаказПокупателя.Работы.СуммаАвтоматическойСкидки <> 0
    |                ТОГДА 1
    |            ИНАЧЕ 0
    |        КОНЕЦ КАК ЕстьСкидка,
    |        НомерСтроки КАК НомерСтроки,
    |        СуммаАвтоматическойСкидки
    |    ),
    |    ЗаказПокупателя.Запасы.(
    |        ВЫБОР
    |            КОГДА (ВЫРАЗИТЬ(ЗаказПокупателя.Запасы.Номенклатура.НаименованиеПолное КАК СТРОКА(1000))) = """"
    |                ТОГДА ЗаказПокупателя.Запасы.Номенклатура.Наименование
    |            ИНАЧЕ ВЫРАЗИТЬ(ЗаказПокупателя.Запасы.Номенклатура.НаименованиеПолное КАК СТРОКА(1000))
    |        КОНЕЦ КАК Запас,
    |        Номенклатура.Артикул КАК Артикул,
    |        Номенклатура КАК Номенклатура,
    |        ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    |        Цена КАК Цена,
    |        Сумма КАК Сумма,
    |        СуммаНДС КАК СуммаНДС,
    |        Всего КАК Всего,
    |        Количество КАК Количество,
    |        Характеристика,
    |        Содержание,
    |        ПроцентСкидкиНаценки,
    |        ВЫБОР
    |            КОГДА ЗаказПокупателя.Запасы.ПроцентСкидкиНаценки <> 0
    |                    ИЛИ ЗаказПокупателя.Запасы.СуммаАвтоматическойСкидки <> 0
    |                ТОГДА 1
    |            ИНАЧЕ 0
    |        КОНЕЦ КАК ЕстьСкидка,
    |        НомерСтроки КАК НомерСтроки,
    |        СуммаАвтоматическойСкидки
    |    ),
    |    ЗаказПокупателя.Контрагент.КонтактноеЛицо КАК РуководительПокупателя
    |ИЗ
    |    Документ.ЗаказПокупателя КАК ЗаказПокупателя
    |ГДЕ
    |    ЗаказПокупателя.Ссылка В(&МассивОбъектов)
    |
    |УПОРЯДОЧИТЬ ПО
    |    Ссылка,
    |    НомерСтроки";
    
    Шапка = Запрос.Выполнить().Выбрать();
    
    ПервыйДокумент = Истина;
    
    Пока Шапка.Следующий() Цикл
        
        Если Не ПервыйДокумент Тогда
            ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;
        ПервыйДокумент = Ложь;
        
        НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
        
        ВыборкаСтрокЗапасы = Шапка.Запасы.Выбрать();
        ВыборкаСтрокРаботы = Шапка.Работы.Выбрать();
        
        ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказПокупателя_ПФ_MXL_" + ИмяМакета;
        
        Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.ЗаказПокупателя.ПФ_MXL_" + ИмяМакета);
        
        КодЯзыкаПечать = Локализация.ПолучитьЯзыкФормированияПечатныхФорм();    
        Макет.КодЯзыкаМакета = КодЯзыкаПечать;
        
        СведенияОбОрганизации = УправлениеНебольшойФирмойСервер.СведенияОЮрФизЛице(КодЯзыкаПечать, Шапка.Организация, Шапка.ДатаДокумента, ,);
        СведенияОбКонтрагенте = УправлениеНебольшойФирмойСервер.СведенияОЮрФизЛице(КодЯзыкаПечать, Шапка.Контрагент, Шапка.ДатаДокумента, ,);
        
        Если Шапка.ДатаДокумента < Дата('20110101') Тогда
            НомерДокумента = УправлениеНебольшойФирмойСервер.ПолучитьНомерНаПечать(Шапка.Номер, Шапка.Префикс);
        Иначе
            НомерДокумента = ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(Шапка.Номер, Истина, Истина);
        КонецЕсли;        
        
        Руководители = УправлениеНебольшойФирмойСервер.ОтветственныеЛицаОрганизационнойЕдиницы(Шапка.Руководители, Шапка.ДатаДокумента);
        
        
        ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
        ОбластьМакета.Параметры.Дата=Формат(Шапка.ДатаЗавоза,"ДЛФ=DD");    
        ОбластьМакета.Параметры.НомерСчета=Шапка.Номер;    
        ТабличныйДокумент.Вывести(ОбластьМакета);
        
        // Начинаем формировать собственно текст акта
        ОбластьМакета = Макет.ПолучитьОбласть("ТекстАктаНачало");
        ОбластьМакета.Параметры.Заполнить(Шапка);
        //ОбластьМакета.Параметры.ПредставлениеПоставщика         = УправлениеНебольшойФирмойСервер.ОписаниеОрганизации(СведенияОбОрганизации, "ПолноеНаименование,");
        ОбластьМакета.Параметры.ПредставлениеПокупателя         = УправлениеНебольшойФирмойСервер.ОписаниеОрганизации(СведенияОбКонтрагенте, "ПолноеНаименование,");
        //ОбластьМакета.Параметры.Текст=
        ТабличныйДокумент.Вывести(ОбластьМакета);
        
        // выводим сведения о договоре и сделке
        
        // Заканчиваем формировать текст акта
        ОбластьМакета = Макет.ПолучитьОбласть("ТекстАктаКонец");
        ТабличныйДокумент.Вывести(ОбластьМакета);
        
        ЕстьСкидки = Шапка.Работы.Выгрузить().Итог("ЕстьСкидка") <> 0;
        

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

КонецФункции // ПечатнаяФорма()

Функция ПечатьАктОбОказанииУслугПриемка(МассивОбъектов, ОбъектыПечати, ИмяМакета)
    
ИмяМакета="АктОбОказанииУслугПриемка";    
    ТабличныйДокумент = Новый ТабличныйДокумент;
    ТабличныйДокумент.КлючПараметровПечати = "ПараметрыПечати_ЗаказПокупателя";
    
    Запрос = Новый Запрос();
    Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
    Запрос.Текст =
    "ВЫБРАТЬ
    |    ЗаказПокупателя.Ссылка КАК Ссылка,
    |    ЗаказПокупателя.ВидЦен КАК ВидЦен,
    |    ЗаказПокупателя.ДатаЗавоза КАК ДатаЗавоза,
    |    ЗаказПокупателя.ДатаВывоза КАК ДатаВывоза,
    |    ЗаказПокупателя.Номер КАК Номер,
    |    ЗаказПокупателя.Организация КАК Организация,
    |    ЗаказПокупателя.Организация КАК Руководители,
    |    ЗаказПокупателя.СуммаВключаетНДС КАК СуммаВключаетНДС,
    |    ЗаказПокупателя.Организация.Префикс КАК Префикс,
    |    ЗаказПокупателя.Контрагент.ВидКонтрагента КАК ПокупательЮрФизЛицо,
    |    ЗаказПокупателя.Договор КАК Договор,
    |    ЗаказПокупателя.НалогообложениеНДС КАК НалогообложениеНДС,
    |    ЗаказПокупателя.Получил КАК ПредставительПокупателя,
    |    ЗаказПокупателя.Отпустил КАК ПредставительПоставщика,
    |    ЗаказПокупателя.ОтпустилДолжность КАК ДолжностьПредставителяПоставщика,
    |    ЗаказПокупателя.ВалютаДокумента КАК ВалютаДокумента,
    |    ЗаказПокупателя.Дата КАК ДатаДокумента,
    |    ЗаказПокупателя.БанковскийСчет КАК БанковскийСчет,
    |    ЗаказПокупателя.Контрагент КАК Контрагент,
    |    ЗаказПокупателя.Ответственный КАК Ответственный,
    |    ЗаказПокупателя.ДополнительныеУсловия КАК ДополнительныеУсловия,
    |    ЗаказПокупателя.Организация.КодПоЕДРПОУ КАК ЕДРПОУОрганизации,
    |    ВЫРАЗИТЬ(ЗаказПокупателя.МестоСоставленияДокумента КАК СТРОКА(1000)) КАК МестоСоставленияДокумента,
    |    ЗаказПокупателя.Работы.(
    |        ВЫБОР
    |            КОГДА (ВЫРАЗИТЬ(ЗаказПокупателя.Работы.Номенклатура.НаименованиеПолное КАК СТРОКА(1000))) = """"
    |                ТОГДА ЗаказПокупателя.Работы.Номенклатура.Наименование
    |            ИНАЧЕ ВЫРАЗИТЬ(ЗаказПокупателя.Работы.Номенклатура.НаименованиеПолное КАК СТРОКА(1000))
    |        КОНЕЦ КАК Запас,
    |        Номенклатура.Артикул КАК Артикул,
    |        Номенклатура.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    |        Цена КАК Цена,
    |        Сумма КАК Сумма,
    |        СуммаНДС КАК СуммаНДС,
    |        Всего КАК Всего,
    |        ЗаказПокупателя.Работы.Количество * ЗаказПокупателя.Работы.Коэффициент * ЗаказПокупателя.Работы.Кратность КАК Количество,
    |        Характеристика,
    |        Содержание,
    |        ПроцентСкидкиНаценки,
    |        ВЫБОР
    |            КОГДА ЗаказПокупателя.Работы.ПроцентСкидкиНаценки <> 0
    |                    ИЛИ ЗаказПокупателя.Работы.СуммаАвтоматическойСкидки <> 0
    |                ТОГДА 1
    |            ИНАЧЕ 0
    |        КОНЕЦ КАК ЕстьСкидка,
    |        НомерСтроки КАК НомерСтроки,
    |        СуммаАвтоматическойСкидки
    |    ),
    |    ЗаказПокупателя.Запасы.(
    |        ВЫБОР
    |            КОГДА (ВЫРАЗИТЬ(ЗаказПокупателя.Запасы.Номенклатура.НаименованиеПолное КАК СТРОКА(1000))) = """"
    |                ТОГДА ЗаказПокупателя.Запасы.Номенклатура.Наименование
    |            ИНАЧЕ ВЫРАЗИТЬ(ЗаказПокупателя.Запасы.Номенклатура.НаименованиеПолное КАК СТРОКА(1000))
    |        КОНЕЦ КАК Запас,
    |        Номенклатура.Артикул КАК Артикул,
    |        Номенклатура КАК Номенклатура,
    |        ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    |        Цена КАК Цена,
    |        Сумма КАК Сумма,
    |        СуммаНДС КАК СуммаНДС,
    |        Всего КАК Всего,
    |        Количество КАК Количество,
    |        Характеристика,
    |        Содержание,
    |        ПроцентСкидкиНаценки,
    |        ВЫБОР
    |            КОГДА ЗаказПокупателя.Запасы.ПроцентСкидкиНаценки <> 0
    |                    ИЛИ ЗаказПокупателя.Запасы.СуммаАвтоматическойСкидки <> 0
    |                ТОГДА 1
    |            ИНАЧЕ 0
    |        КОНЕЦ КАК ЕстьСкидка,
    |        НомерСтроки КАК НомерСтроки,
    |        СуммаАвтоматическойСкидки
    |    ),
    |    ЗаказПокупателя.Контрагент.КонтактноеЛицо КАК РуководительПокупателя
    |ИЗ
    |    Документ.ЗаказПокупателя КАК ЗаказПокупателя
    |ГДЕ
    |    ЗаказПокупателя.Ссылка В(&МассивОбъектов)
    |
    |УПОРЯДОЧИТЬ ПО
    |    Ссылка,
    |    НомерСтроки";
    
    Шапка = Запрос.Выполнить().Выбрать();
    
    ПервыйДокумент = Истина;
    
    Пока Шапка.Следующий() Цикл
        
        Если Не ПервыйДокумент Тогда
            ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
        КонецЕсли;
        ПервыйДокумент = Ложь;
        
        НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
        
        ВыборкаСтрокЗапасы = Шапка.Запасы.Выбрать();
        ВыборкаСтрокРаботы = Шапка.Работы.Выбрать();
        
        ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ЗаказПокупателя_ПФ_MXL_" + ИмяМакета;
        
        Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.ЗаказПокупателя.ПФ_MXL_" + ИмяМакета);
        
        КодЯзыкаПечать = Локализация.ПолучитьЯзыкФормированияПечатныхФорм();    
        Макет.КодЯзыкаМакета = КодЯзыкаПечать;
        
        СведенияОбОрганизации = УправлениеНебольшойФирмойСервер.СведенияОЮрФизЛице(КодЯзыкаПечать, Шапка.Организация, Шапка.ДатаДокумента, ,);
        СведенияОбКонтрагенте = УправлениеНебольшойФирмойСервер.СведенияОЮрФизЛице(КодЯзыкаПечать, Шапка.Контрагент, Шапка.ДатаДокумента, ,);
        
        Если Шапка.ДатаДокумента < Дата('20110101') Тогда
            НомерДокумента = УправлениеНебольшойФирмойСервер.ПолучитьНомерНаПечать(Шапка.Номер, Шапка.Префикс);
        Иначе
            НомерДокумента = ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(Шапка.Номер, Истина, Истина);
        КонецЕсли;        
        
        Руководители = УправлениеНебольшойФирмойСервер.ОтветственныеЛицаОрганизационнойЕдиницы(Шапка.Руководители, Шапка.ДатаДокумента);
        
        
        ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
        ОбластьМакета.Параметры.Дата=Формат(Шапка.ДатаЗавоза,"ДЛФ=DD");    
        ОбластьМакета.Параметры.НомерСчета=Шапка.Номер;    
        ТабличныйДокумент.Вывести(ОбластьМакета);
        
        // Начинаем формировать собственно текст акта
        ОбластьМакета = Макет.ПолучитьОбласть("ТекстАктаНачало");
        ОбластьМакета.Параметры.Заполнить(Шапка);
        //ОбластьМакета.Параметры.ПредставлениеПоставщика         = УправлениеНебольшойФирмойСервер.ОписаниеОрганизации(СведенияОбОрганизации, "ПолноеНаименование,");
        ОбластьМакета.Параметры.ПредставлениеПокупателя         = УправлениеНебольшойФирмойСервер.ОписаниеОрганизации(СведенияОбКонтрагенте, "ПолноеНаименование,");
        //ОбластьМакета.Параметры.Текст=
        ТабличныйДокумент.Вывести(ОбластьМакета);
        
        // Заканчиваем формировать текст акта
        ОбластьМакета = Макет.ПолучитьОбласть("ТекстАктаКонец");
        ТабличныйДокумент.Вывести(ОбластьМакета);
        
        ЕстьСкидки = Шапка.Работы.Выгрузить().Итог("ЕстьСкидка") <> 0;
        
    ВсегоЦенаПрих=0;
        Пока ВыборкаСтрокЗапасы.Следующий() Цикл

            Количество = Количество + 1;
            //ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокЗапасы);
            ОбластьМакета.Параметры.НомерСтроки = Количество;
            ОбластьМакета.Параметры.Количество = ВыборкаСтрокЗапасы.Количество;
                ОбластьМакета.Параметры.Запас = УправлениеНебольшойФирмойСервер.ПолучитьПредставлениеНоменклатурыДляПечати(ВыборкаСтрокЗапасы.Запас,
                                                                    ВыборкаСтрокЗапасы.Характеристика, ВыборкаСтрокЗапасы.Артикул);
попытка
            ОбластьМакета.Параметры.ЦенаПрих= СформироватьЗапросЦены(ВыборкаСтрокЗапасы.Номенклатура)*ВыборкаСтрокЗапасы.Количество;
            ВсегоЦенаПрих=ВсегоЦенаПрих+СформироватьЗапросЦены(ВыборкаСтрокЗапасы.Номенклатура)*ВыборкаСтрокЗапасы.Количество;
        исключение
            конецпопытки;
        КонецЦикла;
        
        ОбластьМакета = Макет.ПолучитьОбласть("Итого");
        ОбластьМакета.Параметры.ВсегоЦенаПрих = ВсегоЦенаПрих;
        ОбластьМакета.Параметры.ВсегоСумма = Сумма;
        ТабличныйДокумент.Вывести(ОбластьМакета);
        
        //ОбластьМакета = Макет.ПолучитьОбласть("ИтогоНДС");
        //Если СуммаНДС = 0 Тогда
        //    ОбластьМакета.Параметры.НДС = НСтр("ru='Без налога (НДС)';uk='Без податку (ПДВ)'", КодЯзыкаПечать);
        //    ОбластьМакета.Параметры.ВсегоНДС = "-";
        //Иначе
        //    ОбластьМакета.Параметры.НДС = ?(Шапка.СуммаВключаетНДС, НСтр("ru='В том числе НДС:';uk='В тому числі ПДВ:'", КодЯзыкаПечать), НСтр("ru='Сумма НДС:';uk='Сума ПДВ:'", КодЯзыкаПечать));
        //    ОбластьМакета.Параметры.ВсегоНДС = УправлениеНебольшойФирмойСервер.ФорматСумм(СуммаНДС);
        //КонецЕсли;
        //ТабличныйДокумент.Вывести(ОбластьМакета);
        
        ОбластьМакета = Макет.ПолучитьОбласть("СуммаПрописью");    
        СуммаКПрописиСНДС     = Всего;
        СуммаКПрописиБезНДС = Сумма - ?(Шапка.СуммаВключаетНДС, СуммаНДС, 0);
        
        ТабличныйДокумент.Вывести(ОбластьМакета);
        
        Если ЗначениеЗаполнено(Шапка.МестоСоставленияДокумента) Тогда
            ОбластьМакета = Макет.ПолучитьОбласть("МестоСоставления");
            ОбластьМакета.Параметры.МестоСоставления = СокрЛП(Шапка.МестоСоставленияДокумента);
            ТабличныйДокумент.Вывести(ОбластьМакета);
        КонецЕсли;
        
        // выводим подписи
        
        ДанныеПредставителя = СокрЛП(Шапка.ПредставительПоставщика);
        ДолжностьПредставителя = СокрЛП(Шапка.ДолжностьПредставителяПоставщика);
        
        ДолжностьФИОПредставителя = ?(ЗначениеЗаполнено(ДолжностьПредставителя),ДолжностьПредставителя + " ","") + ?(ЗначениеЗаполнено(ДанныеПредставителя),ДанныеПредставителя,"");
        
        ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
        ОбластьМакета.Параметры.Заполнить(Шапка);
        ОбластьМакета.Параметры.Дата = Шапка.ДатаДокумента;
        ОбластьМакета.Параметры.ПредставительПоставщика = ДолжностьФИОПредставителя;
        ОбластьМакета.Параметры.ПредставительПокупателя = Шапка.ПредставительПокупателя;
        ОбластьМакета.Параметры.РеквизитыПоставщика = УправлениеНебольшойФирмойСервер.ОписаниеОрганизации(СведенияОбОрганизации, "ПолноеНаименование,ИНН,КодПоЕДРПОУ,НомерСвидетельства,НомерСчета,Банк,МФО,ЮридическийАдрес,Телефоны,Факс,ПлательщикНалогаНаПрибыль,");
        ОбластьМакета.Параметры.РеквизитыПокупателя = УправлениеНебольшойФирмойСервер.ОписаниеОрганизации(СведенияОбКонтрагенте, "ПолноеНаименование,ИНН,КодПоЕДРПОУ,ЮридическийАдрес,Телефоны,Факс");
        
        ТабличныйДокумент.Вывести(ОбластьМакета);
        
    КонецЦикла;
    
    ТабличныйДокумент.АвтоМасштаб = Истина;
    ТабличныйДокумент.Показать();

КонецФункции // ПечатнаяФорма()
27 _barracuda_
 
14.03.18
15:00
если че сильно не материть))
28 novichok79
 
14.03.18
15:07
(27) а ну да, то есть ты кидаешь в тему декларации процедур и функций, а потом просишь гадать по ним, где косяк. ну нормально так, чо.
29 novichok79
 
14.03.18
15:07
(27) а соррян, не увидел ))) а на какой строке ошибка у тебя в этом всем?
30 novichok79
 
14.03.18
15:12
мозгоeбля какая-то. ни ВывестиПриложение, ни ПечатьПриложения у тебя тут нет. код сделан вроде как бы и для БСП, но структура не БСП-шная.
ты из формы их вызываешь? модуль обработки (внешней печатной формы) не доступен из формы, только через реквизитыформывзначение.
31 _barracuda_
 
14.03.18
15:27
в модуле менеджера ругается№ "метод не доступен на сервере"
32 novichok79
 
14.03.18
15:28
(31) очень информативное сообщение.
33 Lexey_
 
14.03.18
15:28
(31) сложно скопировать текст шибки?
34 _barracuda_
 
14.03.18
15:37
((((сорян ребята.жму печать и тупо один меседж "метод не доступен на сервере" ни подробно ничего
35 _barracuda_
 
14.03.18
15:37
а что за метод...
36 _barracuda_
 
14.03.18
15:40
как только в ПечатьАктОбОказанииУслуг закоментирую ПечатьАктОбОказанииУслугПриемка так отркывается первая процедура печати и все гуд.
37 novichok79
 
14.03.18
15:41
(36) а журнал регистрации к чему? поищи там ошибку.
38 _barracuda_
 
14.03.18
15:45
(37)там то же самое
39 novichok79
 
14.03.18
15:47
(38) скрин в студию...
40 novichok79
 
14.03.18
15:47
(38) ну или включи логи технологического журнала и посмотри там.
41 Любопытная
 
14.03.18
15:49
ТабличныйДокумент.Показать(); - это ты кому показывать на сервере собрался?
42 _barracuda_
 
14.03.18
16:12
(41)спасибо))))
убрал.не ругается.но выводит только один листок.хотя процедура отрабатывает
43 Любопытная
 
14.03.18
16:14
(42) наверное потому что это не процедура, а функция и она должна этот самый табличный документ вернуть на клиент, чтобы на клиенте его уже выводить.
Точно не новичок?
44 _barracuda_
 
14.03.18
16:16
(43)есть немного)))скиньте пример
45 Любопытная
 
14.03.18
16:18
"ну я как бы не совсем чайник)))"... кофейник видимо(
Пример чего скинуть? Чем процедура от функции отличается?
46 _barracuda_
 
14.03.18
16:19
(45)как выкрутиться.Вы правы это не процедура.функция
47 SSSSS_AAAAA
 
14.03.18
16:19
(44) Пример чего скинуть? Возврата табличного документа?
Возврат ТабличныйДокумент:
Это так сложно и до сих пор тебе не известно?
48 SSSSS_AAAAA
 
14.03.18
16:20
(46) молча. А из чего выкручиваться то?
49 Любопытная
 
14.03.18
16:22
(46) Вы ведь ее где-то вызвали? Вот там где вызвали напишите ТабДок = ИмяВашейФункции(тут какие-то параметры);
И потом ТабДок.Показать();

В самой функции в конце надо написать
Возврат ТабличныйДокумент;

И будет счастье. Наверное. Возможно. Но это не точно)
50 _barracuda_
 
14.03.18
16:23
(47)
    ТабличныйДокумент.АвтоМасштаб = Истина;
//    ТабличныйДокумент.Вывести();
//    ТабличныйДокумент.Показать();
    Возврат ТабличныйДокумент;

не выводит!
51 Любопытная
 
14.03.18
16:27
Вы прикалываетесь...
52 _barracuda_
 
14.03.18
16:33
(51)нет.только пробую силенки
53 Любопытная
 
14.03.18
16:34
(52) ну и?
54 _barracuda_
 
14.03.18
16:36
а в чем прикол?есть 2 функции абсолютно одинаковые практически с выводом разных макетов.только вторая без ошибок не выводит документ.сейчас попробую сделать как вы сказали
55 Любопытная
 
14.03.18
16:37
56 Любопытная
 
14.03.18
16:38
(54) может попробовать посмотреть как же работает первая функция и сделать так же?