Публикации

БСП
Разработки

Найдено результатов: 138


Запрос с нумерацией строк

хитрый запрос с нумерацией строк
5 Юрий 5 1
ВЫБРАТЬ
	                 |	ШтрихкодыНоменклатуры.Штрихкод,
	                 |	ШтрихкодыНоменклатуры.Номенклатура,
	                 |	ШтрихкодыНоменклатуры.Характеристика,
	                 |	ШтрихкодыНоменклатуры.Упаковка
	                 |ПОМЕСТИТЬ Нач
	                 |ИЗ
	                 |	РегистрСведений.ШтрихкодыНоменклатуры КАК ШтрихкодыНоменклатуры
	                 |;
	                 |
	                 |////////////////////////////////////////////////////////////////////////////////
	                 |ВЫБРАТЬ
	                 |	Нач.Штрихкод,
	                 |	КОЛИЧЕСТВО(Нач1.Штрихкод) КАК ПорядковыйНомер
	                 |ИЗ
	                 |	Нач КАК Нач
	                 |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Нач КАК Нач1
	                 |		ПО Нач.Штрихкод >= Нач1.Штрихкод
	                 |
	                 |СГРУППИРОВАТЬ ПО
	                 |	Нач.Штрихкод
	                 |
	                 |УПОРЯДОЧИТЬ ПО
	                 |	ПорядковыйНомер

ЗапросСписок

ОбщийМодуль.АсинхронноеПолучениеДанныхСловарь
Автор: 1С
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////


Функция ЗапросСписок() Экспорт
	
	Возврат "list";
	
КонецФункции

Поместить таблицу в запрос

Процедура помещает Таблицу значений во временную таблицу Запроса
3 SDV 26 5
// Процедура - Поместить таблицу в запрос
// Зависит от ТипизированнаяТаблицаЗначений() https://fastcode.im/Templates/6734
// Параметры:
//  Запрос		 - Запрос 
//  Таблица		 - ТаблицаЗначений
//  ИмяТаблицы	 - Строка - Имя временной таблицы в Запросе
//
Процедура ПоместитьТаблицуВЗапрос(Запрос, Таблица, ИмяТаблицы)
	ТипизированнаяТаблица = ТипизированнаяТаблицаЗначений(Таблица);
	ИсходныйТекстЗапроса = Запрос.Текст;
	Запрос.Текст = "Выбрать * Поместить " + ИмяТаблицы + " Из &" + ИмяТаблицы + " как " + ИмяТаблицы;
	Если Запрос.МенеджерВременныхТаблиц = Неопределено Тогда
		Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
	КонецЕсли;
	Если Запрос.Параметры.Свойство(ИмяТаблицы) Тогда
		_Параметр =  Запрос.Параметры.ИмяТаблицы;
		Запрос.УстановитьПараметр(ИмяТаблицы, ТипизированнаяТаблица);
		Запрос.Выполнить();
		Запрос.УстановитьПараметр(ИмяТаблицы, _Параметр);
	Иначе
		Запрос.УстановитьПараметр(ИмяТаблицы, ТипизированнаяТаблица);
		Запрос.Выполнить();
		Запрос.Параметры.Удалить(ИмяТаблицы);
	КонецЕсли;
	Запрос.Текст = ИсходныйТекстЗапроса;
КонецПроцедуры

Выбрать в запросе одну запись из нескольких

Имеется таблица, содержащая, например, колонки Ф, К1, К2, К3, К4. Для каждого значения Ф в таблице может быть несколько записей. t4.png Требуется получить таблицу, включающую по одной (любой) записи для каждого значения Ф. t5.png Несмотря на простоту форм... Читать дальше
FastCode 9 1

Проверка запроса на пустоту

проверяю результат запроса на пустату, если есть данные то выполняю. Экономит время сервера.
Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ЕдиницыИзмерения.Коэффициент
		|ИЗ
		|	Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
		|ГДЕ
		|	ЕдиницыИзмерения.Ссылка = &Ссылка";
	
	Запрос.УстановитьПараметр("Ссылка", ЕдИзм);
		
	РезультатЗапроса = Запрос.Выполнить();
	
	Если РезультатЗапроса.Пустой() Тогда
		Возврат 0;
	КонецЕсли;
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать(); ВыборкаДетальныеЗаписи.Следующий();
	Возврат ВыборкаДетальныеЗаписи.Коэффициент; 

Убрать итоги из готового текста запроса

Позволяет убрать итоги из текста запроса, на пример, перед передачей его в СКД
ChOP 16 2
СхемаЗапроса = новый СхемаЗапроса;
СхемаЗапроса.УстановитьТекстЗапроса(Запрос.Текст);
СхемаЗапроса.ПакетЗапросов.Получить(СхемаЗапроса.ПакетЗапросов.Количество()-1).ВыраженияИтогов.Очистить();
СхемаЗапроса.ПакетЗапросов.Получить(СхемаЗапроса.ПакетЗапросов.Количество()-1).КонтрольныеТочкиИтогов.Очистить();
Запрос.Текст = СхемаЗапроса.ПолучитьТекстЗапроса();

Передача таблицы значений в запрос

Передача таблицы значений в запрос. В качестве внешнего источника могут выступать: Таблица значений, Табличная часть, Результат запроса.
8 prog1c 32 1 5
Товары = Новый ТаблицаЗначений;	
Товары.Колонки.Добавить("Наименование");	
Товары.Колонки.Добавить("Количество");

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
			   |	ВнешнийИсточник.Наименование,
			   |	ВнешнийИсточник.Количество
			   |ПОМЕСТИТЬ ВТ_ВнешнийИсточник
			   |ИЗ
			   |	&ВнешнийИсточник КАК ВнешнийИсточник
			   |;
			   |
			   |////////////////////////////////////////////////////////////////////////////////
			   |ВЫБРАТЬ
			   |	ВТ_ВнешнийИсточник.Наименование,
			   |	ВТ_ВнешнийИсточник.Количество КАК Количество
			   |ИЗ
			   |	ВТ_ВнешнийИсточник КАК ВТ_ВнешнийИсточник
			   |ГДЕ
			   |	ВТ_ВнешнийИсточник.Количество > 0
			   |
			   |УПОРЯДОЧИТЬ ПО
			   |	Количество";

Запрос.УстановитьПараметр("ВнешнийИсточник", Товары);			   
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();

Пока Выборка.Следующий() Цикл
	
	// Обработка данных
	
КонецЦикла; 

ЗапросВСтрокуXML

Выгружает запрос в строку XML, которую можно вставить в Консоль запросов.
ОбщийМодуль.ОбщегоНазначения
Автор: 1С
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Выгружает запрос в строку XML, которую можно вставить в Консоль запросов.
//   Для переноса запроса и всех его параметров в Консоль запросов, необходимо вызвать функцию в окне.
//   «Вычислить выражение»(Shift + F9), скопировать полученный XML в поле "Текст запроса"
//   консоли запросов и выполнить команду "Заполнить из XML" из меню "Еще".
//   Подробнее об использование функции смотрите в справке к консоли запросов.
//
// Параметры:
//   Запрос - Запрос - Запрос, который необходимо выгрузить в формат строки XML.
//
// Возвращаемое значение:
//   Строка - строка в формате XML, которую можно извлечь при помощи метода "ОбщегоНазначения.ЗначениеИзСтрокиXML".
//       После извлечения получится объект типа "Структура" с полями:
//       * Текст     - Строка - Текст запроса.
//       * Параметры - Структура - Параметры запроса.
//
Функция ЗапросВСтрокуXML(Запрос) Экспорт
	Структура = Новый Структура("Текст, Параметры");
	ЗаполнитьЗначенияСвойств(Структура, Запрос);
	Возврат ЗначениеВСтрокуXML(Структура);
КонецФункции

Выгрузка Запроса в XML документ, в виде дерева(В Виде иерархии)

Выгрузка Запроса в XML документ, в виде дерева
2 Артур 33 4
Процедура ЛюбаяСЗапросом()
ЗаписьXML = Новый ЗаписьXML;
	ЗаписьXML.ОткрытьФайл(ПутьП,  "UTF-8"); //Открываем файл для записи, указываем кодировку
	ЗаписьXML.ЗаписатьОбъявлениеXML();  // Записываем объявление XML
	ЗаписьXML.ЗаписатьНачалоЭлемента("ОстаткиТоваров"); // Начало элемента 
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ТоварыНаСкладах.Период КАК Период,
		|	ТоварыНаСкладах.Регистратор КАК Регистратор,
		|	ТоварыНаСкладах.Номенклатура КАК Номенклатура,
		|	ТоварыНаСкладах.Количество КАК Количество
		|ИЗ
		|	РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
		|ГДЕ
		|	ТоварыНаСкладах.Период МЕЖДУ &НачПериод И &КонПериод
		|	И ТоварыНаСкладах.Номенклатура В ИЕРАРХИИ(&Номенклатура)		
		|ИТОГИ ПО
		|		Регистратор";

Результат = Запрос.Выполнить();
	Дерево = Результат.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией);
	ОбойтиУровеньДерева(Дерево.Строки, ЗаписьXML);   //вызов процедуры
	ЗаписьXML.ЗаписатьКонецЭлемента();     
	ЗаписьXML.Закрыть();

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

Процедура ОбойтиУровеньДерева(Строки, Запись)   // процедура для записи результата запроса с сохранением иерархии в текущий документ xml
	Для каждого Строка из Строки Цикл
		Если ПустаяСтрока(Строка(Строка.Номенклатура)) Тогда //Итог в запросе по "Регистратору"
			Запись.ЗаписатьНачалоЭлемента("Уровень");
			Запись.ЗаписатьАтрибут("Период",          Строка(Строка.Период));
			Запись.ЗаписатьАтрибут("Регистратор", Строка(Строка.Регистратор));
	   		Запись.ЗаписатьАтрибут("Количество", Строка(Строка.Количество));
			ОбойтиУровеньДерева(Строка.Строки, Запись); 
			Запись.ЗаписатьКонецЭлемента();  
		Иначе
			Запись.ЗаписатьНачалоЭлемента("Уровни");
			Запись.ЗаписатьАтрибут("Период",          Строка(Строка.Период));
			Запись.ЗаписатьАтрибут("Регистратор", Строка(Строка.Регистратор));
			Запись.ЗаписатьАтрибут("Номенклатура", Строка(Строка.Номенклатура));
	   		Запись.ЗаписатьАтрибут("Количество", Строка(Строка.Количество));
			ОбойтиУровеньДерева(Строка.Строки, Запись); 
			Запись.ЗаписатьКонецЭлемента();  
		КонецЕсли
	КонецЦикла; 
КонецПроцедуры

GET-запрос к HTTP-серверу

GET-запрос к HTTP-серверу
16 stawen 49 3 1
Заголовки=Новый Соответствие();
Заголовки.Вставить("Content-Type","application/xml");
Заголовки.Вставить("Accept","application/xml");

Запрос=Новый HTTPЗапрос();
Запрос.АдресРесурса="clients/list";
Запрос.Заголовки=Заголовки;

Соединение=Новый HTTPСоединение("api.yourserver.ru");//таким образом полный URL запроса http://api.yourserver.ru/clients/list
Ответ=Соединение.Получить(Запрос);
КодСостояния=Ответ.КодСостояния;
СтрокаОтвета=Ответ.ПолучитьТелоКакСтроку();	

Если КодСостояния=200 тогда
	ЧтениеXML=Новый ЧтениеXML;
	ЧтениеXML.УстановитьСтроку(СтрокаОтвета);
	Попытка
		КонтрагентыСписокXDTO=ФабрикаXDTO.ПрочитатьXML(ЧтениеXML,ФабрикаXDTO.Тип("http://api.yourserver.ru/xdto","ClientList"));
	Исключение
		Сообщить(СформироватьСообщениеОбОшибке(ИнформацияОбОшибке()));
		Предупреждение("Сервер прислал плохие данные!");
		Возврат;
	КонецПопытки;
	//обработка объекта XDTO	
Иначе
	//обработка ошибочных кодов
КонецЕсли;