Как в СКД накрыть колонки шапкой

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

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

Данный вопрос возникает у пользователей СКД достаточно часто. Сразу отмечу, что данную задачу можно решить несколькими способами, но все они не совсем очевидные. Предлагаю, на мой взгляд, самый простой и эффективный способ решения этой задачи. Имеем простой отчет на компоновке вида: Теперь сделаем шапку “Оборот” над колонками “Количество оборот” и “Стоимость оборот”, а колонки назовем “Количество” и “Стоимость”. Для это зайдем на вкладку “Наборы данных” конструктора СКД и немного пошаманим. Находим поля “КоличествоОборот и “СтоимостьОборот” и меняем у них путь. Полю “КоличествоОборот” меняем путь на “Оборот.КоличествоОборот”, аналогично меняем у стоимости. Также изменяем заголовки: Теперь перейдем на вкладку “Настройки” и в выбранных полях выберем группу “Оборот”: Сформируем отчет: Вроде получилось. Единственное, наверное многим захочется расположить шапку по центру. Конечно можно нарисовать свой макет оформления, но считаю в данном случае это не стоит того. Поэтому предлагаю просто использовать пробелы в названии группы. В нашем случае название группы будет таким: ”              Оборот”, а вид отчета таким:...

Далее

Как изменить отбор программно

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

Эта тема тоже достаточна распространена. Нюанс программного изменения отбора заключается в том, что коллекция:

КомпоновщикНастроек.Настройки.Отбор.Элементы

в отличие от аналогичной коллекции параметров, не имеет метода Найти(). Можно конечно изменять отбор “в лоб”, т.е. по индексу, но это не есть хорошо. Самый оптимальный вариант, обходить все поля отбора в цикле.

Приведу пример универсальной функции для изменения отбор компоновки данных:

Эта тема тоже достаточна распространена. Нюанс программного изменения отбора заключается в том, что коллекция: КомпоновщикНастроек.Настройки.Отбор.Элементы в отличие от аналогичной коллекции параметров, не имеет метода Найти(). Можно конечно изменять отбор “в лоб”, т.е. по индексу, но это не есть хорошо. Самый оптимальный вариант, обходить все поля отбора в цикле. Приведу пример универсальной функции для изменения отбор компоновки данных: //Ищет отбор в компоновщике настроек по параметрам, заданным через //"СоответствиеПоискаОтбора", и заменяет //на отбор с параметрами, указанными в "СоответствиеНовогоОтбора" Процедура ИзменитьОтбор(ЭлементСтруктуры, СоответствиеПоискаОтбора = Неопределено, СоответствиеНовогоОтбора) Экспорт Если ТипЗнч(ЭлементСтруктуры) = Тип("КомпоновщикНастроекКомпоновкиДанных")  Тогда Отбор = ЭлементСтруктуры.Настройки.Отбор; Иначе Отбор = ЭлементСтруктуры; КонецЕсли; Если ТипЗнч(СоответствиеНовогоОтбора["ЛевоеЗначение"]) = Тип("Строка") Тогда нПоле = Новый ПолеКомпоновкиДанных(СоответствиеНовогоОтбора.ЛевоеЗначение); Иначе нПоле = СоответствиеНовогоОтбора["ЛевоеЗначение"]; КонецЕсли; Если СоответствиеНовогоОтбора.Получить("ВидСравнения") = Неопределено Тогда нВидСравнения = ВидСравненияКомпоновкиДанных.Равно; Иначе нВидСравнения = СоответствиеНовогоОтбора["ВидСравнения"]; КонецЕсли; Если СоответствиеНовогоОтбора.Получить("Использование") = Неопределено Тогда нИспользование = Истина; Иначе нИспользование = СоответствиеНовогоОтбора["Использование"]; КонецЕсли; нЗначение = СоответствиеНовогоОтбора["Значение"]; ТолькоПоЛевомуЗначению = Ложь; Если СоответствиеПоискаОтбора = Неопределено Тогда ТолькоПоЛевомуЗначению = Истина; КонецЕсли; сЛевоеЗначение = СоответствиеПоискаОтбора.Получить("ЛевоеЗначение"); Если сЛевоеЗначение = Неопределено Тогда сЛевоеЗначение = нПоле; КонецЕсли; сВидСравнения = СоответствиеПоискаОтбора.Получить("ВидСравнения"); Если ВидСравнения = Неопределено Тогда сВидСравнения = ВидСравнения; КонецЕсли; сИспользование = СоответствиеПоискаОтбора.Получить("Использование"); Если сИспользование = Неопределено Тогда сИспользование = нИспользование; КонецЕсли; Для каждого ЭлементОтбора Из Отбор.Элементы Цикл Если ТолькоПоЛевомуЗначению Тогда НайденныйОтбор = ЭлементОтбора; Прервать; Иначе Если (ЭлементОтбора.ЛевоеЗначение = сЛевоеЗначение) И (ЭлементОтбора.ВидСравнения = сВидСравнения) И (ЭлементОтбора.Использование = сИспользование) Тогда НайденныйОтбор = ЭлементОтбора; Прервать; КонецЕсли; КонецЕсли; КонецЦикла; Если НайденныйОтбор <> Неопределено Тогда НайденныйОтбор.ЛевоеЗначение = нПоле; НайденныйОтбор.Использование = нИспользование; НайденныйОтбор.ВидСравнения = нВидСравнения; НайденныйОтбор.ПравоеЗначение = нЗначение; КонецЕсли; КонецПроцедуры Пример вызова процедуры: СоответствиеПоискаОтбора = Новый Соответствие; СоответствиеПоискаОтбора.Вставить("ЛевоеЗначение",Новый ПолеКомпоновкиДанных("Наименование")); СоответствиеПоискаОтбора.Вставить("ВидСравнения",ВидСравненияКомпоновкиДанных.Содержит); СоответствиеПоискаОтбора.Вставить("Использование",Истина); СоответствиеНовогоОтбора = Новый Соответствие; СоответствиеНовогоОтбора.Вставить("ЛевоеЗначение",Новый ПолеКомпоновкиДанных("Наименование")); СоответствиеНовогоОтбора.Вставить("ВидСравнения",ВидСравненияКомпоновкиДанных.Содержит); СоответствиеНовогоОтбора.Вставить("Использование",Истина); СоответствиеНовогоОтбора.Вставить("Значение","бла-бла-бла"); ИзменитьОтбор(КомпоновщикНастроек,СоответствиеПоискаОтбора,СоответствиеНовогоОтбора);...

Далее

Вывод полей в нужной колонке

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

Часто возникают вопросы «как в СКД сделать свои итоги», «как определенные поля выводить только в нужном месте».  Начнем рассказ.

Часто возникают вопросы «как в СКД сделать свои итоги», «как определенные поля выводить только в нужном месте».  Начнем рассказ. Наша цель  – посчитать среднюю цену продажи и вывести ее в нужном месте. Запрос: ВЫБРАТЬ ПродажиОбороты.Подразделение, ПродажиОбороты.Номенклатура, ПродажиОбороты.КоличествоОборот, ПродажиОбороты.СтоимостьОборот, 0 КАК Цена ИЗ РегистрНакопления.Продажи.Обороты({(&НачалоПериода)}, {(&КонецПериода)}, Период, {(Номенклатура).*, (ХарактеристикаНоменклатуры).*, (ЗаказПокупателя).*, (ДоговорКонтрагента).*, (ДоговорКонтрагента.Владелец).* КАК Покупатель, (ДокументПродажи).*, (Подразделение).*}) КАК ПродажиОбороты Цену рассчитываем в ресурсах: ВЫБОР КОГДА ЕСТЬNULL(СУММА(КоличествоОборот), 0) = 0 ТОГДА 0 ИНАЧЕ ЕСТЬNULL(СУММА(СтоимостьОборот), 0) / СУММА(КоличествоОборот) КОНЕЦ Добавим вычисляемое поле, назовем его «ДополнительнаяКолонка». Конструктором настроек формируем таблицу, в строках «Номенклатура», в колонках «Подразделение». В колонки добавляем группировку «ДополнительнаяКолонка». Мы хотим, чтобы поле «Цена» не выводилась в итогах. Для этого итоги нужно «переопределить». Отключим стандартный вывод горизонтальных итогов. В группировке «ДополнительнаяКолонка» изменим состав выводимых полей следующим образом. Зададим заголовок группировке в условном оформлении. В результате наш отчет выглядит так. Желаем чтобы, поле «Цена» не было в группировке «Подразделение» а в итогах пусть будет. Изменим состав выводимых полей в группировке «Подразделение» следующим образом. А в группировке «ДополнительнаяКолонка» так. Теперь наш отчет выглядит так. Вот и все....

Далее

Рекомендации к публикации статей

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

В этой статье пойдет речь об основных правилах публикации Ваших статей. Пойдем по пунктам.

  1. Мы рады любому Вашему начинанию в качестве автора, но постарайтесь все таки сначала поискать по сайту похожий материал, и проанализировать его.
  2. Соблюдайте (ну хотя бы старайтесь соблюдать) правила орфографии и пунктуации.
  3. Еще раз проанализируйте содержание Вашей публикации, и укажите заголовок, рубрику, а также метки для Вашей публикации наиболее точно. (Конечно, мы будем стараться модерировать статьи, но, хотелось бы, чтобы наши изменения стремились к нулю.
В этой статье пойдет речь об основных правилах публикации Ваших статей. Пойдем по пунктам. Мы рады любому Вашему начинанию в качестве автора, но постарайтесь все таки сначала поискать по сайту похожий материал, и проанализировать его. Соблюдайте (ну хотя бы старайтесь соблюдать) правила орфографии и пунктуации. Еще раз проанализируйте содержание Вашей публикации, и укажите заголовок, рубрику, а также метки для Вашей публикации наиболее точно. (Конечно, мы будем стараться модерировать статьи, но, хотелось бы, чтобы наши изменения стремились к нулю....

Далее

Как добавить отбор программно

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

НовыйЭлементОтбора = КомпоновщикНастроек.Настройки.Отбор.Элементы.
                     Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));

ПолеОтбора = Новый ПолеКомпоновкиДанных("ИмяПоляКомпоновки");

НовыйЭлементОтбора.ЛевоеЗначение  = ПолеОтбора;
НовыйЭлементОтбора.Использование  = Истина;
НовыйЭлементОтбора.ВидСравнения   = ВидСравненияКомпоновкиДанных.Равно;
НовыйЭлементОтбора.ПравоеЗначение = Значение;

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

Далее

Как установить параметр в СКД программно

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

О рубрике

Данный цикл статей, по сути, будет обычным FAQ по вопросам СКД. Здесь вы найдете ответы на самые часто задаваемые вопросы по компоновке. Думаю, данный раздел будет очень полезным.

Естественно, первым вопросом, на который мы дадим ответ, будет тот, что указан в заголовке. Этот вопрос задавался на 1с-ных форумах миллионы раз, но новички упорно спрашивают вновь и вновь. Так зафиксируем же ответ, и будем кидаться в новичков этой ссылкой.

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

Устанавливать параметр будем в ПриОткрытии:

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

Далее

Первый отчет на СКД

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

Мы надеемся, что наш ресурс будут посещать  не только опытные специалисты, которые уже отличают «Систему компоновки данных» от «Сальдо конечное дебет», но и начинающие программисты, которые СКД не видели совсем. Вообще-то, хотелось бы верить, что начинающие возьмут в руки эту книжку (http://v8.1c.ru/metod/books/book.jsp?id=132). Но если её нет, а построить простенький отчет хочется уже сейчас, то это статья для Вас.

Пример был реализован на платформе 1С 8.2.11.232.

Мы надеемся, что наш ресурс будут посещать  не только опытные специалисты, которые уже отличают «Систему компоновки данных» от «Сальдо конечное дебет», но и начинающие программисты, которые СКД не видели совсем. Вообще-то, хотелось бы верить, что начинающие возьмут в руки эту книжку (http://v8.1c.ru/metod/books/book.jsp?id=132). Но если её нет, а построить простенький отчет хочется уже сейчас, то это статья для Вас. Пример был реализован на платформе 1С 8.2.11.232. Где она вообще, эта СКД? Сама СКД – это макет, с типом «Схема компоновки данных». Данный макет присущ отчетам. Новый отчет можно создать в ветке конфигурации отчеты, но мы, для простоты работы и отладки, будем работать с внешним отчетом. Кстати! Разница между внешней обработкой и внешним отчетом как раз в наличии у отчета «Основной схемы компоновки данных» и «Основной формы настроек». Отчет Наша задача с помощью СКД, построить простой отчет по продажам с возможностью группировки по контрагентам. Отчет будем строить в демо-базе УПП. Начнем… Создадим новый внешний отчет (Файлà–>Новый–>Внешний отчет): По кнопке «Открыть основную схему компоновки данных» создадим новую схему. После создания, убедимся, что создан макет: Итак, мы находимся в «Конструкторе схемы компоновки данных». Пока мы здесь видим много непонятных вкладок. Помним, что пример у нас самый простой, поэтому попробуем провести минимум действий, чтобы вывести простенький отчет.  Для нашего примера, мы вкратце пробежим лишь по трем вкладкам: «Наборы данных», «Ресурсы» и «Настройки». Наборы данных Создадим новый набор данных – запрос. В данном примере, мы будем использовать всего один набор данных, и его название по сути ничего не значит, однако я призываю Вас делать, как и я, и давать набору данных осмысленное название. Хуже не будет :). Назовем его «Продажи»: Теперь необходимо создать запрос. Используем «Конструктор запроса»: На закладке «Таблицы и поля» конструктора запроса выберем  регистр накопления «Продажи». Из регистра последовательно выберем поля: «Контрагент», «Номенклатура», «Количество» и «Стоимость»: Нажмем «ОК».  Так, как у нас была установлена галка «Автозаполнение», то доступные поля текущего набора данных  заполнились автоматически: О дополнительных настройках полей мы будем говорить позже. Итак, данные для отчета у нас имеются. Попробуем что-нибудь с ними сделать Ресурсы «Я что-то слышал про СКД и мне сказали,  что там почти всегда необходимо определять ресурсы» –  многие из начинающих могут так сказать. А что же это такое? Попробуем разобраться. Для этого сначала выведем отчет без указания ресурсов. Для этого перейдем сразу на вкладку настройки.  Для того чтобы вывести данные в отчет без каких либо группировок, нужно все же создать группировку, но ничего не указывать. Таким образом, у нас будут выведены «детальные записи». Что делаем? На вкладке «Настройки» жмем добавить –>новая группировка (или Ins), и в появившемся окне просто жмем «ОК»: Настроим выбранные поля для детальных записей (поле «Контрагент» пока выбирать не будем): Теперь сохраняем наш внешний отчет,  открываем его в предприятии, и формируем: Уже что-то! Но, согласитесь не...

Далее
Страница 46 из 47« Первая...102030...4344454647

Авторизация

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

Архивы

Закладки

  • Your favorites will be here.