И как мне ссылку перенести в форму по последующего получения данных? Эта ссылка не извлекается из модуля объекта. Что делать? как работать с документом из которого открыта печатная форма?
Пример из УНФ 1.6 если кто знает попробуйте отредактировать что бы при открытии организация из документа во внешнию форму переносилась. Уже неделю мучаюсь
Не работает ссылка на объект. Я бы хотел чтобы при открытии по ссылке на объект я мог заполнить форму.
---
Все решил проблему сам.
1. Невозможно работать с общим реквизитом (с заполнены ранее значением из Модуля объекта). Так как он не имеет значение при открытии формы.
2. Нужно при вызове Формы передать ей значение массива где ОбъектыНазначенияМассив[0] = ссылка на документ:

```1c
    ПараметрыФормы = Новый Структура("СсылкаНаОбъект", ОбъектыНазначенияМассив[0]);
    ОткрытьФорму("ВнешняяОбработка.ПечатнаяФорма.Форма.ФормаВвода",ПараметрыФормы,,,,,Новый ОписаниеОповещения("ПечатьЗавершение", ЭтаФорма, ОбъектыНазначенияМассив), РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс);
```

3. В открытой форме нужно написать запрос на проверку и получение значение ранее отправленного параметра:

```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Если Параметры.Свойство("СсылкаНаОбъект") Тогда
    Сообщить(Параметры.СсылкаНаОбъект);
    Объект.СсылкаНаОбъект = Параметры.СсылкаНаОбъект;
    КонецЕсли;
    КонецПроцедуры
```

4. После чего можно свободно работать с объектом - "СсылкаНаОбъект"
---
В вашей внешней обработке из (1) ссылка на объект имеет тип Расходная накладная. А какому документу вы предназначаете эту печатную форму?
Если вы хотите чтобы ваша обработка могла подключаться к другим типам документов или справочнику, измените тип реквизита СсылкаНаОбъект на Документ (произвольного типа) и Справочник (произвольного типа) "Составной".
---
Справочник ссылка на объект имеет тип Расходная накладная. А какому документу вы предназначаете эту печатную форму?
РасходнаяНакладная. Мне только к ней!
---
Что то не понела вашего вопроса. Вы хотите при начатие на кн Печать из документа чтоб выходила форма внешней обработки? или без открытия дополнительной формы брать данные из текущего документа?
УНФ 1.6 нет под рукой
---
Что то не понела вашего вопроса. Вы хотите при начатие на кн Печать из документа чтоб выходила форма внешней обработки? или без открытия дополнительной формы брать данные из текущего документа?
ДА. Можно пример и из УП 3
---
В принципе обработка не привязана к конфигурации. главное это управляемая форма.
---
пишешь обработку с методом открыть форму. Объекты назначения это те объекты, которые были вызваны далее пилишь как обычно!
---
рыть форму. Объекты назначения это т не могли бы просто пример обработки скинуть
---
Здесь статья о передаче параметров во внешнюю печатную форму
https://infostart.ru/public/191796/
---
https://infostart.ru/public/191796/ видел я эту статью. она не отвечает на мой вопрос - как получить данные из документа при открытии внешней обработки!
---
как получить данные из документа при открытии внешней обработки!Вставлять в каждую ПФ доп.форму для отладки, где задавать документ. Далее его и передавать.
Только так.
---
Я в самом начале выслал обработку. Если кто знает возьмите ее и добавьте строку для получения ссылки на документ и получения в него данных к примеру контрагента. Так ведь в 100 раз быстрее. А дальше я и сам разберусь.
---
ОбъектыНазначения[0] вот это есть ссылка на текущий объект. Дальше извлекаешь реквизиты и делаешь, что хочешь.
---
не получается применить на объекте на форме - присваивание значения. напиши пример
---
если через открыть, то заполнять вручную. Если через доп, то что не получается? Все должно работать!
---
Если вы не можете открыть код обработки буду вам высылать скриншоты с вопросами по нему. Я не знаю как еще разжевать вопрос.)))))))))))))))))))))))))))))))))))))))))))))))))
---
ой насмешили!
Потому что это УФ и пора книжки читать!
На форме к реквизиту нужно обращаться через основной реквизит это обычно Объект. В отчетах Отчет.
---
обращаться через основной реквизит"вспомогательных" реквизитов у 1С тоже нет ))
---
&НаКлиенте
Процедура Печать(Команда)
 Структура = Новый Структура;
 Структура.Вставить("НазваниеПечатнойФормы", Объект.СсылкаНаОбъект);
 Структура.Вставить("Печать" , Истина);
 ЭтаФорма.Закрыть(Структура);
КонецПроцедуры

&НаКлиенте
Процедура ПриОткрытии(Отказ)
 Сообщить(Объект.СсылкаНаОбъект);
КонецПроцедуры

Я это знаю эффект = 0
---
треш. Забудьте что вы писали на ОФ. Это совершенно разные вещи. Скачайте БСП посмотрите как там реализовано. Почитайте на ИС статью как пишут внешние обработки. А то у вас нет представления как их пишут.
Реквизит обычно используют, чтобы отлаживать ВПФ, а не для того чтобы его заполнять!
Вот мои наработки на ИС https://infostart.ru/public/622195/. Вот статья https://infostart.ru/public/558559/ чтобы понять как это работает.
---
Структура.Вставить("НазваниеПечатнойФормы", в этом месте хоть что делай нет связи с Общим реквизитом - "СсылкаНаОбъект", с массивами из Модуля объекта, они не сообщаются не как);
---
в УФ реквизиты обработки не работают, они доступны только в МодулеОбъекта, но не на форме. А модуля менеджера - для внешних обработок 1С не ввела.
В общем, 1С сделала реквизиты обработки ненужным рудиментом.
---
Я иду таким образом.
Есть библиотека стандартных подсистем, встроенная в каждую типовую 1с.
Пишем обработку, чтобы узнать точно ее версию в нашей конфигурации:

```1c
    &НаСервере
    Функция Команда1НаСервере()

    Возврат СтандартныеПодсистемыСервер.ВерсияБиблиотеки();
    КонецФункции

    &НаКлиенте
    Процедура Команда1(Команда)
    Версия = Команда1НаСервере();
    Сообщить(Версия);
    КонецПроцедуры
```

Скачиваем БСП нужной редакции и примерно ближайшей версии (возможно именно этой в списке версий нет)

Открываем обработки, ищем _ДемоПечатнаяФорма, _ДемоПечатьСчетовНаОплатуПокупателю, печать, сохраняем во внешние файлы и делаем как надо.
В них ссылка на объект не предусмотрена, только модуль и возможно макет.
---
Скачиваем БСП нужной редакции и примерно ближайшей версииНе нужно это ничего.
Просто БСП обойти, задав нужные параметры при вызове из модуля менеджера основной процедуры Печать() из доп.формы при отладке.
---
Начинаем со сведений о внешней обработке для подключения ее в базу

```1c
    Функция СведенияОВнешнейОбработке() Экспорт
    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.3.1.73");
    ПараметрыРегистрации.Информация = НСтр("ru = 'Обработка формирования печатной формы документа "Расходная накладная". Используется для демонстрации возможностей подсистемы "Дополнительные отчеты и обработки".'");
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма();
    ПараметрыРегистрации.Версия = "2.4.3.2";
    ПараметрыРегистрации.Назначение.Добавить("Документ.РасходнаяНакладная");

    Команда = ПараметрыРегистрации.Команды.Добавить();
    Команда.Представление = НСтр("ru = 'Расходная накладная (вариант1 - внешняя печатная форма)'");
    Команда.Идентификатор = "РасходнаяНакладная1";
    Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
    Команда.ПоказыватьОповещение = Истина;
    Команда.Модификатор = "ПечатьMXL";
    //Команда.ЗаменяемыеКоманды = "РасходнаяНакладная";

    Возврат ПараметрыРегистрации;
    КонецФункции
```
---
Возможно проще не создавать внешнюю печатную форму, а сначала вставить всю эту обработку в конфигурацию, поймать ее вызов в отладчике на печати из списка (с несколькими выделенными строками в журнале) и рассмотреть переданные параметры

```1c
    Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
```
---
Проще нет функции на языке 1с получить ссылку на документ из которого формы открылась и все?
Не в обиду придумал поговорку.
Умный в гору не пойдет, и 1с разработчик за ним не пойдет, он гору - вые***.
---
Например так будет выглядеть стек вызовов от нажатия кнопки печать в журнале до собственно команды печать в обработке (это Демо в БСП, рабочий вариант в конфигурации УТ, БП или УНФ возможно будет больше). Эти промежуточные шаги мы пропускаем.

В парадигме управляемых форм выполняется пакетная печать нескольких выделенных в журнале (списке) объектов. В открытии формы по каждой полученной ссылке из полученного массива объектов смысла нет. Все должно исчерпывающе заполняться и запоминаться в документе(справочнике) - объекте.
---
В массиве находятся все ссылки на выделенные элементы, теоретически даже отсортированные точно так, как они расположены в журнале(списке), за тем исключением что активный элемент может оказаться вначале, даже если он последний.

В простейшем случае ссылку на объект вы можете получить так: МассивОбъектов[0]
---
Все решил проблему сам.
1. Невозможно работать с общим реквизитом (с заполнены ранее значением из Модуля объекта). Так как он не имеет значение при открытии формы.
2. Нужно при вызове Формы передать ей значение массива где ОбъектыНазначенияМассив[0] = ссылка на документ:

```1c
    ПараметрыФормы = Новый Структура("СсылкаНаОбъект", ОбъектыНазначенияМассив[0]);
    ОткрытьФорму("ВнешняяОбработка.ПечатнаяФорма.Форма.ФормаВвода",ПараметрыФормы,,,,,Новый ОписаниеОповещения("ПечатьЗавершение", ЭтаФорма, ОбъектыНазначенияМассив), РежимОткрытияОкнаФормы.БлокироватьВесьИнтерфейс);
```

3. В открытой форме нужно написать запрос на проверку и получение значение ранее отправленного параметра:

```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Если Параметры.Свойство("СсылкаНаОбъект") Тогда
    Сообщить(Параметры.СсылкаНаОбъект);
    Объект.СсылкаНаОбъект = Параметры.СсылкаНаОбъект;
    КонецЕсли;
    КонецПроцедуры
```

4. После чего можно свободно работать с объектом - "СсылкаНаОбъект"
---
где ОбъектыНазначенияМассив[0] = ссылка на документ:А ссылку каждый раз будете прописывать в коде поиском в справочнике или по документам?
---
Всем большое спасибо за помощь. Разница в УП в том что параметры можно получать только &НаСервере.
---
Разница в УП в том что параметры можно получать только &НаСервере. Параметры формы - получаются при открытии формы ПриСозданииНаСервере.
Больше никаких других параметров вы в УФ и формах не получите.
Механизм, используемый в ОФ с реквизитами обработки - аннулирован 1С.
Менеджера объекта - у внешних обработок и отчетов нет.
И никакие параметры передавать для отладки ВПФ не надо - сделать маленькую доп.формочку, в ней задавать ссылку на документ, далее передавать её в модуль объекта обработки в Печать().
И только так работает нормальная отладка ВПФ в УФ сейчас.
А задавать ссылку в коде жестко, как у вас - тоже, конечно, можно. И каждый раз подбирать документ, менять под это код, а потом еще и не забывать отменять жесткую ссылку в рабочей версии.
---
И только так работает нормальная отладка ВПФ в УФ сейчас.
Да ладно?! Если вы не знаете как, то не нужно об этом так категорично говорить.
Хоть и офтоп, т.к. про отладку вообще не говорилось...
Любая внешняя обработка отлично отлаживается, если предварительно ее открыть в конфигураторе и открыть через файл - открыть в предприятии.
Естественно обработка должна быть загружена во внешних обработках та же самая.
Т.е. правим - сохраняем - загружаем во внешние обработки - открываем через файл - открыть - закрываем и ВСЁ. Отладка работает!
---
Любая внешняя обработка отлично отлаживается, если предварительно ее открыть в конфигураторе и открыть через файл - открыть в предприятии.Давно с УФ работали? Или вообще не работали? Это какая сейчас внешняя обработка у вас "отлично отлаживается, если предварительно ее открыть в конфигураторе и открыть через файл - открыть в предприятии"?
Вы вообще в УФ работали последние 3 года? Именно как раз 3 года назад 1С "отменили" сохранение на диск любых - внешних-внутренних-справочных обработок, - заодно аннулировав и так любимую вами "отладку с диска открытием в конфигураторе и предприятии".
Максимум - вы сможете "по-другому" отладить "внешнюю обработку", если сделаете её внутренней - втащите в конфигурацию. И то, если база серверная, просто так не пройдешься по серверным процедурам - нужно будет включать серверную же отладку, что зачастую в принципе невозможно по совсем другим причинам, не связанными с отладкой.
---
Естественно обработка должна быть загружена во внешних обработках та же самая.
Т.е. правим - сохраняем - загружаем во внешние обработкиа это вообще непонятно что - у 1С никогда не были связаны обработки в справочнике "Внешние отчеты и обработки" - с файлами-обработками на диске.
В ОФ - можно было "поймать" выполняемую обработку из справочника на диске в виде темпового файла, сейчас и это невозможно.
---
пропущу все ваши слова мимо... ОФ вообще не знаю.
посмотрите видео... специально для вас сделал!
---
так и УФ не знаете.
Не работает ваш способ, да и не работал (или нечто подобное, завязанное на чтение темпового файла обработки сразу с диска) уже с релиза 8.3.8.2137, когда и ввели эту ерунду с хранилищами и хранением обработок в BLOB в базе.
Что у вас за релиз такой волшебный, а, скорей всего - старый 8.3 наверняка, который еще на диск выгружал.
Не зря вы финты с открытием-закрытием обработки делаете, прежде чем вызвать по Печать.
Еще, поди, и отладка серверная включена, у вас же все просто - сервер туда, сервер сюда, под отладку )
---
посмотрели? Усмирили свою гордыню?
---
хоть бы ответ "вот это поворот! О_о" или "фигасе"... а язык в опу - это плохо...
---
вы просто невоспитанный человек. Про ваше видение УФ я уже сказал выше.
---
Вот только УФ и знаю... и довольно не плохо.
При открытии внешней обработки через файл - открыть, платформа сопоставляет открытый файл внешним обработкам/печформам. Дальше все просто. Человек я воспитанный. Не люблю выскочек не образованных.
---
тяжело принимать что не прав?
ЗЫ Нафлудили конечно... Можете создать тему "Отладка внешних обработок" - в этой теме это оффтоп!
---
Автору плюсую за старания и описание своего же решения.
---
так вопрос решается с гуглом один на один за 10 мин(ну час от силы, если опыта нет)...
ТС потратил на это день!
А после такого:
Если вы не можете открыть код обработки буду вам высылать скриншоты с вопросами по нему. Я не знаю как еще разжевать вопрос.)))))))))))))))))))))))))))))))))))))))))))))))))я бы вообще не отвечал!
---
Ну... Все мы были такими, когда не знали что такое управляемые формы и чем они отличаются от обычных.
Автор растет и ему не все равно на сообщество инфостарта - задал вопрос - нашел ответ - поделился информацией.
За это и плюс.
---
нет никакого решения, а выдернут кусок давно существующего )
Ссылку изначально он откуда брать будет?
---
Кто-нибудь может посоветовать где почитать статью или уроки по работе с языком запросов в 1С?
Хотелось бы что-бы кратко и понятно.
---
поиском ищите "Язык запросов 1С".
Например, тут как работать со строками в запросе "helpme1c.ru_yazyk-zaprosov-1s-8-3-dlya-nachinayushhix-programmistov-funkcii-dlya-raboty-so-strokami"
---
Спасибо, почитаю на досуге.
---
по секрету скажу - в инете есть бесплатный доступ к таким материалам.
Вот еще неплохой материал - Трюки и уловки при работе с отчетами на базе СКД.
---
я уже решил проблему. спасибо
---
Слишком поздно наверно, но решил немножко по другому. Добавил список значений в форму открытия ВПФ (как на рисунке) и в модуле формы добавил, все работает.

```1c
    &НаСервере
    Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

    Попытка
    РеквизитыОбработки.ЗагрузитьЗначения(Параметры.ОбъектыНазначения);
    Исключение
    КонецПопытки;

    СписокДокументов = РеквизитыОбработки.ВыгрузитьЗначения();
    Объект.Документ = СписокДокументов[0];
    Сообщить(Объект.Документ);

    КонецПроцедуры
```