1.
user645801_yyyuuu123q
21.06.22 12:40 Сейчас в теме
Ребята всем привет. Не совсем знаком с УФ. Только осваиваюсь.
Есть задача регламетно вызывать Команду обработки. Чтобы не человек жал загрузить а программа сама в назначенное время
//&НаКлиенте
//Процедура Команда1(Команда)
// АдресФайла = "C:\Program Files (x86)\Выгрузка.11..epf";
//
// АдресХранилища = "";
// ПоместитьФайл(АдресХранилища, АдресФайла,,Ложь);
// ИмяОбработки = ПодключитьВнешнююОбработку(АдресХранилища);
// Форма = ПолучитьФорму("ВнешняяОбработка." + ИмяОбработки + ".Форма");
// Форма.ЗагрузитьЗаявки(Неопределено);
//КонецПроцедуры
//Процедура ВызватьКоманду()
// ИмяНужнойКоманды = "ИмяКомандыФормы"; // Тут просто имя команды как в конфигураторе.
// НужнаяКоманда = ЭтаФорма.Команды.Найти(ИмяНужнойКоманды); // Находим команду на форме
// //КакаяТоКоманда(НужнаяКоманда); // Вызываем нужную команду, подставив ее в параметры
//КонецПроцедуры
//&НаСервере
//Функция ПодключитьВнешнююОбработку(АдресХранилища)
// Возврат ВнешниеОбработки.Подключить(АдресХранилища);
//КонецФункции
Функция СведенияОВнешнейОбработке() Экспорт
ПараметрыРегистрации = Новый Структура;
ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка");
ПараметрыРегистрации.Вставить("Наименование", "Загрузка"); //Наименование обработки, которым будет заполнено наименование элемента справочника
ПараметрыРегистрации.Вставить("Версия", "1.0");
ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
ПараметрыРегистрации.Вставить("Информация", "Загрузка"); //Краткая информация по обработке, описание обработки
ПараметрыРегистрации.Вставить("ВерсияБСП", "1.2.1.4");
ТаблицаКоманд = ПолучитьТаблицуКоманд();
ДобавитьКоманду(ТаблицаКоманд,
"Пересчет текущих итогов", //представление команды в пользовательском интерфейсе
"ЗагрузитьЗаявки", //идентификатор команды; любая строка, уникальная в пределах данной обработки
"ЗагрузитьЗаявки");
ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);
Возврат ПараметрыРегистрации;
КонецФункции
Функция ПолучитьТаблицуКоманд()
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции
Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "")
НоваяКоманда = ТаблицаКоманд.Добавить();
НоваяКоманда.Представление = Представление;
НоваяКоманда.Идентификатор = Идентификатор;
НоваяКоманда.Использование = Использование;
НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение;
НоваяКоманда.Модификатор = Модификатор;
КонецПроцедуры
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыВыполненияКоманды) Экспорт
// Реализация логики команды
Если ИдентификаторКоманды = "ЗагрузитьЗаявки" Тогда
//Запуск();
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Запуск()
АдресФайла = "C:\Program Files (x86)\Выгрузка.11.epf";
АдресХранилища = "";
ПоместитьФайл(АдресХранилища, АдресФайла,,Ложь);
ИмяОбработки = ПодключитьВнешнююОбработку(АдресХранилища);
Форма = ПолучитьФорму("ВнешняяОбработка." + ИмяОбработки + ".Форма");
Форма.ЗагрузитьЗаявки(Неопределено);
КонецПроцедуры
&НаСервере
Функция ПодключитьВнешнююОбработку(АдресХранилища)
Возврат ВнешниеОбработки.Подключить(АдресХранилища);
КонецФункции
Показать
Я уже что только не попробовал.
Мою обработку прикрепил картинкой. Хочу вызвать &НаКлиенте
Процедура ЗагрузитьЗаявки(Команда)
// Форма = ПолучитьФорму("ВнешняяОбработка." + ИмяОбработки + ".Форма");
// Форма.ЗагрузитьЗаявки(Неопределено);
в 4 параметре "ДобавитьКоманду" - Использование. Нужно указывать "ВызовСерверногоМетода".
Если вы в модуле обработки, то директивы - &НаСервере и &НаКлиенте не нужно указывать.
Не удалось выполнить команду по причине:
Метод объекта не обнаружен (ЗагрузитьЗаявки).
{Справочник.ДополнительныеОтчетыИОбработки.Форма.ФормаЭлемента.Форма(1002)}:ВызватьИсключение СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
{ОбщийМодуль.ДлительныеОперацииКлиент.Модуль(63)}:ВыполнитьОбработкуОповещения(ОповещениеОЗавершении, Результат);
{Справочник.ДополнительныеОтчетыИОбработки.Форма.ФормаЭлемента.Форма(988)}:ДлительныеОперацииКлиент.ОжидатьЗавершение(ДлительнаяОперация, ОповещениеОЗавершении, ПараметрыОжидания);
{Справочник.ДополнительныеОтчетыИОбработки.Форма.ФормаЭлемента.Форма(474)}:ВыполнитьОбработкуОповещения(Обработчик, "ПродолжитьБезЗаписи");
(5) у вас в процедуру "ДобавитьКоманду" передается 4 параметром "Использование" - "ЗагрузитьЗаявки". А должно быть, как правильно написали уже - "ВызовСерверногоМетода".
Отладчиком не совсем просто попасть во внешнюю обработку.
Посмотрите это видео "Отладка внешней обработки https://www.youtube.com/watch?v=0eIy4j_CG5I " и проверьте попадаете ли Вы в это место:
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыВыполненияКоманды) Экспорт
// Реализация логики команды
Если ИдентификаторКоманды = "ЗагрузитьЗаявки" Тогда
10.
user645801_yyyuuu123q
21.06.22 13:31 Сейчас в теме
(8) Прозвучит странно но не могу попасть в отладку уже и -debug поставил и галочки поставил, и точку останова не попадаю. Вроде все ок было раньше, а теперь не заходит
(11) Попробуйте убрать директивы "&НаСервере" и "&НаКлиенте" из модуля обработки. И я бы для проверки создала форму обработки, куда поместила вызов команды.
Если ИдентификаторКоманды = "ЗагрузитьЗаявки" Тогда
ПараметрыВыполненияКоманды.ЗагрузитьЗаявки(Неопределено);
КонецЕсли;
У вас здесь должен быть вызов экспортной процедуры, где происходит загрузка заявок.
То есть:
Процедура ВыполнитьКоманду(ИдентификаторКоманды, ПараметрыВыполненияКоманды) Экспорт
Если ИдентификаторКоманды = "ЗагрузитьЗаявки" Тогда
ЗагрузитьЗаявки();
КонецЕсли;
КонецПроцедуры
Процедура ЗагрузитьЗаявки() Экспорт
//тут код по загрузке
КонецПроцедуры
23.
user645801_yyyuuu123q
21.06.22 15:07 Сейчас в теме
(22) Спасибо. Да читаю, просто с обработкой сидел не понять сколько уже голова не соображает. Спасибо что помог увидеть это.
Всем спасибо ребята. Все получилось, да Я не совсем правильно делал.
Спасибо кто откликнулся. Спасибо мужики