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

13.08.21

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Бесплатно
Шаблон дополнительной обработки, работающей по расписанию:
.epf 7,56Kb
167
167 Скачать бесплатно

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

А это форма:

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

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

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

 

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

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

12000 руб.

02.09.2020    171738    960    403    

924

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    14293    108    46    

108

Инструментарий разработчика Программист Платформа 1С v8.3 1C:Бухгалтерия Платные (руб)

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    27260    96    48    

137

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    17264    43    15    

75

Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

15000 руб.

10.11.2023    11888    45    27    

67

SALE! %

Инструментарий разработчика Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Управляемые формы 1C:Бухгалтерия Россия Платные (руб)

Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.

4800 3840 руб.

14.01.2013    191172    1152    0    

920

Инструментарий разработчика Платформа 1С v8.3 1C:Бухгалтерия 1С:ERP Управление предприятием 2 Платные (руб)

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    1114    2    0    

5

Инструментарий разработчика Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    104115    244    100    

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

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

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

Показать


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

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

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

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