Как зарегистрировать внешнюю обработку. Розница 2.0 (Управляемые формы)
Помогите правильно зарегистрировать внешнюю обработку. Если быть более точным, то именно зарегистрировать в режиме предприятия (Розница 2.0, Управляемые формы) получается, обработка появляется в нужной нам подсистеме "Подсистемы.Маркетинг"... НО как сделать чтобы она запустилась, точнее чтобы запустилась её форма?
При попытке запуска пишет:
Не удалось выполнить команду "ПечатьЭтикетокИЦенников???"
Код модуля внешней обработки
При попытке запуска пишет:
Не удалось выполнить команду "ПечатьЭтикетокИЦенников???"
Код модуля внешней обработки
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура;
МассивНазначений = Новый Массив;
ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка");
МассивНазначений.Добавить("Подсистемы.Маркетинг");
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
ПараметрыРегистрации.Вставить("Наименование", "Печать этикеток и ценников. Дополнительно");
ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
ПараметрыРегистрации.Вставить("Версия", "1.5");
ПараметрыРегистрации.Вставить("Информация", "Печать этикеток и ценников. Дополнительно");
ТаблицаКоманд = ПолучитьТаблицуКоманд();
ДобавитьКоманду(ТаблицаКоманд, "ПечатьЭтикетокИЦенников???", "ПечатьЭтикетокИЦенников", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
Возврат ПараметрыРегистрации;
КонецФункции
Функция ПолучитьТаблицуКоманд()
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры
// <Описание функции>
//
// Параметры
// <Параметр1> - <Тип.Вид> - <описание параметра>
// <продолжение описания параметра>
// <Параметр2> - <Тип.Вид> - <описание параметра>
// <продолжение описания параметра>
//
// Возвращаемое значение:
// <Тип.Вид> - <описание возвращаемого значения>
//
//Функция ВыполнитьКоманду(ИдентификаторКоманды) Экспорт
//
// ЭтотОбъект.ПолучитьФорму("Форма").Открыть();
// //Сообщить("ок");
//КонецФункции // ВыполнитьКоманду()
ПоказатьПо теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2) markovki, вот пример
Функция СведенияОВнешнейОбработке() Экспорт
// Объявим переменную, в которой мы сохраним и вернем "наружу" необходимые данные
ПараметрыРегистрации = Новый Структура;
// Объявим еще одну переменную, которая нам потребуется ниже
МассивНазначений = Новый Массив;
// Первый параметр, который мы должны указать - это какой вид обработки системе должна зарегистрировать.
// Допустимые типы: ДополнительнаяОбработка, ДополнительныйОтчет, ЗаполнениеОбъекта, Отчет, ПечатнаяФорма, СозданиеСвязанныхОбъектов
ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
//Теперь нам необходимо передать в виде массива имен, к чему будет подключена наша ВПФ
//Имейте ввиду, что можно задать имя в таком виде: Документ.* - в этом случае обработка будет подключена ко всем документам в системе,
//которые поддерживают механизм ВПФ
//МассивНазначений.Добавить("Документ.АвансовыйОтчет");
МассивНазначений.Добавить("Документ.РеализацияТоваровУслуг");
ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
// Теперь зададим имя, под которым ВПФ будет зарегистрирована в справочнике внешних обработок
ПараметрыРегистрации.Вставить("Наименование", "РеализацияТоваровУслуг(внешняя)");
// Зададим право обработке на использование безопасного режима. Более подробно можно узнать в справке к платформе (метод УстановитьБезопасныйРежим)
ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
// Следующие два параметра играют больше информационную роль, т.е. это то, что будет видеть пользователь в информации к обработке
ПараметрыРегистрации.Вставить("Версия", "3.0");
ПараметрыРегистрации.Вставить("Информация", "Внешняя печатная форма");
// Создадим таблицу команд (подробнее смотрим ниже)
ТаблицаКоманд = ПолучитьТаблицуКоманд();
// Добавим команду в таблицу
//ДобавитьКоманду(ТаблицаКоманд, "АвансовыйОтчет", "АвансовыйОтчет", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
ДобавитьКоманду(ТаблицаКоманд, "Акт", "Акт", "ВызовСерверногоМетода", Истина, "ПечатьMXL");
// Сохраним таблицу команд в параметры регистрации обработки
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
// Теперь вернем системе наши параметры
Возврат ПараметрыРегистрации;
КонецФункции
Функция ПолучитьТаблицуКоманд()
// Создадим пустую таблицу команд и колонки в ней
Команды = Новый ТаблицаЗначений;
// Как будет выглядеть описание печатной формы для пользователя
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
// Имя нашего макета, что бы могли отличить вызванную команду в обработке печати
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
// Тут задается, как должна вызваться команда обработки
// Возможные варианты:
// - ОткрытиеФормы - в этом случае в колонке идентификатор должно быть указано имя формы, которое должна будет открыть система
// - ВызовКлиентскогоМетода - вызвать клиентскую экспортную процедуру из модуля формы обработки
// - ВызовСерверногоМетода - вызвать серверную экспортную процедуру из модуля объекта обработки
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
// Следующий параметр указывает, необходимо ли показывать оповещение при начале и завершению работы обработки. Не имеет смысла при открытии формы
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
// Для печатной формы должен содержать строку ПечатьMXL
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
// Добавляем команду в таблицу команд по переданному описанию.
// Параметры и их значения можно посмотреть в функции ПолучитьТаблицуКоманд
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры
Показать
(4) markovki, Пробуйте так. Только у меня вариант для отчета
Функция СведенияОВнешнейОбработке() Экспорт
РегистрационныеДанные = Новый Структура;
РегистрационныеДанные.Вставить("Наименование", "Отчет по спецификациям");
РегистрационныеДанные.Вставить("БезопасныйРежим", Ложь);
РегистрационныеДанные.Вставить("Версия", "1.0");
РегистрационныеДанные.Вставить("ВерсияБСП", "1.2.1.4");
РегистрационныеДанные.Вставить("ХранилищеВариантов", "ХранилищеВариантовОтчетов");
РегистрационныеДанные.Вставить("Вид", "ДополнительныйОтчет");//Здесь как раз и пишем, дополнительный отчет или обработка
РегистрационныеДанные.Вставить("Информация", "Отчет по спецификациям");
ТЗКоманд = Новый ТаблицаЗначений;
ТЗКоманд.Колонки.Добавить("Идентификатор");
ТЗКоманд.Колонки.Добавить("Представление");
ТЗКоманд.Колонки.Добавить("Модификатор");
ТЗКоманд.Колонки.Добавить("ПоказыватьОповещение");
ТЗКоманд.Колонки.Добавить("Использование");
СтрокаКоманды = тзКоманд.Добавить();
СтрокаКоманды.Идентификатор = Новый УникальныйИдентификатор;
СтрокаКоманды.Представление = "Отчет по спецификациям";
СтрокаКоманды.ПоказыватьОповещение = Истина;
СтрокаКоманды.Использование = "ОткрытиеФормы"; //Это наверное что вы и спрашивали
РегистрационныеДанные.Вставить("Команды", ТЗКоманд);
Возврат РегистрационныеДанные;
КонецФункции
ПоказатьФункция ПолучитьТаблицуКоманд()
// Создадим пустую таблицу команд и колонки в ней
Команды = Новый ТаблицаЗначений;
// Как будет выглядеть описание печатной формы для пользователя
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
// Имя нашего макета, что бы могли отличить вызванную команду в обработке печати
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
// Тут задается, как должна вызваться команда обработки
// Возможные варианты:
// - ОткрытиеФормы - в этом случае в колонке идентификатор должно быть указано имя формы, которое должна будет открыть система
// - ВызовКлиентскогоМетода - вызвать клиентскую экспортную процедуру из модуля формы обработки
// - ВызовСерверногоМетода - вызвать серверную экспортную процедуру из модуля объекта обработки
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
// Следующий параметр указывает, необходимо ли показывать оповещение при начале и завершению работы обработки. Не имеет смысла при открытии формы
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
// Для печатной формы должен содержать строку ПечатьMXL
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции
ПоказатьПроцедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
// Добавляем команду в таблицу команд по переданному описанию.
// Параметры и их значения можно посмотреть в функции ПолучитьТаблицуКоманд
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры
Показать
У меня проблема с подключением внешнего отчета.
Регистрируется отчет и даже работает, но
Не могу его "подключить" в БП 3.0.26.6 к подсистеме. Только к документам. Как быть?
В форме списка документов появляется дополнительный отчет, а для подсистемы не выводится.
Подскажите, это ограничение БП?
Регистрируется отчет и даже работает, но
Не могу его "подключить" в БП 3.0.26.6 к подсистеме. Только к документам. Как быть?
МассивНазначений = Новый Массив;
//МассивНазначений.Добавить("Документ.РеализацияТоваровУслуг");
//МассивНазначений.Добавить("Документ.РасходныйКассовыйОрдер");
МассивНазначений.Добавить("Подсистемы.ПокупкиИПродажи");
В форме списка документов появляется дополнительный отчет, а для подсистемы не выводится.
Подскажите, это ограничение БП?
Все оказалось проще, при подключении отчета необходимо выбрать Раздел, затем, если нет отображения в выбранном Разделе(как было у меня) нужно в Настройках Панели Действий выбрать отображение "Дополнительные отчеты".
Проблемы была в том, что в Разделах не отображались Дополнительные отчеты.
Да, глупо, да, потрачено много времени, но зато опыт))))
Проблемы была в том, что в Разделах не отображались Дополнительные отчеты.
Да, глупо, да, потрачено много времени, но зато опыт))))
(13) mie24, есть такое.. Что надо и в настройках программы , а потом в командный интерфейс.. а потом в панель действий.. а там ещё настроить список..
Короче смех и грех.. мои знакомые оценили это.. как лазать через пятое место))) Но что поделать.. как сделали)))
Короче смех и грех.. мои знакомые оценили это.. как лазать через пятое место))) Но что поделать.. как сделали)))
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот