Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Помогите с передачей параметров во внешнюю обработку          
kosalex Подменю пользователя
сообщение 22.04.15, 14:16
Сообщение #1

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Доброго времени суток! Есть внешняя обработка, и конфа БП КОРП (РФ), УФ. Обработку подключил, по кнопке "Печать" в документе "ТребованияНакладная" моя кнопка появляется.

Мне нужно по нажатию на добавленной кнопке открыть форму настроек, форма в самой обработке. У нее есть реквизиты "Объект" и т.п. Мне нужно чтобы в Объект попала ссылка на документ с которого была нажата кнопка. Как это сделать, что то ума не приложу.

Нужно при открытии формы "Настройки" передавать эту ссылку или как и где? ПОДСКАЖИТЕ !

Вок какой код у меня есть в модуле объекта обработки, как я понимаю этот код нужен чтобы прописать мою внешнюю печатную форму в базе.
Функция СведенияОВнешнейОбработке() Экспорт

    ПараметрыРегистрации = Новый Структура;
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.ТребованиеНакладная");
    МассивНазначений.Добавить("Документ.ПоступлениеИзПереработки");

    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", "Отчет о списании материалов ""ТребованияНакладной"" и ""ПоступлениеИзПереработки""");
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
    ПараметрыРегистрации.Вставить("Информация","by kos");
    
    ТаблицаКоманд = ПолучитьТаблицуКоманд();

    ДобавитьКоманду(ТаблицаКоманд,
        "Отчет о списании материалов",
        "0",
        "ОткрытиеФормы",
        Истина
    );

    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);

    Возврат ПараметрыРегистрации;
КонецФункции

Функция ПолучитьТаблицуКоманд()
  Команды = Новый ТаблицаЗначений;
  Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
  Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
  Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
  Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
  Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
  Возврат Команды;
КонецФункции

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
  НоваяКоманда = ТаблицаКоманд.Добавить();
  НоваяКоманда.Представление = Представление;
  НоваяКоманда.Идентификатор = Идентификатор;
  НоваяКоманда.Использование = Использование;
  НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
  НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры


kosalex Подменю пользователя
сообщение 22.04.15, 15:23
Сообщение #2

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

ПЛИЗ!ПОМОГИТЕ! Как моей обработке указать с какого документа она вызывается?

logist Подменю пользователя
сообщение 22.04.15, 15:48
Сообщение #3

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Вероятно по аналогии с
  МассивНазначений.Добавить("Документ.ПоступлениеИзПереработки");


Signature
Личные бесплатные консультации не даю, для этого есть форум!

kosalex Подменю пользователя
сообщение 22.04.15, 16:02
Сообщение #4

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Цитата(logist @ 22.04.15, 16:48) *
Вероятно по аналогии с
  МассивНазначений.Добавить("Документ.ПоступлениеИзПереработки");


Так это же для того чтобы обработка добавилась в спр. "ДополнительныеОтчетыИОбработки", когда уже на форме самого документа нажимаю "Печать", вижу свою печатную форму, нажимаю по ней, должна появиться моя форма настроек, в которой реквизит "СсылкаНаДокумент" дожен заполниться ссылкой на документ. Далее на форме настройки есть кнопка "Печать" по ее нажатию пользователь должен увидеть табличный документ.

Как это сделать?

logist Подменю пользователя
сообщение 22.04.15, 16:24
Сообщение #5

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

В форме, ПриОткрытии открываете выбор ссылки. а затем стандартно обрабатываете результат выбора.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

kosalex Подменю пользователя
сообщение 22.04.15, 17:40
Сообщение #6

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Цитата(logist @ 22.04.15, 17:24) *
В форме, ПриОткрытии открываете выбор ссылки. а затем стандартно обрабатываете результат выбора.

что значит открываете выбор ссылки? Вывести доки пользователю чтобы он выбрал ?

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

logist Подменю пользователя
сообщение 22.04.15, 17:57
Сообщение #7

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Внешние обработки не писал для УФ, а вот в печатной форме, в модуле обработки должна быть экспортная процедура Печать, и ее первый параметр это массив ссылок, который содержит ссылки документов которые были выделены пользователем в списке до нажатия на команду. Если ссылка одна, то это 0-й элемент массива.
Как это во внешней "обработке" хз smile.gif


Signature
Личные бесплатные консультации не даю, для этого есть форум!

kosalex Подменю пользователя
сообщение 23.04.15, 7:00
Сообщение #8

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Цитата(logist @ 22.04.15, 18:57) *
Внешние обработки не писал для УФ, а вот в печатной форме, в модуле обработки должна быть экспортная процедура Печать, и ее первый параметр это массив ссылок, который содержит ссылки документов которые были выделены пользователем в списке до нажатия на команду. Если ссылка одна, то это 0-й элемент массива.
Как это во внешней "обработке" хз smile.gif



У меня есть обработка. Вот код модуля объекта:
Функция СведенияОВнешнейОбработке() Экспорт

    ПараметрыРегистрации = Новый Структура;
    
    МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.ПоступлениеИзПереработки");
    МассивНазначений.Добавить("Документ.ТребованиеНакладная");

    ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
    ПараметрыРегистрации.Вставить("Наименование", "Отчет о списании материалов ""ТребованияНакладной"" и ""ПоступлениеИзПереработки""");
    ПараметрыРегистрации.Вставить("Версия", "1.0");
    ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
    ПараметрыРегистрации.Вставить("Информация","by kos");
    
    ТаблицаКоманд = ПолучитьТаблицуКоманд();

    ДобавитьКоманду(ТаблицаКоманд,
        "Отчет о списании материалов",
        "ФормаНастройки",
        "ОткрытиеФормы",
        Истина
    );

    ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);

    Возврат ПараметрыРегистрации;
КонецФункции

Функция ПолучитьТаблицуКоманд()
  Команды = Новый ТаблицаЗначений;
  Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
  Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
  Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
  Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
  Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
  Возврат Команды;
КонецФункции

Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
  НоваяКоманда = ТаблицаКоманд.Добавить();
  НоваяКоманда.Представление = Представление;
  НоваяКоманда.Идентификатор = Идентификатор;
  НоваяКоманда.Использование = Использование;
  НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
  НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры


Функция Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт;
    ПараметрыВывода.ДоступнаПечатьПоКомплектно = Истина;
    
    ТабДок = Новый ТабличныйДокумент;
    
    Макет = ЭтотОбъект.ПолучитьМакет("Макет");
    
    СсылкаНаОбъект = МассивОбъектов[0];
    
    Если НЕ ПечататьКолонкиСчетЦенаСумма Тогда
        
        ДанныеДляЗаполнения = ПолучитьДанныеДляЗаполнения(СсылкаНаОбъект);
    
        Склад = СсылкаНаОбъект.Склад;
    
        ОтветственныйИДолжность = ПолучитьОтветственногоИДолжность(Склад);
        
        Ответственный = ОтветственныйИДолжность.Получить(0).ФизическоеЛицо1;
        
        Организация = СсылкаНаОбъект.Организация;
        
        ДолжностьОтветственного = ОтветственныйИДолжность.Получить(0).Должность;
        
        ГенДир = ПолучитьГенДир(Организация);

        ОбластьПустаяСтрока = Макет.ПолучитьОбласть("ПустаяСтрока1");
        ОбластьШапкаДокумента = Макет.ПолучитьОбласть("ШапкаДокумента1");
        ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы1");
        ОбластьСтрокаДанных = Макет.ПолучитьОбласть("СтрокаДанных1");
        ОбластьПодвал = Макет.ПолучитьОбласть("Подвал1");
        
        ОбластьШапкаДокумента.Параметры.ДатаДокумента = СсылкаНаОбъект.Дата;
        ОбластьШапкаДокумента.Параметры.Склад = СсылкаНаОбъект.Склад;
        
        ТабДок.Вывести(ОбластьШапкаДокумента);
        ТабДок.Вывести(ОбластьПустаяСтрока);
        ТабДок.Вывести(ОбластьШапкаТаблицы);
        
        //Вывод в ТЧ
        Для Каждого Строка Из ДанныеДляЗаполнения Цикл
        ЗаполнитьЗначенияСвойств(ОбластьСтрокаДанных.Параметры,Строка);
        ТабДок.Вывести(ОбластьСтрокаДанных);
        КонецЦикла;
        
        ОбластьПодвал.Параметры.ФИОДиректор = ГенДир;
        ОбластьПодвал.Параметры.ДолжностьОтветственногоЛица = ДолжностьОтветственного;
        ОбластьПодвал.Параметры.ФИООтветственногоЛица = Ответственный;
        
        ТабДок.Вывести(ОбластьПустаяСтрока);
        ТабДок.Вывести(ОбластьПодвал);
        
    Иначе
                
        ДанныеДляЗаполнения = ПолучитьДанныеДляЗаполнения(СсылкаНаОбъект);
    
        Склад = СсылкаНаОбъект.Склад;
        
        ОтветственныйИДолжность = ПолучитьОтветственногоИДолжность(Склад);
        
        Ответственный = ОтветственныйИДолжность.Получить(0).ФизическоеЛицо1;
        
        Организация = СсылкаНаОбъект.Организация;
        
        ДолжностьОтветственного =  ОтветственныйИДолжность.Получить(0).Должность;
        
        ГенДир = ПолучитьГенДир(Организация);

        ОбластьПустаяСтрока = Макет.ПолучитьОбласть("ПустаяСтрока1");
        ОбластьШапкаДокумента = Макет.ПолучитьОбласть("ШапкаДокумента2");
        ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы2");
        ОбластьСтрокаДанных = Макет.ПолучитьОбласть("СтрокаДанных2");
        ОбластьИТОГО = Макет.ПолучитьОбласть("Итого2");
        ОбластьПодвал = Макет.ПолучитьОбласть("Подвал2");
        
        ОбластьШапкаДокумента.Параметры.ДатаДокумента = СсылкаНаОбъект.Дата;
        ОбластьШапкаДокумента.Параметры.Склад = СсылкаНаОбъект.Склад;
        
        ТабДок.Вывести(ОбластьШапкаДокумента);
        ТабДок.Вывести(ОбластьПустаяСтрока);
        ТабДок.Вывести(ОбластьШапкаТаблицы);
        
        ИтогоСумма = 0;
        //Вывод в ТЧ
        Для Каждого Строка Из ДанныеДляЗаполнения Цикл
        ЗаполнитьЗначенияСвойств(ОбластьСтрокаДанных.Параметры,Строка);
        ИтогоСумма = ИтогоСумма + Строка.Сумма;
        ТабДок.Вывести(ОбластьСтрокаДанных);
        КонецЦикла;
        
        
        ОбластьИТОГО.Параметры.ИтогоСумма = ИтогоСумма;
        
        ТабДок.Вывести(ОбластьИТОГО);
        
        ОбластьПодвал.Параметры.ФИОДиректор = ГенДир;
        ОбластьПодвал.Параметры.ДолжностьОтветственногоЛица = ДолжностьОтветственного;
        ОбластьПодвал.Параметры.ФИООтветственногоЛица = Ответственный;
        
        ТабДок.Вывести(ОбластьПустаяСтрока);
        ТабДок.Вывести(ОбластьПодвал);
    КонецЕсли;
Возврат ТабДок;
КонецФункции


Мне нужно, чтобы показывалась форма этой обработки после того как пользователь в документе "ТребованияНакладная" нажимает на кнопку "Печати". Когда форма открывается ей нужно передать "СсылкаНаОбъект" и далее с формы обработки нажимаем кнопку "Печать" - формируем печатный документ и выводим его.

kosalex Подменю пользователя
сообщение 23.04.15, 8:57
Сообщение #9

Ветеран
*******
Группа: Пользователи
Сообщений: 805
Спасибо сказали: 14 раз
Рейтинг: 0

Решил вопрос, позже отпишу код

le0nard_ Подменю пользователя
сообщение 19.03.21, 16:54
Сообщение #10

Молчаливый
*
Группа: Пользователи
Сообщений: 1
Спасибо сказали: 1 раз
Рейтинг: 0

Цитата(kosalex @ 23.04.15, 9:57) *
Решил вопрос, позже отпишу код


Спасибо что рассказали ответ

Сообщение отредактировал Vofka - 20.03.21, 14:02

Спасибо сказали: denis84,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 23:42
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!