powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / сортировка колонки после выгрузки запроса в ТЗ
8 сообщений из 8, страница 1 из 1
сортировка колонки после выгрузки запроса в ТЗ
    #37500561
votsen1c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите плиз, как написать код после запроса, с использованием таблицы значений, чтобы моя колонка "Подразделение" сортировалась по алфавиту в отчете.
Всего у меня таблица состоит из "Подразделение", "Должность", "Ставка" и "Источник Финансирования".
вот код отчета: Код
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|НаименованиеП = Справочник.Сотрудники.Подразделение, Справочник.ВнутренниеСовместители.Подразделение;
|НаименованиеД = Справочник.Сотрудники.Должность, Справочник.ВнутренниеСовместители.Должность;
|Ставка = Справочник.Сотрудники.Ставка, Справочник.ВнутренниеСовместители.Ставка;
|НаименованиеИ = Справочник.Сотрудники.МестоРаботы.ИсточникФинансирования, Справочник.ВнутренниеСовместители.МестоРаботы.ИсточникФинансирования;
|Функция СтавкаСумма = Сумма(Ставка);
|Группировка НаименованиеП;
|Группировка НаименованиеД;
|Группировка НаименованиеИ;
|"//}}ЗАПРОС;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли; X
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица");
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка(1) = 1 Цикл
Пока Запрос.Группировка(2) = 1 Цикл
Пока Запрос.Группировка(3) = 1 Цикл

если Запрос.СтавкаСумма>0 тогда

Таб.ВывестиСекцию("Наименование2");

конецесли;

КонецЦикла;
КонецЦикла;
КонецЦикла;
Таб.ТолькоПросмотр(1);
Таб.Показать("Таблица", "");
КонецПроцедуры



сначала нужно выгрузить запрос в таблицу значений...
Подскажите, пожалуйста, как мне написать сортировку по подразделению? и куда вставить этот код.
заранее благодарю
...
Рейтинг: 0 / 0
сортировка колонки после выгрузки запроса в ТЗ
    #37500621
sWinTyz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вставить этот код можно куда угодно ...
...
Рейтинг: 0 / 0
сортировка колонки после выгрузки запроса в ТЗ
    #37500635
AHDP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
После выполнения запроса выгрузить резутльтат в таблицу значений, её отсортировать, данные из неё вывести.

Почитать справку:

РезультатЗапроса.Выгрузить (QueryResult.Unload)
РезультатЗапроса (QueryResult)
Выгрузить (Unload)
Синтаксис:
Выгрузить(<ТипОбхода>)

ТаблицаЗначений (ValueTable)
Сортировать (Sort)
Синтаксис:
Сортировать(<Колонки>, <ОбъектСравнения>)
...
Рейтинг: 0 / 0
сортировка колонки после выгрузки запроса в ТЗ
    #37500664
pail
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
votsen1c,

только следует помнить,что сортировка по подразделению (которое ссылка), и сортировка по алфавиту (наименованию подразделения) - это не одно и то же. Для второго в ТЗ отдельная колонка с текстовым наименованием должна присутсвовать
...
Рейтинг: 0 / 0
сортировка колонки после выгрузки запроса в ТЗ
    #37501510
votsen1c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
все-равно не сортирует.
что я не так написал ??
Я вставляю код:
ТЗ = СоздатьОбъект("ТаблицаЗначений");
Запрос.Выгрузить(ТЗ,0,0);
ТЗ.Сортировать("НаименованиеП");

получается в общем:

Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|НаименованиеП = Справочник.Сотрудники.Подразделение, Справочник.ВнутренниеСовместители.Подразделение;
|НаименованиеД = Справочник.Сотрудники.Должность, Справочник.ВнутренниеСовместители.Должность;
|Ставка = Справочник.Сотрудники.Ставка, Справочник.ВнутренниеСовместители.Ставка;
|НаименованиеИ = Справочник.Сотрудники.МестоРаботы.ИсточникФинансирования, Справочник.ВнутренниеСовместители.МестоРаботы.ИсточникФинансирования;
|Функция СтавкаСумма = Сумма(Ставка);
|Группировка НаименованиеП упорядочить по НаименованиеП.Наименование;
|Группировка НаименованиеД упорядочить по НаименованиеД.Наименование;
|Группировка НаименованиеИ упорядочить по НаименованиеИ.Наименование;
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

ТЗ = СоздатьОбъект("ТаблицаЗначений");
Запрос.Выгрузить(ТЗ,0,0);
ТЗ.Сортировать("НаименованиеП");

Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица");
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);



Пока Запрос.Группировка(1) = 1 Цикл
Пока Запрос.Группировка(2) = 1 Цикл
Пока Запрос.Группировка(3) = 1 Цикл

если Запрос.СтавкаСумма>0 тогда

Таб.ВывестиСекцию("Наименование2");

конецесли;

КонецЦикла;
КонецЦикла;
КонецЦикла;
Таб.ТолькоПросмотр(1);

Таб.Показать("Таблица", "");
КонецПроцедуры

и все не хочешь сортировать колонку
само значение в ячейке в таблице называется "Запрос.ЗначениеУпорядочивания(1)", но думаю не в этом дело ведь...
...
Рейтинг: 0 / 0
сортировка колонки после выгрузки запроса в ТЗ
    #37502361
AHDP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому что вы данные из запроса выводите.
...
Рейтинг: 0 / 0
сортировка колонки после выгрузки запроса в ТЗ
    #37502603
votsen1c
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AHDPПотому что вы данные из запроса выводите.
а как из таблицы значений выводить ?
...
Рейтинг: 0 / 0
сортировка колонки после выгрузки запроса в ТЗ
    #37502813
AHDP
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
	Результат = Запрос.Выполнить().Выгрузить();
	
	ТабДок = Новый ТабличныйДокумент;
	КолонкаНом =  0 ;
	Для Каждого Колонка Из Результат.Колонки Цикл
		КолонкаНом = КолонкаНом +  1 ; 
		ТабДок.Область("R1C" + КолонкаНом).Текст = Колонка.Имя;
		СтрокаНом =  1 ;
		Для Каждого Строка Из Результат Цикл
			СтрокаНом = СтрокаНом +  1 ;
			ТабДок.Область(СтрЗаменить("R" + (СтрокаНом) + "C" + КолонкаНом, " ", "")).Текст = Строка[Колонка.Имя]; 
		КонецЦикла;
	КонецЦикла;
	
	ТабДок.Показать();
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / сортировка колонки после выгрузки запроса в ТЗ
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]