&НаСервере
Функция СформироватьПечать(Тип, ОбъектыПечати)
Макет = Документы.ДоверенностьНаПолучениеТоваров.ПолучитьМакет("ПФ_MXL_М2");
ОбъектыПечати = Документы.РеализацияТоваровУслуг.ПолучитьСсылку();
ТабличныйДокумент = Новый ТабличныйДокумент;
Запрос = Новый Запрос();
Запрос.Текст =
"ВЫБРАТЬ
| Доверенность.Ссылка КАК Ссылка,
| Доверенность.Номер КАК Номер,
| Доверенность.Дата КАК ДатаДокумента,
| Доверенность.Организация КАК Организация,
| Доверенность.Организация.Префикс КАК Префикс,
| Доверенность.Организация.ТекущийРуководитель.Наименование КАК Руководитель,
| Доверенность.Организация.ТекущийГлавныйБухгалтер.Наименование КАК ГлавныйБухгалтер,
| Доверенность.ФизЛицо КАК ФизЛицо,
| Доверенность.ПоДокументу КАК РеквизитыДокументаНаПолучение,
| Доверенность.ДатаОкончанияДействия КАК СрокДействия,
| Доверенность.Должность КАК Должность,
| Доверенность.Ответственный КАК Ответственный,
| Доверенность.БанковскийСчет КАК БанковскийСчет,
| Доверенность.Контрагент.НаименованиеПолное КАК ПоставщикПредставление,
| Доверенность.ДокументОснование КАК ДокументОснование,
| Доверенность.ДокументОснование.Номер КАК НомерОснования,
| Доверенность.ДокументОснование.Дата КАК ДатаОснования,
| Доверенность.ДокументОснование.Организация.Префикс КАК ПрефиксОснования,
| Доверенность.Товары.(
| НомерСтроки КАК Номер,
| ПРЕДСТАВЛЕНИЕ(Доверенность.Товары.НоменклатураПоставщика) КАК НоменклатураПоставщика,
| Номенклатура.НаименованиеПолное КАК Номенклатура,
| Характеристика.НаименованиеПолное КАК Характеристика,
| ВЫБОР
| КОГДА ЕСТЬNULL(Доверенность.Товары.Упаковка.Коэффициент, 1) = 1
| ТОГДА НЕОПРЕДЕЛЕНО
| ИНАЧЕ Доверенность.Товары.Упаковка.Наименование
| КОНЕЦ КАК Упаковка,
| ВЫБОР
| КОГДА Доверенность.Товары.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиНоменклатуры.ПустаяСсылка)
| ТОГДА ПРЕДСТАВЛЕНИЕ(Доверенность.Товары.Номенклатура.ЕдиницаИзмерения)
| ИНАЧЕ ПРЕДСТАВЛЕНИЕ(Доверенность.Товары.Упаковка.ЕдиницаИзмерения)
| КОНЕЦ КАК ЕдиницаИзмеренияПредставление,
| КоличествоУпаковок КАК КоличествоУпаковок
| ),
| Доверенность.МатериальныеЦенности.(
| НомерСтроки КАК Номер,
| МатериальнаяЦенность КАК МатериальнаяЦенность,
| Количество КАК Количество,
| ПРЕДСТАВЛЕНИЕ(Доверенность.МатериальныеЦенности.ЕдиницаИзмерения) КАК ЕдиницаИзмеренияПредставление
| ),
| ДокументыФизическихЛиц.Серия КАК ПаспортСерия,
| ДокументыФизическихЛиц.Номер КАК ПаспортНомер,
| ДокументыФизическихЛиц.ДатаВыдачи КАК ПаспортДатаВыдачи,
| ДокументыФизическихЛиц.КемВыдан КАК ПаспортВыдан,
| ДокументыФизическихЛиц.ДатаВыдачи КАК ДатаВыдачи";
Данные = Запрос.Выполнить().Выбрать();
ПервыйДокумент = Истина;
Если Тип = "ДоверенностьМ2" Тогда
ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Доверенность_М2";
ИначеЕсли Тип = "ДоверенностьМ2а" Тогда
ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_Доверенность_М2а";
КонецЕсли;
Пока Данные.Следующий() Цикл
Если Не ПервыйДокумент Тогда
ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
КонецЕсли;
ПервыйДокумент = Ложь;
НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
НомерДокументаНаПечать = ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(Данные.Номер, Ложь, Истина);
ФамилияИмяОтчествоДоверенного = ФизическиеЛица.ФамилияИнициалыФизЛица(Данные.ФизЛицо);
СведенияОбОрганизации = ФормированиеПечатныхФорм.СведенияОЮрФизЛице(
Данные.Организация,
Данные.ДатаДокумента,
,
Данные.БанковскийСчет
);
ПредставлениеОрганизации = ФормированиеПечатныхФорм.ОписаниеОрганизации(
СведенияОбОрганизации,
"ПолноеНаименование,ИНН,КПП,ЮридическийАдрес,Телефоны"
);
Если Тип = "ДоверенностьМ2" тогда
ОбластьМакета = Макет.ПолучитьОбласть("Отрез");
ОбластьМакета.Параметры.Заполнить(Данные);
ОбластьМакета.Параметры.НомерДокумента = НомерДокументаНаПечать;
ОбластьМакета.Параметры.ФИОДоверенного = ?(ПустаяСтрока(Данные.Должность), "", Данные.Должность + " ") + ФамилияИмяОтчествоДоверенного;
ТабличныйДокумент.Вывести(ОбластьМакета);
НазваниеФормы = НСтр("ru='Типовая межотраслевая форма № М-2'");
КодПоОКУД = "0315001";
ИначеЕсли Тип = "ДоверенностьМ2а" Тогда
НазваниеФормы = НСтр("ru='Типовая межотраслевая форма № М-2а'");
КодПоОКУД = "0315002";
КонецЕсли;
// Заполнить реквизиты шапки
ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
ОбластьМакета.Параметры.Заполнить(Данные);
ОбластьМакета.Параметры.НомерДокумента = НомерДокументаНаПечать;
ОбластьМакета.Параметры.НазваниеФормы = НазваниеФормы;
ОбластьМакета.Параметры.ДатаДокумента = Формат(Данные.ДатаДокумента,"ДФ = ""дд ММММ гггг """"г.""");
ОбластьМакета.Параметры.СрокДействия = Формат(Данные.СрокДействия,"ДФ = ""дд ММММ гггг """"г.""");
ОбластьМакета.Параметры.ФамилияИмяОтчествоДоверенного = Данные.ФизЛицо;
ОбластьМакета.Параметры.ДолжностьДоверенного = Данные.Должность;
ОбластьМакета.Параметры.ОрганизацияПредставление = ПредставлениеОрганизации;
ОбластьМакета.Параметры.РеквизитыПотребителя = ПредставлениеОрганизации;
ОбластьМакета.Параметры.РеквизитыПлательщика = ПредставлениеОрганизации;
ОбластьМакета.Параметры.ОрганизацияКодПоОКПО = СведенияОбОрганизации.КодПоОКПО;
ОбластьМакета.Параметры.РеквизитыСчета = ФормированиеПечатныхФорм.ОписаниеОрганизации(
СведенияОбОрганизации,
"НомерСчета,Банк,БИК,КоррСчет,"
);
ТабличныйДокумент.Вывести(ОбластьМакета);
// Заполнить таблицу
ОбластьМакета = Макет.ПолучитьОбласть("ЗаголовокТаблицы");
ТабличныйДокумент.Вывести(ОбластьМакета);
ОбластьМакета = Макет.ПолучитьОбласть("СтрокаТаблицы");
ВыборкаСтрокТовары = Данные.Товары.Выбрать();
ВыборкаСтрокМатериальныеЦенности = Данные.МатериальныеЦенности.Выбрать();
КоличествоСтрок = 0;
Пока ВыборкаСтрокТовары.Следующий() Цикл
ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокТовары);
Если ЗначениеЗаполнено(ВыборкаСтрокТовары.НоменклатураПоставщика) Тогда
ОбластьМакета.Параметры.МатериальнаяЦенность = ВыборкаСтрокТовары.НоменклатураПоставщика;
Иначе
ОбластьМакета.Параметры.МатериальнаяЦенность = ФормированиеПечатныхФорм.ПолучитьПредставлениеНоменклатурыДляПечати(
ВыборкаСтрокТовары.Номенклатура,
ВыборкаСтрокТовары.Характеристика,
ВыборкаСтрокТовары.Упаковка
);
КонецЕсли;
ОбластьМакета.Параметры.КоличествоПрописью = ?(
ВыборкаСтрокТовары.КоличествоУпаковок = 0,
"",
Строка(ВыборкаСтрокТовары.КоличествоУпаковок) + " (" +
КоличествоПрописью(ВыборкаСтрокТовары.КоличествоУпаковок) + ")"
);
ТабличныйДокумент.Вывести(ОбластьМакета);
КоличествоСтрок = КоличествоСтрок + 1;
КонецЦикла;
Пока ВыборкаСтрокМатериальныеЦенности.Следующий() Цикл
ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокМатериальныеЦенности);
ОбластьМакета.Параметры.Номер = ВыборкаСтрокМатериальныеЦенности.Номер + КоличествоСтрок;
ОбластьМакета.Параметры.КоличествоПрописью = ?(
ВыборкаСтрокМатериальныеЦенности.Количество = 0,
"",
Строка(ВыборкаСтрокМатериальныеЦенности.Количество) + " (" +
КоличествоПрописью(ВыборкаСтрокМатериальныеЦенности.Количество) + ")"
);
ТабличныйДокумент.Вывести(ОбластьМакета);
КонецЦикла;
// Заполнить реквизиты подвала
ОбластьМакета = Макет.ПолучитьОбласть("Подвал");
ОбластьМакета.Параметры.ФИОРуководителя = ФизическиеЛица.ФамилияИнициалыФизЛица(Данные.Руководитель);
ОбластьМакета.Параметры.ФИОГлавногоБухгалтера = ФизическиеЛица.ФамилияИнициалыФизЛица(Данные.ГлавныйБухгалтер);
ТабличныйДокумент.Вывести(ОбластьМакета);
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, Данные.Ссылка);
КонецЦикла;
ТабличныйДокумент.АвтоМасштаб = Истина;
Возврат ТабличныйДокумент;
КонецФункции
Ну и вызвал эту функцию процедуре при нажатии кнопки
&НаКлиенте
Процедура СформироватьДоверенность(Команда)
СформироватьПечать("ДоверенностьМ2", ОбъектыПечати);
КонецПроцедуры
Только мне выдает матюк.
{Документ.РеализацияТоваровУслуг.Форма.ФормаДокумента.Форма(4700,39)}: Переменная не определена (ОбъектыПечати)
СформироватьПечать("ДоверенностьМ2", <<?>>ОбъектыПечати); (Проверка: Тонкий клиент)
Не могу понять в чем дело. Помогите пожалуйста разобраться. За ранее спасибо!