Выгрузка запроса с заполненными параметрами в файл для консоли запросов

04.11.21

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

Модуль для выгрузки запроса позволит сократить время при переносе запроса и его параметров в консоль запросов.

1. Добавляем общий модуль АБ_ВыгрузкаЗапроса в свою конфигурацию, можно попробовать через расширение. 

 

 

 
 Код общего модуля

 


// АБ_ВыгрузкаЗапроса.ЗаписатьЗапросыВФайлXML(Запрос)
///////////////////////////////////////////////////////////////////////////
// ФУНКЦИИ РАБОТЫ С XML-ФАЙЛАМИ

// Записывает Запросы(текст и параметры запроса) в файл XML.
//
// Параметры:
//	ИмяФайла - имя файла XML.
//	Объект - передаваемый объект обработки.
//
Функция ЗаписатьЗапросыВФайлXML(знач ОбъектЗапроса, ИмяФайла = "C:\Запросы\TekZapros.q1c") Экспорт
	ФайлXML = Новый ЗаписьXML;
	ФайлXML.ОткрытьФайл(ИмяФайла);
	ФайлXML.ЗаписатьОбъявлениеXML();
	ФайлXML.ЗаписатьНачалоЭлемента("querylist");
	// выгрузка запроса.
	Для Сч =1 По 2 Цикл
		ФайлXML.ЗаписатьНачалоЭлемента("query");
		Если Сч = 1 Тогда
			ФайлXML.ЗаписатьАтрибут("name", "Запрос");
		Иначе	
			ФайлXML.ЗаписатьАтрибут("name", "ИсходныйЗапрос");
		КонецЕсли; 
		
			ФайлXML.ЗаписатьНачалоЭлемента("text");
			ТекстЗапроса = ОбъектЗапроса.Текст;
			Для Счетчик = 1 По СтрЧислоСтрок(ТекстЗапроса) Цикл
				ПереносСтр	= Символы.ВК + Символы.ПС;
				ТекСтрока 	= СтрПолучитьСтроку(ТекстЗапроса, Счетчик);
				ФайлXML.ЗаписатьТекст(ТекСтрока);
				ФайлXML.ЗаписатьБезОбработки(ПереносСтр);
			КонецЦикла;
			ФайлXML.ЗаписатьКонецЭлемента();
			// Запись параметров в XML-файл.
			Если ОбъектЗапроса.Параметры.Количество() > 0 Тогда 
				ФайлXML.ЗаписатьНачалоЭлемента("parameters");
				Для каждого ТекПараметр из ОбъектЗапроса.Параметры Цикл 
						ИмяПараметра		= ТекПараметр.Ключ;
						ТипПараметра		= СтрЗаменить(Строка(ТипЗнч(ТекПараметр.Значение))," ","");//ТекПараметр.Тип;   !!!
						ЗначениеПараметра			= ТекПараметр.Значение;
						
						ФайлXML.ЗаписатьНачалоЭлемента("parameter");
						ФайлXML.ЗаписатьАтрибут("name", ИмяПараметра);
						Если ТипПараметра = "Списокзначений" Тогда 
							
							ТЗ = Новый ТаблицаЗначений;
							тз.Колонки.Добавить("Значения");
							
							Для каждого ТекЗнач Из ЗначениеПараметра Цикл
								НовСтрТЗ = тз.Добавить();
								НовСтрТЗ.Значения = ТекЗнач.Значение;						
							КонецЦикла; 

							
							ФайлXML.ЗаписатьАтрибут("type", "ТаблицаЗначений");
							ЗаписатьТаблицуЗначенийВXML(ФайлXML, ТЗ);  //!!!

						ИначеЕсли ТипПараметра = "Массив" Тогда              //!!!
							
							ТЗ = Новый ТаблицаЗначений;
							тз.Колонки.Добавить("Значения");
							
							Для каждого ТекЗнач Из ЗначениеПараметра Цикл
								НовСтрТЗ = тз.Добавить();
								НовСтрТЗ.Значения = ТекЗнач;						
							КонецЦикла; 
							
							
							ФайлXML.ЗаписатьАтрибут("type", "ТаблицаЗначений");   //!!!
							ЗаписатьТаблицуЗначенийВXML(ФайлXML, ТЗ);  //!!!
						ИначеЕсли ТипПараметра = "Таблицазначений" Тогда
							ФайлXML.ЗаписатьАтрибут("type", "ТаблицаЗначений");
		
							ЗаписатьТаблицуЗначенийВXML(ФайлXML, ЗначениеПараметра);
						ИначеЕсли ТипПараметра = "Моментвремени" Тогда
							ФайлXML.ЗаписатьАтрибут("type", "МоментВремени");
							ЗаписатьМоментВремениВXML(ФайлXML, ЗначениеПараметра);
						ИначеЕсли ТипПараметра = "Граница" Тогда
							ФайлXML.ЗаписатьАтрибут("type", ТипПараметра);
							ЗаписатьГраницуВXML(ФайлXML, ЗначениеПараметра);
						Иначе
							ИмяТипа = ИмяТипаИзЗначения(ЗначениеПараметра); 
							ФайлXML.ЗаписатьАтрибут("type", ИмяТипа);
							ФайлXML.ЗаписатьАтрибут("value", XMLСтрока(ЗначениеПараметра));
						КонецЕсли;	
						ФайлXML.ЗаписатьКонецЭлемента();
				КонецЦикла;	
				ФайлXML.ЗаписатьКонецЭлемента();
			КонецЕсли;	
		ФайлXML.ЗаписатьКонецЭлемента();
    КонецЦикла;
	ФайлXML.ЗаписатьКонецЭлемента();
	ФайлXML.Закрыть();
	
	вСохранитьЗапросыВФайл(ОбъектЗапроса,СтрЗаменить(ИмяФайла,"q1c","sel"));
	
	Возврат Истина;
КонецФункции

// Записывает строки списка значений в Файл XML.
//
// Параметры:
//	ФайлXML - записьXML.
//	Значение - список значений.
//
Процедура ЗаписатьСписокЗначенийВXML(ФайлXML, Значение)
	Если ТипЗнч(Значение) <> Тип("СписокЗначений") Тогда 
		Возврат;
	КонецЕсли;	
	
	Для каждого СтрСписка из Значение Цикл
		ЗначениеЭлементаСписка	= СтрСписка.Значение;
		// Определение имени типа.
		ИмяТипа = ИмяТипаИзЗначения(ЗначениеЭлементаСписка); 
		
		ФайлXML.ЗаписатьНачалоЭлемента("item");
			ФайлXML.ЗаписатьАтрибут("type", ИмяТипа);
			ФайлXML.ЗаписатьАтрибут("value", XMLСтрока(ЗначениеЭлементаСписка));
		ФайлXML.ЗаписатьКонецЭлемента();
	КонецЦикла;	
КонецПроцедуры	



// Записывает строки списка значений в Файл XML.
//
// Параметры:
//	ФайлXML - записьXML.
//	Значение - список значений.
//
Процедура ЗаписатьМассивВXML(ФайлXML, Значение)
	Если ТипЗнч(Значение) <> Тип("Массив") Тогда 
		Возврат;
	КонецЕсли;	
	
	Для каждого СтрСписка из Значение Цикл
		ЗначениеЭлементаСписка	= СтрСписка;
		// Определение имени типа.
		ИмяТипа = ИмяТипаИзЗначения(ЗначениеЭлементаСписка); 
		
		ФайлXML.ЗаписатьНачалоЭлемента("item");
			ФайлXML.ЗаписатьАтрибут("type", ИмяТипа);
			ФайлXML.ЗаписатьАтрибут("value", XMLСтрока(ЗначениеЭлементаСписка));
		ФайлXML.ЗаписатьКонецЭлемента();
	КонецЦикла;	
КонецПроцедуры	



// Записывает ячейки таблицы значений в Файл XML.
//
// Параметры:
//	ФайлXML - записьXML.
//	Значение - таблица значений.
//
Процедура ЗаписатьТаблицуЗначенийВXML(ФайлXML, Значение)
	Если ТипЗнч(Значение) <> Тип("ТаблицаЗначений") Тогда 
		Возврат;
	КонецЕсли;	
	
	
	КолКолонок 	= Значение.Колонки.Количество();
	КолСтрок	= Значение.Количество();
	
	ФайлXML.ЗаписатьАтрибут("colcount", XMLСтрока(КолКолонок));
	ФайлXML.ЗаписатьАтрибут("rowcount", XMLСтрока(КолСтрок));

	
	Для СтрокаИндекс = 0 по КолСтрок - 1 Цикл
		Для КолонкаИндекс = 0 по КолКолонок - 1 Цикл 
			ЗначениеЭлементаСписка	= Значение.Получить(СтрокаИндекс).Получить(КолонкаИндекс);
			ИмяКолонки = Значение.Колонки.Получить(КолонкаИндекс).Имя;
			// Определение имени типа.
			ИмяТипа = ИмяТипаИзЗначения(ЗначениеЭлементаСписка); 
			
			Если ИмяТипа = "Строка" Тогда 
				Длина = Значение.Колонки.Получить(КолонкаИндекс).ТипЗначения.КвалификаторыСтроки.Длина; 	
			Иначе 
				Длина = 0;
			КонецЕсли; 
			
			ФайлXML.ЗаписатьНачалоЭлемента("item");
				ФайлXML.ЗаписатьАтрибут("nameCol", ИмяКолонки);
				ФайлXML.ЗаписатьАтрибут("row", XMLСтрока(СтрокаИндекс));
				ФайлXML.ЗаписатьАтрибут("col", XMLСтрока(КолонкаИндекс));
				ФайлXML.ЗаписатьАтрибут("type", ИмяТипа);
				ФайлXML.ЗаписатьАтрибут("length", XMLСтрока(Длина));
				ФайлXML.ЗаписатьАтрибут("value", XMLСтрока(ЗначениеЭлементаСписка));
			ФайлXML.ЗаписатьКонецЭлемента();
		КонецЦикла;
	КонецЦикла;
	
	//ag(!!!
	//если параметр не заполнен  - добавим пустую ТЗ
	Если СтрокаИндекс = 0 тогда
		Для КолонкаИндекс = 0 по КолКолонок - 1 Цикл 
			//ЗначениеЭлементаСписка	= Значение.Получить(СтрокаИндекс).Получить(КолонкаИндекс);
			ИмяКолонки = Значение.Колонки.Получить(КолонкаИндекс).Имя;
			// Определение имени типа.
			ИмяТипа = xmlТип(Значение.Колонки.Получить(КолонкаИндекс).ТипЗначения.Типы()[0]).ИмяТипа;
			
			
			//ИмяТипаИзЗначения(ЗначениеЭлементаСписка); 
			
			ФайлXML.ЗаписатьНачалоЭлемента("item");
				ФайлXML.ЗаписатьАтрибут("nameCol", ИмяКолонки);
				//ФайлXML.ЗаписатьАтрибут("row", XMLСтрока(СтрокаИндекс));
				ФайлXML.ЗаписатьАтрибут("col", XMLСтрока(КолонкаИндекс));
				ФайлXML.ЗаписатьАтрибут("type", ИмяТипа);
				//ФайлXML.ЗаписатьАтрибут("value", XMLСтрока(ЗначениеЭлементаСписка));
			ФайлXML.ЗаписатьКонецЭлемента();
		КонецЦикла;
	КонецЕсли;
	//ag)
		
КонецПроцедуры	

// Записывает момент времени в Файл XML.
//
// Параметры:
//	ФайлXML - записьXML.
//	Значение - момент времени.
//
Процедура ЗаписатьМоментВремениВXML(ФайлXML, Значение)
	Если ТипЗнч(Значение) <> Тип("МоментВремени") Тогда 
		Возврат;
	КонецЕсли;	
	
	// Определение имени типа.
	ИмяТипа = ИмяТипаИзЗначения(Значение.Ссылка); 
	
	ФайлXML.ЗаписатьНачалоЭлемента("item");
		Если Значение.Ссылка <> Неопределено Тогда 
			ФайлXML.ЗаписатьАтрибут("type", ИмяТипа);
			ФайлXML.ЗаписатьАтрибут("valueRef", XMLСтрока(Значение.Ссылка));
		КонецЕсли;	
		ФайлXML.ЗаписатьАтрибут("valueDate", XMLСтрока(Значение.Дата));
	ФайлXML.ЗаписатьКонецЭлемента();
КонецПроцедуры	

// Записывает границу.
//
Процедура ЗаписатьГраницуВXML(ФайлXML, Граница)
	Если ТипЗнч(Граница) <> Тип("Граница") Тогда 
		Возврат;
	КонецЕсли;	
	
	ФайлXML.ЗаписатьНачалоЭлемента("divide");
		// Определение имени типа.
		ИмяТипа 			= ИмяТипаИзЗначения(Граница.Значение); 
		ТипЗначенияГраницы 	= ТипЗнч(Граница.Значение);
		
		// Запись в строку вида границы.
		ИмяВидаГраницы = Строка(Граница.ВидГраницы);
		
		ФайлXML.ЗаписатьАтрибут("type", ИмяТипа);
		ФайлXML.ЗаписатьАтрибут("valueDiv", ИмяВидаГраницы);
		
		Если ТипЗначенияГраницы <> Тип("МоментВремени") Тогда 
			ФайлXML.ЗаписатьАтрибут("value", XMLСтрока(Граница.Значение));
		Иначе
			ЗаписатьМоментВремениВXML(ФайлXML, Граница.Значение);
		КонецЕсли;
	ФайлXML.ЗаписатьКонецЭлемента();
КонецПроцедуры	

// Возвращает строковое представление типа по значению.
//
// Параметры:
//	Значение - передаваемое значение.
//
Функция ИмяТипаИзЗначения(Значение) Экспорт
	Если ТипЗнч(Значение) = Тип("Строка") Тогда
		ИмяТипа = "Строка";
	ИначеЕсли ТипЗнч(Значение) = Тип("Число") Тогда 	
		ИмяТипа = "Число";
	ИначеЕсли ТипЗнч(Значение) = Тип("Булево") Тогда 	
		ИмяТипа = "Булево";
	ИначеЕсли ТипЗнч(Значение) = Тип("Дата") Тогда 		
		ИмяТипа = "Дата";
	ИначеЕсли ТипЗнч(Значение) = Тип("МоментВремени") Тогда 		
		ИмяТипа = "МоментВремени";	
	ИначеЕсли ТипЗнч(Значение) = Тип("Неопределено") Тогда 		
		ИмяТипа = "Строка";		
	Иначе	
		ИмяТипа = xmlТип(ТипЗнч(Значение)).ИмяТипа;
	КонецЕсли;	
	
	Возврат ИмяТипа;
КонецФункции	

// Определяет условие конца тэга "query" или "parameters"
//
// Параметры:
//	ФайлXML - чтениеXML.
//
Функция ПроверкаКонцаТэгов(ФайлXML)
	Если (ФайлXML.ТипУзла = ТипУзлаXML.КонецЭлемента и ФайлXML.Имя = "query") 
		 или (ФайлXML.ТипУзла = ТипУзлаXML.КонецЭлемента и ФайлXML.Имя = "parameters") Тогда
		Возврат Истина;
	Иначе
		Возврат Ложь;
	КонецЕсли;	
КонецФункции	


//////////////////////////////////////////////////////////////////////////////////////////////
// для   обычной консоли 
Функция вСохранитьЗапросыВФайл(ОбъектЗапроса, ИмяФайла = "C:\Запросы\TekZapros.sel")

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

	
	ЗначениеВФайл(ИмяФайла, ДеревоЗапросов);
	
	Возврат Истина;

КонецФункции // СохранитьЗапросыВФайл()




 

 

Необходимо поменять путь выгрузки в модуле:

 

 

2.  Запускаем отладку и останавливаемся перед выполнением запроса, например, у меня была внешняя обработка: 

 

 

3. Открываем код общего модуля АБ_ВыгрузкаЗапроса, выделяем строку и нажимаем "Вычислить выражение":

 

Значение должно быть Истина, это означает, что файл выгружен:

 

4. Заходим в консоль запросов и указываем файл, который мы выгружали:




Все параметры заполнились:
 

 

консоль запросов запросы запрос параметры запроса

См. также

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

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

12000 руб.

02.09.2020    171819    962    403    

924

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

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

8400 руб.

20.08.2024    14332    109    46    

108

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

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

22200 руб.

06.10.2023    17289    43    15    

75

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

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

9360 руб.

17.05.2024    27286    96    48    

138

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

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

15000 руб.

10.11.2023    11907    45    27    

67

SALE! %

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

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

4800 3840 руб.

14.01.2013    191248    1152    0    

920

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

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

20000 руб.

07.10.2021    18092    7    32    

42

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

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

3600 руб.

27.12.2024    1117    2    0    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. RustIG 1836 04.11.21 14:21 Сейчас в теме
2. headMade 144 04.11.21 14:40 Сейчас в теме
В БСП есть ОбщегоНазначения.ЗапросВСтрокуXML
или у вас более навороченная ?
Hogyoku; adhocprog; mikl79; user635629_exter; rpgshnik; RocKeR_13; Margo462; +7 Ответить
3. Margo462 509 04.11.21 20:51 Сейчас в теме
(2) спасибо, не пользовалась ни разу, но на моём примере не сработало, а если сделать как в этой статье через сохранение в файл, то работает
Прикрепленные файлы:
4. rpgshnik 3819 05.11.21 07:15 Сейчас в теме
ОбщегоНазначения.ЗапросВСтрокуXML использую регулярно совместно с https://infostart.ru/public/1254364/ там даже не нужно файл создавать, через буфер - очень удобно, рекомендую попробовать.

Так же есть возможность добавить заполнение временных таблиц менеджера.
Evg-Lylyk; user635629_exter; Margo462; +3 Ответить
5. MVK80 05.11.21 08:56 Сейчас в теме
(0), мне казалось что для консолей запросов, этот функционал по умолчанию уже идет. Многие консоли запросов такое могут "из коробки". Не проще ли сменить консоль запросов? Я, например, такой пользуюсь, как Запросник 2.0. Там всё это есть уже.
6. q_i 584 07.11.21 17:49 Сейчас в теме
В "штатной" консоли запросов есть пункт меню "Заполнить из XML". Совместно с ОбщегоНазначения.ЗначениеВСтрокуXML(Новый Структура("Текст, Параметры", Запрос.Текст, Запрос.Параметры)) решает вопрос отладки практически любого запроса. Подробнее описано тут: https://spk-code.blogspot.com/2021/06/1.html
7. Margo462 509 08.11.21 09:55 Сейчас в теме
(6) да, я так делала, ошибку выше добавила. Может из-за временной таблицы ошибка, либо консоль кривая)
8. q_i 584 08.11.21 13:25 Сейчас в теме
(7) Скачайте "прямую" с сайта итс ))
Хотя там, честно говоря, тоже я последний раз когда качал была "кривая" - какая-то ошибка периодически вываливалась, связанная с количеством строк в результате запроса. В функции ВывестиРезультатОдногоЗапроса(...) пришлось строку "КоличествоСтрок = РезультатЗапроса.Количество();" переделать в "Попытка КоличествоСтрок = РезультатЗапроса.Количество(); Исключение КоличествоСтрок = 0; КонецПопытки;".
Но при этом "Заполнить из XML" там изначально работало "из коробки" даже с временными таблицами.
9. Evg-Lylyk 4914 09.11.21 10:57 Сейчас в теме
Мои публикации на эту тему:
Отладка запроса с содержимым временных таблиц (управляемые формы)
Отладка в Infostart Toolkit
Инструменты от 1С сильно устарели, передача данных через файл неудобна в варианте клиент-сервер нужно иметь расшаренный каталог, передача через буфер может споткнутся об ограничение размера. Во многих консолях есть проблема с получением временных таблиц.
Ну и большинство как и приведенный пример не поддерживает типы параметров и полей ВТ: "УникальныйИдентификатор", "Тип".
Hogyoku; Revachol; Margo462; +3 Ответить
10. Margo462 509 09.11.21 11:21 Сейчас в теме
(9) Спасибо! Вижу Вы из Ставрополя, я тоже))
Оставьте свое сообщение