Skip to content

Добавить функции сохранения параметров функции в ХранилищеЗначений для последующего вызова этой функции через консоль запросов с сохранёнными параметрами. #1200

@YevgeniYChe

Description

@YevgeniYChe

Существует проблема
Возможно это уже реализовано и по незнанию/невежеству изобретаю велосипед.
Мне пригождаются функции сохранения параметров функции в момент отладки и их загрузка в консоли кода для последующего запуска и отладки функции. Удобна когда параметры это большие таблицы, которые руками не ввести.
Возможно они пригодятся и другим.
Добавил себе в модуль ИТК

Функция СОХ(Пар1, Пар2 = Неопределено, Пар3 = Неопределено, Пар4 = Неопределено, 
			Пар5 = Неопределено, Пар6 = Неопределено, Пар7 = Неопределено, Пар8 = Неопределено) Экспорт 
	
	УстановитьПривилегированныйРежим(Истина);
	
	СтруктураПараметров = Новый Структура("Пар1, Пар2, Пар3, Пар4, Пар5, Пар6, Пар7, Пар8", Пар1, Пар2, Пар3, Пар4, Пар5, Пар6, Пар7, Пар8);
	ХранилищеОбщихНастроек.Сохранить("ИТКПараметрыФункции", "ИТК_СохраненныеПараметры", СтруктураПараметров, ,"ИТКПараметрыФункции");
	Возврат "Сохранено успешно"
	
КонецФункции
Функция ЗАГ(Пар1, Пар2 = Неопределено, Пар3 = Неопределено, Пар4 = Неопределено, 
			Пар5 = Неопределено, Пар6 = Неопределено, Пар7 = Неопределено, Пар8 = Неопределено) Экспорт 
	
	УстановитьПривилегированныйРежим(Истина);
	
	СтруктураПараметров = ХранилищеОбщихНастроек.Загрузить("ИТКПараметрыФункции", "ИТК_СохраненныеПараметры", , "ИТКПараметрыФункции");
	Пар1 = СтруктураПараметров.Пар1;
	Пар2 = СтруктураПараметров.Пар2;
	Пар3 = СтруктураПараметров.Пар3;
	Пар4 = СтруктураПараметров.Пар4;
	Пар5 = СтруктураПараметров.Пар5;
	Пар6 = СтруктураПараметров.Пар6;
	Пар7 = СтруктураПараметров.Пар7;
	Пар8 = СтруктураПараметров.Пар8;
	
	Возврат "Загружено успешно";
	
КонецФункции

В момент отладки функции сохраняю все её параметры в хранилище функцией СОХ. А затем в консоли кода загружаю эти же параметры в том порядке как они в определении функции. Мне помогает отлаживать экспортные функции с сохранёнными ранее параметрами.
Пример кода в консоли кода:

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

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

// Загрузи параметры и запускай с ними отлаживаемую функцию
ИТК.ЗАГ(ТаблицаКомиссий, ТаблицаКоэффициентовНоменклатуры); 
ВнешняяОбработка.ДополнитьТаблицуКомиссийКоэффициентами(ТаблицаКомиссий, ТаблицаКоэффициентовНоменклатуры);

Заранее извиняюсь если занял ваше время и подобное уже есть.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions