Показано с 1 по 1 из 1
Тема: ВПФ УПД с договором
-
09.02.2016, 14:05 #1Просто юзер
- Регистрация
- 04.09.2015
- Сообщений
- 39
- Сказал(а) спасибо
- 3
- Поблагодарили 0 раз(а) в 0 сообщениях
ВПФ УПД с договором
Необходимо добавить во внешнию печатную форму УПД из Реализации товаров и услуг выводился договор. Макет подправил.
Создал в ВПФ реквизит СсылкаНаОбъект с типом ДокументСсылка.Реализация� �оваровУслуг.
Добавил строку:
ПараметрыШапки.Вставить("Д� �говор", "Договор: " + СсылкаНаОбъект.Договор);
Печатная форма формируется, но договор не выводит.
И в Табло ввожу выражение значения нет. Но и тех реквизитов которые выводятся правильно тоже нет значения.
Скрытый текст
Функция Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
ТабДок = СформироватьПечатнуюФорму УПД(МассивОбъектов,Объекты Печати, Неопределено, );
УправлениеПечатью.Вывести� �абличныйДокументВКоллекц� �ю(КоллекцияПечатныхФорм, "УПДдляИП", "УПД для ИП", ТабДок);
Возврат ТабДок;
КонецФункции
Функция СформироватьПечатнуюФорму УПД(ОбъектП,ОбъектыПечати, ПараметрыПечати, КомплектыПечати = Неопределено) Экспорт
УстановитьПривилегированн ыйРежим(Истина);
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.АвтоМас� �таб = Истина;
ТабличныйДокумент.Ориента� �ияСтраницы = ОриентацияСтраницы.Ландша� �т;
ТабличныйДокумент.ИмяПара� �етровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_УПД_ДЛЯИП ";
НомерТипаДокумента = 0;
НомерТипаДокумента = НомерТипаДокумента + 1;
Если НомерТипаДокумента > 1 Тогда
ТабличныйДокумент.Вывести� �оризонтальныйРазделитель� �траниц();
КонецЕсли;
ДанныеДляПечати = Документы.РеализацияТовар� �вУслуг.ПолучитьДанныеДляП ечатнойФормыУПД(Параметры� �ечати, ОбъектП);
ЗаполнитьТабличныйДокумен тУПД(ТабличныйДокумент, ДанныеДляПечати, ОбъектыПечати, КомплектыПечати);
Возврат ТабличныйДокумент;
КонецФункции
Процедура ЗаполнитьРеквизитыШапкиУП Д(ДанныеПечати, СведенияОПоставщике, СведенияОПокупателе, Макет, ТабличныйДокумент)
СведенияОГрузоотправителе = СведенияОГрузоотправителе (ДанныеПечати);
СведенияОГрузополучателе = ФормированиеПечатныхФорм.� �веденияОЮрФизЛице(ДанныеП ечати.Грузополучатель,
ДанныеПечати.Дата);
ОбластьМакета = Макет.ПолучитьОбласть("Шап� �а");
ШтрихкодированиеПечатныхФ орм.ВывестиШтрихкодВТабли� �ныйДокумент(ТабличныйДоку мент, Макет, ОбластьМакета,
ДанныеПечати.Ссылка);
ОбластьМакета.Параметры.За полнить(ДанныеПечати);
ПараметрыШапки = Новый Структура;
ПараметрыШапки.Вставить("Н� �мер",
ПрефиксацияОбъектовКлиент Сервер.ПолучитьНомерНаПеч� �ть(ДанныеПечати.Номер, Ложь, Ложь));
Если Лев(ПараметрыШапки.Номер, 1) = "И" Тогда
ПараметрыШапки.Номер = Прав(ПараметрыШапки.Номер, СтрДлина(ПараметрыШапки.Но мер)-1);
КонецЕсли;
Если ЗначениеЗаполнено(ДанныеП� �чати.ИндексПодразделения) Тогда
ПараметрыШапки.Номер = ПараметрыШапки.Номер + "/" + ДанныеПечати.ИндексПодраз� �еления;
КонецЕсли;
ПараметрыШапки.Вставить("Д� �та", Формат(ДанныеПечати.Дата, "ДФ='дд ММММ гггг'")+ " г.");
ПараметрыШапки.Вставить("Н� �мерИсправления", ?(ДанныеПечати.Исправление, ДанныеПечати.НомерИсправл� �ния, "--"));
ПараметрыШапки.Вставить("Д� �таИсправления",
?(ДанныеПечати.Исправление, Формат(ДанныеПечати.ДатаИс правления, "ДФ='дд ММММ гггг'")+ " г.", "--"));
// Выводим данные о поставщике.
ПараметрыШапки.Вставить("П� �едставлениеПоставщика", "Продавец: " + СведенияОПоставщике.Офици� �льноеНаименование);
ПараметрыШапки.Вставить("А� �ресПоставщика", "Адрес: "
+ ФормированиеПечатныхФорм.� �писаниеОрганизации(Сведен ияОПоставщике, "ЮридическийАдрес"));
Если ДанныеПечати.ВыводитьКППГ� �узоотправителя Тогда
КПП = СведенияОГрузоотправителе .КПП;
Иначе
КПП = ФормированиеПечатныхФорм.� �писаниеОрганизации(Сведен ияОПоставщике, "КПП,", Ложь);
КонецЕсли;
ПараметрыШапки.Вставить("И� �НПоставщика", "ИНН/КПП продавца: "
+ ФормированиеПечатныхФорм.� �писаниеОрганизации(Сведен ияОПоставщике, "ИНН", Ложь)
+ ?(Не ПустаяСтрока(КПП), "/" + КПП, ""));
// Выводим данные грузоотправителя.
ПредставлениеГрузоотправи теля = "Грузоотправитель и его адрес: ";
Если ДанныеПечати.ТолькоУслуги ИЛИ ДанныеПечати.Грузоотправи� �ель = Неопределено Тогда
ПредставлениеГрузоотправи теля = ПредставлениеГрузоотправи теля + "--";
ИначеЕсли ДанныеПечати.Организация = ДанныеПечати.Грузоотправи� �ель Тогда
ПредставлениеГрузоотправи теля = ПредставлениеГрузоотправи теля + "он же";
Иначе
ПредставлениеГрузоотправи теля = ПредставлениеГрузоотправи теля
+ ФормированиеПечатныхФорм.� �писаниеОрганизации(Сведен ияОГрузоотправителе, "ПолноеНаименование,Фактич ескийАдрес");
КонецЕсли;
ПараметрыШапки.Вставить("П� �едставлениеГрузоотправит� �ля", ПредставлениеГрузоотправи теля);
// Выводим данные грузополучателя и покупателя.
ПредставлениеГрузополучат еля = "Грузополучатель и его адрес: ";
Если ДанныеПечати.ТолькоУслуги ИЛИ ДанныеПечати.Грузополучат� �ль = Неопределено Тогда
ПредставлениеГрузополучат еля = ПредставлениеГрузополучат еля + "--";
Иначе
ПредставлениеГрузополучат еля = ПредставлениеГрузополучат еля
+ ФормированиеПечатныхФорм.� �писаниеОрганизации(
СведенияОГрузополучателе,
"ПолноеНаименование,Фактич ескийАдрес",
Ложь);
КонецЕсли;
ПараметрыШапки.Вставить("П� �едставлениеГрузополучате� �я", ПредставлениеГрузополучат еля);
Если Не ПустаяСтрока(ДанныеПечати. СтрокаПоДокументу) Тогда
ПараметрыШапки.Вставить("П� �Документу", "К платежно-расчетному документу № " + ДанныеПечати.СтрокаПоДоку� �енту);
Иначе
ПараметрыШапки.Вставить("П� �Документу", "К платежно-расчетному документу № -- от --");
КонецЕсли;
ПараметрыШапки.Вставить("П� �едставлениеПокупателя", "Покупатель: "
+ ФормированиеПечатныхФорм.� �писаниеОрганизации(Сведен ияОПокупателе, "ПолноеНаименование", Ложь));
ПараметрыШапки.Вставить("А� �ресПокупателя", "Адрес: "
+ ФормированиеПечатныхФорм.� �писаниеОрганизации(Сведен ияОПокупателе, "ЮридическийАдрес", Ложь));
КПП = ФормированиеПечатныхФорм.� �писаниеОрганизации(Сведен ияОПокупателе, "КПП,", Ложь);
ПараметрыШапки.Вставить("И� �НПокупателя", "ИНН/КПП покупателя: "
+ ФормированиеПечатныхФорм.� �писаниеОрганизации(Сведен ияОПокупателе, "ИНН,", Ложь)
+ ?(Не ПустаяСтрока(КПП), "/" + КПП, ""));
ПараметрыШапки.Вставить("В� �люта", НСтр("ru='Валюта: наименование, код Российский рубль, 643'"));
ПараметрыШапки.Вставить("Д� �говор", "Договор: " + СсылкаНаОбъект.Договор);
ОбластьМакета.Параметры.За полнить(ПараметрыШапки);
ТабличныйДокумент.Вывести( ОбластьМакета);
КонецПроцедуры
Процедура ЗаполнитьРеквизитыПодвала УПД(ОбластьПодвала, ДанныеПечати, СведенияОбОрганизации, СведенияОКонтрагенте)
ОбластьПодвала.Параметры.З аполнить(ДанныеПечати);
СтруктураПараметров = Новый Структура;
Если СведенияОбОрганизации.ЮрФ� �зЛицо = Перечисления.ЮрФизЛицо.ЮрЛ ицо Тогда
СтруктураПараметров.Встав� �ть("ФИОРуководителя", ДанныеПечати.Руководитель) ;
СтруктураПараметров.Встав� �ть("ФИОГлавногоБухгалтера" , ДанныеПечати.ГлавныйБухга� �тер);
Иначе
СтруктураПараметров.Встав� �ть("ФИОПБОЮЛ", ДанныеПечати.Руководитель) ;
СтруктураПараметров.Встав� �ть("Свидетельство", СведенияОбОрганизации.Сви� �етельство);
КонецЕсли;
СтруктураПараметров.Встав� �ть("ФИОКладовщика", ФизическиеЛицаУТ.ФамилияИ� �ициалыФизЛица(ДанныеПечат и.Кладовщик));
СтруктураПараметров.Встав� �ть("ДолжностьКладовщика", ДанныеПечати.ДолжностьКла� �овщика);
ПолнаяДатаДокумента = Формат(ДанныеПечати.Дата, "ДФ=""дд ММММ гггг """"года""""""");
ДлинаСтроки = СтрДлина(ПолнаяДатаДокуме� �та);
ПервыйРазделитель = Найти(ПолнаяДатаДокумента, " ");
ВторойРазделитель = Найти(Прав(ПолнаяДатаДокум ента, ДлинаСтроки - ПервыйРазделитель), " ") + ПервыйРазделитель;
СтруктураПараметров.Встав� �ть("ДатаДокумента",
"""" + Лев(ПолнаяДатаДокумента, ПервыйРазделитель -1 ) + """ "
+ Сред(ПолнаяДатаДокумента, ПервыйРазделитель + 1, ВторойРазделитель - ПервыйРазделитель - 1) + " "
+ Прав(ПолнаяДатаДокумента, ДлинаСтроки - ВторойРазделитель));
КПППоставщика = ФормированиеПечатныхФорм.� �писаниеОрганизации(Сведен ияОбОрганизации, "КПП,", Ложь);
ИННПоставщика = ФормированиеПечатныхФорм.� �писаниеОрганизации(Сведен ияОбОрганизации, "ИНН,", Ложь);
Если ЗначениеЗаполнено(КПППост� �вщика) Тогда
ПредставлениеОрганизации = СтроковыеФункцииКлиентСер вер.ПодставитьПараметрыВС� �року(НСтр("ru = '%1, ИНН/КПП %2/%3'"),
СведенияОбОрганизации.Офи� �иальноеНаименование,
ИННПоставщика,
КПППоставщика);
ИначеЕсли ЗначениеЗаполнено(ИННПост� �вщика) Тогда
ПредставлениеОрганизации = СтроковыеФункцииКлиентСер вер.ПодставитьПараметрыВС� �року(НСтр("ru = '%1, ИНН %2'"),
СведенияОбОрганизации.Офи� �иальноеНаименование,
ИННПоставщика);
Иначе
ПредставлениеОрганизации = СведенияОбОрганизации.Офи� �иальноеНаименование;
КонецЕсли;
СтруктураПараметров.Встав� �ть("ПредставлениеОрганиза� �ии", ПредставлениеОрганизации);
КПППокупателя = ФормированиеПечатныхФорм.� �писаниеОрганизации(Сведен ияОКонтрагенте, "КПП,", Ложь);
ИННПокупателя = ФормированиеПечатныхФорм.� �писаниеОрганизации(Сведен ияОКонтрагенте, "ИНН,", Ложь);
Если ЗначениеЗаполнено(КПППоку� �ателя) Тогда
ПредставлениеКонтрагента = СтроковыеФункцииКлиентСер вер.ПодставитьПараметрыВС� �року(НСтр("ru = '%1, ИНН/КПП %2/%3'"),
ФормированиеПечатныхФорм.� �писаниеОрганизации(Сведен ияОКонтрагенте, "ПолноеНаименование", Ложь),
ИННПокупателя,
КПППокупателя);
ИначеЕсли ЗначениеЗаполнено(ИННПоку� �ателя) Тогда
ПредставлениеКонтрагента = СтроковыеФункцииКлиентСер вер.ПодставитьПараметрыВС� �року(НСтр("ru = '%1, ИНН %2'"),
ФормированиеПечатныхФорм.� �писаниеОрганизации(Сведен ияОКонтрагенте, "ПолноеНаименование", Ложь),
ИННПокупателя);
Иначе
ПредставлениеКонтрагента = ФормированиеПечатныхФорм.� �писаниеОрганизации(Сведен ияОКонтрагенте, "ПолноеНаименование", Ложь);
КонецЕсли;
СтруктураПараметров.Встав� �ть("ПредставлениеКонтраге� �та", ПредставлениеКонтрагента);
Если ЗначениеЗаполнено(ДанныеП� �чати.ДоверенностьНомер) И ЗначениеЗаполнено(ДанныеП� �чати.ДоверенностьДата)
И (ЗначениеЗаполнено(ДанныеП ечати.ДоверенностьВыдана) Или ЗначениеЗаполнено(ДанныеП� �чати.ДоверенностьЛицо)) Тогда
ТекстОснования = СокрЛП(ДанныеПечати.Основа ние) + "; "
+ СтроковыеФункцииКлиентСер вер.ПодставитьПараметрыВС� �року(НСтр("ru = 'по доверенности №%1 от %2, выданной %3 %4'"),
ДанныеПечати.Доверенность� �омер,
Формат(ДанныеПечати.Довере нностьДата, "ДФ='дд ММММ гггг'"),
ДанныеПечати.Доверенность� �ыдана,
ДанныеПечати.Доверенность� �ицо);
СтруктураПараметров.Встав� �ть("Основание", ТекстОснования);
КонецЕсли;
ОбластьПодвала.Параметры.З аполнить(СтруктураПарамет� �ов);
КонецПроцедуры
Процедура ЗаполнитьТабличныйДокумен тУПД(ТабличныйДокумент, ДанныеДляПечати, ОбъектыПечати, КомплектыПечати = Неопределено) Экспорт
ВалютаРегламентированного Учета = Константы.ВалютаРегламент� �рованногоУчета.Получить();
Макет = ПолучитьМакет("УПД");
ДанныеПечати = ДанныеДляПечати.Результат� �оШапке.Выбрать();
ВыборкаПоДокументам = ДанныеДляПечати.Результат� �оТабличнойЧасти.Выбрать(О� �ходРезультатаЗапроса.ПоГр уппировкам);
ПервыйДокумент = Истина;
Пока ДанныеПечати.Следующий() Цикл
// Для печати комплектов
Если КомплектыПечати <> Неопределено И КомплектыПечати.Колонки.На йти("Ссылка") <> Неопределено Тогда
КомплектПечатиПоСсылке = КомплектыПечати.Найти(Данн ыеПечати.Ссылка,"Ссылка");
Если КомплектПечатиПоСсылке = Неопределено Тогда
КомплектПечатиПоСсылке = КомплектыПечати[0];
КонецЕсли;
Если КомплектПечатиПоСсылке.Эк� �емпляров = 0 Тогда
Продолжить
КонецЕсли;
КонецЕсли;
Если Не ЗначениеЗаполнено(ДанныеП� �чати.Номер) Тогда
Если ДанныеПечати.Номер = Неопределено Тогда
Текст = СтроковыеФункцииКлиентСер вер.ПодставитьПараметрыВС� �року(
НСтр("ru = 'Для документа %1 не введен %2'"),
ДанныеПечати.Ссылка,
ДанныеПечати.Представлени� �Документа);
ОбщегоНазначенияКлиентСер вер.СообщитьПользователю(
Текст,
ДанныеПечати.Ссылка,
,
"ТекстСчетФактура");
Иначе
Текст = СтроковыеФункцииКлиентСер вер.ПодставитьПараметрыВС� �року(
НСтр("ru = 'Для документа %1 не заполнены данные предъявленной счет-фактуры поставщика'"),
ДанныеПечати.Ссылка);
ОбщегоНазначенияКлиентСер вер.СообщитьПользователю(
Текст,
ДанныеПечати.Ссылка,
"ПредъявленСчетФактура");
КонецЕсли;
Иначе
Если Не ПервыйДокумент Тогда
ТабличныйДокумент.Вывести� �оризонтальныйРазделитель� �траниц();
КонецЕсли;
ПервыйДокумент = Ложь;
НомерСтрокиНачало = ТабличныйДокумент.ВысотаТ� �блицы + 1;
// Выводим общие реквизиты шапки
СведенияОбОрганизации = ФормированиеПечатныхФорм.� �веденияОЮрФизЛице(ДанныеП ечати.Организация, ДанныеПечати.Дата);
СведенияОКонтрагенте = ФормированиеПечатныхФорм.� �веденияОЮрФизЛице(ДанныеП ечати.Контрагент, ДанныеПечати.Дата);
ЗаполнитьРеквизитыШапкиУП Д(ДанныеПечати, СведенияОбОрганизации, СведенияОКонтрагенте, Макет, ТабличныйДокумент);
// Выводим заголовок таблицы
ЗаголовокТаблицы = Макет.ПолучитьОбласть("Заг� �ловокТаблицы");
ТабличныйДокумент.Вывести( ЗаголовокТаблицы);
НомерСтраницы = 1;
// Инициализация итогов в документе
ИтоговыеСуммы = СтруктураИтоговыеСуммы();
// Создаем массив для проверки вывода
МассивВыводимыхОбластей = Новый Массив;
// Выводим многострочную часть документа
ОбластьСтрокаСтандарт = Макет.ПолучитьОбласть("Стр� �ка");
ОбластьИтого = Макет.ПолучитьОбласть("Ито� �о");
ОбластьПодвал = Макет.ПолучитьОбласть("Под� �ал");
ЗаполнитьРеквизитыПодвала УПД(ОбластьПодвал, ДанныеПечати, СведенияОбОрганизации, СведенияОКонтрагенте);
Если ДанныеДляПечати.Результат� �оШапке.Колонки.Найти("Выво� �итьКодНоменклатуры") <> Неопределено Тогда
ВыводитьКодНоменклатуры = ДанныеПечати.ВыводитьКодН� �менклатуры;
Иначе
ВыводитьКодНоменклатуры = Истина;
КонецЕсли;
СтруктураПоиска = Новый Структура("Ссылка", ДанныеПечати.Ссылка);
ВыборкаПоДокументам.Найти� �ледующий(СтруктураПоиска);
ИспользоватьНаборы = Ложь;
Если ОбщегоНазначенияУТКлиентС ервер.ЕстьРеквизитОбъекта( ВыборкаПоДокументам, "ЭтоНабор") Тогда
ИспользоватьНаборы = Истина;
ОбластьСтрокаНабор = Макет.ПолучитьОбласть("Стр� �каНабор");
ОбластьСтрокаКомплектующи е = Макет.ПолучитьОбласть("Стр� �каКомплектующие");
КонецЕсли;
СтрокаТовары = ВыборкаПоДокументам.Выбра� �ь();
КоличествоСтрок = СтрокаТовары.Количество();
ТолькоСтавкаБезНДС = Истина;
НомерСтроки = 0;
Пока СтрокаТовары.Следующий() Цикл
Если ТипЗнч(ДанныеПечати.Ссылка ) = Тип("ДокументСсылка.ОтчетК� �миссионера")
ИЛИ ТипЗнч(ДанныеПечати.Ссылка ) = Тип("ДокументСсылка.ОтчетП� �КомиссииМеждуОрганизация� �и") Тогда
Если СтрокаТовары.Покупатель <> ДанныеПечати.Покупатель
ИЛИ (ДанныеПечати.Покупатель <> НЕОПРЕДЕЛЕНО
И НачалоДня(СтрокаТовары.Дат а) <> НачалоДня(ДанныеПечати.Дат а)
И СтрокаТовары.Дата <> '00010101') Тогда
Продолжить;
КонецЕсли;
КонецЕсли;
Если НаборыСервер.Использовать� �бластьНабор(СтрокаТовары, ИспользоватьНаборы) Тогда
ОбластьСтрока = ОбластьСтрокаНабор;
ИначеЕсли НаборыСервер.Использовать� �бластьКомплектующие(Строк аТовары, ИспользоватьНаборы) Тогда
ОбластьСтрока = ОбластьСтрокаКомплектующи е;
Иначе
ОбластьСтрока = ОбластьСтрокаСтандарт;
КонецЕсли;
Если НаборыСервер.ВыводитьТоль� �оЗаголовок(СтрокаТовары, ИспользоватьНаборы) Тогда
ЗаполнитьРеквизитыСтрокиТ овара(СтрокаТовары, ОбластьСтрока, Неопределено);
Иначе
НомерСтроки = НомерСтроки + 1;
ЗаполнитьРеквизитыСтрокиТ овара(СтрокаТовары, ОбластьСтрока, НомерСтроки);
ПроставитьПрочеркиВПустые ПоляСтроки(ОбластьСтрока);
КонецЕсли;
СтруктураПараметров = Новый Структура;
Если СтрокаТовары.СтавкаНДС = Перечисления.СтавкиНДС.Без НДС Тогда
СтруктураПараметров.Встав� �ть("СтавкаНДС", НСтр("ru='без НДС'"));
СтруктураПараметров.Встав� �ть("СуммаНДС", НСтр("ru='без НДС'"));
ИначеЕсли СтрокаТовары.СтавкаНДС = Перечисления.СтавкиНДС.НДС 0 Тогда
СтруктураПараметров.Встав� �ть("СуммаНДС", 0);
ТолькоСтавкаБезНДС = Ложь;
Иначе
ТолькоСтавкаБезНДС = Ложь;
КонецЕсли;
Если Не НаборыСервер.ВыводитьТоль� �оЗаголовок(СтрокаТовары, ИспользоватьНаборы) Тогда
СтруктураПараметров.Встав� �ть("Акциз", "без акциза");
КонецЕсли;
ОбластьСтрока.Параметры.За полнить(СтруктураПараметр� �в);
МассивВыводимыхОбластей.О� �истить();
МассивВыводимыхОбластей.Д� �бавить(ОбластьСтрока);
Если НомерСтроки = КоличествоСтрок Тогда
МассивВыводимыхОбластей.Д� �бавить(ОбластьИтого);
МассивВыводимыхОбластей.Д� �бавить(ОбластьПодвал);
КонецЕсли;
Если НомерСтроки <> 1 И НЕ ТабличныйДокумент.Провери� �ьВывод(МассивВыводимыхОбл астей) Тогда
НомерСтраницы = НомерСтраницы + 1;
ТабличныйДокумент.Вывести� �оризонтальныйРазделитель� �траниц();
ТабличныйДокумент.Вывести( ЗаголовокТаблицы);
КонецЕсли;
ТабличныйДокумент.Вывести( ОбластьСтрока);
Если Не НаборыСервер.Использовать� �бластьКомплектующие(Строк аТовары, ИспользоватьНаборы) Тогда
РассчитатьИтоговыеСуммы(И� �оговыеСуммы, СтрокаТовары);
КонецЕсли;
КонецЦикла;
// Выводим итоги по документу
ДобавитьИтоговыеДанныеПод вала(ИтоговыеСуммы, НомерСтроки, ВалютаРегламентированного Учета);
Если ТолькоСтавкаБезНДС Тогда
ИтоговыеСуммы.ИтогоСуммаН� �С = НСтр("ru='без НДС'");
КонецЕсли;
ОбластьИтого.Параметры.Зап олнить(ИтоговыеСуммы);
ПроставитьПрочеркиВПустые ПоляСтроки(ОбластьИтого);
ТабличныйДокумент.Вывести( ОбластьИтого);
КоличествоСтраниц = СтроковыеФункцииКлиентСер вер.ПодставитьПараметрыВС� �року(
НСтр("ru = 'Документ составлен на %1 %2'"),
НомерСтраницы,
ОбщегоНазначенияУТКлиентС ервер.ФормаМножественного� �исла(
НСтр("ru = 'листе'"), НСтр("ru = 'листах'"), НСтр("ru = 'листах'"), НомерСтраницы));
СтруктураПараметров = Новый Структура("КоличествоСтран иц", КоличествоСтраниц);
ОбластьПодвал.Параметры.За полнить(СтруктураПараметр� �в);
ТабличныйДокумент.Вывести( ОбластьПодвал);
// Выведем нужное количество экземпляров (при печати комплектов)
Если КомплектыПечати <> Неопределено
И КомплектыПечати.Колонки.На йти("Ссылка") <> Неопределено
И КомплектПечатиПоСсылке.Эк� �емпляров > 1 Тогда
ОбластьКопирования = ТабличныйДокумент.Получит� �Область(НомерСтрокиНачало ,,ТабличныйДокумент.Высота� �аблицы);
Для Итератор = 2 По КомплектПечатиПоСсылке.Эк� �емпляров Цикл
ТабличныйДокумент.Вывести� �оризонтальныйРазделитель� �траниц();
ТабличныйДокумент.Вывести( ОбластьКопирования);
КонецЦикла;
КонецЕсли;
УправлениеПечатью.ЗадатьО� �ластьПечатиДокумента(Табл ичныйДокумент, НомерСтрокиНачало, ОбъектыПечати,
ДанныеПечати.Ссылка);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура ПроставитьПрочеркиВПустые ПоляСтроки(ОбластьМакета)
Для т = 0 По ОбластьМакета.Параметры.Ко личество() - 1 Цикл
ТекПараметр = ОбластьМакета.Параметры.По лучить(т);
Если НЕ ЗначениеЗаполнено(ТекПара� �етр) Тогда
ОбластьМакета.Параметры.Ус тановить(т, "--");
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура ЗаполнитьРеквизитыСтрокиТ овара(СтрокаТовары, ОбластьМакета, НомерСтроки, ВыводитьКодНоменклатуры = Истина)
ИспользоватьНаборы = ОбщегоНазначенияУТКлиентС ервер.ЕстьРеквизитОбъекта( СтрокаТовары, "ЭтоНабор");
ПрефиксИПостфикс = НаборыСервер.ПолучитьПреф� �ксИПостфикс(СтрокаТовары, ИспользоватьНаборы);
Если ИспользоватьНаборы
И СтрокаТовары.ЭтоКомплекту� �щие
И СтрокаТовары.ВариантПредс� �авленияНабораВПечатныхФо� �мах = Перечисления.ВариантыПред� �тавленияНаборовВПечатных� �ормах.НаборИКомплектующие
И (СтрокаТовары.ВариантРасче таЦеныНабора = Перечисления.ВариантыРасч� �таЦенНаборов.ЦенаЗадается ЗаНаборРаспределяетсяПоДо лям
ИЛИ СтрокаТовары.ВариантРасче� �аЦеныНабора = Перечисления.ВариантыРасч� �таЦенНаборов.ЦенаЗадается ЗаНаборРаспределяетсяПоЦе нам) Тогда
// Область должна остаться незаполненной
ОбластьМакета.Параметры.За полнить(НаборыСервер.Пусты еДанные());
ИначеЕсли ИспользоватьНаборы
И СтрокаТовары.ЭтоНабор
И СтрокаТовары.ВариантПредс� �авленияНабораВПечатныхФо� �мах = Перечисления.ВариантыПред� �тавленияНаборовВПечатных� �ормах.НаборИКомплектующие
И СтрокаТовары.ВариантРасче� �аЦеныНабора = Перечисления.ВариантыРасч� �таЦенНаборов.Рассчитывает сяИзЦенКомплектующих Тогда
// Область должна остаться незаполненной
ОбластьМакета.Параметры.За полнить(НаборыСервер.Пусты еДанные());
Иначе
ОбластьМакета.Параметры.За полнить(СтрокаТовары);
КонецЕсли;
СтруктураПараметров = Новый Структура("КоличествоМест, КоличествоВОдномМесте, НоменклатураКод", 0, 0, "");
ЗаполнитьЗначенияСвойств(� �труктураПараметров, СтрокаТовары);
ОкруглитьДоЦелого(Структу� �аПараметров.КоличествоМес т);
ОкруглитьДоЦелого(Структу� �аПараметров.КоличествоВОд номМесте);
СтруктураПараметров.Встав� �ть("НомерСтроки", НомерСтроки);
СтруктураПараметров.Встав� �ть("ПредставлениеНоменкла� �уры", ПрефиксИПостфикс.Префикс + НоменклатураКлиентСервер.� �редставлениеНоменклатуры� �ляПечати(
СтрокаТовары.Номенклатура� �аименование,
СтрокаТовары.Характеристи� �аНаименование,
,
,
,
СтрокаТовары.ЭтоВозвратна� �Тара) + ПрефиксИПостфикс.Постфикс) ;
Если Не ВыводитьКодНоменклатуры Тогда
СтруктураПараметров.Номен� �латураКод = "";
КонецЕсли;
ОбластьМакета.Параметры.За полнить(СтруктураПараметр� �в);
КонецПроцедуры
Процедура ДобавитьИтоговыеДанныеПод вала(ИтоговыеСуммы, ВсегоНомеров, ВалютаРегламентированного Учета)
ИтоговыеСуммы.Вставить("Ко� �ичествоПорядковыхНомеров� �аписейПрописью", ЧислоПрописью(ВсегоНомеро� �, ,",,,,,,,,0"));
ИтоговыеСуммы.Вставить("Су� �маПрописью", РаботаСКурсамиВалют.Сформ� �роватьСуммуПрописью(Итого выеСуммы.ИтогоСуммаСНДС, ВалютаРегламентированного Учета));
КонецПроцедуры
Функция СтруктураИтоговыеСуммы()
Структура = Новый Структура;
СтруктураРесурсовДляИтого в = СтруктураРесурсовДляИтого в();
Для Каждого Элемент Из СтруктураРесурсовДляИтого в Цикл
Структура.Вставить("Итого"+� �лемент.Ключ+"НаСтранице", 0);
Структура.Вставить("Итого"+� �лемент.Ключ, 0);
КонецЦикла;
Возврат Структура;
КонецФункции
Процедура РассчитатьИтоговыеСуммы(И� �оговыеСуммы, СтрокаТовары)
СтруктураСуммПоСтроке = СтруктураРесурсовДляИтого в();
ЗаполнитьЗначенияСвойств(� �труктураСуммПоСтроке, СтрокаТовары);
ОкруглитьДоЦелого(Структу� �аСуммПоСтроке.КоличествоМ ест);
Для Каждого Элемент Из СтруктураСуммПоСтроке Цикл
Если ЗначениеЗаполнено(Элемент. Значение) Тогда
ИтоговыеСуммы["Итого"+Элемент.Ключ+"НаСтра нице"] = ИтоговыеСуммы["Итого"+Элемент.Ключ+"НаСтра нице"] + Элемент.Значение;
ИтоговыеСуммы["Итого"+Элемент.Ключ] = ИтоговыеСуммы["Итого"+Элемент.Ключ] + Элемент.Значение;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Процедура ОкруглитьДоЦелого(Округля� �моеЧисло)
Если ЗначениеЗаполнено(Округля� �моеЧисло) Тогда
Если ОкругляемоеЧисло <> Цел(ОкругляемоеЧисло) Тогда
ОкругляемоеЧисло = Цел(ОкругляемоеЧисло) + 1;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Функция СведенияОГрузоотправителе (ДанныеПечати)
Если ТипЗнч(ДанныеПечати.Грузоо тправитель) = Тип("СправочникСсылка.Реги� �трацииВНалоговомОргане") Тогда
СведенияОГрузоотправителе = Справочники.РегистрацииВН� �логовомОргане.СведенияОПо дразделении(ДанныеПечати.Г рузоотправитель);
Иначе
СведенияОГрузоотправителе = ФормированиеПечатныхФорм.� �веденияОЮрФизЛице(ДанныеП ечати.Грузоотправитель, ДанныеПечати.Дата);
КонецЕсли;
Возврат СведенияОГрузоотправителе ;
КонецФункции
Функция СтруктураРесурсовДляИтого в()
Структура = Новый Структура;
Структура.Вставить("СуммаБ� �зНДС", 0);
Структура.Вставить("СуммаН� �С", 0);
Структура.Вставить("СуммаС� �ДС", 0);
Структура.Вставить("Количе� �тво", 0);
Структура.Вставить("Количе� �твоМест", 0);
Структура.Вставить("Количе� �твоПринято", 0);
Структура.Вставить("МассаБ� �утто", 0);
Структура.Вставить("МассаН� �тто", 0);
Структура.Вставить("Сумма", 0);
Структура.Вставить("Разниц� �БезНДСУвеличение", 0);
Структура.Вставить("Разниц� �БезНДСУменьшение", 0);
Структура.Вставить("Разниц� �НДСУвеличение", 0);
Структура.Вставить("Разниц� �НДСУменьшение", 0);
Структура.Вставить("Разниц� �СНДСУвеличение", 0);
Структура.Вставить("Разниц� �СНДСУменьшение", 0);
Возврат Структура;
КонецФункции
Функция СведенияОВнешнейОбработке () Экспорт
ПараметрыРегистрации = Новый Структура;
МассивНазначений = Новый Массив;
МассивНазначений.Добавить( "Документ.РеализацияТоваро вУслуг");
ПараметрыРегистрации.Вста� �ить("Вид", "ПечатнаяФорма");
ПараметрыРегистрации.Вста� �ить("Назначение", МассивНазначений);
ПараметрыРегистрации.Вста� �ить("Наименование", "УПД с договором");
ПараметрыРегистрации.Вста� �ить("Версия", "1.0");
ПараметрыРегистрации.Вста� �ить("БезопасныйРежим", ЛОЖЬ);
ПараметрыРегистрации.Вста� �ить("Информация", "Дополнительная печатная форма УПД с договором");
ТаблицаКоманд = ПолучитьТаблицуКоманд();
ДобавитьКоманду(ТаблицаКо� �анд, "УПД с договором", "УПДдляИП", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
ПараметрыРегистрации.Вста� �ить("Команды", ТаблицаКоманд);
Возврат ПараметрыРегистрации;
КонецФункции
Функция ПолучитьТаблицуКоманд()
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить("П редставление", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("И дентификатор", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("И спользование", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("П оказыватьОповещение", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("М одификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции
Функция ДобавитьКоманду(ТаблицаКо� �анд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представлени� � = Представление;
НоваяКоманда.Идентификато� �= Идентификатор;
НоваяКоманда.Использовани� �= Использование;
НоваяКоманда.ПоказыватьОп� �вещение= ПоказыватьОповещение;
НоваяКоманда.Модификатор= Модификатор;
КонецФункции
Последний раз редактировалось Александр2108; 09.02.2016 в 14:23.
Быстрый переход
Конфигурирование, программирование 1С - Предприятие
Вверх
- Навигация
- Кабинет
- Личные сообщения
- Подписки
- Кто на сайте
- Поиск по форуму
- Главная страница форума
- Форум
- Литература
- Крипто
- СБИС
- Компьютерные технологии
- Андеграунд
- Мобильная связь
- Отзывы
- Интернет
- FRB Club
- FRB
Похожие темы
-
1С РАРУС УПРАВЛЕНИЕ АВТОТРАНСПОРТОМ 8.2
от actros в разделе Обучение 1с. Курсы. Подготовка к экзаменам, тестам 1сОтветов: 2Последнее сообщение: 14.04.2016, 16:42 -
Печать УПД 8.2
от NiVeR в разделе 1С - Предприятие 8.0, 8.1, 8.2, 8.3Ответов: 12Последнее сообщение: 29.01.2016, 14:17 -
ТУРБО БУХГАЛТЕР 6.9 УПРАВДОМ
от алекс33.72 в разделе АндеграундОтветов: 0Последнее сообщение: 14.11.2011, 17:54
Социальные закладки