|
Как получить данные в печатную форму сч. фактр из реализации? | ☑ | ||
---|---|---|---|---|
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
|
Спасибо большое Андрей, и всем кто помогал
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |