Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

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

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

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 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
81 Сообщений
wise wise
63 Сообщений
MuI_I_Ika MuI_I_Ika
49 Сообщений
Dethmontt Dethmontt
49 Сообщений
alex0402
43 Сообщений
Сергей Федоров Сергей Федоров
32 Сообщений
ilyay ilyay
27 Сообщений
ilnur75
25 Сообщений
Дмитрий Медведков
19 Сообщений
DmitriyF DmitriyF
17 Сообщений

* Кто онлайн

  • Точка Гостей: 349
  • Точка Скрытых: 0
  • Точка Пользователей: 6
  • Точка Сейчас на форуме:

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal