Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 мар 2024, 10:36

Добавление внешней обработки в БП 3.0 ЗУП 3.0 и т.д

Автор boobzx, 01 янв 2014, 22:03

0 Пользователей и 1 гость просматривают эту тему.

boobzx

Всех с новым  годом! А теперь к вопросу.. нужно добавить внешнюю обработку в саму базу. Пользуюсь управляемыми формами (ЗУП 3.0, и БП 3.0). При добавлении внешней обработки выдоет ошибку.   
{ОбщийМодуль.ДополнительныеОтчетыИОбработки.Модуль(2266)}: Метод объекта не обнаружен (СведенияОВнешнейОбработке)
РегистрационныеДанные = ВнешнийОбъект.СведенияОВнешнейОбработке();


В интеренете нашел примерный код что нужно там писать.. Обработка добавилась но не открывается вообще нигде. Скорее всего не тот код написал в этой функции.. хотелось бы знать, что там нужно писать, и откуда ее потом открывать...
1С Хрень изобрели для доп обработок и отчетов.. в прошлых редакция все просто было.. а тот хрень еще надо писать.

Besart

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

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

ПараметрыРегистрации.Вставить("Вид", "ЗаполнениеОбъекта");
    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);
ПараметрыРегистрации.Вставить("Наименование", "Возврат с комиссии для продажи");
ПараметрыРегистрации.Вставить("Версия", "1.14");
ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина);
ПараметрыРегистрации.Вставить("Информация",
"Заполнение ТЧ документа РеализацияТоваровУслуг из товара, отданного на комиссию этому контрагенту." + Символы.ПС
+ "Автоматическое открытие формы документа ВозвратТовараОтКлиента и его заполнение." + Символы.ПС
+ "Версия 1.1  -- возможность работать с общими упаковками." + Символы.ПС
+ "Версия 1.11 -- группировка товара по ном. и хар. в дин. списке." + Символы.ПС
+ "Версия 1.12 -- Документ ""Возврат товара"" не сохраняется, но открывается и заполняется его форма" + Символы.ПС
+ "(workaround для ошибки установки привилегированного режима при записи документа). " + Символы.ПС
+ "Версия 1.13 -- Упаковку ищем теперь по единице измерения ""упак""" + Символы.ПС
+"Версия 1.14 - Дата у документа ""Возврат товара"" устанавливается на одну секунду меньше даты документа реализации"+Символы.ПС
);

    ТаблицаКоманд = ПолучитьТаблицуКоманд();

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

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

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

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

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


в сети можно найти много примеров и скопипастить оттуда

boobzx

Все. с Печатной формой разобрался. Теперь не могу понять что нужно для того-что бы в Зуп 3.0 отобразилась внешняя обработка. В общем. Суть. написал обработку. она должна просто открыться и пользователь там нажмет кнопку ок.

Описание процедуры Функция СведенияОВнешнейОбработке() Экспорт

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

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

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

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

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


Но эта дополнительная обработка нигде не появляется.. жал правые кнопки и та в меню действия искал её.. ничего нет..

Besart

обработка Функция СведенияОВнешнейОбработке() Экспорт
РегистрационныеДанные = Новый Структура;
РегистрационныеДанные.Вставить("Наименование", "Обмен УТ -> КА");
РегистрационныеДанные.Вставить("БезопасныйРежим", Ложь);
РегистрационныеДанные.Вставить("Вид", "ДополнительнаяОбработка");
РегистрационныеДанные.Вставить("Версия", "1.0");
РегистрационныеДанные.Вставить("Информация", "Обработка для запуска УниверсальныйОбменДаннымиXML в автоматическом режиме"
);

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

строкаКоманды = тзКоманд.Добавить();
строкаКоманды.Идентификатор = Идентификатор_Команды;
строкаКоманды.Представление = "Открыть форму обмена УТ -> КА";
строкаКоманды.ПоказыватьОповещение = Истина;
строкаКоманды.Использование = "ОткрытиеФормы";

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

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

отчет
Функция СведенияОВнешнейОбработке() Экспорт

РегистрационныеДанные = Новый Структура;
    РегистрационныеДанные.Вставить("Наименование", "Отчет по реализациям v1");
    РегистрационныеДанные.Вставить("БезопасныйРежим", Истина);
    РегистрационныеДанные.Вставить("Версия", "1.0.3");
   
    //ДополнительнаяОбработка
    //ДополнительныйОтчет
    //ЗаполнениеОбъекта
    //Отчет
    //ПечатанаяФорма
    //СозданиеСвязанныхОбъектов
    РегистрационныеДанные.Вставить("Вид", "ДополнительныйОтчет");
   
    РегистрационныеДанные.Вставить("Информация", "Отчет по реализациям (управляемое приложение) для конфигураций ""Управление торговлей 8.2"" редакция 11");
   
    ///////////// команды /////////////////////////
    тзКоманд = Новый ТаблицаЗначений;
    тзКоманд.Колонки.Добавить("Идентификатор");
    тзКоманд.Колонки.Добавить("Представление");
    тзКоманд.Колонки.Добавить("Модификатор");
    тзКоманд.Колонки.Добавить("ПоказыватьОповещение");
    тзКоманд.Колонки.Добавить("Использование");
   
    строкаКоманды = тзКоманд.Добавить();
    строкаКоманды.Идентификатор = "ОтчетПоРеализациямV1";
    строкаКоманды.Представление = "Отчет по реализациям v1";
    строкаКоманды.ПоказыватьОповещение = Истина;
строкаКоманды.Модификатор = "";
    строкаКоманды.Использование = "ОткрытиеФормы";
   
    РегистрационныеДанные.Вставить("Команды", тзКоманд);
   
    ////////////// назначение (в каких объектах используется) /////////////////////////
    //для печ.форм, заполнения, ввода свазанных объектов
    //МассивНазначений = Новый Массив;
    //МассивНазначений.Добавить("Документ.*"); // все документы назначаются
    //МассивНазначений.Добавить("Документ.ПоступлениеТоваровУслуг");
    //МассивНазначений.Добавить("Документ.ЗаказПокупателя");
    //РегистрационныеДанные.Вставить("Назначение", МассивНазначений);
   
    Возврат РегистрационныеДанные;
               
КонецФункции

boobzx

Не могу понять.. вставил код обработки в свой.. Идентификатор_Команды.. это я так понимаю как назваться должна команда? Все добавилось... а откуда ее вызвать? Где она должна появиться... не врубаюсь..
Добавлено: 06 янв 2014, 13:55


Вот хрень придумали..
Добавлено: 06 янв 2014, 14:15


Я не пойму... читаю. нужно указать размещение..и потом там её открывать.. где указывать размещение? у меня в размещение пусто

Besart

вы уже начинаете мне надоедать, чем задавать такие вопрсоы давно бы уже нашли решение методом научного тыка

boobzx

Не находится.. Но все равно спасибо! У меня как раз в этом окошке.. где у Вас перечислены разделы.. пусто.. вообще ничего нет.. А нормального мануала как этим пользоваться нигде нет.. все так и делают.. методом научного тыка.. Картинка
Добавлено: 06 янв 2014, 21:07


уж сам понимаю.. так тупить:).. Аж стыдно.. но не врубаюсь.. почему не видно ничего в разделе.. У меня просто ЗУП 3.0. А вот попробовал в БП 3.0.. там все отработало! Видать зуп сырой еще... или руки кривые..

Besart

попробуйте без этого кода:
  МассивНазначений = Новый Массив;
    МассивНазначений.Добавить("Документ.ВедомостьНаВыплатуЗарплатыВБанк");


    ПараметрыРегистрации.Вставить("Назначение", МассивНазначений);

boobzx

Угу. Уже давно сделал. Вообще скопировал все из Вашего примера... эффект тот же. В отладчике чуть позже попробую посмотреть что он пишет в это окно при открытии выбора на подсистемы.
Добавлено: 06 янв 2014, 22:33


Наверное зуп глючит.. // Выбор разделов
Разделы = Новый СписокЗначений;
Для Каждого СтрокаТаблицы Из Объект.Разделы Цикл
Разделы.Добавить(СтрокаТаблицы.Раздел);
КонецЦикла;

Код при нажатии на выбор разделов.. "Объект.Разделы Цикл" там пусто.. ничего нет..

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск