1с передача параметра во внешнюю обработку
1с УНФ.
Есть типовый отчет акт сверки.
Нужно этот отчет переделать. Т.е. взять копию и изменить макет, чтобы затем из покупателей этот отчет открывался и формировался, как типовый. Собственно с изменением макета проблем нет.
Но я не пойму, как в этот отчет передается контекст. В самом отчете нельзя зайти в настройки, их там нет. Как мне сказали, вроде бы его переписывали, но не в этом суть.
Я копирую отчет, он у меня появляется в отчетах покупателей, но при открытии не формируется сразу. После формирования вручную, он формируется пустым.
Тоже самое, если я делаю его внешним. Он появляется в списке отчетов у покупателя, но формируется пустым. Отчет один в один с типовым. Не могу сообразить, как передать в открываемый отчет параметры. Я вижу, что при формировании типовый отчет берет параметры из компоновщика. Но не могу найти, где заполняется компоновщик. Отчет без формы.
(0) берется форма по умолчанию. Щелкаешь на корне конфигурации Свойства и там находишь, форма отчета, форма настроек отчета, форма вариантов отчета.(0) Смотря какая конфигурация.
в БП3 это просто, есть ряд предопределённых процедур, которые вызываются в зависимости от указанных параметров.
Вот тут настройки задаются.
А вот тут полный модуль одного из отчета.
Просто я вот так делаю, в последнее время :)
. Запрос там подменяется для обхода блокировок безопасности в СКД.
. Думаю надо начать переделывать такое на СхемеЗапросоа. но это потом.
(0) И да, Утро, не обессудь.
(6) К сожалению, у меня нет формы отчета. Используется общая форма УНФ.
Даже если я не добавляю отчет в дополнительные, а просто открываю, сначала запускается процедура общей формы ПриСозданииНаСервере.
В ней есть некоторая структура - параметры, со значение Данные формы структура. К сожалению, что это за параметры и откуда берутся я не смог найти, не так давно на УФ работаю. Если открываю типовый отчет, то в параметрах есть свойства отбора, где и указан ключ и значение.
При открытии внешнего или скопированного типового отчета, в параметрах этого свойства нет. Судя по всему, нужно как-то передать это свойств в параметры. А вот как передать непонятно.
Я уже много ссылок перерыл, но в целом, выходит, что проще написать отчет с нуля. Тогда скорее всего все заработает. Но хотелось бы взять и именно типовый, с минимальными изменениями.
В некоторых случаях перед печатью документа требуется вручную указать какие-либо значения или параметры и передать в процедуру Печать() обработки. Для конфигураций линии УТ 10.3, БП 2.0 есть возможность передачи параметров, а также возможность без особых ухищрений вызвать форму обработки перед печатью с последующим выводом результата печати в штатное окно. В конфигурациях на основе Библиотеки стандартных процедур (Управление торговлей 11, Розница 2, УНФ, Бухгалтерия предприятия 3 и прочие) предусмотрены способы вызова команды печати в виде "ОткрытиеФормы" или "ВызовКлиентскогоМетода", но в этом случае вывод сформированного табличного документа необходимо реализовывать самостоятельно.
Рассмотрим один из способов передачи параметров для печати, не претендующий на оригинальность, так как используются штатные процедуры БСП.
В качестве примера выбрана печать простой накладной для УТ 11.0.9.15 - УТ 11.3 с возможностью печати со скидками или без них.
Создадим внешнюю обработку с основной формой "Форма" и реквизитом, например, "ПечататьСкидки", значение которого требуется передать в процедуру Печать() модуля обработки.
На вкладке "Параметры" укажем ключевые параметры "ДополнительнаяОбработкаСсылка" тип "СправочникСсылка.ДополнительныеОтчетыИОбработки", "ИдентификаторКоманды" тип "Строка", "ИмяФормы" тип "Строка", "ОбъектыНазначения" тип "Произвольный" (см. скриншот). Эти параметры передаются в обработку из конфигурации, а именно из диалога выбора внешних печатных форм, ключевыми в нашем случае они сделаны для упрощения обработки.
Далее определяем команду для печати или вывода печатной формы, навешиваем кнопку на форму.
Присваиваем команде обработчик действия ( код следует поместить в модуль формы )
&НаСервереБезКонтекста
Функция ЕстьОбщийМодуль ( НазваниеМодуля )
Возврат Метаданные . ОбщиеМодули . Найти ( НазваниеМодуля ) <> Неопределено;
КонецФункции
&НаСервереБезКонтекста
Функция ПолучитьВерсиюБСП ()
Возврат СтандартныеПодсистемыСервер . ВерсияБиблиотеки ();
КонецФункции
&НаКлиенте
Процедура ВыполнитьОткрытиеПечатнойФормы ( Команда )
СтандартнаяОбработка = Истина;
//Проверка на релиз БСП для универсальности.
//Общий модуль ДополнительныеОтчетыИОбработкиКлиентПереопределяемый существует в версии БСП выше 2.0.1.19
Если ЕстьОбщийМодуль ( "ДополнительныеОтчетыИОбработкиКлиентПереопределяемый" ) Тогда
Выполнить( "ДополнительныеОтчетыИОбработкиКлиентПереопределяемый.ПередВыполнениемКомандыПечатиВнешнейПечатнойФормы(ВыполняемаяКоманда.ОбъектыНазначения, СтандартнаяОбработка);" );
КонецЕсли;
Отказ = Ложь;
//Проверка на релиз БСП для универсальности.
//Если необходимо печатать из непроведённых документов, удалите этот фрагмент
ВерсияБСП = ПолучитьВерсиюБСП ();
Если СравнитьВерсии ( ВерсияБСП , "2.2.3" ) >= 0 Тогда
Выполнить( "СписокДокументов = ВыполняемаяКоманда.ОбъектыНазначения;
|НепроведенныеДокументы = ОбщегоНазначенияВызовСервера.ПроверитьПроведенностьДокументов(СписокДокументов);
|Если СтандартнаяОбработка И НепроведенныеДокументы.Количество() > 0 Тогда Отказ = Истина; КонецЕсли;
|" );
Иначе
Выполнить( "Если СтандартнаяОбработка И Не УправлениеПечатьюКлиент.ПроверитьДокументыПроведены(ВыполняемаяКоманда.ОбъектыНазначения) Тогда Отказ = Истина; КонецЕсли;" );
КонецЕсли;
Если Не Отказ Тогда
//Определение и заполнение штатных параметров для общей формы ПечатьДокументов
ПараметрыОткрытия = Новый Структура ( "ИсточникДанных, ПараметрыИсточника" );
ПараметрыОткрытия . ИсточникДанных = ВыполняемаяКоманда . ДополнительнаяОбработкаСсылка ;
ПараметрыОткрытия . ПараметрыИсточника = Новый Структура ( "ИдентификаторКоманды, ОбъектыНазначения" );
ПараметрыОткрытия . ПараметрыИсточника . ИдентификаторКоманды = ВыполняемаяКоманда . ИдентификаторКоманды ;
//Здесь передаём наши значения в модуль обработки.
//Структура для передачи параметров или значений в процедуру Печать обработки
//В процедуре печати она будет доступна в качестве первого элемента массива МассивОбъектовНазначения
ДополнительныеПараметры = Новый Структура ();
//Значения для передачи
ДополнительныеПараметры . Вставить ( "ПечататьСкидки" , ЭтаФорма . ПечататьСкидки );
//Еще какие-то значения
//ДополнительныеПараметры.Вставить("РеквизитФормы1", РеквизитФормы1);
//ДополнительныеПараметры.Вставить("РеквизитФормы2", РеквизитФормы2);
//В массиве ОбъектыНазначения будут содержаться ссылки на вызвавший форму объект (документ, справочник)
// и наши значения из реквизитов формы или обработки
ОбъектыНазначения = Новый СписокЗначений ;
ОбъектыНазначения . Добавить ( ДополнительныеПараметры );
//Ссылки на вызвавшие форму объекты
Для каждого ОбъектНазначения Из ВыполняемаяКоманда . ОбъектыНазначения Цикл
ОбъектыНазначения . Добавить ( ОбъектНазначения );
КонецЦикла; //Для каждого ОбъектНазначения Из
ПараметрыОткрытия . ПараметрыИсточника . ОбъектыНазначения = ОбъектыНазначения ;
//Вывод сформированного табличного документа в штатную форму.
ОткрытьФорму ( "ОбщаяФорма.ПечатьДокументов" , ПараметрыОткрытия );
КонецЕсли;
ЭтаФорма . Закрыть ();
В модуле обработки создаём экспортную процедуру Печать(), с параметрами согласно стандартам БСП для печати с использованием серверной процедуры примерно такого вида
// Экспортная процедура печати, вызываемая из основной программы
//
// Параметры:
// ВХОДЯЩИЕ:
// МассивОбъектовНазначения - Массив - список объектов ссылочного типа для печати документа
// Как правило, содержит один элемент с ссылкой на вызвавший форму объект (документ, справочник)
//
// ИСХОДЯЩИЕ:
// КоллекцияПечатныхФорм - ТаблицаЗначений - таблица сформированных табличных документов.
// Как правило, содержит одну строку с именем текущей печатной формы
// ОбъектыПечати - СписокЗначений - список объектов печати.
// ПараметрыВывода - Структура - Параметры сформированных табличных документов. Содержит поля:
// ДоступнаПечатьПоКомплектно - булево - по умолчанию Ложь
// ПолучательЭлектронногоПисьма
// ОтправительЭлектронногоПисьма
//
Процедура Печать ( МассивОбъектовНазначения , КоллекцияПечатныхФорм , ОбъектыПечати , ПараметрыВывода ) Экспорт
ПараметрыВывода . ДоступнаПечатьПоКомплектно = Истина;
//Получаем переданные из формы параметры для печати документа
//Из формы МассивОбъектовНазначения передаётся как список значений, поэтому преобразуем его в массив
Если ТипЗнч ( МассивОбъектовНазначения ) = Тип ( "СписокЗначений" ) Тогда
МассивОбъектовНазначения = МассивОбъектовНазначения . ВыгрузитьЗначения ();
КонецЕсли;
//Присваиваем значение по умолчанию нашему параметру, переданному из формы
ПечататьСкидки = Истина;
//Смотрим, что содержится в первом элементе массива МассивОбъектовНазначения
//Если это структура, значит есть дополнительные параметры, почти как в прежних конфигурациях
Если ТипЗнч ( МассивОбъектовНазначения [ 0 ]) = Тип ( "Структура" ) Тогда
ДополнительныеПараметры = МассивОбъектовНазначения [ 0 ];
Если ДополнительныеПараметры . Свойство ( "ПечататьСкидки" ) Тогда
ПечататьСкидки = ДополнительныеПараметры . ПечататьСкидки ;
КонецЕсли;
//А теперь структуру из массива объектов можно удалить, больше она там не нужна
МассивОбъектовНазначения . Удалить ( 0 );
КонецЕсли;
//Дальше используем штатный функционал БСП
Если УправлениеПечатью . НужноПечататьМакет ( КоллекцияПечатныхФорм , "РасходнаяНакладнаяСДиалогомВыбора" ) Тогда
УправлениеПечатью . ВывестиТабличныйДокументВКоллекцию ( КоллекцияПечатныхФорм , "РасходнаяНакладнаяСДиалогомВыбора" , "Расходная накладная" , СформироватьПечатнуюФормуНакладная ( МассивОбъектовНазначения , ОбъектыПечати , ПечататьСкидки ));
КонецЕсли;
Реализация функции СформироватьПечатнуюФормуНакладная() зависит от конкретной задачи и здесь не рассматривается.
В экспортной функции СведенияОВнешнейОбработке() необходимо указать использование команды печати "ОткрытиеФормы" с модификатором "ПечатьMXL".
Подробнее смотрите статью Внешние обработки и отчеты 1С:Предприятие 8.2 или прилагаемый пример обработки.
//Определяем команды для печати формы
ДобавитьКоманду ( ТаблицаКоманд ,
"Расходная накладная (с диалогом выбора)" , // Представление команды в пользовательском интерфейсе
"РасходнаяНакладнаяСДиалогомВыбора" , // Уникальный идентификатор команды
"ОткрытиеФормы" , // Использование команды
Истина, // Показывать оповещение.
"ПечатьMXL" // Дополнительный модификатор команды.
);
В
Если всё сделано правильно, после регистрации внешней печатной формы в справочнике "ДополнительныеОбработки" она будет доступна из формы списка или документа в меню "Дополнительные печатные формы". После выбора из списка ВПФ на экране появится форма обработки.
Формы:УФ.
Есть внешняя обработка.Нужно в форму обработки передать некоторые данные при открытии.
В модуле формы код подключения.
То есть открыв нужный документ я вижу значок "внешней обработки", нажав на который у меня откроется форма этой обработки.
В самом модуле формы обработки, в процедуре "ВыполнитьКоманду" я пишу что-то вроде
Тут ошибка:ДатаДокумента - поле не найдено.Как бы не передались.
Ладно,ок.В конструкторе формы обработки, на закладке "параметры" добавляю параметры,с теми же наименованиями ключей, что и указывал при создании структуры параметров.
Для передачи параметров в форму внешней обработки всегда нужно указывать эти же параметры на вкладке "Параметры"?
Что я не так сделал?
Как обратиться к реквизиту формы документа из внешней обработки
Добрый день) Появился такой вопрос - в модуле формы обработки пишу запрос к документу(нахожу.
Передача параметров обработки
Есть обработка. Выбираю на ней кучу флажков, параметров выполнения этой обработки. Также выбираю.
Создание внешней печатной формы с возможностью передачи параметров
Пытаюсь переделать внешнюю печатную форму из 1С 8.2 под версию 8.3, в связи с чем возникают.
Передача параметров из управляемой формы обработки в управляемую форму другой обработки
Есть 2 обработки, в одной из них(Назовём её первой) есть кнопка, при нажатии на которую открывается.
Какая версия платформы? Странно. Проверил, у меня нормально все передается.
Какая версия платформы?
1С:Предприятие 8.3 (8.3.15.1869)
Никаких доп.параметров нет.Вот хочу чисто при создании на сервере передать дату основного документа из которого открывается доп.обработка. OverDozero, передай уникальный ключ в открытиеОткрытьФорму("ВнешняяОбработка.ТЕСТ.Форма.ФормаОбработки",Па раметрыОткрытия,ЭтаФорма);
Та же беда.Поле не найдено.
Че-то никак не пойму..а если написать:
Сообщить(Параметры), то будет выведено "ДанныеФормыСтруктура"
Вот что показывает отладка(см.скриншот)
И получается так, что процедура "ПриСозданииНаСервере" вызывается 2 раза.
Первая точка в процедуре "ВыполнитьКоманду" не открывается,а сразу "ПриСозданииНаСервере"
И вот в этом случае "параметры" - данные формы структура, где дату можно вытащить из "объектыНазначения"
А вот потом идет выполнение процедуры "ВыполнитьКоманду",в которой уже передаются в открываемую форму мои параметры(см.скриншот)
OverDozero, Может попробовать ДанныеФормыВЗначение и вытащить ссылку и через нее дату в параметры открытия? Может попробовать ДанныеФормыВЗначение и вытащить ссылку и через нее дату в параметры открытия?В какой момент то?Вот именно что сначала выполняется "ПриСозданииНаСервере", когда я даже еще не зашел в клиентскую процедуру, где у меня формируется структура параметров открытия.
Именно тут у меня она срубается,так как в Параметры я не передавал еще ничего!
Не говнокод, а говнокодище получается.
Добавлено через 3 минуты
Мало инфы. Это внешнаяя обработка для БСП ?
Добавлено через 39 секунд
Что написано в функции СведенияоВнешнейОбработке()
Добавлено через 1 минуту
Если форма уже открыта, ПриСозданииНаСервере уже не вызывается. (и даже если вызывается, то все уже давно инициализированно)
Загрузка формы внешней обработки
Добрый вечер. 1с 8.1, создаю регламентное задание, которое теоретически должно открывать форму.
1с 7.7 Вызов процедуры внешней обработки из другой внешней обработки
Здравствуйте всем! Вопрос такой: Есть внешняя обработка Обработка1. Обработка1 запускается через.
Добавление данных в форму списка из формы выбора внешней обработки
Добрый день, поставили задачу создать внешнюю форму. Форма должна содержать два поля выбора, в.
Передача параметров через список параметров формы
Hi all! У кого есть опыт передачи параметров через заголовочный список параметров формы? .
Передача параметров формы
Доброго времени суток, господа программисты. Нужно написать две программы, используя для этого HTML.
Внешняя обработка (Печатная форма), содержащая: Необязательный реквизит «ДополнительныеПараметры» произвольного типа, которому будут передаваться дополнительные параметры примитивного типа в виде структуры.
Аналогично можно передать параметр во внешнюю печатную форму через реквизит «ДополнительныеПараметры».
В модуле обработки для использования этих параметров используем следующий код вида:
Код 1C v 8.х
Настроим передачу параметров внешней печатной форме
Для этого создаем новый элемент справочника «Внешние обработки» и заполняем его, как показано на рисунке ниже
В табличной части открываем Параметры обработки и вводим значения параметров
Разместил: E_Migachev Версии: | 8.x | 8.2 УП | Дата: 12.11.2012 Прочитано: 43363
Похожие FAQ
17 правил для составления оптимального ЗАПРОСа к данным базы 1С 42
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ Cодержимое указанного ниже веб-сайта в этом приложении блокируется. Aboutsecurity_1cv8c.exe 1
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже веб-узла в э Google maps : вывод точек на карту и режим панорамы 7
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора ZIP-архив Создание 0
Для того чтобы записать файлы в ZIP-архив необходимо выполнить несколько простых действий: * Создать архив с необходимыми параметрами, в который будут помещаться файлы. * Поместить в архив необходимые файлы. * Записать архив. Создание объекта За ZIP-архив Чтение 0
Для того чтобы прочитать файлы из ZIP-архива необходимо выполнить несколько простых действий: - Открыть необходимый архив - Распаковать файлы Создание объекта ЧтениеZIPФайла можно осуществить двумя путями - создать инициализированный объект или Посмотреть все результаты поиска похожих
Еще в этой же категории
Добавление дополнительных отчетов и обработок в тонком клиенте БП 3.0, ЗУП 3.0, УТ 11 7
Любой отчет и обработку можно подключить пользователям как дополнительные отчеты или обработки, вот например пункт в БП - Банк: Добавление происходит через далее Дополнительные отчеты и обработки , в списке нажмите Создать и Выберите Файл Как выгрузить все дополнительные обработки и отчеты в каталог? 6
Выгрузить все дополнительные обработки и отчеты в каталог всего за пару кликов. Простейшая обработка в один реквизит и команду. Набросайте элементы на форму и вставьте код в модуль формы обработки. И без всякого скачивания. Работоспособность п Добавление дополнительных отчетов и обработок в управляемом приложении 5
Для добавления отчета или обработки нужно в модуле добавить Функцию СведенияОВнешнейОбработке() Функция СведенияОВнешнейОбработке() Экспорт // Объявим переменную, в которой мы сохраним и вернем "наружу" необходимые данные ПараметрыРегистрации Пример создания внешней печатной формы для управляемого приложения 4
Пример создания внешней печатной формы АКТа для Бухгалтерии 3.0 1. В конфигураторе 1C Предприятия 8 создаем внешнюю обработку (Файл- Новый- Внешняя обработка), задаем имя. 2. В модуле обработки пишем код. Постараюсь его максимально комментироват Внешние обработки, печатные формы, обработки по заполнению табличных частей 3
Справочник «Внешние обработки, печатные формы, обработки по заполнению табличных частей» содержит список произвольных обработок, произвольных отчетов, дополнительных печатных форм, обработок для заполнения ТЧ объектов, обработок, подключаемых к отч Посмотреть все в категории Внешние печатные формы, отчеты и обработки заполнения
Ключевые слова и Изображения
Слова упорядочены по частоте использования в тексте
Изображения
Читайте также: