Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
21 Ноя 2017, 01:46
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Доверенность В УПД  (Прочитано 858 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн SALANDER000

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-08-08
  • Сайт: 
  • Профессия: Программист 8.1
Добрый день уважаемые форум чане. Есть проблема. Признаюсь сразу программист я ещё тот :(! Поэтому и обращаюсь к вам на форум. Есть Задача Добавить доверенность в УПД. А точнее чтобы в поле основание платежа выводился не только договор, но и ещё и номер доверенности, да ещё и на кого она оформлена и разумеется с датой.
Альфа авто 5.1. платформа 8.3.
Если кто - то хоть может намякнуть где копать и как.
В ТОРГ 12 Например она подставляется.
Есть примеры как это реализовано в ТОРГ 12 но не приложу ума как это воткнуть в УПД Подскажите как это можно реализовать...


Оффлайн SALANDER000

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-08-08
  • Сайт: 
  • Профессия: Программист 8.1
Вот код самого УПД куда это все надо запилить. Только это встроенный модуль для встроенной УПД. Если кто знает где находится кот, от внешней печатной формы (УПД) я бы тоже хотел узнать.? Так что пожайлуста. Кто что либо знает с радостью жду.

Функция дкПечатьУПД(ДокументОбъект, ТабДокумент) Экспорт

Макет = ПолучитьОбщийМакет("УПД");

ТабДокумент.ТолькоПросмотр = Истина;
ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;

//формат вывода суммы и количества
ФорматВыводаСуммы = обПраво("ФорматВыводаСуммы", ДокументОбъект.Права,,ДокументОбъект);
ФорматВыводаКоличества = обПраво("ФорматВыводаКоличества", ДокументОбъект.Права,,ДокументОбъект);
//
ТипДок = ТипЗнч(ДокументОбъект);

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

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

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

Иначе
НоваяСтрока.ЕдиницаИзмеренияКод = "--";
НоваяСтрока.ЕдиницаИзмерения = "--";
Если ДокументОбъект.ТипЦенРабот.ЦенаВключаетНДС = Истина Тогда
Стоимость = ТекСтрока.Сумма - ТекСтрока.СуммаНДС;
Попытка
НоваяСтрока.Стоимость = Формат(Стоимость - ТекСтрока.СуммаСкидки - ТекСтрока.СуммаСкидкиСтроки, ФорматВыводаСуммы);
Исключение
НоваяСтрока.Стоимость = Формат(Стоимость, ФорматВыводаСуммы);
КонецПопытки;
Иначе
НоваяСтрока.Стоимость = Формат(ЦенаБезНДС * ТекСтрока.Количество, ФорматВыводаСуммы);
КонецЕсли;

КонецЕсли;
НоваяСтрока.Количество = Формат(ТекСтрока.Количество, ФорматВыводаКоличества);
НоваяСтрока.Акциз = "без акциза";
НоваяСтрока.СтавкаНДС = Формат(ТекСтрока.СтавкаНДС, ФорматВыводаСуммы);
НоваяСтрока.СуммаНДС = Формат(ТекСтрока.СуммаНДС, ФорматВыводаСуммы);
НоваяСтрока.Всего = Формат(ТекСтрока.СуммаВсего, ФорматВыводаСуммы);

Попытка
Если НЕ обЗначениеНеЗаполнено(ТекСтрока.ГТД) Тогда
НоваяСтрока.ПредставлениеГТД = спПолучитьНаименование(ТекСтрока.ГТД);
НоваяСтрока.ПредставлениеСтраны = ТекСтрока.ГТД.Страна.Наименование;
НоваяСтрока.СтранаПроисхожденияКод = ТекСтрока.ГТД.Страна.Код;
Иначе
НоваяСтрока.ПредставлениеГТД = "--";
НоваяСтрока.ПредставлениеСтраны = "--";
НоваяСтрока.СтранаПроисхожденияКод = "--";
КонецЕсли;
Исключение
НоваяСтрока.ПредставлениеГТД = "--";
НоваяСтрока.ПредставлениеСтраны = "--";
НоваяСтрока.СтранаПроисхожденияКод = "--";
КонецПопытки;

Ном = Ном + 1;
КонецЦикла;
ИначеЕсли ИмяТабличнойЧасти.Имя = "Автомобили" Тогда
Для Каждого ТекСтрока Из ДокументОбъект[ИмяТабличнойЧасти.Имя] Цикл
НоваяСтрока = ТаблицаТоваров.Добавить();
НоваяСтрока.НомерСтроки = Ном;
НоваяСтрока.ТоварНаименование = спПолучитьНаименование(ТекСтрока.Автомобиль);
НоваяСтрока.ЕдиницаИзмеренияКод = "796";
НоваяСтрока.ЕдиницаИзмерения = "шт";
ТекСтрокаКоличество=1;
Попытка
ТекСтрокаКоличество=ТекСтрока.Количество;
Исключение
КонецПопытки;
СуммаБезНДС = ТекСтрока.СуммаВсего - ТекСтрока.СуммаНДС;
ЦенаБезНДС = СуммаБезНДС/ТекСтрокаКоличество;
НоваяСтрока.Количество = Формат(ТекСтрокаКоличество, ФорматВыводаКоличества);
НоваяСтрока.Цена = Формат(ЦенаБезНДС, ФорматВыводаСуммы);
Если ДокументОбъект.ТипЦен.ЦенаВключаетНДС = Истина Тогда
Стоимость = ТекСтрока.Сумма - ТекСтрока.СуммаНДС;
Попытка
НоваяСтрока.Стоимость = Формат(Стоимость - ТекСтрока.СуммаСкидки, ФорматВыводаСуммы);
Исключение
НоваяСтрока.Стоимость = Формат(Стоимость, ФорматВыводаСуммы);
КонецПопытки;
Иначе
НоваяСтрока.Стоимость = Формат(ЦенаБезНДС * ТекСтрокаКоличество, ФорматВыводаСуммы);
КонецЕсли;

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

НоваяСтрока.Акциз = "--";
НоваяСтрока.СтавкаНДС = Формат(ТекСтрока.СтавкаНДС, ФорматВыводаСуммы);
НоваяСтрока.СуммаНДС = Формат(ТекСтрока.СуммаНДС, ФорматВыводаСуммы);
НоваяСтрока.Всего = Формат(ТекСтрока.СуммаВсего, ФорматВыводаСуммы);
НоваяСтрока.ПредставлениеГТД = "--";
НоваяСтрока.ПредставлениеСтраны = "--";
НоваяСтрока.СтранаПроисхожденияКод = "--";
ЕстьТовары=Истина;
Ном = Ном + 1;
КонецЦикла;
КонецЕсли;

КонецЦикла;

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

ОбластьМакетаШапка.Параметры.АдресПоставщика = ?(ЗначениеЗаполнено(ОбластьМакетаШапка.Параметры.АдресПоставщика), ОбластьМакетаШапка.Параметры.АдресПоставщика, "--");
ОбластьМакетаШапка.Параметры.ИННПоставщика = ?(ЗначениеЗаполнено(ДокументОбъект.Организация.ИНН),ДокументОбъект.Организация.ИНН, "--") +"/"+?(ЗначениеЗаполнено(ДокументОбъект.Организация.КПП), ДокументОбъект.Организация.КПП, "--");

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

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


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

ДокументФактура = Документы.СчетФактураВыданный.НайтиПоРеквизиту("ДокументОснование", ДокументОбъект.Ссылка);

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

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

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

ОбластьМакетаШапка.Параметры.Валюта = ?(НЕ обЗначениеНеЗаполнено(ДокументОбъект.ВалютаДокумента.НаименованиеПолное), ДокументОбъект.ВалютаДокумента.НаименованиеПолное, ДокументОбъект.ВалютаДокумента.Наименование) + ", " + ДокументОбъект.ВалютаДокумента.Код;

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


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

//заполним параметры шапки таблицы для следующего листа
ОбластьЗаголовокТаблицы.Параметры.НомерСтраницы  = "Лист " + НомерСтраницы;
Если ОбластьМакетаШапка.Параметры.Номер <> "--" И ОбластьМакетаШапка.Параметры.Дата <> "--" Тогда
ОбластьЗаголовокТаблицы.Параметры.ТекстЗаголовка = "Универсальный передаточный документ №"+ОбластьМакетаШапка.Параметры.Номер+" от "+ОбластьМакетаШапка.Параметры.Дата;
Иначе
ОбластьЗаголовокТаблицы.Параметры.ТекстЗаголовка = "Универсальный передаточный документ №"+ОбластьМакетаШапка.Параметры.НомерИсправления+" от "+ОбластьМакетаШапка.Параметры.ДатаИсправления;
КонецЕсли;

Ном = 0;

ОбластьМакетаСтрока = Макет.ПолучитьОбласть("Строка");
ОбластьМакетаИтог = Макет.ПолучитьОбласть("Итого");
ОбластьМакетаПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьМакетаПодвалНакладной = Макет.ПолучитьОбласть("ПодвалНакладной");

//доп. области
мсвДопОбластиПодвала = Новый Массив;
мсвДопОбластиПодвала.Добавить(ОбластьМакетаИтог);
мсвДопОбластиПодвала.Добавить(ОбластьМакетаПодвал);
мсвДопОбластиПодвала.Добавить(ОбластьМакетаПодвалНакладной);

Для Каждого ТекСтрока Из ТаблицаТоваров Цикл
Ном = Ном + 1;

ОбластьМакетаСтрока.Параметры.Заполнить(ТекСтрока);

//выводим строку, делая проверку попадания на лист
НомерСтраницы = дкВывестиГоризонтальнуюОбласть(ТабДокумент, ОбластьМакетаСтрока, ОбластьЗаголовокТаблицы, , НомерСтраницы, , ДокументОбъект, ?(Ном=КоличествоСтрок,мсвДопОбластиПодвала,Неопределено));

//инициализация итогов по странице
Если НомерСтраницы <> НомерСтраницыПред Тогда
НомерСтраницыПред = НомерСтраницы;
ОбластьЗаголовокТаблицы.Параметры.НомерСтраницы = "Лист " + НомерСтраницы;
КонецЕсли;

КонецЦикла;

ОбластьМакетаИтог.Параметры.ИтогоСтоимость = Формат(ТаблицаТоваров.Итог("Стоимость"), ФорматВыводаСуммы);
ОбластьМакетаИтог.Параметры.ИтогоСуммаНДС = Формат(ТаблицаТоваров.Итог("СуммаНДС"), ФорматВыводаСуммы);
ОбластьМакетаИтог.Параметры.ИтогоВсего = Формат(ТаблицаТоваров.Итог("Всего"), ФорматВыводаСуммы);

//выводим область Итого
ТабДокумент.Вывести(ОбластьМакетаИтог);

//выводим подвал печатной формы

// Заполним информацию о руководителях организации
Руководитель = дкОтветственноеЛицо(ДокументОбъект,Перечисления.ВидыОбъектовСведений.Руководитель);
ОбластьМакетаПодвал.Параметры.ФИОРуководителя = Руководитель.РуководительПредставление;

ГлавныйБухгалтер = дкОтветственноеЛицо(ДокументОбъект,Перечисления.ВидыОбъектовСведений.ГлавныйБухгалтер);
ОбластьМакетаПодвал.Параметры.ФИОГлавногоБухгалтера = ГлавныйБухгалтер.ГлавныйБухгалтерПредставление;

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

ОбластьМакетаПодвал.Параметры.КоличествоЛистов ="Документ
|составлен на
|"+ ТабДокумент.КоличествоСтраниц() +" листах";

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

ОбластьМакетаПодвалНакладной.Параметры.Основание = ?(ЗначениеЗаполнено(ДокументОбъект.ДоговорВзаиморасчетов), ДокументОбъект.ДоговорВзаиморасчетов, "--");

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

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

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

ОбластьМакетаПодвалНакладной.Параметры.ПредставлениеКонтрагента = ОбластьМакетаШапка.Параметры.ПредставлениеПокупателя+", ИНН/КПП "+ ОбластьМакетаШапка.Параметры.ИННПокупателя;
ТабДокумент.Вывести(ОбластьМакетаПодвалНакладной);

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

КонецФункции
[color=blue][/color]

Оффлайн SALANDER000

  • *
  • Сообщений: 3
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-08-08
  • Сайт: 
  • Профессия: Программист 8.1
Вот код самого УПД куда это все надо запилить. Только это встроенный модуль для встроенной УПД. Если кто знает где находится кот, от внешней печатной формы (УПД) я бы тоже хотел узнать.? Так что пожайлуста. Кто что либо знает с радостью жду.

Функция дкПечатьУПД(ДокументОбъект, ТабДокумент) Экспорт

Макет = ПолучитьОбщийМакет("УПД");

ТабДокумент.ТолькоПросмотр = Истина;
ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;

//формат вывода суммы и количества
ФорматВыводаСуммы = обПраво("ФорматВыводаСуммы", ДокументОбъект.Права,,ДокументОбъект);
ФорматВыводаКоличества = обПраво("ФорматВыводаКоличества", ДокументОбъект.Права,,ДокументОбъект);
//
ТипДок = ТипЗнч(ДокументОбъект);

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

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

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

Иначе
НоваяСтрока.ЕдиницаИзмеренияКод = "--";
НоваяСтрока.ЕдиницаИзмерения = "--";
Если ДокументОбъект.ТипЦенРабот.ЦенаВключаетНДС = Истина Тогда
Стоимость = ТекСтрока.Сумма - ТекСтрока.СуммаНДС;
Попытка
НоваяСтрока.Стоимость = Формат(Стоимость - ТекСтрока.СуммаСкидки - ТекСтрока.СуммаСкидкиСтроки, ФорматВыводаСуммы);
Исключение
НоваяСтрока.Стоимость = Формат(Стоимость, ФорматВыводаСуммы);
КонецПопытки;
Иначе
НоваяСтрока.Стоимость = Формат(ЦенаБезНДС * ТекСтрока.Количество, ФорматВыводаСуммы);
КонецЕсли;

КонецЕсли;
НоваяСтрока.Количество = Формат(ТекСтрока.Количество, ФорматВыводаКоличества);
НоваяСтрока.Акциз = "без акциза";
НоваяСтрока.СтавкаНДС = Формат(ТекСтрока.СтавкаНДС, ФорматВыводаСуммы);
НоваяСтрока.СуммаНДС = Формат(ТекСтрока.СуммаНДС, ФорматВыводаСуммы);
НоваяСтрока.Всего = Формат(ТекСтрока.СуммаВсего, ФорматВыводаСуммы);

Попытка
Если НЕ обЗначениеНеЗаполнено(ТекСтрока.ГТД) Тогда
НоваяСтрока.ПредставлениеГТД = спПолучитьНаименование(ТекСтрока.ГТД);
НоваяСтрока.ПредставлениеСтраны = ТекСтрока.ГТД.Страна.Наименование;
НоваяСтрока.СтранаПроисхожденияКод = ТекСтрока.ГТД.Страна.Код;
Иначе
НоваяСтрока.ПредставлениеГТД = "--";
НоваяСтрока.ПредставлениеСтраны = "--";
НоваяСтрока.СтранаПроисхожденияКод = "--";
КонецЕсли;
Исключение
НоваяСтрока.ПредставлениеГТД = "--";
НоваяСтрока.ПредставлениеСтраны = "--";
НоваяСтрока.СтранаПроисхожденияКод = "--";
КонецПопытки;

Ном = Ном + 1;
КонецЦикла;
ИначеЕсли ИмяТабличнойЧасти.Имя = "Автомобили" Тогда
Для Каждого ТекСтрока Из ДокументОбъект[ИмяТабличнойЧасти.Имя] Цикл
НоваяСтрока = ТаблицаТоваров.Добавить();
НоваяСтрока.НомерСтроки = Ном;
НоваяСтрока.ТоварНаименование = спПолучитьНаименование(ТекСтрока.Автомобиль);
НоваяСтрока.ЕдиницаИзмеренияКод = "796";
НоваяСтрока.ЕдиницаИзмерения = "шт";
ТекСтрокаКоличество=1;
Попытка
ТекСтрокаКоличество=ТекСтрока.Количество;
Исключение
КонецПопытки;
СуммаБезНДС = ТекСтрока.СуммаВсего - ТекСтрока.СуммаНДС;
ЦенаБезНДС = СуммаБезНДС/ТекСтрокаКоличество;
НоваяСтрока.Количество = Формат(ТекСтрокаКоличество, ФорматВыводаКоличества);
НоваяСтрока.Цена = Формат(ЦенаБезНДС, ФорматВыводаСуммы);
Если ДокументОбъект.ТипЦен.ЦенаВключаетНДС = Истина Тогда
Стоимость = ТекСтрока.Сумма - ТекСтрока.СуммаНДС;
Попытка
НоваяСтрока.Стоимость = Формат(Стоимость - ТекСтрока.СуммаСкидки, ФорматВыводаСуммы);
Исключение
НоваяСтрока.Стоимость = Формат(Стоимость, ФорматВыводаСуммы);
КонецПопытки;
Иначе
НоваяСтрока.Стоимость = Формат(ЦенаБезНДС * ТекСтрокаКоличество, ФорматВыводаСуммы);
КонецЕсли;

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

НоваяСтрока.Акциз = "--";
НоваяСтрока.СтавкаНДС = Формат(ТекСтрока.СтавкаНДС, ФорматВыводаСуммы);
НоваяСтрока.СуммаНДС = Формат(ТекСтрока.СуммаНДС, ФорматВыводаСуммы);
НоваяСтрока.Всего = Формат(ТекСтрока.СуммаВсего, ФорматВыводаСуммы);
НоваяСтрока.ПредставлениеГТД = "--";
НоваяСтрока.ПредставлениеСтраны = "--";
НоваяСтрока.СтранаПроисхожденияКод = "--";
ЕстьТовары=Истина;
Ном = Ном + 1;
КонецЦикла;
КонецЕсли;

КонецЦикла;

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

ОбластьМакетаШапка.Параметры.АдресПоставщика = ?(ЗначениеЗаполнено(ОбластьМакетаШапка.Параметры.АдресПоставщика), ОбластьМакетаШапка.Параметры.АдресПоставщика, "--");
ОбластьМакетаШапка.Параметры.ИННПоставщика = ?(ЗначениеЗаполнено(ДокументОбъект.Организация.ИНН),ДокументОбъект.Организация.ИНН, "--") +"/"+?(ЗначениеЗаполнено(ДокументОбъект.Организация.КПП), ДокументОбъект.Организация.КПП, "--");

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

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


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

ДокументФактура = Документы.СчетФактураВыданный.НайтиПоРеквизиту("ДокументОснование", ДокументОбъект.Ссылка);

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

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

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

ОбластьМакетаШапка.Параметры.Валюта = ?(НЕ обЗначениеНеЗаполнено(ДокументОбъект.ВалютаДокумента.НаименованиеПолное), ДокументОбъект.ВалютаДокумента.НаименованиеПолное, ДокументОбъект.ВалютаДокумента.Наименование) + ", " + ДокументОбъект.ВалютаДокумента.Код;

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


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

//заполним параметры шапки таблицы для следующего листа
ОбластьЗаголовокТаблицы.Параметры.НомерСтраницы  = "Лист " + НомерСтраницы;
Если ОбластьМакетаШапка.Параметры.Номер <> "--" И ОбластьМакетаШапка.Параметры.Дата <> "--" Тогда
ОбластьЗаголовокТаблицы.Параметры.ТекстЗаголовка = "Универсальный передаточный документ №"+ОбластьМакетаШапка.Параметры.Номер+" от "+ОбластьМакетаШапка.Параметры.Дата;
Иначе
ОбластьЗаголовокТаблицы.Параметры.ТекстЗаголовка = "Универсальный передаточный документ №"+ОбластьМакетаШапка.Параметры.НомерИсправления+" от "+ОбластьМакетаШапка.Параметры.ДатаИсправления;
КонецЕсли;

Ном = 0;

ОбластьМакетаСтрока = Макет.ПолучитьОбласть("Строка");
ОбластьМакетаИтог = Макет.ПолучитьОбласть("Итого");
ОбластьМакетаПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьМакетаПодвалНакладной = Макет.ПолучитьОбласть("ПодвалНакладной");

//доп. области
мсвДопОбластиПодвала = Новый Массив;
мсвДопОбластиПодвала.Добавить(ОбластьМакетаИтог);
мсвДопОбластиПодвала.Добавить(ОбластьМакетаПодвал);
мсвДопОбластиПодвала.Добавить(ОбластьМакетаПодвалНакладной);

Для Каждого ТекСтрока Из ТаблицаТоваров Цикл
Ном = Ном + 1;

ОбластьМакетаСтрока.Параметры.Заполнить(ТекСтрока);

//выводим строку, делая проверку попадания на лист
НомерСтраницы = дкВывестиГоризонтальнуюОбласть(ТабДокумент, ОбластьМакетаСтрока, ОбластьЗаголовокТаблицы, , НомерСтраницы, , ДокументОбъект, ?(Ном=КоличествоСтрок,мсвДопОбластиПодвала,Неопределено));

//инициализация итогов по странице
Если НомерСтраницы <> НомерСтраницыПред Тогда
НомерСтраницыПред = НомерСтраницы;
ОбластьЗаголовокТаблицы.Параметры.НомерСтраницы = "Лист " + НомерСтраницы;
КонецЕсли;

КонецЦикла;

ОбластьМакетаИтог.Параметры.ИтогоСтоимость = Формат(ТаблицаТоваров.Итог("Стоимость"), ФорматВыводаСуммы);
ОбластьМакетаИтог.Параметры.ИтогоСуммаНДС = Формат(ТаблицаТоваров.Итог("СуммаНДС"), ФорматВыводаСуммы);
ОбластьМакетаИтог.Параметры.ИтогоВсего = Формат(ТаблицаТоваров.Итог("Всего"), ФорматВыводаСуммы);

//выводим область Итого
ТабДокумент.Вывести(ОбластьМакетаИтог);

//выводим подвал печатной формы

// Заполним информацию о руководителях организации
Руководитель = дкОтветственноеЛицо(ДокументОбъект,Перечисления.ВидыОбъектовСведений.Руководитель);
ОбластьМакетаПодвал.Параметры.ФИОРуководителя = Руководитель.РуководительПредставление;

ГлавныйБухгалтер = дкОтветственноеЛицо(ДокументОбъект,Перечисления.ВидыОбъектовСведений.ГлавныйБухгалтер);
ОбластьМакетаПодвал.Параметры.ФИОГлавногоБухгалтера = ГлавныйБухгалтер.ГлавныйБухгалтерПредставление;

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

ОбластьМакетаПодвал.Параметры.КоличествоЛистов ="Документ
|составлен на
|"+ ТабДокумент.КоличествоСтраниц() +" листах";

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

ОбластьМакетаПодвалНакладной.Параметры.Основание = ?(ЗначениеЗаполнено(ДокументОбъект.ДоговорВзаиморасчетов), ДокументОбъект.ДоговорВзаиморасчетов, "--");

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

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

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

ОбластьМакетаПодвалНакладной.Параметры.ПредставлениеКонтрагента = ОбластьМакетаШапка.Параметры.ПредставлениеПокупателя+", ИНН/КПП "+ ОбластьМакетаШапка.Параметры.ИННПокупателя;
ТабДокумент.Вывести(ОбластьМакетаПодвалНакладной);

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

КонецФункции
[color=blue][/color]
Все сделал самостоятельно спасибо всем большое за просмотры и бездействие, думаю таким макаром я куда быстрей научусь и буду забирать у вас заказы.


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
144 Сообщений
MuI_I_Ika MuI_I_Ika
99 Сообщений
oleg-x
69 Сообщений
alex0402
62 Сообщений
ilyay ilyay
53 Сообщений
Dmitry Qwe Dmitry Qwe
32 Сообщений
Sy4a
22 Сообщений
Dima Dddd Dima Dddd
21 Сообщений
BuhRust
19 Сообщений
Kironten
12 Сообщений

* Кто онлайн

  • Точка Гостей: 287
  • Точка Скрытых: 0
  • Точка Пользователей: 0

Нет пользователей онлайн.

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal