Шаблон дополнительной обработки, работающей по расписанию

Публикация № 1489456 02.08.21

Разработка - Инструментарий разработчика - Прочие инструменты разработчика

обработка расписание фоновая

Я часто пишу обработки и уже надоело их постоянно искать, вычищать от кода и т.п. Поэтому я написал единый шаблон, со всеми заготовками для написания кода для формы или по расписанию.

Как это не странно, пришлось искать достаточно долго решение своей проблемы, а именно написать обработку для запуска по расписанию в фоне.

Если Вам требуется взять шаблон и просто написать обработку для работы по расписанию, то эта обработка именно то, что нужно.

В ней заготовлен код для написания обработки работающей &НаСервере и одна форма,для написания рабочей управляемой формы.

Данная обработка готова к использованию, просто напишите или перенесите в нее свой код.

Обработка тестировалась на версии платформы 8.3.18.1334.

Собственно говоря пользуйтесь :)

 

Модуль объекта

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

	// Команды которые можно будет выполнять из этой обработки, например открыть форму
    // Добавим команду в таблицу
    ДобавитьКоманду(ТаблицаКоманд, "Открыть форму", "1" , "ОткрытиеФормы", Истина, );
	//ДобавитьКоманду(ТаблицаКоманд, "Выполнить синхронизацию", "2" , "ВызовКлиентскогоМетода", Истина, );
	ДобавитьКоманду(ТаблицаКоманд, "Выполнить синхронизацию", "2" , "ВызовСерверногоМетода", Истина, );
        
    // Сохраним таблицу команд в параметры регистрации обработки
    РегистрационныеДанные.Вставить("Команды", ТаблицаКоманд);

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

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

Функция ПолучитьТаблицуКоманд()
    
    // Создадим пустую таблицу команд и колонки в ней
    Команды = Новый ТаблицаЗначений;

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

    // Имя нашего макета, что бы могли отличить вызванную команду в обработке печати
    Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));

    // Тут задается, как должна вызваться команда обработки
    // Возможные варианты:
    // - ОткрытиеФормы - в этом случае в колонке идентификатор должно быть указано имя формы, которое должна будет открыть система
    // - ВызовКлиентскогоМетода - вызвать клиентскую экспортную процедуру из модуля формы обработки
    // - ВызовСерверногоМетода - вызвать серверную экспортную процедуру из модуля объекта обработки
    Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));

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

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

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

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

Процедура ВыполнитьКоманду(ИдентификаторКоманды) Экспорт
Если ИдентификаторКоманды = "2" Тогда
	  ВыполнитьЧерезРегламентноеЗадание();
КонецЕсли;
КонецПроцедуры


Процедура ВыполнитьЧерезРегламентноеЗадание() Экспорт 
	//Тут мы пишем функционал, который будет выполняться на сервере
	//Например создать элемент справочника номенклатуры
КонецПроцедуры

А это форма:

/////////////СЕРВЕР
&НаСервере
Функция  Обновить()
	
	//Тут опиываем серверную проведуру
	
КонецФункции 

/////////////КЛИЕНТ

&НаКлиенте
Процедура СказатьПривет(Команда)
	  Сообщить("Привет мир.");
КонецПроцедуры

 

Скачать файлы

Наименование Файл Версия Размер
Шаблон дополнительной обработки, работающей по расписанию:

.epf 7,56Kb
106
.epf 7,56Kb 106 Скачать бесплатно

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. malikov_pro 729 02.08.21 16:35 Сейчас в теме
"пришлось искать достаточно долго решение своей проблемы" - обычное использование БСП.

Функция СведенияОВнешнейОбработке() Экспорт
	
	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.1.3.27");
	ПараметрыРегистрации.Информация = НСтр("ru = 'Отправка данных Ali'");
	ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
	ПараметрыРегистрации.Версия = "0.1";
	ПараметрыРегистрации.БезопасныйРежим = Ложь;
	
	Команда = ПараметрыРегистрации.Команды.Добавить();
	Команда.Представление = НСтр("ru = 'Отправить цены'");
	Команда.Идентификатор = "ОтправитьЦены";
	Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
	Команда.ПоказыватьОповещение = Ложь;	

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

Показать


Реквизиты обработки можно использовать как нормализаторы и сохранять их в ХранилищеНастроек

Так же нужна проверка на ПараметрыСеанса.РаботаСВнешнимиРесурсамиЗаблокирована

Опишите статьей, если будет по делу, то поддержать скачиванием не проблема, а так закрытая непонятная поделка.
2. Shvapsss 18 02.08.21 16:45 Сейчас в теме
(1)Если бы я мог сделать ее бесплатной я бы сделал.
5. tamepjlah 2 13.08.21 12:39 Сейчас в теме
(1) Поделюсь своей функцией
Функция СведенияОВнешнейОбработке() Экспорт
	
	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке(СтандартныеПодсистемыСервер.ВерсияБиблиотеки());
	ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиДополнительнаяОбработка();
	ПараметрыРегистрации.Версия = Формат(ТекущаяДата(), "ДФ=yyyy-MM-dd");
	ПараметрыРегистрации.Наименование = "Обработка """ + ЭтотОбъект.Метаданные().Представление() + """";//Отчет "Синоним"
	ПараметрыРегистрации.БезопасныйРежим = Ложь;
	ПараметрыРегистрации.Информация = ЭтотОбъект.Метаданные().Комментарий;
	
	//Разрешение = РаботаВБезопасномРежиме.РазрешениеНаИспользованиеКаталогаФайловойСистемы("", Истина, Истина, "Обмен данными");
	//ПараметрыРегистрации.Разрешения.Добавить(Разрешение);
	
	Команда = ПараметрыРегистрации.Команды.Добавить();
	Команда.Представление = НСтр("Открыть обработку");
	Команда.Идентификатор = "ОткрытьОбработку";
	Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыОткрытиеФормы();
	Команда.ПоказыватьОповещение = Истина;
	
	Команда = ПараметрыРегистрации.Команды.Добавить();
	Команда.Представление = НСтр("Выполнить обмен");
	Команда.Идентификатор = "АвтоОбмен";
	Команда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
	Команда.ПоказыватьОповещение = Истина;

	Возврат ПараметрыРегистрации;
	
КонецФункции
Показать
3. malikov_pro 729 02.08.21 16:54 Сейчас в теме
(2) Решается через вопрос модератору.
Сам обычно исходники блоками в самой статье выкладываю.
4. Shvapsss 18 02.08.21 17:39 Сейчас в теме
(3)Спасибо, опыта не было, первый раз, что то выложил.
Выложу блоками.
6. ovasiliev 20 14.08.21 08:16 Сейчас в теме
Всё как обычно. Все давно пользуются известными шаблонами, в том числе от Андрея Габца с его курса по БСП.
Но делающие в 1С первые шаги программисты, ценя свой многочасовой труд по пробиванию головой картонной стенки, каждое своё откровение норовят увековечить на инфостарте.
Приведенный в топике код, например, с Фреша сразу завернут, как кривой и сделанный ни разу не по стандарту.
7. пользователь 16.08.21 12:52
Сообщение было скрыто модератором.
...
Оставьте свое сообщение

См. также

DaJet Studio: расширенный язык запросов 1С, очереди сообщений и web сервисы Промо

Прочие инструменты разработчика Администрирование СУБД v8 Бесплатно (free)

DaJet Studio - разработка и управление скриптами, хранимыми процедурами и функциями, написанными на расширенном языке запросов 1С, а также очередями сообщений и web сервисами, основанными на использовании Microsoft SQL Server.

10.11.2020    6526    82    zhichkin    13    

Структура хранения БД в виде дерева конфигурации

Прочие инструменты разработчика Структура метаданных v8 1cv8.cf Бесплатно (free)

Структура БД конфигурации в очень похожем виде, как в самом конфигураторе.

20.04.2021    4372    173    JIEX@    2    

"Откат" данных без транзакций. Расширение для легкого возврата к "исходному" или выбранному состоянию после любых изменений данных

Сервисные утилиты Чистка базы Прочие инструменты разработчика v8 1cv8.cf Бесплатно (free)

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

06.04.2021    4159    64    Алексей Воробьев    12    

Микро сервис для работы с запросами SQL

Прочие инструменты разработчика v8 1cv8.cf Россия Бесплатно (free)

Альтернатива COM соединению с SQL базой, обработка запроса.

13.12.2020    5327    47    ivan1703    14    

Графит. Правщик 1С морд от kuzkov.info.2

Прочие инструменты разработчика v8 Бесплатно (free)

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

02.12.2020    3105    16    Steelvan    6    

Файл тестов для xUnitFor1C: тестирование проведения документов

Тестирование и исправление Прочие инструменты разработчика v8 1cv8.cf Бесплатно (free)

Тестирование проведения документов. Проверяется, что: а) документ проводится; б) движения документа после перепроведения не изменились.

30.06.2020    6208    44    q_i    16    

Нейроконструктор

Интеграция Искусственный интеллект (AI) Прочие инструменты разработчика v8 Бесплатно (free)

Изучайте нейронные сети и экспериментируйте вместе с расширением конфигурации "Нейроконструктор". Навыки программирования не требуются.

20.05.2020    13737    184    user1404129    22    

Загрузка, редактирование и установка цветовых схем (раскраски кода) в Конфигуратор и EDT

Работа с интерфейсом Прочие инструменты разработчика v8 1cv8.cf Бесплатно (free)

В современных IDE и текстовых редакторах есть удобная работа с цветовыми схемами: их можно загружать из файлов, выбирать из списка и сразу устанавливать в оболочку. К сожалению, в Конфигураторе и EDT цвета кода можно настроить только вручную. Этой разработкой хочу исправить эту проблему.

14.05.2020    13140    522    CyberCerber    39    

Универсальные инструменты 1С

Универсальные обработки Прочие инструменты разработчика Консоль запросов v8 v8::УФ 1cv8.cf Бесплатно (free)

Свободно распространяемый набор универсальных обработок и отчетов в виде расширения для разработки и поддержки, которое работает во ВСЕХ видах клиентских приложений и во всех операционных системах, которые поддерживает платформа 1С:Предприятие, кроме мобильных. Консоль запросов - консоль отчетов - консоль кода - редактор объектов базы данных - удаление помеченных объектов - поиск и удаление дублей - редактор констант - консоль заданий - групповая обработка справочников и документов - динамический список - поиск ссылок на объект - регистрация изменений для обмена данными - структура хранения базы - консоль HTTP запросов-консоль вебсервисов- консоль сравнения данных- информация о лицензиях- загрузка из табличного документа-файловый менеджер-все функции- навигатор по конфигурации-конструктор регулярных выражений-Выгрузка загрузка XML с фильтрами

21.01.2020    52436    4473    cprit    172    

Сравнение 2 х таблиц (ТаблицЗначений)

Прочие инструменты разработчика v8 1cv8.cf Россия Бесплатно (free)

Сравнение таблиц по строкам, наименование полей не обязательно одни и те же. Полезно для нахождения различий.

21.12.2007    13245    776    Legavaz    4