Посты с тэгами "Колонки"

Полезные примеры: пронумеровать колонки

Ваш отзывFavoriteLoadingВ закладки

Пример того как можно пронумеровать колонки в СКД.

Обсуждалось здесь: http://forum.infostart.ru/forum26/topic88579/

Суть решения:

1. Создаем запрос, в котором нумеруем строки результата запроса в пределах определенного подчинения

2. Выводим результат в кросс-таблицу

ВАЖНО!

После того как строки в запросе пронумерованы их необходимо поместить в ВТ и потом из этой ВТ выбирать, иначе СКД сделает все по-своему и в группировку попадут не те поля

Для того чтобы получить результат необходимо создать вычисляемое поле с выражением “Сотрудник” + Формат(НПП,”ЧЦ=3; ЧВН=”)  и вычисляемое поле ФИО, в которое просто поместить Сотрудник, затем помещаем поле ФИО в ресурс с выражением Максимум(ФИО) или просто ФИО – никакой разницы

Пример того как можно пронумеровать колонки в СКД. Обсуждалось здесь: http://forum.infostart.ru/forum26/topic88579/ Суть решения: 1. Создаем запрос, в котором нумеруем строки результата запроса в пределах определенного подчинения 2. Выводим результат в кросс-таблицу ВАЖНО! После того как строки в запросе пронумерованы их необходимо поместить в ВТ и потом из этой ВТ выбирать, иначе СКД сделает все по-своему и в группировку попадут не те поля Для того чтобы получить результат необходимо создать вычисляемое поле с выражением “Сотрудник” + Формат(НПП,”ЧЦ=3; ЧВН=”)  и вычисляемое поле ФИО, в которое просто поместить Сотрудник, затем помещаем поле ФИО в ресурс с выражением Максимум(ФИО) или просто ФИО – никакой разницы...

Далее

Шахматка по датам (отчёт не по регистрам)

Отзывов (4)FavoriteLoadingВ закладки

Помогите, пожалуйста, реализовать такую вещь. Нужна шахматка за период. Строки – номенклатура, колонки – даты.

В сети и книгах много примеров на эту тему, но во всех случаях разбирается отчёт по какому-либо регистру, и используется “.Период” этого регистра. А если без регистра? Например мне нужно проанализировать документы “Перемещение ТМЦ” – сколько и какого товара перемещали в каждый день периода. Дни без перемещений (пустые колонки) тоже желательно выводить.

Я так понимаю, что табличку дат надо как-то самому сформировать и с моим запросом объединить? Но как это практически рализовать – не соображу. И примеров таких что-то не нашёл.

Заранее благодарен за любые подсказки!

Помогите, пожалуйста, реализовать такую вещь. Нужна шахматка за период. Строки – номенклатура, колонки – даты. В сети и книгах много примеров на эту тему, но во всех случаях разбирается отчёт по какому-либо регистру, и используется “.Период” этого регистра. А если без регистра? Например мне нужно проанализировать документы “Перемещение ТМЦ” – сколько и какого товара перемещали в каждый день периода. Дни без перемещений (пустые колонки) тоже желательно выводить. Я так понимаю, что табличку дат надо как-то самому сформировать и с моим запросом объединить? Но как это практически рализовать – не соображу. И примеров таких что-то не нашёл. Заранее благодарен за любые подсказки! Перейти к...

Далее

Разные поля в группировках.

Ваш отзывFavoriteLoadingВ закладки

Добрый день.

Есть сгруппированный по дате отчет в виде

период

начислено оплачено сальдо

Период разбит по годам. Вопрос состоит в том , как сделать 2008, ….. , 2011 годы с колонкой “Сальдо” , а 2012 (текущий) год с колонками “Начислено” “Оплачено” “Сальдо” ?

Добрый день. Есть сгруппированный по дате отчет в виде период начислено оплачено сальдо Период разбит по годам. Вопрос состоит в том , как сделать 2008, ….. , 2011 годы с колонкой “Сальдо” , а 2012 (текущий) год с колонками “Начислено” “Оплачено” “Сальдо” ? Перейти к...

Далее

Как объединить заголовки колонок в таблице

Отзывов (5)FavoriteLoadingВ закладки

Данный пост родился в результате поиска решения проблемы из поста http://1cskd.ru/2010/07/kak-v-skd-nakryt-kolonki-shapkoj/

Имеем отчет вида:

:

Настройки отчета:

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

Данный пост родился в результате поиска решения проблемы из поста http://1cskd.ru/2010/07/kak-v-skd-nakryt-kolonki-shapkoj/ Имеем отчет вида: : Настройки отчета: Необходимо одинаковые заголовки группировок объединить. Предлагаю данную операцию произвести над сформированным табличным документом, используя следующий код: // Проверка двух смежных ячеек на идентичночность Функция ОбъединятьЯчейки(ТабДок, индСтр, индКол) Ячейка = ТабДок.Область(индСтр, индКол); ЯчейкаСлед = ТабДок.Область(индСтр, индКол+1); Если ПустаяСтрока(Ячейка.Текст) Тогда Возврат ложь ИначеЕсли //Проверяем на соответствие заголовка Ячейка.Текст = ЯчейкаСлед.Текст // Проверяем на соответствие имени (отсеиваем уже объединенные ячейки) и Ячейка.Имя = "R"+индСтр+"C"+индКол Тогда Возврат Истина; Иначе Возврат ложь КонецЕсли; КонецФункции // Обработка заголовков таблицы // // Параметры // Табл - < Тип.ТабличныйДокумент> - Табличный документ формы Процедура ОбработатьЗаголовки(ТабДок) ОбъединяемаяОбласть = Неопределено; //Для оптимизации здесь нужно будет ограничить высоту таблицы Для индСтр=1 По ТабДок.ВысотаТаблицы Цикл НачальнаяКолонка = 0; Для индКол=1 По ТабДок.ШиринаТаблицы Цикл // определяем начало объединения Если ОбъединятьЯчейки(ТабДок, индСтр, индКол) Тогда Если не НачальнаяКолонка Тогда НачальнаяКолонка = индКол; КонецЕсли; ИначеЕсли НачальнаяКолонка Тогда // завершаем объединение ТекстЗаголовка = ТабДок.Область(индСтр, индКол).Текст; ОбъединяемаяОбласть = ТабДок.Область(индСтр, НачальнаяКолонка, индСтр, индКол); ОбъединяемаяОбласть.Объединить(); ОбъединяемаяОбласть.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр; ОбъединяемаяОбласть.Текст = ТекстЗаголовка; НачальнаяКолонка = 0; Иначе НачальнаяКолонка = 0; КонецЕсли; КонецЦикла; // Если нашли в строке области для объединения, то прекращаем дальнейшие поиски Если не ОбъединяемаяОбласть = Неопределено Тогда возврат; КонецЕсли; КонецЦикла; КонецПроцедуры Вставляем вызов после формирования табличного документа: Результат представлен ниже: Главный недостаток этого способа, трудно заранее определить начальную и конечную область поиска, т. к. функция может отработать  и объединить любые другие смежные идентичные ячейки. Если есть идеи как однозначно идентифицировать ячейки заголовка группировок пишите. А пока этот код можно использовать с некоторыми изменения в каждом  конкретном случае....

Далее

Фиксация шапки в СКД

Отзывов (7)FavoriteLoadingВ закладки

Для того, чтобы зафиксировать шапку в скд, необходимо обрабатывать табличный документ.  В инструментах скд этот механизм отсутствует.

Код вывода с фиксацией шапки:

Результат = ЭлементыФормы.Результат;
Результат.Очистить();

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанных
                                                   ВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(Результат);

ПроцессорВывода.НачатьВывод();

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

            ТаблицаЗафиксирована = Истина;
            Результат.ФиксацияСверху = Результат.ВысотаТаблицы - 1;

        КонецЕсли;
    КонецЕсли;
КонецЦикла;

ПроцессорВывода.ЗакончитьВывод();

Для того, чтобы зафиксировать колонку по горизонтали, можно просто выполнить следующее:

Результат.ФиксацияСлева = 1;

UPD В 1с 8.2 в отчете у модуля объекта появился метод ПриКомпоновкеРезультата(), у которого есть параметр ДокументРезультат – табдок, который генерирует СКД.
По сути в модуле объекта можно прописать следующее:

Для того, чтобы зафиксировать шапку в скд, необходимо обрабатывать табличный документ.  В инструментах скд этот механизм отсутствует. Код вывода с фиксацией шапки: Результат = ЭлементыФормы.Результат; Результат.Очистить(); ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанных ВТабличныйДокумент; ПроцессорВывода.УстановитьДокумент(Результат); ПроцессорВывода.НачатьВывод(); ТаблицаЗафиксирована = Ложь; Пока Истина Цикл ЭлементРезультата = ПроцессорКомпоновкиДанных.Следующий(); Если ЭлементРезультата= Неопределено Тогда Прервать; Иначе ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата); Если Не ТаблицаЗафиксирована И ЭлементРезультата.ЗначенияПараметров.Количество() > 0 Тогда ТаблицаЗафиксирована = Истина; Результат.ФиксацияСверху = Результат.ВысотаТаблицы - 1; КонецЕсли; КонецЕсли; КонецЦикла; ПроцессорВывода.ЗакончитьВывод(); Для того, чтобы зафиксировать колонку по горизонтали, можно просто выполнить следующее: Результат.ФиксацияСлева = 1; UPD В 1с 8.2 в отчете у модуля объекта появился метод ПриКомпоновкеРезультата(), у которого есть параметр ДокументРезультат – табдок, который генерирует СКД. По сути в модуле объекта можно прописать следующее:...

Далее
Страница 1 из 212

Авторизация

Логин:
Пароль:
Регистрация

Архивы

Закладки

  • Your favorites will be here.