|
Получение Наименования из заполненной формы для печати документа (в той же форме) | ☑ | ||
---|---|---|---|---|
0
xecoder
11.05.22
✎
11:16
|
Добрый день. Создаю печатную форму через внешнюю обработку. Создал макет, написал запрос к бд (всё работает, проверил через консоль).
В справочнике Контрагенты, при изменении открывается форма - Справочник.Контрагенты.Форма.ФормаЭлемента Она заполнена данными, мне нужно при нажатии "Печать - Договор" получить данные Поля "Наименование для документов". Которое я потом по плану буду упаковывать в структуру и использовать для поиска Результат = РезультатЗапроса.НайтиСледующий(СтруктураДляПоискаЧерезНаименование) И дальше заполнять данными из результата макет документа. Как мне получить наименование из формы из которой стартуем печать документа? Варианты: Наименование = Форма.Владелец.НаименованиеДляДокументов; Наименование = ЭтаФорма.Владелец.НаименованиеДляДокументов; Не работают, пишет переменные Форма и ЭтаФорма не определены. |
|||
1
hhhh
11.05.22
✎
11:31
|
(0) на клиенте или на сервере пробуете?
|
|||
2
xecoder
11.05.22
✎
11:37
|
Менял на "ВызовСерверногоМетода" на "ВызовКлиентскогоМетода". Ошибка не пропадает
|
|||
3
xecoder
11.05.22
✎
11:37
|
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура; МассивНазначений = Новый Массив; МассивНазначений.Добавить("Справочник.Контрагенты"); //Указываем документ к которому делаем внешнюю печ. форму ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма"); //может быть - ПечатнаяФорма, ЗаполнениеОбъекта, ДополнительныйОтчет, СозданиеСвязанныхОбъектов... ПараметрыРегистрации.Вставить("Назначение", МассивНазначений); ПараметрыРегистрации.Вставить("Наименование", "Договор поставки Ефремов"); //имя под которым обработка будет зарегестрирована в справочнике внешних обработок ПараметрыРегистрации.Вставить("БезопасныйРежим", ЛОЖЬ); ПараметрыРегистрации.Вставить("Версия", "1.0"); ПараметрыРегистрации.Вставить("Информация", ""); ТаблицаКоманд = ПолучитьТаблицуКоманд(); ДобавитьКоманду(ТаблицаКоманд, "Договор с покупателем ", "ДоговорСПокупателем", "ВызовКлиентскогоМетода", Истина, "ПечатьMXL"); ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд); Возврат ПараметрыРегистрации; КонецФункции Функция ПолучитьТаблицуКоманд() Команды = Новый ТаблицаЗначений; Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));//как будет выглядеть описание печ.формы для пользователя Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); //имя макета печ.формы Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); //ВызовСерверногоМетода Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево")); Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка")); Возврат Команды; КонецФункции Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "") НоваяКоманда = ТаблицаКоманд.Добавить(); НоваяКоманда.Представление = Представление; НоваяКоманда.Идентификатор = Идентификатор; НоваяКоманда.Использование = Использование; НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение; НоваяКоманда.Модификатор = Модификатор; КонецПроцедуры Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "ДоговорСПокупателем", "Договор с покупателем ", СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати)); КонецПроцедуры // Печать() Функция СформироватьПечатнуюФорму(СсылкаНаОбъект, ОбъектыПечати) ТабличныйДокумент = Новый ТабличныйДокумент; ТабличныйДокумент.АвтоМасштаб = Истина; МакетОбработки = ПолучитьМакет("ДоговорНаПоставку"); //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА // Данный фрагмент построен конструктором. // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!! Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Контрагенты.НаименованиеПолное КАК НаименованиеПолное, | Контрагенты.ИНН КАК ИНН, | Контрагенты.КПП КАК КПП, | Контрагенты.ОсновнойБанковскийСчет КАК ОсновнойБанковскийСчет, | Контрагенты.ОсновноеКонтактноеЛицо КАК ОсновноеКонтактноеЛицо, | Контрагенты.РегистрационныйНомер КАК РегистрационныйНомер, | Контрагенты.НалоговыйНомер КАК НалоговыйНомер, | Контрагенты.СвидетельствоСерияНомер КАК СвидетельствоСерияНомер, | Контрагенты.СвидетельствоДатаВыдачи КАК СвидетельствоДатаВыдачи, | Контрагенты.ДатаРегистрации КАК ДатаРегистрации, | Контрагенты.КонтактнаяИнформация.( | НомерТелефона КАК НомерТелефона, | АдресЭП КАК АдресЭП | ) КАК КонтактнаяИнформация |ИЗ | Справочник.Контрагенты КАК Контрагенты"; РезультатЗапроса = Запрос.Выполнить(); Выборка = РезультатЗапроса.Выбрать(); НужноеНаименование = ЭтаФорма.Владелец.НаименованиеДляДокументов; СтруктураПоиска = Новый Структура("НаименованиеПолное"); СтруктураПоиска.НаименованиеПолное = НужноеНаименование; //Перем ДляДокументаИНН; //Перем ДляДокументаКПП; ДляДокументаНаименование = НужноеНаименование; ВыборкаПоНаименованию = Выборка.НайтиСледующий(СтруктураПоиска); ДляДокументаИНН = ВыборкаПоНаименованию.ИНН; ДляДокументаКПП = ВыборкаПоНаименованию.КПП; Сообщить(ДляДокументаИНН); Сообщить(ДляДокументаКПП); КонецФункции Ошибка {ВнешняяОбработка.LC_шаблон_договоров.МодульОбъекта(83,23)}: Переменная не определена (ЭтаФорма) НужноеНаименование = <<?>>ЭтаФорма.Владелец.НаименованиеДляДокументов; (Проверка: Сервер) |
|||
4
vicof
11.05.22
✎
11:53
|
Ты не из формы печатаешь.
|
|||
5
xecoder
11.05.22
✎
11:59
|
Сделал через ссылку. Заработало
Получилось СсылкаНаОбъект.Владелец.НаименованиеДляДокумента; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |