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

Хранилище

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

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



> Виконати фонове завдання на сервері з обробки          
Slon747 Подменю пользователя
сообщение 12.08.24, 9:51
Сообщение #1

Говорящий
***
Группа: Пользователи
Сообщений: 85
Спасибо сказали: 5 раз
Рейтинг: 5

Процедура СформироватьНалоговыеНакладные() знаходиться в модулі менеджера обробки та працює.
Я хочу перенести її в модулі об'екта, але тоді отримую помилку "Метод обїекта не обнаружен".
Як це зробити?
&НаСервере
Функция ВыполнитьФоновоеЗаданиеНаСервере(ПараметрыЗапуска, УникальныйИдентификатор)
    
    НаименованиеЗадания = "Формування податкових накладних";
    ВыполняемыйМетод    = "Обработки.ФормированиеНалоговыхНакладных_Новая.СформироватьНалоговыеНакладные";
    
    ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
    ПараметрыВыполнения.НаименованиеФоновогоЗадания = НаименованиеЗадания;
    ПараметрыВыполнения.ЗапуститьВФоне = Истина;
    ПараметрыВыполнения.Вставить("ИдентификаторФормы", УникальныйИдентификатор);
    
    СтруктураФоновогоЗадания = ДлительныеОперации.ВыполнитьВФоне(ВыполняемыйМетод, ПараметрыЗапуска, ПараметрыВыполнения);
    
    Возврат СтруктураФоновогоЗадания;
    
КонецФункции

AnryMc Подменю пользователя
сообщение 12.08.24, 10:10
Сообщение #2

Оратор
Иконка группы
Группа: Местный
Сообщений: 409
Спасибо сказали: 115 раз
Рейтинг: 117.5

Slon747 @ Сегодня, 10:51 * ,

1) А зачем?
2) Волшебное слово: "Экспорт"
3) А надо ли: "&НаСервере"?
4) Её можно вызвать только для СУЩЕСТВУЮЩЕГО объекта (открыт или получен)
    
    ОбработкаОбъект = РеквизитФормыВЗначение("Объект");
    ОбработкаОбъект.МояПроцедураВМодулеОбъекта();


Сообщение отредактировал AnryMc - 12.08.24, 10:12

Slon747 Подменю пользователя
сообщение 12.08.24, 10:33
Сообщение #3

Говорящий
***
Группа: Пользователи
Сообщений: 85
Спасибо сказали: 5 раз
Рейтинг: 5

AnryMc,
1. Затем, что модуль менеджера не сохраняется во внешней обработке, а только в конфигурации.
2. Если бы не было Экспорт, то и из модуля менеджера не выполнялась бы
4. Речь про выполнение в фоне через "ДлительныеОперации.ВыполнитьВФоне"

Vofka Подменю пользователя
сообщение 12.08.24, 11:18
Сообщение #4

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13985
Из: Киев
Спасибо сказали: 4554 раз
Рейтинг: 3684.3

Не уверен лучшее ли это решение, но что если создать где-то в общем модуле процедуру, в которой будет что-то типа:

Обработка = Обработки.ФормированиеНалоговыхНакладных_Новая.ПолучитьОбъект();
Обработка.СформироватьНалоговыеНакладные();


И, соответственно, вместо
ВыполняемыйМетод    = "Обработки.ФормированиеНалоговыхНакладных_Новая.СформироватьНалоговыеНакладные";


сделать вызов процедуры общего модуля.

Сообщение отредактировал Vofka - 12.08.24, 11:18

Slon747 Подменю пользователя
сообщение 12.08.24, 11:45
Сообщение #5

Говорящий
***
Группа: Пользователи
Сообщений: 85
Спасибо сказали: 5 раз
Рейтинг: 5

Vofka @ Сегодня, 12:18 * ,

В бухгалтерии BAS сделано так:
    ВыполнитьБезФоновогоЗадания = Не ПараметрыВыполнения.БезРасширений
        И (ОбщегоНазначенияКлиентСервер.РежимОтладки() Или ПараметрыВыполнения.ЗапуститьНеВФоне
            Или (ЕстьФоновыеЗаданияВФайловойИБ() И Не ПараметрыВыполнения.ЗапуститьВФоне)
            Или Не ВозможноВыполнитьВФоне(ИмяПроцедуры));

Функция ВозможноВыполнитьВФоне(ИмяПроцедуры)
    
    ЧастиИмени = СтрРазделить(ИмяПроцедуры, ".");
    Если ЧастиИмени.Количество() = 0 Тогда
        Возврат Ложь;
    КонецЕсли;
    
    ЭтоВнешняяОбработка = (ВРег(ЧастиИмени[0]) = "ВНЕШНЯЯОБРАБОТКА");
    ЭтоВнешнийОтчет = (ВРег(ЧастиИмени[0]) = "ВНЕШНИЙОТЧЕТ");
    Возврат Не (ЭтоВнешняяОбработка Или ЭтоВнешнийОтчет);

КонецФункции


Тем самым без изменения типовой логики общих модулей (или создания своих собственных с нужными процедурами) это работать не будет, т.к. ожидает или отчет или обработку.
off: Боже, как я не навижу УФ

AnryMc Подменю пользователя
сообщение 12.08.24, 14:49
Сообщение #6

Оратор
Иконка группы
Группа: Местный
Сообщений: 409
Спасибо сказали: 115 раз
Рейтинг: 117.5

Slon747 @ Сегодня, 12:45 * ,

Кусок рабочего кода:
&НаКлиенте
Процедура Печать(ИдентификаторКоманды, ОбъектыНазначенияМассив) Экспорт
    
    ДлительнаяОперация=ПечатьВФоне(ОбъектыНазначенияМассив[0]);
    ПараметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект);
    ПараметрыОжидания.ВыводитьПрогрессВыполнения = Истина;
    ПараметрыОжидания.Интервал = 10; //Небольшое значение - для теста
    
    ДлительныеОперацииКлиент.ОжидатьЗавершение(
    ДлительнаяОперация,
    Новый ОписаниеОповещения("ПечатьЗавершение", ЭтотОбъект),
    ПараметрыОжидания);

КонецПроцедуры

&НаСервере
Функция ПечатьВФоне(СсылкаНаОбъект)
    ОбъектВПФ=РеквизитФормыВЗначение("Объект");
    ////////////СсылкаНаВПФ=Справочники.ДополнительныеОтчетыИОбработки.НайтиПоРеквизиту("ИмяОбъекта","ВПФФоном");
    СсылкаНаВПФ=Параметры.ДополнительнаяОбработкаСсылка;
    Макет=ОбъектВПФ.ПолучитьМакет("МакетПечати");
    
    //Это что вызываем
    ПараметрыЗадания = Новый Структура;
    ПараметрыЗадания.Вставить("ИмяОбработки", "ВнешняяОбработка.ВПФФономИсторияОбъекта");
    ПараметрыЗадания.Вставить("ИмяМетода", "Печать");
    ПараметрыЗадания.Вставить("ПараметрыВыполнения", Новый Структура("СсылкаНаОбъект,Макет", СсылкаНаОбъект,Макет));
    ПараметрыЗадания.Вставить("ЭтоВнешняяОбработка", Истина);
    ПараметрыЗадания.Вставить("ДополнительнаяОбработкаСсылка",СсылкаНаВПФ);
    
    //Это как вызываем
    ПараметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияВФоне(УникальныйИдентификатор);
    ПараметрыВыполнения.НаименованиеФоновогоЗадания = "Запуск длительного формирования ВПФ";;
    ПараметрыВыполнения.ЗапуститьВФоне = Истина;
    ПараметрыВыполнения.ОжидатьЗавершение=0.1;    //Нет смысла ждать!!!
    
    //запускаем выполнение фонового задания
    Возврат ДлительныеОперации.ВыполнитьВФоне("ДлительныеОперации.ВыполнитьПроцедуруМодуляОбъектаОбработки", ПараметрыЗадания, ПараметрыВыполнения);
КонецФункции // ЗапуститьФормированиеВПФ()


&НаКлиенте
Процедура ПечатьЗавершение(Результат, ДополнительныеПараметры) Экспорт
     Если Результат = Неопределено Тогда
        Возврат;
    ИначеЕсли Результат.Статус = "Ошибка" Тогда
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю(Результат.ПодробноеПредставлениеОшибки);
    ИначеЕсли Результат.Статус = "Выполнено" Тогда
        ТабДок=ПолучитьИзВременногоХранилища(Результат.АдресРезультата);
        ТабДок.Показать();
    КонецЕсли;    
КонецПроцедуры


Обратите внимание на:
//запускаем выполнение фонового задания
Возврат ДлительныеОперации.ВыполнитьВФоне("ДлительныеОперации.ВыполнитьПроцедуруМодуляОбъектаОбработки", ПараметрыЗадания, ПараметрыВыполнения);

//Это что вызываем
ПараметрыЗадания = Новый Структура;
ПараметрыЗадания.Вставить("ИмяОбработки", "ВнешняяОбработка.ВПФФономИсторияОбъекта");
ПараметрыЗадания.Вставить("ИмяМетода", "Печать");
ПараметрыЗадания.Вставить("ПараметрыВыполнения", Новый Структура("СсылкаНаОбъект,Макет", СсылкаНаОбъект,Макет));
ПараметрыЗадания.Вставить("ЭтоВнешняяОбработка", Истина);
ПараметрыЗадания.Вставить("ДополнительнаяОбработкаСсылка",СсылкаНаВПФ);

Пример можно скачать: Внешня печатная форма "История объекта фоном"



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

Slon747 Подменю пользователя
сообщение 12.08.24, 15:54
Сообщение #7

Говорящий
***
Группа: Пользователи
Сообщений: 85
Спасибо сказали: 5 раз
Рейтинг: 5

AnryMc, спасибо, почти заработало.
Только не понял, как передать параметры в выполняемую функцию.
В моем изначальном коде так:
    ПараметрыЗапуска = Новый Структура("Период", Период);
//тут передаю параметры для использования в функции СформироватьНалоговыеНакладные() менеджера обработки
СтруктураФоновогоЗадания = ВыполнитьФоновоеЗаданиеНаСервере(ПараметрыЗапуска, УникальныйИдентификатор);

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

КонецФункции


Цитата(AnryMc @ 12.08.24, 15:49) *
Пример можно скачать: Внешня печатная форма "История объекта фоном"

А где взять пароль на архив?

Сообщение отредактировал Vofka - 12.08.24, 18:56

AnryMc Подменю пользователя
сообщение 12.08.24, 16:13
Сообщение #8

Оратор
Иконка группы
Группа: Местный
Сообщений: 409
Спасибо сказали: 115 раз
Рейтинг: 117.5

Цитата(Slon747 @ 12.08.24, 16:54) *
А где взять пароль на архив?


Прочитать правила форума 32542460.gif

Правила и условия публикации сообщений на форуме

Пункт: 14

Заодно: Возможность поблагодарить отвечающего

Сообщение отредактировал AnryMc - 12.08.24, 16:16

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

Slon747 Подменю пользователя
сообщение 12.08.24, 17:07
Сообщение #9

Говорящий
***
Группа: Пользователи
Сообщений: 85
Спасибо сказали: 5 раз
Рейтинг: 5

Цитата(AnryMc @ 12.08.24, 17:13) *
Правила и условия публикации сообщений на форуме


Прикол в том, что я был на странице правил и поиском по строке "пароль" не нашел это слово.
Это потому что гласные в слове "Пароль" на странице правил - в английской раскладке.

Vofka Подменю пользователя
сообщение 12.08.24, 18:57
Сообщение #10

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13985
Из: Киев
Спасибо сказали: 4554 раз
Рейтинг: 3684.3

Цитата(Slon747 @ 12.08.24, 18:07) *
Прикол в том, что я был на странице правил и поиском по строке "пароль" не нашел это слово.
Это потому что гласные в слове "Пароль" на странице правил - в английской раскладке.

Зачем же так сделано... mamba.gif

AnryMc Подменю пользователя
сообщение 13.08.24, 13:40
Сообщение #11

Оратор
Иконка группы
Группа: Местный
Сообщений: 409
Спасибо сказали: 115 раз
Рейтинг: 117.5

Slon747 @ Вчера, 18:07 * ,

Там не только "а", но и "о" - тоже

Slon747 Подменю пользователя
сообщение 13.08.24, 15:27
Сообщение #12

Говорящий
***
Группа: Пользователи
Сообщений: 85
Спасибо сказали: 5 раз
Рейтинг: 5

AnryMc @ Сегодня, 14:40 * ,
ну я и сказал "гласные"

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

AnryMc Подменю пользователя
сообщение 13.08.24, 16:53
Сообщение #13

Оратор
Иконка группы
Группа: Местный
Сообщений: 409
Спасибо сказали: 115 раз
Рейтинг: 117.5

Vofka @ Вчера, 19:57 * ,


Строка поиска GOOGLE
Цитата


ответ:
Цитата
ПРАВИЛА (редакция 2 от 08.04.2016)
Украинский форум 1С
https://pro1c.org.ua › ...
фирму 1С. 14. Файлы, которые скачаны у нас из раздела Хранилище вероятнее всего будут зaпаpолены. Пaрoль на архив:
ХХХХХХХХХХХХХХХ
Цитата
. Так же такой паpоль может ...


Сообщение отредактировал AnryMc - 13.08.24, 16:55

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


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

 

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