Имя: Пароль:
1C
1С v8
Как получить данные в печатную форму сч. фактр из реализации?
0 DDD2005NEW
 
01.04.12
14:19
Как получить данные в печатную форму сч. фактр из реализации?
УПП релиз последний
делаю так

       ОбластьМакета.Параметры.ФакторингНомер = ДанныеДляПечати.РеализацияТоваровУслуг.ДоговорФакторинга.Номер;
       ОбластьМакета.Параметры.ФакторингДата = Формат(ДанныеДляПечати.РеализацияТоваровУслуг.ДоговорФакторинга.Дата, "ДФ='дд ММММ гггг'")+" г.";


в результате регуется, обновил до последней и вот теперь мучаюсь, как теперь получить данные?
1 DDD2005NEW
 
01.04.12
14:20
в результате ругается, прошу прощения за ошибки
2 ale-sarin
 
01.04.12
14:25
Ну, а как "рагуется"?
3 DDD2005NEW
 
01.04.12
14:29
сейчас так стал пробывать в основном так

{Документ.СчетФактураВыданный.МодульМенеджера(3639)}: Поле объекта не обнаружено (ДоговорФакторинга)
       ОбластьМакета.Параметры.ФакторингНомер = ДанныеДляПечати.ДоговорФакторинга.Номер;
4 Турист
 
01.04.12
14:30
а что у тебя в ДанныеДляПечати?
5 ale-sarin
 
01.04.12
14:31
(3)
ДанныеДляПечати - это структура. Получается из запроса.
Значит там нет "ДоговорФакторинга".
6 mirosh
 
01.04.12
14:31
Неудивительно, ведь в структуре ДанныеДляПечати нет ни регистратора, ни договора факторинга.

Делай так.
Если у тебя внешняя печатная форма, то
ОбластьМакета.Параметры.ФакторингНомер = СсылкаНаОбъект.ДокументыОснования[0].ДокументОснование.ДоговорФакторинга.Номер;

Если не внешняя, то
ОбластьМакета.Параметры.ФакторингНомер = ДокументыОснования[0].ДокументОснование.ДоговорФакторинга
7 mirosh
 
01.04.12
14:32
+(6) .Номер; (в конце)
8 DDD2005NEW
 
01.04.12
14:33
Функция ПечатьСчетФактура451факторингФТК(МассивОбъектов, ОбъектыПечати)
   мВалютаРегламентированногоУчета = Константы.ВалютаРегламентированногоУчета.Получить();

   ТабДокумент = Новый ТабличныйДокумент;

   ПервыйДокумент = Истина;
   
   Для каждого Ссылка Из МассивОбъектов Цикл
       ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_СчетФактураВыданный_СчетФактура451";
       Макет = ПолучитьОбщийМакет("СчетФактура451факторингФТК");

       Если Не ПервыйДокумент Тогда
           ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
       КонецЕсли;
       ПервыйДокумент = Ложь;
       НомерСтрокиНачало = ТабДокумент.ВысотаТаблицы + 1;

       ДанныеДляПечати = Неопределено;
       УчетнаяПолитика = Неопределено;
       
       СобратьДанныеДляПечати(Ссылка, ДанныеДляПечати, УчетнаяПолитика);
       
       Если ТипЗнч(ДанныеДляПечати) = Тип("Соответствие") Тогда
           Продолжить;
       ИначеЕсли ДанныеДляПечати = Неопределено Тогда
           Продолжить;
       КонецЕсли;

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

       Иначе
           ПредставлениеГрузополучателя = ?(Не ЗначениеЗаполнено(ДанныеДляПечати.Грузополучатель),
                                           "",
                                           ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОГрузополучателе, "ПолноеНаименование, ФактическийАдрес,"));
       КонецЕсли;
       
       ВыборкаПоТоварам = ДанныеДляПечати.ТабличнаяЧасть.Скопировать();
   
       Если ВыборкаПоТоварам.Количество() > 0 Тогда
           ТолькоУслуги = Истина;
           Для Каждого СтрокаТовар Из ВыборкаПоТоварам Цикл
               Если (ТипЗнч(СтрокаТовар.Товар) = Тип("СправочникСсылка.Номенклатура")
                  И Не СтрокаТовар.Товар.Услуга)
                  ИЛИ ТипЗнч(СтрокаТовар.Товар) = Тип("СправочникСсылка.ОсновныеСредства") Тогда
                   ТолькоУслуги = Ложь;
                   Прервать;
               КонецЕсли;
           КонецЦикла;
       Иначе
           ТолькоУслуги = Ложь;
       КонецЕсли;

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

       ОбластьМакета.Параметры.АдресПоставщика               = "Адрес: " + ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОПоставщике, "ЮридическийАдрес,");
       
       Строка_ПоДокументу = "";
       Для Каждого ПараметрыДокументаОплаты Из ДанныеДляПечати.ТаблицаДатОплат Цикл
           Строка_ПоДокументу = Строка_ПоДокументу + ?(ПустаяСтрока(Строка_ПоДокументу), "К платежно-расчетному документу № ",", ")
                   + ПараметрыДокументаОплаты.НомерПлатежноРасчетногоДокумента + " от " + Формат(ПараметрыДокументаОплаты.ДатаПлатежноРасчетногоДокумента, "ДФ=dd.MM.yyyy");
       КонецЦикла;
       Если ПустаяСтрока(Строка_ПоДокументу) Тогда
           Строка_ПоДокументу = "К платежно-расчетному документу № -- от --"
       КонецЕсли;
   
       ОбластьМакета.Параметры.ПоДокументу                   = Строка_ПоДокументу;
       ОбластьМакета.Параметры.ПредставлениеПокупателя       = "Покупатель: " + ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОбПокупателе, "ПолноеНаименование,");
       ОбластьМакета.Параметры.АдресПокупателя               = "Адрес: " + ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОбПокупателе, "ЮридическийАдрес,");
       
       Если ТолькоУслуги Тогда
           ОбластьМакета.Параметры.ПредставлениеГрузоотправителя = "Грузоотправитель и его адрес: " + "--";
           ОбластьМакета.Параметры.ПредставлениеГрузополучателя  = "Грузополучатель и его адрес: "  + "--";
       Иначе
           ОбластьМакета.Параметры.ПредставлениеГрузоотправителя = "Грузоотправитель и его адрес: " + ?(НЕ ЗначениеЗаполнено(ДанныеДляПечати.Грузоотправитель), "", ?(ДанныеДляПечати.Грузоотправитель = "он же", ДанныеДляПечати.Грузоотправитель, ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОГрузоотправителе,  "ПолноеНаименование,ФактическийАдрес,")));
           ОбластьМакета.Параметры.ПредставлениеГрузополучателя  = "Грузополучатель и его адрес: "  + ПредставлениеГрузополучателя;
       КонецЕсли;
   
       Если Ссылка.Дата < '20040216' Тогда
           ОбластьМакета.Параметры.ИННпоставщика                 = "Идентификационный номер продавца (ИНН): "   + ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОПоставщике,  "ИНН,", Ложь);
           ОбластьМакета.Параметры.ИННПокупателя                 = "Идентификационный номер покупателя (ИНН): " + ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОбПокупателе, "ИНН,", Ложь);
       Иначе
           КПП = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОПоставщике, "КПП,", Ложь);
           Если ЗначениеЗаполнено(КПП) Тогда
               КПП = "/" + КПП;
           КонецЕсли;
           ОбластьМакета.Параметры.ИННпоставщика                 = "ИНН/КПП продавца: "                 + ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОПоставщике, "ИНН,", Ложь) + КПП;
           
           Если не ТолькоУслуги
               и ЗначениеЗаполнено(ДанныеДляПечати.Грузополучатель)
               и не ДанныеДляПечати.Грузополучатель = ДанныеДляПечати.Покупатель
               и ДанныеДляПечати.Грузополучатель.ГоловнойКонтрагент = ДанныеДляПечати.Покупатель
               Тогда
               КПП = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОГрузополучателе, "КПП,", Ложь);
               Если не ЗначениеЗаполнено(КПП) Тогда
                   КПП = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОбПокупателе, "КПП,", Ложь);
               КонецЕсли;
           Иначе
               КПП = ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОбПокупателе, "КПП,", Ложь);
           КонецЕсли;
           
           Если ЗначениеЗаполнено(КПП) Тогда
               КПП = "/" + КПП;
           КонецЕсли;
           ОбластьМакета.Параметры.ИННПокупателя                 = "ИНН/КПП покупателя: "               + ФормированиеПечатныхФормСервер.ОписаниеОрганизации(СведенияОбПокупателе, "ИНН,", Ложь) + КПП;
       КонецЕсли;
   
       ОбластьМакета.Параметры.ФакторингНомер = ДанныеДляПечати.ДоговорФакторинга.Номер;
       ОбластьМакета.Параметры.ФакторингДата = Формат(ДанныеДляПечати.ДоговорФакторинга.Дата, "ДФ='дд ММММ гггг'")+" г.";
       ПроставитьПрочеркиВПустыеПоля(ОбластьМакета);
       ТабДокумент.Вывести(ОбластьМакета);
9 ale-sarin
 
01.04.12
14:34
(8) И что?
10 mirosh
 
01.04.12
14:34
(8)аааа, зачем ты это сделал? ))
тебе в (6) подошло?
11 DDD2005NEW
 
01.04.12
14:35
ОбластьМакета.Параметры.ФакторингДата = ДокументыОснования[0].ДокументОснование.ДоговорФакторинга.Дата<<?>>, "ДФ='дд ММММ гггг'")+" г."; (Проверка: Толстый клиент (обычное приложение))
{Документ.СчетФактураВыданный.МодульМенеджера(3782,2)}: Ожидается ключевое слово 'КонецФункции' ('EndFunction')
12 DDD2005NEW
 
01.04.12
14:35
(10) заменил как в(6)
13 DDD2005NEW
 
01.04.12
14:36
ОбластьМакета.Параметры.ФакторингНомер = ДокументыОснования[0].ДокументОснование.ДоговорФакторинга.Номер;
       ОбластьМакета.Параметры.ФакторингДата = ДокументыОснования[0].ДокументОснование.ДоговорФакторинга.Дата, "ДФ='дд ММММ гггг'")+" г.";
       ПроставитьПрочеркиВПустыеПоля(ОбластьМакета);
       ТабДокумент.Вывести(ОбластьМакета);
14 ale-sarin
 
01.04.12
14:36
(11) А формат где?
15 mirosh
 
01.04.12
14:37
(11) ОбластьМакета.Параметры.ФакторингДата = Формат(ДокументыОснования[0].ДокументОснование.ДоговорФакторинга.Дата, "ДФ='дд ММММ гггг'")+" г.";
16 DDD2005NEW
 
01.04.12
14:37
(14) формат чего? прости с 1с 8.2 только разбрераюсь
17 ale-sarin
 
01.04.12
14:38
(6) Если уж внешняя,то для универсальности в "ДанныеДляПечати" писать. Думаю.
18 DDD2005NEW
 
01.04.12
14:39
{Документ.СчетФактураВыданный.МодульМенеджера(3639,44)}: Переменная не определена (ДокументыОснования)
       ОбластьМакета.Параметры.ФакторингНомер = <<?>>ДокументыОснования[0].ДокументОснование.ДоговорФакторинга.Номер; (Проверка: Толстый клиент (обычное приложение))
{Документ.СчетФактураВыданный.МодульМенеджера(3641,51)}: Переменная не определена (ДокументыОснования)
        ОбластьМакета.Параметры.ФакторингДата = Формат(<<?>>ДокументыОснования[0].ДокументОснование.ДоговорФакторинга.Дата, "ДФ='дд ММММ гггг'")+" г."; (Проверка: Толстый клиент (обычное приложение))
19 mirosh
 
01.04.12
14:39
(17) на данном этапе лучше не надо...)
20 DDD2005NEW
 
01.04.12
14:39
нет делаю внутреннию
21 mirosh
 
01.04.12
14:40
(18) внешняя печатная форма?
22 ale-sarin
 
01.04.12
14:40
(19) ))) Согласен.
23 DDD2005NEW
 
01.04.12
14:40
нет внутренняя
24 DDD2005NEW
 
01.04.12
14:41
СчетФактураВыданная. модуль менеджера здесь создаю
25 ale-sarin
 
01.04.12
14:41
(18) Ну е-мое, только здесь есть все ответы. А голову включить, и глаза открыть? НЕ обижайся.
26 DDD2005NEW
 
01.04.12
14:41
подскажи как во внешней попровить?
27 ale-sarin
 
01.04.12
14:42
25+ Первое предложение вопросительное.
28 mirosh
 
01.04.12
14:43
(26) для внешней

ОбластьМакета.Параметры.ФакторингНомер = СсылкаНаОбъект.ДокументыОснования[0].ДокументОснование.ДоговорФакторинга.Номер;

(24) поподробней плиз, в каком модуле и какого объекта
29 Турист
 
01.04.12
14:43
DDD2005NEW да включи ты отладчик ))

ты сейчас как китайцы в анекдоте которые ломали сервер пентагона, когда он на 1127652436 попытке согласился что его пароль "маодзедун" ))
30 DDD2005NEW
 
01.04.12
14:43
скажи тогда
где ошибка
Переменная не определена (ДокументыОснования)
как получить данные?
31 DDD2005NEW
 
01.04.12
14:44
а что его включать если при проверке выдает ошибку Переменная не определена (ДокументыОснования)
32 Турист
 
01.04.12
14:45
стаж 6 лет, а вопросы как у студента
33 mirosh
 
01.04.12
14:46
(30) это значит, что ты пишешь не в модуле объекта документа СчетФактураВыданный
34 DDD2005NEW
 
01.04.12
14:46
(28) есть документ РеализацияТоваровИУслуг в ней есть поле ДоговорФакторинга СправочникСсылка.ДоговорыКонтрагентов
35 DDD2005NEW
 
01.04.12
14:47
(24) СчетФактураВыданная. модуль менеджера здесь создаю
36 mirosh
 
01.04.12
14:47
(34) нашел!
пиши так:
ОбластьМакета.Параметры.ФакторингНомер = Ссылка.ДокументыОснования[0].ДокументОснование.ДоговорФакторинга.Номер;
37 DDD2005NEW
 
01.04.12
14:47
(33) СчетФактураВыданная. модуль менеджера здесь создаю (24)
38 mirosh
 
01.04.12
14:48
ОбластьМакета.Параметры.ФакторингНомер = Ссылка.ДокументыОснования[0].ДокументОснование.ДоговорФакторинга.Номер;
       ОбластьМакета.Параметры.ФакторингДата = Формат(Ссылка.ДокументыОснования[0].ДокументОснование.ДоговорФакторинга.Дата, "ДФ='дд ММММ гггг'")+" г.";
       ПроставитьПрочеркиВПустыеПоля(ОбластьМакета);
       ТабДокумент.Вывести(ОбластьМакета);
39 ale-sarin
 
01.04.12
14:50
ТемоСоздатель, Э-э-эх, как же ты работаешь?
Одни вопросы. Много тем. Осуждаю.
40 DDD2005NEW
 
01.04.12
14:50
(38) вроде пошле теперь другая ошибка
           Если Ссылка.ВидСчетаФактуры = Перечисления.НДСВидСчетаФактуры.НаАванс
               Или Ссылка.ВидСчетаФактуры = Перечисления.НДСВидСчетаФактуры.НаСуммовуюРазницу
               Или Ссылка.ВидСчетаФактуры = Перечисления.НДСВидСчетаФактуры.НалоговыйАгент
               Тогда
               Если Ссылка.ВидСчетаФактуры = Перечисления.НДСВидСчетаФактуры.НалоговыйАгент Тогда
                   ОбластьМакета.Параметры.Стоимость  = Строчка.СуммаБезНДС;
               Иначе
                   // В счетах-фактурах на аванс колонка 5 не выводится
                   ОбластьМакета.Параметры.Стоимость  = 0;
               КонецЕсли;
               ОбластьМакета.Параметры.Количество = 0;
               ОбластьМакета.Параметры.Цена       = 0;
           Иначе
               ОбластьМакета.Параметры.Стоимость  = Строчка.СуммаБезНДС;
               ОбластьМакета.Параметры.Цена   = Строчка.Цена;
   
{Документ.СчетФактураВыданный.МодульМенеджера(3709)}: Поле объекта не обнаружено (НДСВидСчетаФактуры)
           Если Ссылка.ВидСчетаФактуры = Перечисления.НДСВидСчетаФактуры.НаАванс
41 DDD2005NEW
 
01.04.12
14:50
(39) я учусь и работаю
42 DDD2005NEW
 
01.04.12
14:53
чем 1С заменило НДСВидСчетаФактуры?
43 mirosh
 
01.04.12
14:56
(40)(42) ты наверно скопировал из другой конфигурации код, да?
44 DDD2005NEW
 
01.04.12
14:57
нет УПП стояла 1.3.12 обновил до 1.3.24.2
45 DDD2005NEW
 
01.04.12
14:58
Андрей, посдкажи а как внешнию попровить чтобы тоже для факторинга выташить данные?
46 DDD2005NEW
 
01.04.12
14:59
Процедура ПечатьСчетаФактуры1137(Ссылка, ТабДокумент)

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

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

   СтрокаПоДокументу = "";
   Для каждого ПараметрыДокументаОплаты Из ДанныеДляПечати.ТаблицаДатОплат Цикл
       
       Если НЕ ЗначениеЗаполнено(ПараметрыДокументаОплаты.НомерПлатежноРасчетногоДокумента)
           И НЕ ЗначениеЗаполнено(ПараметрыДокументаОплаты.ДатаПлатежноРасчетногоДокумента) Тогда
           Продолжить;
       КонецЕсли;
       СтрокаПоДокументу = СтрокаПоДокументу
           + ?(ПустаяСтрока(СтрокаПоДокументу), "К платежно-расчетному документу № ",", ")
           + ПараметрыДокументаОплаты.НомерПлатежноРасчетногоДокумента
           + " от " + Формат(ПараметрыДокументаОплаты.ДатаПлатежноРасчетногоДокумента, "ДФ=dd.MM.yyyy") + " г.";
       
   КонецЦикла;
   Если ПустаяСтрока(СтрокаПоДокументу) Тогда
       Если СсылкаНаОбъект.ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАванс Тогда
           СтрокаПоДокументу = "К платежно-расчетному документу № -- от --";
       Иначе
           СтрокаПоДокументу = "К платежно-расчетному документу №    от";
       КонецЕсли;
   КонецЕсли;
   ОбластьМакета.Параметры.ПоДокументу = СтрокаПоДокументу;
   
   ОбластьМакета.Параметры.ПредставлениеПокупателя = "Покупатель: "
       + ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ПолноеНаименование,");
   ОбластьМакета.Параметры.АдресПокупателя = "Адрес: "
       + ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ЮридическийАдрес,");
   КПП = ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "КПП,", Ложь);
   Если ЗначениеЗаполнено(КПП) Тогда
       КПП = "/" + КПП;
   КонецЕсли;
   ОбластьМакета.Параметры.ИННПокупателя = "ИНН/КПП покупателя: "
       + ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ИНН,", Ложь) + КПП;
   
   ОбластьМакета.Параметры.Валюта = "Валюта: наименование, код "
       + ?(ЗначениеЗаполнено(ДанныеДляПечати.Валюта),
       ДанныеДляПечати.Валюта.НаименованиеПолное + ", " + ДанныеДляПечати.Валюта.Код,
       "");        
           
   ТабДокумент.Вывести(ОбластьМакета);
   
   // Выводим заголовок таблицы
   
   ОбластьМакетаЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаблицы");
   ОбластьМакетаЗаголовокТаблицы.Параметры.Заполнить(ДанныеДляПечати);
   ТабДокумент.Вывести(ОбластьМакетаЗаголовокТаблицы);
   
   // Дополнительная подготовка данных для вывода в табличную часть
   
   ВыборкаСтрокТовары = ДанныеДляПечати.ТабличнаяЧасть;
   ВыборкаСтрокТовары.Колонки.Добавить("СуммаБезНДС");
   ВыборкаСтрокТовары.Колонки.Добавить("СуммаСНДС");

   Для Каждого Строчка Из ВыборкаСтрокТовары Цикл
       
       Строчка.СуммаСНДС = Строчка.Сумма + ?(Строчка.СуммаВключаетНДС, 0, Строчка.СуммаНДС);

       Если Строчка.СтавкаНДС = Перечисления.СтавкиНДС.НДС20_120
           ИЛИ Строчка.СтавкаНДС = Перечисления.СтавкиНДС.НДС18_118
           ИЛИ Строчка.СтавкаНДС = Перечисления.СтавкиНДС.НДС10_110 Тогда
           Строчка.СуммаБезНДС = Строчка.СуммаСНДС;
           Если НЕ Строчка.СуммаВключаетНДС Тогда
               Строчка.Цена = 0;
           КонецЕсли;
       Иначе
           Строчка.СуммаБезНДС = Строчка.СуммаСНДС - Строчка.СуммаНДС;
           Если Строчка.СуммаВключаетНДС Тогда
               Строчка.Цена = 0;
           КонецЕсли;
       КонецЕсли;
       Если НЕ ЗначениеЗаполнено(Строчка.ЕдиницаИзмерения) Тогда
           Строчка.Количество = 0;
           Строчка.Цена = 0;
       ИначеЕсли Строчка.Количество = 0 Тогда
           Строчка.Цена = 0;
       ИначеЕсли Строчка.Цена = 0 Тогда
           Строчка.Цена = Окр(Строчка.СуммаБезНДС / Строчка.Количество, 2);
       КонецЕсли;
       
   КонецЦикла;
       
   ВыборкаСтрокТовары.Свернуть("Товар, ТоварНаименование, ЕдиницаИзмерения, ЕдиницаИзмеренияКод, Цена, СтавкаНДС,
       |НомерГТД, ПредставлениеГТД, СтранаПроисхождения, СтранаПроисхожденияКод, ПредставлениеСтраны",
       "Количество, Сумма, СуммаНДС, СуммаСНДС, СуммаБезНДС");
   
   // Выводим строки таблицы
   
   ОбластьМакета       = Макет.ПолучитьОбласть("Строка");
   ОбластьМакетаПодвал = Макет.ПолучитьОбласть("Подвал");
   ОбластьМакетаИтого  = Макет.ПолучитьОбласть("Итого");
   
   НомерСтроки     = 0;
   КоличествоСтрок = ВыборкаСтрокТовары.Количество();

   ИтогоСтоимость = 0;
   ИтогоСуммаНДС  = 0;
   ИтогоВсего     = 0;
       
   СчетФактураБезНДС = Истина;
       
   Для Каждого Строчка Из ВыборкаСтрокТовары Цикл
       
       НомерСтроки = НомерСтроки + 1;
       
       ОбластьМакета.Параметры.Заполнить(Строчка);

       Если НЕ ЗначениеЗаполнено(Строчка.ТоварНаименование) Тогда
           ОбластьМакета.Параметры.ТоварНаименование = Строчка.Товар;
       КонецЕсли;
       ОбластьМакета.Параметры.ТоварНаименование = СокрЛП(ОбластьМакета.Параметры.ТоварНаименование);
       
       Если ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаРеализацию Тогда
           ОбластьМакета.Параметры.Стоимость = Строчка.СуммаБезНДС;
           ОбластьМакета.Параметры.Цена        = Строчка.Цена;
       Иначе
           Если ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НалоговыйАгент Тогда
               ОбластьМакета.Параметры.Стоимость = Строчка.СуммаБезНДС;
           Иначе
               ОбластьМакета.Параметры.Стоимость = 0;
           КонецЕсли;
           ОбластьМакета.Параметры.Количество = 0;
           ОбластьМакета.Параметры.Цена       = 0;
       КонецЕсли;    
       
       ОбластьМакета.Параметры.Всего     = Строчка.СуммаСНДС;
       ОбластьМакета.Параметры.СтавкаНДС = Строчка.СтавкаНДС;
       
       Если Строчка.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС Тогда
           ОбластьМакета.Параметры.СтавкаНДС = "без НДС";
           ОбластьМакета.Параметры.СуммаНДС  = "без НДС";
       Иначе
           СчетФактураБезНДС = Ложь;
       КонецЕсли;
       
       Если ВидСчетаФактуры <> Перечисления.ВидСчетаФактурыВыставленного.НаАванс Тогда
           ОбластьМакета.Параметры.Акциз = "без акциза";
       КонецЕсли;    
       
       Если Строка(Строчка.ПредставлениеСтраны) = "Россия"
           ИЛИ Строка(Строчка.ПредставлениеСтраны) = "Российская Федерация"
           ИЛИ Строчка.СтранаПроисхождения = Справочники.КлассификаторСтранМира.РОССИЯ Тогда            
           ОбластьМакета.Параметры.ПредставлениеСтраны    = "";
           ОбластьМакета.Параметры.СтранаПроисхожденияКод = "";
       КонецЕсли;
   
       // Проставляем прочерки в незаполненные графы в соответствии с Постановлением
       Если ВидСчетаФактуры = Перечисления.ВидСчетаФактурыВыставленного.НаАванс Тогда
           
           ОбластьМакета.Параметры.ЕдиницаИзмерения    = "--";
           ОбластьМакета.Параметры.ЕдиницаИзмеренияКод = "--";
           
           ОбластьМакета.Параметры.Количество = "--";
           ОбластьМакета.Параметры.Цена       = "--";
           ОбластьМакета.Параметры.Стоимость  = "--";
           ОбластьМакета.Параметры.Акциз      = "--";
           
           ОбластьМакета.Параметры.СтранаПроисхожденияКод = "--";
           ОбластьМакета.Параметры.ПредставлениеСтраны    = "--";
           ОбластьМакета.Параметры.ПредставлениеГТД       = "--";
           
       Иначе
           
           Если НЕ ЗначениеЗаполнено(ОбластьМакета.Параметры.ЕдиницаИзмерения) Тогда
               ОбластьМакета.Параметры.ЕдиницаИзмерения    = "--";
               ОбластьМакета.Параметры.ЕдиницаИзмеренияКод = "--";
           КонецЕсли;
           Если НЕ ЗначениеЗаполнено(ОбластьМакета.Параметры.ЕдиницаИзмеренияКод) Тогда
               ОбластьМакета.Параметры.ЕдиницаИзмеренияКод = "--";
           КонецЕсли;
           Если НЕ ЗначениеЗаполнено(ОбластьМакета.Параметры.Количество) Тогда
               ОбластьМакета.Параметры.Количество = "--";
           КонецЕсли;
           Если НЕ ЗначениеЗаполнено(ОбластьМакета.Параметры.Цена) Тогда
               ОбластьМакета.Параметры.Цена = "--";
           КонецЕсли;
           
       КонецЕсли;
       
       // Проверим возможность вывода табличного документа
       СтрокаСПодвалом = Новый Массив;
       СтрокаСПодвалом.Добавить(ОбластьМакета);
       Если НомерСтроки = КоличествоСтрок Тогда
           // Если последняя строка, то должен поместится итог и подвал
           СтрокаСПодвалом.Добавить(ОбластьМакетаИтого);
           СтрокаСПодвалом.Добавить(ОбластьМакетаПодвал);
       КонецЕсли;
                       
       Если НЕ ФормированиеПечатныхФорм.ПроверитьВыводТабличногоДокумента(ТабДокумент, СтрокаСПодвалом) Тогда
           
           Если КоличествоСтрок > 0 Тогда
               // Вывод разделителя и заголовка таблицы на новой странице
               ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
               ТабДокумент.Вывести(ОбластьМакетаЗаголовокТаблицы);
           КонецЕсли;
           
       КонецЕсли;
       
       ТабДокумент.Вывести(ОбластьМакета);

       ИтогоСтоимость = ИтогоСтоимость + Строчка.СуммаБезНДС;
       ИтогоСуммаНДС  = ИтогоСуммаНДС + Строчка.СуммаНДС;
       ИтогоВсего     = ИтогоВсего    + Строчка.СуммаСНДС;
           
   КонецЦикла;

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

КонецПроцедуры
47 DDD2005NEW
 
01.04.12
15:00
Также добавляю
ОбластьМакета.Параметры.ФакторингНомер = Ссылка.ДокументыОснования[0].ДокументОснование.ДоговорФакторинга.Номер;
и табличной части прописывю?
48 DDD2005NEW
 
01.04.12
15:00
или сдесь СсылкаНаОбъект должны быть во внешней?
49 mirosh
 
01.04.12
15:02
(45)(46)(47)(48) судя по твоему коду, тоже просто Ссылка впереди ставишь и ок.

а по поводу (40) - что тут сказать, у тебя код расчитан на другой документ СчетФактура, в котором нет ни налогового агента, ни "на суммовую разницу". Как с УПП тут, я не знаю.
50 mirosh
 
01.04.12
15:03
(49) вернее код у тебя рассчитан на счет-фактуру, где есть реквизит НДСВидСчетаФактуры, а в твоей СчетФактуре его нет
51 DDD2005NEW
 
01.04.12
15:03
Спасибо большое Андрей, и всем кто помогал
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн