Шаблон дополнительной обработки с сохранением параметров

25.09.25

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

Шаблон дополнительной обработки, используется для начала разработки внешних обработок.

Файлы

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

Наименование Скачано Купить файл
Шаблон дополнительной обработки с сохранением параметров
.epf 14,36Kb
2 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

При разработке новых внешних обработок постоянно приходится настраивать одни и те же механизмы, поэтому сделал такой шаблон дополнительной обработки. Что он умеет:

1) Шаблон внешней обработки с правильным заполнением.

2) Хранение настроек обработки в реквизите ДополнительнаяОбработка.ХранилищеНастроек

3) Хранение настроек обработки в ХранилищеОбщихНастроек

4) Запуск обработки средствами БСП.

5) Запуск обработки в фоне средствами БСП

6) Хранение паролей

7) Открытие журнала регистрации для просмотра событий обработки.

 

1) Шаблон внешней обработки с правильным заполнением.

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

 

2) Хранение настроек обработки в реквизите ДополнительнаяОбработка.ХранилищеНастроек
 

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

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


 

3) Хранение настроек обработки в ХранилищеОбщихНастроек
 

&НаСервереБезКонтекста
Процедура СохранитьНастройкиХранилищеОбщихНастроекНаСервере(ИмяФормы, ПараметрыОбработки)
	
	ОбщегоНазначения.ХранилищеОбщихНастроекСохранить(ИмяФормы, "ПараметрыОбработки", ПараметрыОбработки);

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

&НаСервереБезКонтекста
Функция ПолучитьНастройкиИзХранилищаОбщихНастроекНаСервере(ИмяФормы)
	
	Возврат ОбщегоНазначения.ХранилищеОбщихНастроекЗагрузить(ИмяФормы, "ПараметрыОбработки");
	
КонецФункции

4) Запуск обработки средствами БСП.
 

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

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

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

5) Запуск обработки в фоне средствами БСП
 

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

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

6) Хранение паролей
 

&НаСервереБезКонтекста
Процедура СохранитьНастройкиВБезопасноеХранилище(СсылкаНаСправочник, СохраняемоеЗначение)
	
	ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(СсылкаНаСправочник, СохраняемоеЗначение, "ПараметрПароль");
	
КонецПроцедуры

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

7) Открытие журнала регистрации для просмотра событий обработки.
 

&НаКлиенте
Процедура ОткрытьЖурналРегистрации(Команда)

	//  Отбор - Структура:
	//      Пользователь              - Строка
	//                                - СписокЗначений - имя или список пользователей информационной базы.
	//      СобытиеЖурналаРегистрации - Строка, Массив - идентификатор события.
	//      ДатаНачала                - Дата           - начало интервала отображаемых событий.
	//      ДатаОкончания             - Дата           - конец интервала отображаемых событий.
	//      Данные                    - Произвольный   - данные любого типа.
	//      Сеанс                     - СписокЗначений - список выбираемых сеансов.
	//      Уровень                   - Строка, Массив - представление уровня важности события журнала регистрации.
	//      ИмяПриложения             - Массив         - массив идентификаторов приложения.
	
	Отбор = Новый Структура;
	//Отбор.Вставить("Пользователь", "Администратор");
	//Отбор.Вставить("Уровень", "Ошибка");
	Отбор.Вставить("ДатаНачала", НачалоДня(ТекущаяДата()));
	Отбор.Вставить("ДатаОкончания", КонецДня(ТекущаяДата()));

	МассивСобытий = Новый Массив;
	МассивСобытий.Добавить("ПримерДополнительнойОбработки.ВыполнитьКоманду");
	МассивСобытий.Добавить("ПримерДополнительнойОбработки.СтартВыполнения");
	Отбор.Вставить("СобытиеЖурналаРегистрации", МассивСобытий);
	
	ЖурналРегистрацииКлиент.ОткрытьЖурналРегистрации(Отбор, ЭтаФорма);

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

 

Проверено на следующих конфигурациях и релизах:

  • Бухгалтерия предприятия, редакция 3.0, релизы 3.0.183.24
  • Управление торговлей, редакция 11, релизы 11.5.24.52

Вступайте в нашу телеграмм-группу Инфостарт

Дополнительная обработка Внешняя обработка

См. также

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

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

15500 руб.

02.09.2020    214930    1182    413    

1051

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

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

8400 руб.

20.08.2024    41681    230    117    

215

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

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    27024    69    30    

98

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

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

16000 руб.

10.11.2023    19162    76    39    

92

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

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

9500 руб.

17.05.2024    38338    137    55    

178

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданым 1С, справке синтакс-помошника и проверки синтаксиса.

9900 руб.

25.08.2025    5036    8    10    

16

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

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

5000 руб.

27.12.2024    3834    7    0    

12
Для отправки сообщения требуется регистрация/авторизация