Запрос и печатная форма word (нужна помощь)
1.
Гость
14.03.21 14:55
1С только изучаю поэтому нужна помощь с запросом, есть документ Заказ клиента (картинка 1) в форме документа указывается организация, в печатную форму она так же попадает, но должен еще попадать руководитель этой самой организации (Директор). В этом же документе ней указывается фирма (клиент), которая делает заказ, в печатную форму так же должен попадать руководитель фирмы делающей заказ. Перепробовала много вариантов в печатную форму руководитель не попадает, хотя данные об организации и непосредственно о руководителе указаны. Помогите пожалуйста
&НаСервере
Функция ПолучитьМакетСервер()
Возврат РеквизитФормыВЗначение("Объект").ПолучитьМакет("Макет");
КонецФункции
// Ну теперь пишем процедуру печати.
&НаКлиенте
Процедура Печать(ИдентификаторКоманды, МассивОбъектов) Экспорт
Для Каждого ЭлементМассиваОбъектов Из МассивОбъектов Цикл
Договор = ЭлементМассиваОбъектов;
Данные = ПолучитьДанные(Договор);
ПокупательПА = ПолучитьПА(Данные.Ссылка,Данные.ДатаДок);
ПокупательЮА = ПолучитьЮА(Данные.Ссылка,Данные.ДатаДок);
ПоставщикПА = ПолучитьПА(Данные.Ссылка,Данные.ДатаДок);
ПоставщикЮА = ПолучитьЮА(Данные.Ссылка,Данные.ДатаДок);
ДопСвед = ПолучитьДС(Данные.Ссылка,Данные.ДатаДок,Данные.НомерСчета);
Если Данные <> Неопределено Тогда
Word = Новый COMОбъект("Word.Application");
Макет = ПолучитьМакетСервер();
ВременныйПуть = КаталогВременныхФайлов();
ИмяВременногоФайла = ВременныйПуть + "dogovor1.docx";
Макет.Записать(ИмяВременногоФайла);
ТекДок = Word.Documents.ADD(ИмяВременногоФайла);
ИННКПП = ""+Данные.ИНН+"/"+Данные.КПП;
ОрганизацияИННОрганизацияКПП = ""+Данные.ОрганизацияИНН+"/"+Данные.ОрганизацияКПП;
ТекДок.Variables("Номер").Value = Данные.Номер;
ТекДок.Variables("ДатаДок").Value = Формат(Данные.ДатаДок, "ДЛФ=DD");
//ТекДок.Variables("Покупатель").Value = ""+Данные.Покупатель;
ТекДок.Variables("Покупатель").Value = ?(ПустаяСтрока(Строка(Данные.Покупатель)), "-", Строка(Данные.Покупатель));
//ТекДок.Variables("Поставщик").Value = ""+Данные.Поставщик;
ТекДок.Variables("Поставщик").Value = ?(ПустаяСтрока(Строка(Данные.Поставщик)), "-", Строка(Данные.Поставщик));
//ТекДок.Variables("Руководитель").Value = ""+Данные.Руководитель;
ТекДок.Variables("Руководитель").Value = ?(ПустаяСтрока(Строка(Данные.Руководитель)), "-", Строка(Данные.Руководитель));
//ТекДок.Variables("Директор").Value = ""+Данные.Директор;
ТекДок.Variables("Директор").Value = ?(ПустаяСтрока(Строка(Данные.Директор)), "-", Строка(Данные.Директор));
//ТекДок.Variables("RepresentativeOfTheCounterparty").Value = Данные.КонтактноеЛицо;
//ТекДок.Variables("BasisOfAction").Value = Данные.ОснованиеПредставителя;
//ТекДок.Variables("SettlementProcedure").Value = Данные.Оплата;
//ТекДок.Variables("OrderOfDelivery").Value = Данные.Отгрузка;
//ТекДок.Variables("ExpirationDate").Value = Данные.ДатаОкончания;
//ТекДок.Variables("ПокупательСокр").Value = ""+Данные.Покупатель;
ТекДок.Variables("ПокупательСокр").Value = ?(ПустаяСтрока(Строка(Данные.Покупатель)), "-", Строка(Данные.Покупатель));
//ТекДок.Variables("ИННКПП").Value = ""+ИННКПП;
ТекДок.Variables("ИННКПП").Value = ?(ПустаяСтрока(Строка(ИННКПП)), "-", Строка(ИННКПП));
//ТекДок.Variables("ОрганизацияИННОрганизацияКПП").Value = ""+ОрганизацияИННОрганизацияКПП;
ТекДок.Variables("ОрганизацияИННОрганизацияКПП").Value = ?(ПустаяСтрока(Строка(ОрганизацияИННОрганизацияКПП)), "-", Строка(ОрганизацияИННОрганизацияКПП));
//ТекДок.Variables("ПокупательБанк").Value = Строка(""+Данные.Банк);
ТекДок.Variables("ПокупательБанк").Value = ?(ПустаяСтрока(Строка(Данные.Банк)), "-", Строка(Данные.Банк));
//ТекДок.Variables("ПоставщикБанк").Value = Строка(""+Данные.Банк1);
ТекДок.Variables("ПоставщикБанк").Value = ?(ПустаяСтрока(Строка(Данные.Банк1)), "-", Строка(Данные.Банк1));
//ТекДок.Variables("ПокупательРС").Value = Строка(""+Данные.НомерСчета);
ТекДок.Variables("ПокупательРС").Value = ?(ПустаяСтрока(Строка(Данные.НомерСчета)), "-", Строка(Данные.НомерСчета));
//ТекДок.Variables("ПоставщикРС").Value = Строка(""+Данные.БанковскийСчетНомерСчета);
ТекДок.Variables("ПоставщикРС").Value = ?(ПустаяСтрока(Строка(Данные.БанковскийСчетНомерСчета)), "-", Строка(Данные.Банк));
//ТекДок.Variables("ПокупательБИК").Value = Данные.БИК;
ТекДок.Variables("ПокупательБИК").Value = ?(ПустаяСтрока(Строка(Данные.БИК)), "-", Строка(Данные.БИК));
//ТекДок.Variables("ПоставщикБИК").Value = Данные.БанкКод1;
ТекДок.Variables("ПоставщикБИК").Value = ?(ПустаяСтрока(Строка(Данные.БанкКод1)), "-", Строка(Данные.БанкКод1));
//ТекДок.Variables("ПокупательТел").Value = ""+Данные.ПокупательТел;
ТекДок.Variables("ПокупательТел").Value = ?(ПустаяСтрока(Строка(Данные.ПокупательТел)), "-", Строка(Данные.ПокупательТел));
//ТекДок.Variables("ПокупательЭП").Value = ""+Данные.ПокупательЭП;
ТекДок.Variables("ПокупательЭП").Value = ?(ПустаяСтрока(Строка(Данные.ПокупательЭП)), "-", Строка(Данные.ПокупательЭП));
//ТекДок.Variables("ПоставщикТел").Value = ""+Данные.ПоставщикТел;
ТекДок.Variables("ПоставщикТел").Value = ?(ПустаяСтрока(Строка(Данные.ПоставщикТел)), "-", Строка(Данные.ПоставщикТел));
//ТекДок.Variables("ПоставщикЭП").Value = ""+Данные.ПоставщикЭП;
ТекДок.Variables("ПоставщикЭП").Value = ?(ПустаяСтрока(Строка(Данные.ПоставщикЭП)), "-", Строка(Данные.ПоставщикЭП));
//ТекДок.Variables("OKPO").Value = Данные.ОКПО;
//ТекДок.Variables("OGRN").Value = Данные.ОГРН;
//ТекДок.Variables("ПокупательЮА").Value = ""+ПокупательЮА;
ТекДок.Variables("ПокупательЮА").Value = ?(ПустаяСтрока(Строка(ПокупательЮА)), "-", Строка(ПокупательЮА));
//ТекДок.Variables("ПоставщикЮА").Value = ""+ПоставщикЮА;
ТекДок.Variables("ПоставщикЮА").Value = ?(ПустаяСтрока(Строка(ПоставщикЮА)), "-", Строка(ПоставщикЮА));
//ТекДок.Variables("ПокупательКС").Value = Данные.КоррСчет;
ТекДок.Variables("ПокупательКС").Value = ?(ПустаяСтрока(Строка(Данные.КоррСчет)), "-", Строка(Данные.КоррСчет));
//ТекДок.Variables("ПоставщикКС").Value = Данные.БанкКоррСчет1;
ТекДок.Variables("ПоставщикКС").Value = ?(ПустаяСтрока(Строка(Данные.БанкКоррСчет1)), "-", Строка(Данные.БанкКоррСчет1));
//ТекДок.Variables("ПокупательПА").Value = ""+ПокупательПА;
ТекДок.Variables("ПокупательПА").Value = ?(ПустаяСтрока(Строка(ПокупательПА)), "-", Строка(ПокупательПА));
//ТекДок.Variables("ПоставщикПА").Value = ""+ПоставщикПА;
ТекДок.Variables("ПоставщикПА").Value = ?(ПустаяСтрока(Строка(ПоставщикПА)), "-", Строка(ПоставщикПА));
ТекДок.Variables("ТекущийГод").Value = Год(Данные.ДатаДок);
//ТекДок.Variables("Phone").Value = Данные.КонтактныйТелефон;
//ТекДок.Variables("Signer").Value = Данные.Подписант;
ТекДок.Fields.Update();
Word.ActiveWindow.View.ShowFieldCodes = False;
Word.Visible=Истина;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервере
Функция ПолучитьДанные(Договор)
Договор = Договор.Ссылка;
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ЗаказКлиента.Контрагент.Ссылка КАК Ссылка,
| ЗаказКлиента.Дата КАК ДатаДок,
| ЗаказКлиента.Номер КАК Номер,
| ЕСТЬNULL(КонтрагентыКонтактнаяИнформация.АдресЭП, """") КАК ПокупательЭП,
| КонтрагентыКонтактнаяИнформация.НомерТелефона КАК ПокупательТел,
| Контрагенты.КПП КАК КПП,
| Контрагенты.ИНН КАК ИНН,
| Контрагенты.НаименованиеПолное КАК Покупатель,
| Контрагенты.Наименование КАК ПокупательСокр,
| БанковскиеСчетаКонтрагентов.НомерСчета КАК НомерСчета,
| БанковскиеСчетаКонтрагентов.Банк КАК Банк,
| БанковскиеСчетаКонтрагентов.Банк.Код КАК БИК,
| БанковскиеСчетаКонтрагентов.Банк.КоррСчет КАК КоррСчет,
| ЗаказКлиента.КонтактноеЛицо.Наименование КАК Директор,
| ЗаказКлиента.Руководитель.Наименование КАК Руководитель,
| ЗаказКлиента.Организация.ИНН КАК ОрганизацияИНН,
| ЗаказКлиента.Организация.КПП КАК ОрганизацияКПП,
| ЗаказКлиента.БанковскийСчет.НомерСчета КАК БанковскийСчетНомерСчета,
| БанковскиеСчетаОрганизаций.Банк КАК Банк1,
| ОрганизацииКонтактнаяИнформация.АдресЭП КАК ПоставщикЭП,
| ОрганизацииКонтактнаяИнформация.НомерТелефона КАК ПоставщикТел,
| БанковскиеСчетаОрганизаций.Банк.Код КАК БанкКод1,
| БанковскиеСчетаОрганизаций.Банк.КоррСчет КАК БанкКоррСчет1,
| ОрганизацииКонтактнаяИнформация.Ссылка КАК Ссылка1,
| ЗаказКлиента.Организация.НаименованиеПолное КАК Поставщик
|ИЗ
| Документ.ЗаказКлиента КАК ЗаказКлиента
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты.КонтактнаяИнформация КАК КонтрагентыКонтактнаяИнформация
| ПО Контрагенты.Ссылка = КонтрагентыКонтактнаяИнформация.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.БанковскиеСчетаКонтрагентов КАК БанковскиеСчетаКонтрагентов
| ПО Контрагенты.Ссылка = БанковскиеСчетаКонтрагентов.Владелец
| ПО ЗаказКлиента.Контрагент = Контрагенты.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.БанковскиеСчетаОрганизаций КАК БанковскиеСчетаОрганизаций
| ПО ЗаказКлиента.БанковскийСчет = БанковскиеСчетаОрганизаций.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ОтветственныеЛицаОрганизаций КАК ОтветственныеЛицаОрганизаций
| ПО ЗаказКлиента.Руководитель = ОтветственныеЛицаОрганизаций.Ссылка
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Организации КАК Организации
| ПО ЗаказКлиента.Организация = Организации.Ссылка,
| Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииКонтактнаяИнформация
|ГДЕ
| ЗаказКлиента.Ссылка = &Договор";
Запрос.УстановитьПараметр("Договор", Договор);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Если ВыборкаДетальныеЗаписи.Следующий() Тогда
ДанныеПечати = Новый Структура("Ссылка, ДатаДок, Номер, ПокупательЭП, ПокупательТел, ПоставщикЭП, ПоставщикТел, КПП, ИНН,ОрганизацияИНН,ОрганизацияКПП, Покупатель,Поставщик, ПокупательСокр,Руководитель,Директор, НомерСчета, БанковскийСчетНомерСчета, Банк, Банк1, БИК, БанкКод1, КоррСчет, БанкКоррСчет1");
ЗаполнитьЗначенияСвойств(ДанныеПечати, ВыборкаДетальныеЗаписи);
Возврат ДанныеПечати;
Иначе
Возврат Null;
КонецЕсли;
КонецФункции
&НаСервере
Функция ПолучитьПА(Ссылка,ДатаДок)
ПокупательПА = ФормированиеПечатныхФорм.ПолучитьАдресИзКонтактнойИнформации(Ссылка,"Фактический",ДатаДок);
ПоставщикПА = ФормированиеПечатныхФорм.ПолучитьАдресИзКонтактнойИнформации(Ссылка,"Фактический",ДатаДок);
Возврат ПокупательПА;
КонецФункции
&НаСервере
Функция ПолучитьЮА(Ссылка,ДатаДок)
ПокупательЮА = ФормированиеПечатныхФорм.ПолучитьАдресИзКонтактнойИнформации(Ссылка,"Юридический",ДатаДок);
ПоставщикЮА = ФормированиеПечатныхФорм.ПолучитьАдресИзКонтактнойИнформации(Ссылка,"Юридический",ДатаДок);
Возврат ПокупательЮА;
КонецФункции
&НаСервере
Функция ПолучитьДС(Ссылка,ДатаДок,НомерСчета)
ДопСвед = ФормированиеПечатныхФорм.СведенияОЮрФизЛице(Ссылка,ДатаДок, ,НомерСчета);
Возврат ДопСвед;
КонецФункции
ПоказатьПрикрепленные файлы:


По теме из базы знаний
- Подключаемые печатные формы с .DOCX макетом без Word'а
- Универсальная печатная форма для справочника и документа по своему шаблону, сделанному в ms word: Кадровые, Торговые, Делопроизводственные, Бухгалтерские, Управляющие
- Infostart PrintWizard - создание и редактирование печатных форм в 1С 8.3
- Внешняя печатная форма в формате Word (.docx, .doc) с помощью средств БСП
- Печать договора по макету Word/OpenOffice
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Внимание! Не забывайте отмечать решение на ваш вопрос, если оно найдено. Это повысит ваш рейтинг на форуме.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот