![]() |
|
ВПФ Счет-фактуры, "Печатная форма недоступна" | ☑ | ||
---|---|---|---|---|
0
DenYuliya
26.02.18
✎
00:53
|
Коллеги, подскажите, плиз, в чем ошибка? Уже все облазила, не понимаю((.
Ошибок в синтаксисе нет, ВПФ к счет-фактуре, УТ 11. весь код в модуле обработки, макет перетащен с типового "ПФ_MXL_СчетФактура1137". Прикрепила обработку во "Внешние обработки" для док Поступление товаров и услуг, в списке печ.форм есть, при попытке распечатать - "Печатная форма недоступна", других ошибок нет. "Остановка по ошибке", естественно, ничего не дала((( (уф, как же проще в 8.2 все было...) |
|||
1
DenYuliya
26.02.18
✎
00:57
|
Листинг, фактически типовой (убрано все для печати остальных макетов, кроме к "СФ1137":
#Область Регисстрация // Стандартные Функции и Методы для регистрации внешней печатной формы + Функция СведенияОВнешнейОбработке() Экспорт ПараметрыРегистрации = Новый Структура; МассивНазначений = Новый Массив; Наименование = УказатьНаименованиеВнешнейПечатнойФормы(); МассивНазначений.Добавить(ПолучитьМетаданныеДокументаПечати()); ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); ПараметрыРегистрации.Вставить("Назначение", МассивНазначений); ПараметрыРегистрации.Вставить("Наименование", Наименование); ПараметрыРегистрации.Вставить("Версия", "1.1"); ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь); ПараметрыРегистрации.Вставить("Информация", УказатьНаименованиеВнешнейПечатнойФормы()); ТаблицаКоманд = ПолучитьТаблицуКоманд(); ДобавитьКоманду(ТаблицаКоманд, Наименование, УказатьНаименованиеКомандыПечати(), "ВызовСерверногоМетода", Истина, "ПечатьMXL"); ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд); Возврат ПараметрыРегистрации; КонецФункции Функция ПолучитьТаблицуКоманд() Команды = Новый ТаблицаЗначений; Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")); Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево")); Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка")); Возврат Команды; КонецФункции Функция УказатьНаименованиеВнешнейПечатнойФормы() Наименование = ЭтотОбъект.Метаданные().Представление(); Возврат Наименование; КонецФункции Функция УказатьНаименованиеКомандыПечати() Наименование = ЭтотОбъект.Метаданные().ПолноеИмя(); Возврат Наименование; КонецФункции Функция ПолучитьМетаданныеДокументаПечати() ПолноеИмя = Документ.Метаданные().ПолноеИмя(); Возврат ПолноеИмя; КонецФункции Функция ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "") НоваяКоманда = ТаблицаКоманд.Добавить(); НоваяКоманда. Представление = Представление; НоваяКоманда. Идентификатор= Идентификатор; НоваяКоманда. Использование= Использование; НоваяКоманда. ПоказыватьОповещение= ПоказыватьОповещение; НоваяКоманда. Модификатор= Модификатор; КонецФункции #КонецОбласти Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт КомплектыПечати = Неопределено; СтруктураТипов = ОбщегоНазначенияУТ.СоответствиеМассивовПоТипамОбъектов(МассивОбъектов); УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию( КоллекцияПечатныхФорм, УказатьНаименованиеКомандыПечати(), УказатьНаименованиеВнешнейПечатнойФормы(), //ПечатьФормы(МассивОбъектов)); СформироватьПечатнуюФормуСчетФактура(СтруктураТипов, ОбъектыПечати, КомплектыПечати = Неопределено)); КонецПроцедуры Функция СформироватьПечатнуюФормуСчетФактура(СтруктураТипов, ОбъектыПечати, ПараметрыПечати, КомплектыПечати = Неопределено) Экспорт УстановитьПривилегированныйРежим(Истина); ТабличныйДокумент = Новый ТабличныйДокумент; ТабличныйДокумент.АвтоМасштаб = Истина; ТабличныйДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт; ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_СчетФактура"; МакетОбработки = ПолучитьМакет("ПФ_MXL_СчетФактура1137"); СтруктураТиповНаПечать = Новый Структура; МассивСчетФактураВыданный = Новый Массив; МассивСчетФактураПолученный = Новый Массив; ОснованияНаРеализацию = Новый Массив; ОснованияСчетФактураПолученный = Новый Массив; ДокументыБезВыданногоСчетаФактуры = Новый Массив; ДокументыБезПолученногоСчетаФактуры = Новый Массив; Для Каждого СтруктураОбъектов Из СтруктураТипов Цикл ИмяОбъекта = Сред(СтруктураОбъектов.Ключ, 10); ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ОснованияНаРеализацию, СтруктураОбъектов.Значение); //Если ПараметрыПечати.Свойство("ДополнитьПолученнымиСчетамиФактуры") // И ПараметрыПечати.ДополнитьПолученнымиСчетамиФактуры Тогда // // ОбщегоНазначенияКлиентСервер.ДополнитьМассив(ОснованияСчетФактураПолученный, СтруктураОбъектов.Значение); // //КонецЕсли; КонецЦикла; Если ОснованияСчетФактураПолученный.Количество() > 0 Тогда РезультатАнализа = Документы.СчетФактураПолученный.ПолучитьСчетаФактурыНаПечать( ОснованияСчетФактураПолученный, ПараметрыПечати.ПечатьВВалюте); ПараметрыПечати.Вставить("ПФ_MXL_СчетФактура1137", РезультатАнализа.СчетаФактурыНаПечать); СообщитьОбОшибкахПечатиСчетФактурыПолученного(РезультатАнализа.ТаблицаОшибок) КонецЕсли; НомерТипаДокумента = 0; Для Каждого СтруктураОбъектов Из СтруктураТиповНаПечать Цикл НомерТипаДокумента = НомерТипаДокумента + 1; Если НомерТипаДокумента > 1 Тогда ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; МенеджерОбъекта = Документы[СтруктураОбъектов.Ключ]; ДанныеДляПечати = МенеджерОбъекта.ПолучитьДанныеДляПечатнойФормыСчетФактура(ПараметрыПечати, СтруктураОбъектов.Значение); ОпцииПечатиСчетаФактуры = Новый Структура; ОпцииПечатиСчетаФактуры.Вставить("ПечатьВВалюте", ПараметрыПечати.ПечатьВВалюте); ЗаполнитьТабличныйДокументСчетФактура( ТабличныйДокумент, ДанныеДляПечати, ОбъектыПечати, ОпцииПечатиСчетаФактуры, КомплектыПечати); КонецЦикла; Возврат ТабличныйДокумент; КонецФункции Процедура ЗаполнитьРеквизитыШапкиСчетФактура(ДанныеПечати, ДанныеОснований, СведенияОПоставщике, ДанныеКонтрагентов, ТабличныйДокумент, ОпцииПечатиСчетаФактуры) СведенияОПоставщике = ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеПечати.Организация, ДанныеПечати.Дата); СведенияОГрузоотправителе = СведенияОГрузоотправителе(ДанныеПечати); ДействующиеПостановления = ОпцииПечатиСчетаФактуры.ДействующиеПостановления; Макет = ОпцииПечатиСчетаФактуры.Макет; ОбластьМакета = Макет.ПолучитьОбласть("Шапка"); ШтрихкодированиеПечатныхФорм.ВывестиШтрихкодВТабличныйДокумент(ТабличныйДокумент, Макет, ОбластьМакета, ДанныеПечати.Ссылка); ОбластьМакета.Параметры.Заполнить(ДанныеПечати); НомераДаты = Новый Структура("Номер, Дата, НомерИсправления, ДатаИсправления, РеквизитыОснований"); НомераДаты.Номер = НомерСчетаФактурыНаПечать(ДанныеПечати.Номер, ДанныеПечати.ИндексПодразделения); НомераДаты.Дата = Формат(ДанныеПечати.Дата, "ДЛФ=ДД"); НомераДаты.НомерИсправления = ?(ДанныеПечати.Исправление, ДанныеПечати.НомерИсправления, "--"); НомераДаты.ДатаИсправления = ?(ДанныеПечати.Исправление, Формат(ДанныеПечати.ДатаИсправления, "ДЛФ=ДД"), "--"); ОбластьМакета.Параметры.Заполнить(НомераДаты); СтруктураПараметров = Новый Структура; // Выводим данные о поставщике. ДополнительноеПредставление = ""; Если ДействующиеПостановления.Постановление914 И СведенияОПоставщике.ОфициальноеНаименование <> СведенияОПоставщике.ПолноеНаименование Тогда ДополнительноеПредставление = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru='(%1)'"), ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ПолноеНаименование")); КонецЕсли; ПредставлениеПоставщика = СокрЛП(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru='Продавец: %1 %2'"), СведенияОПоставщике.ОфициальноеНаименование, ДополнительноеПредставление)); АдресПоставщика = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru='Адрес: %1'"), ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ЮридическийАдрес")); ИННПоставщика = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru='ИНН/КПП продавца: %1%2'"), ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПоставщике, "ИНН", Ложь), ?(Не ПустаяСтрока(ДанныеПечати.КПППоставщика), "/" + ДанныеПечати.КПППоставщика, "")); СтруктураПараметров.Вставить("ПредставлениеПоставщика", ПредставлениеПоставщика); СтруктураПараметров.Вставить("АдресПоставщика", АдресПоставщика); СтруктураПараметров.Вставить("ИННПоставщика", ИННПоставщика); Если НЕ ДанныеПечати.КорректировочныйСчетФактура Тогда // Выводим данные грузоотправителя. ТекстГрузоотправителя = ""; Если ДанныеПечати.ТолькоУслуги ИЛИ (ДействующиеПостановления.Постановление1137 И ОпцииПечатиСчетаФактуры.СчетФактураНаАванс) ИЛИ ОпцииПечатиСчетаФактуры.СчетФактураНалоговыйАгент Тогда ТекстГрузоотправителя = "--"; ИначеЕсли ДанныеПечати.Организация = ДанныеПечати.Грузоотправитель Тогда ТекстГрузоотправителя = НСтр("ru='он же'"); Иначе ТекстГрузоотправителя = ФормированиеПечатныхФорм.ОписаниеОрганизации( СведенияОГрузоотправителе, "ПолноеНаименование,ФактическийАдрес"); КонецЕсли; ПредставлениеГрузоотправителя = СокрЛП(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru='Грузоотправитель и его адрес: %1'"), ТекстГрузоотправителя)); СтруктураПараметров.Вставить("ПредставлениеГрузоотправителя", ПредставлениеГрузоотправителя); СтрокаПоДокументу = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru='К платежно-расчетному документу № %1'"), ?(ПустаяСтрока(ДанныеПечати.СтрокаПоДокументу), НСтр("ru='-- от --'"), ДанныеПечати.СтрокаПоДокументу)); СтруктураПараметров.Вставить("ПоДокументу", СтрокаПоДокументу); КонецЕсли; ЕстьГрузополучатель = Не ДанныеПечати.КорректировочныйСчетФактура И НЕ (ДанныеПечати.ТолькоУслуги ИЛИ (ДействующиеПостановления.Постановление1137 И ОпцииПечатиСчетаФактуры.СчетФактураНаАванс) ИЛИ ОпцииПечатиСчетаФактуры.СчетФактураНалоговыйАгент); ПредставлениеПокупателя = ""; ПредставлениеАдресаПокупателя = ""; ПредставлениеИННКПППокупателя = ""; ПредставлениеГрузополучателя = ""; ТаблицаКонтрагентов = ТаблицаКонтрагентовСчетаФактуры(ДанныеПечати, ДанныеКонтрагентов); Для Каждого СтрокаТаблицы Из ТаблицаКонтрагентов Цикл СведенияОПокупателе = СтрокаТаблицы.СведенияОПокупателе; ПредставлениеПокупателя = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru='%1; %2'"), ПредставлениеПокупателя, ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ПолноеНаименование", Ложь)); ПредставлениеАдресаПокупателя = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru='%1; %2'"), ПредставлениеАдресаПокупателя, ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ЮридическийАдрес", Ложь)); ПредставлениеИННПокупателя = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru='%1; %2%3'"), ПредставлениеИННПокупателя, ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОПокупателе, "ИНН", Ложь), ?(Не ПустаяСтрока(СтрокаТаблицы.КПП), "/" + СтрокаТаблицы.КПП, "")); Если ЕстьГрузополучатель Тогда СведенияОГрузополучателе = СтрокаТаблицы.СведенияОГрузополучателе; ПредставлениеГрузополучателя = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru='%1; %2'"), ПредставлениеГрузополучателя, ФормированиеПечатныхФорм.ОписаниеОрганизации(СведенияОГрузополучателе, "ПолноеНаименование,ФактическийАдрес", Ложь)); КонецЕсли; КонецЦикла; ПредставлениеПокупателя = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru='Покупатель: %1'"), Сред(ПредставлениеПокупателя, 3)); ПредставлениеАдресаПокупателя = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru='Адрес: %1'"), Сред(ПредставлениеАдресаПокупателя, 3)); ПредставлениеИННПокупателя = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru='ИНН/КПП покупателя: %1'"), Сред(ПредставлениеИННПокупателя, 3)); ПредставлениеГрузополучателя = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru='Грузополучатель и его адрес: %1'"), ?(ЕстьГрузополучатель, Сред(ПредставлениеГрузополучателя, 3), "--")); СтруктураПараметров.Вставить("ПредставлениеПокупателя", ПредставлениеПокупателя); СтруктураПараметров.Вставить("АдресПокупателя", ПредставлениеАдресаПокупателя); СтруктураПараметров.Вставить("ИННПокупателя", ПредставлениеИННПокупателя); Если Не ДанныеПечати.КорректировочныйСчетФактура Тогда СтруктураПараметров.Вставить("ПредставлениеГрузополучателя", ПредставлениеГрузополучателя); КонецЕсли; Если ДействующиеПостановления.Постановление1137 И ЗначениеЗаполнено(ДанныеПечати.Валюта) И ОпцииПечатиСчетаФактуры.ПечатьВВалюте Тогда СтруктураПараметров.Вставить("Валюта", СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru='Валюта: наименование, код %1, %2'"), ДанныеПечати.ВалютаНаименованиеПолное, ДанныеПечати.ВалютаКод)); ИначеЕсли ДействующиеПостановления.Постановление1137 Тогда СтруктураПараметров.Вставить("Валюта", НСтр("ru='Валюта: наименование, код Российский рубль, 643'")); КонецЕсли; СтруктураПараметровИдентификаторГосКонтракта = Новый Структура("ИдентификаторГосКонтракта"); ЗаполнитьЗначенияСвойств(СтруктураПараметровИдентификаторГосКонтракта, ДанныеПечати); ПредставлениеИдентификаторГосКонтракта = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru='Идентификатор государственного контракта, договора (соглашения): %1'"), СокрЛП(СтруктураПараметровИдентификаторГосКонтракта.ИдентификаторГосКонтракта)); СтруктураПараметров.Вставить("ИдентификаторГосКонтракта", ПредставлениеИдентификаторГосКонтракта); //Если ОпцииПечатиСчетаФактуры.СчетФактураНалоговыйАгент Тогда // // для печати подвала берем сведения об организации из сведений о покупателе // СведенияОПоставщике = СведенияОПокупателе; //КонецЕсли; // ОбластьМакета.Параметры.Заполнить(СтруктураПараметров); ТабличныйДокумент.Вывести(ОбластьМакета); КонецПроцедуры Процедура ЗаполнитьРеквизитыПодвалаСчетФактура(ОбластьПодвала, ДанныеПечати, СведенияОбОрганизации) СтруктураПараметров = Новый Структура; Если СведенияОбОрганизации.ЮрФизЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо Тогда СтруктураПараметров.Вставить("ФИОРуководителя", ДанныеПечати.Руководитель); СтруктураПараметров.Вставить("ФИОГлавногоБухгалтера", ДанныеПечати.ГлавныйБухгалтер); Иначе СтруктураПараметров.Вставить("ФИОПБОЮЛ", ДанныеПечати.Руководитель); СтруктураПараметров.Вставить("Свидетельство", СведенияОбОрганизации.Свидетельство); КонецЕсли; ОбластьПодвала.Параметры.Заполнить(СтруктураПараметров); КонецПроцедуры Процедура ЗаполнитьТабличныйДокументСчетФактура(ТабличныйДокумент, ДанныеДляПечати, ОбъектыПечати, ОпцииПечатиСчетаФактуры, КомплектыПечати = Неопределено) Экспорт Перем ВыборкаОснований, ВыборкаКонтрагентов; ВалютаРегламентированногоУчета = Константы.ВалютаРегламентированногоУчета.Получить(); Макет1137 = УправлениеПечатью.МакетПечатнойФормы("Обработка.ПечатьОбщихФорм.ПФ_MXL_СчетФактура1137"); ДанныеПечати = ДанныеДляПечати.РезультатПоШапке.Выбрать(); ВыборкаПоДокументам = ДанныеДляПечати.РезультатПоТабличнойЧасти.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Если ДанныеДляПечати.Свойство("РезультатПоКонтрагентам") тогда ВыборкаКонтрагентов = ДанныеДляПечати.РезультатПоКонтрагентам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); КонецЕсли; ДействующиеПостановления = ОпцииПечатиСчетаФактуры.ДействующиеПостановления; ВыводитьКодыТНВЭД = ВыводитьКодыТНВЭД(ДанныеПечати, ДействующиеПостановления.Постановление981); Если ДанныеДляПечати.Свойство("РезультатПоИсходнымДанным") Тогда ВыборкаОснований = ДанныеДляПечати.РезультатПоИсходнымДанным.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); КонецЕсли; ЕстьПостановление1137 = ЛОЖЬ; ПервыйДокумент = Истина; Пока ДанныеПечати.Следующий() Цикл // Для печати комплектов Если КомплектыПечати <> Неопределено И КомплектыПечати.Колонки.Найти("Ссылка") <> Неопределено Тогда КомплектПечатиПоСсылке = Неопределено; СтруктураПоиска = Новый Структура("Ссылка", ДанныеПечати.Ссылка); ВыборкаОснований.НайтиСледующий(СтруктураПоиска); СтрокиОснований = ВыборкаОснований.Выбрать(); Если СтрокиОснований.Следующий() Тогда КомплектПечатиПоСсылке = КомплектыПечати.Найти(СтрокиОснований.ДокументОснование, "Ссылка"); КонецЕсли; Если КомплектПечатиПоСсылке = Неопределено Тогда КомплектПечатиПоСсылке = КомплектыПечати[0]; КонецЕсли; Если КомплектПечатиПоСсылке.Экземпляров = 0 Тогда Продолжить КонецЕсли; КонецЕсли; Если ЗначениеЗаполнено(ДанныеПечати.ВалютаСчетаФактуры) И ОпцииПечатиСчетаФактуры.ПечатьВВалюте И ДанныеПечати.ВалютаСчетаФактуры = ВалютаРегламентированногоУчета Тогда Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Для %1 указана валюта: рубли. Не требуется печатать счет-фактуру в иностранной валюте.'"), ДанныеПечати.Ссылка); ОбщегоНазначенияКлиентСервер.СообщитьПользователю( Текст, ДанныеПечати.Ссылка); ИначеЕсли ЗначениеЗаполнено(ДанныеПечати.ВалютаСчетаФактуры) И НЕ ОпцииПечатиСчетаФактуры.ПечатьВВалюте И ДанныеПечати.ВалютаСчетаФактуры <> ВалютаРегламентированногоУчета Тогда Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку( НСтр("ru = 'Для %1 указана иностранная валюта. Не требуется печатать счет-фактуру в рублях.'"), ДанныеПечати.Ссылка); ОбщегоНазначенияКлиентСервер.СообщитьПользователю( Текст, ДанныеПечати.Ссылка); Иначе ДействующиеПостановления = Новый Структура; ДействующиеПостановления.Вставить("Постановление1137", Истина); ОпцииПечатиСчетаФактуры.Вставить("ДействующиеПостановления", ДействующиеПостановления); Макет = Макет1137; ЕстьПостановление1137 = Истина; КонецЕсли; ОпцииПечатиСчетаФактуры.Вставить("Макет", Макет); Если Не ПервыйДокумент Тогда ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(); КонецЕсли; ПервыйДокумент = Ложь; НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1; // Выводим общие реквизиты шапки СведенияОбОрганизации = Новый Структура; ЗаполнитьРеквизитыШапкиСчетФактура( ДанныеПечати, ВыборкаОснований, СведенияОбОрганизации, ВыборкаКонтрагентов, ТабличныйДокумент, ОпцииПечатиСчетаФактуры); // Выводим заголовок таблицы ЗаголовокТаблицы = Макет.ПолучитьОбласть("ЗаголовокТаблицы"); ТабличныйДокумент.Вывести(ЗаголовокТаблицы); НомерСтраницы = 1; // Инициализация итогов в документе ИтоговыеСуммы = СтруктураИтоговыеСуммы(); // Создаем массив для проверки вывода МассивВыводимыхОбластей = Новый Массив; // Выводим многострочную часть документа ОбластьМакетаСтандарт = Макет.ПолучитьОбласть("Строка"); ОбластьИтого = Макет.ПолучитьОбласть("Итого"); ОбластьПодвала = Макет.ПолучитьОбласть("Подвал"); СтруктураПоиска = Новый Структура("Ссылка", ДанныеПечати.Ссылка); ВыборкаПоДокументам.НайтиСледующий(СтруктураПоиска); ИспользоватьНаборы = Ложь; Если ОбщегоНазначенияУТКлиентСервер.ЕстьРеквизитОбъекта(ВыборкаПоДокументам, "ЭтоНабор") Тогда ИспользоватьНаборы = Истина; ОбластьМакетаНабор = Макет.ПолучитьОбласть("СтрокаНабор"); ОбластьМакетаКомплектующие = Макет.ПолучитьОбласть("СтрокаКомплектующие"); КонецЕсли; ЗаполнитьРеквизитыПодвалаСчетФактура(ОбластьПодвала, ДанныеПечати, СведенияОбОрганизации); //ВыводитьКодыТНВЭД = ВыводитьКодыТНВЭД(ДанныеПечати, ДействующиеПостановления.Постановление981); СтрокаТовары = ВыборкаПоДокументам.Выбрать(); КоличествоСтрок = СтрокаТовары.Количество(); ТолькоСтавкаБезНДС = Истина; НомерСтроки = 0; Пока СтрокаТовары.Следующий() Цикл ОбластьМакета = ОбластьМакетаСтандарт; Если НаборыСервер.ВыводитьТолькоЗаголовок(СтрокаТовары, ИспользоватьНаборы) Тогда ЗаполнитьРеквизитыСтрокиТовара(СтрокаТовары, ОбластьМакета, Неопределено, ДанныеПечати.КорректировочныйСчетФактура, ВыводитьКодыТНВЭД); Иначе НомерСтроки = НомерСтроки + 1; ЗаполнитьРеквизитыСтрокиТовара(СтрокаТовары, ОбластьМакета, НомерСтроки, ДанныеПечати.КорректировочныйСчетФактура, ВыводитьКодыТНВЭД); КонецЕсли; СтруктураПараметров = Новый Структура; Если СтрокаТовары.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС Тогда СтруктураПараметров.Вставить("СтавкаНДС", НСтр("ru='без НДС'")); СтруктураПараметров.Вставить("СуммаНДС", НСтр("ru='без НДС'")); ИначеЕсли СтрокаТовары.СтавкаНДС = Перечисления.СтавкиНДС.НДС0 Тогда СтруктураПараметров.Вставить("СуммаНДС", 0); ТолькоСтавкаБезНДС = Ложь; Иначе ТолькоСтавкаБезНДС = Ложь; КонецЕсли; Если Не НаборыСервер.ВыводитьТолькоЗаголовок(СтрокаТовары, ИспользоватьНаборы) Тогда СтруктураПараметров.Вставить("Акциз", НСтр("ru='без акциза'")); КонецЕсли; МассивВыводимыхОбластей.Очистить(); МассивВыводимыхОбластей.Добавить(ОбластьМакета); Если НомерСтроки = КоличествоСтрок Тогда МассивВыводимыхОбластей.Добавить(ОбластьИтого); МассивВыводимыхОбластей.Добавить(ОбластьПодвала); КонецЕсли; Если НЕ ТабличныйДокумент.ПроверитьВывод(МассивВыводимыхОбластей) Тогда НомерСтраницы = НомерСтраницы + 1; ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц(); ОбластьНумерацияЛистов = Макет.ПолучитьОбласть("НумерацияЛистов"); ОбластьНумерацияЛистов.Параметры.Номер = НомерСчетаФактурыНаПечать(ДанныеПечати.Номер, ДанныеПечати.ИндексПодразделения); ОбластьНумерацияЛистов.Параметры.Дата = Формат(ДанныеПечати.Дата, "ДЛФ=ДД; ДП=--"); ОбластьНумерацияЛистов.Параметры.НомерЛиста = НомерСтраницы; ТабличныйДокумент.Вывести(ОбластьНумерацияЛистов); ТабличныйДокумент.Вывести(ЗаголовокТаблицы); КонецЕсли; ОбластьМакета.Параметры.Заполнить(СтруктураПараметров); ТабличныйДокумент.Вывести(ОбластьМакета); Если Не НаборыСервер.ИспользоватьОбластьКомплектующие(СтрокаТовары, ИспользоватьНаборы) Тогда РассчитатьИтоговыеСуммы(ИтоговыеСуммы, СтрокаТовары); КонецЕсли; КонецЦикла; // Выводим итоги по д |
|||
2
DenYuliya
26.02.18
✎
01:05
|
Проще так...
https://yadi.sk/d/ft6H4dY43SmJBt |
|||
3
ildary
26.02.18
✎
01:24
|
На всякий случай - Вы бы поточнее писали - УТ11.Сколько? Потому что 11.1 и 11.4 отличаются внутре значительно.
|
|||
4
DenYuliya
26.02.18
✎
01:27
|
(3) Управление торговлей, редакция 11 (11.3.4.149)
|
|||
5
DenYuliya
26.02.18
✎
13:39
|
Что-то я думаю, может дело все-же не в коде, а в том, что Счет-фактуру 1137 можно печатать не из любого Поступления, типа права какие-нибудь? Я вроде по коду прошлась, ничего такого не нашла, но вдруг упустила что...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |