[СКД] Данные нижеприведенного запроса по контактной информации контрагентов выводятся с помощью СКД в табличный документ.

1. allgorhythm 23.12.16 15:20 Сейчас в теме
1. Как отобразить колонку АДРЕС в группировках?

ВЫБРАТЬ
	Контрагенты.Ссылка КАК Контрагент,
	КонтактнаяИнформация.Вид КАК ВидКонтакта,
	КонтактнаяИнформация.Тип КАК ТипКонтакта,
	КонтактнаяИнформация.Представление КАК ПредставлениеКонтакта
ИЗ
	Справочник.Контрагенты КАК Контрагенты
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
		ПО (КонтактнаяИнформация.Объект = Контрагенты.Ссылка)
Показать


При группировке данных по контрагентам отчет выводится в виде




Однако известно, что у каждого контрагента всегда введен один адрес и пользователи хотят видеть его в отдельной колонке на уровне группировки, а не в детальных записях. Каким образом, не изменяя текст запроса, можно получить отчет в виде




2. Следующий запрос выводит в отчет, построенный на основе СКД, список авансовых отчетов..

ВЫБРАТЬ
	АвансовыйОтчет.Номер,
	АвансовыйОтчет.Дата,
	АвансовыйОтчет.СуммаДокумента
ИЗ
	Документ.АвансовыйОтчет КАК АвансовыйОтчет


Получается отчет виде


Дата Номер Сумма документа
09.06.09 00000000002 2 400,00
19.06.09 00000000003 401 000,00
13.11.09 00000000004 1 200,00


Каким образом сделать так, чтобы номер выводился в отчет без лидирующих нулей?


Дата Номер Сумма документа
09.06.09 2 2 400,00
19.06.09 3 401 000,00
13.11.09 4 1 200,00
По теме из базы знаний
Ответы
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. allgorhythm 23.12.16 22:53 Сейчас в теме
Второй пункт я сделал сам,
в принципе это - не сложно,
делаем форму отчета,
в ней сами прописываем команду Сформировать и
в ней пишем код ниже:

&НаКлиенте
Процедура Сформировать(Команда)
	Для Ном=1 По Результат.ВысотаТаблицы Цикл
		Область = Результат.Область("R"+Ном+"C2");
		Пока Найти(Область.Текст, "0") Цикл
			Область.Текст = СтрЗаменить(Область.Текст, 0, "");
		КонецЦикла
	КонецЦикла;	
	          
КонецПроцедуры
Показать
3. Denis_CFO 48 24.12.16 05:58 Сейчас в теме
(2) боюсь при таком подходе у вас будут выводится номера не верные... Вы же все нули заменяете... У вас из 101 номера 11 получится....
4. Denis_CFO 48 24.12.16 06:11 Сейчас в теме
(2)
&НаКлиенте
Процедура Сформировать(Команда)
    Для Ном=1 По Результат.ВысотаТаблицы Цикл
        Область = Результат.Область("R"+Ном+"C2");
        Пока Лев(Область.Текст, 1) = "0" Цикл
                 Область.Текст = Сред(Область.Текст, 2);
        КонецЦикла
    КонецЦикла;    
КонецПроцедуры
Показать
5. allgorhythm 25.12.16 17:41 Сейчас в теме
(4) Да. Нолики не теряются,
выкладываю нормальный код по этому вопросу.


&НаКлиенте
Процедура Сформировать(Команда)
	СформироватьСРВ();	
	Для Ном=1 По Результат.ВысотаТаблицы Цикл
	    Область = Результат.Область("R"+Ном+"C2");
	    Пока Лев(Область.Текст, 1) = "0" Цикл
	             Область.Текст = Сред(Область.Текст, 2);
		КонецЦикла
	КонецЦикла;	
	          
КонецПроцедуры

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


В модуле объекта
Функция ПолучитьСКД() Экспорт
 возврат ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
КонецФункции // ПолучитьМакет() Экспорт()
Оставьте свое сообщение
Вакансии
1С аналитик
Москва
зарплата от 210 000 руб.
Полный день

Руководитель направления 1С
Москва
зарплата от 350 000 руб.
Полный день

1С Программист
Москва
зарплата от 180 000 руб.
Полный день

Программист 1С
Москва
зарплата от 180 000 руб. до 220 000 руб.
Полный день

Аналитик 1С / Бизнес-аналитик
Нижний Новгород
зарплата от 100 000 руб. до 250 000 руб.
Временный (на проект)