Посты от 2010

Как автогруппировки выводить свернутыми?

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

Собственно сабж.  Перерыл все настройк нигде не нашел как можно выводить автогруппировки в свернутом виде.

Собственно сабж.  Перерыл все настройк нигде не нашел как можно выводить автогруппировки в свернутом виде. Перейти к...

Далее

Как повторять шапку при печати?

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

Помогите пожалуйста новичку)

Отчет делаю через СКД.

Есть такой метод в Табличном документе: ДокументРезультат.ПовторятьПриПечатиСтроки(ОбластьЯчеек);

Вот только не знаю как эту область найти. В ДокументРезульте нет никаких именованных областей…

Помогите пожалуйста новичку) Отчет делаю через СКД. Есть такой метод в Табличном документе: ДокументРезультат.ПовторятьПриПечатиСтроки(ОбластьЯчеек); Вот только не знаю как эту область найти. В ДокументРезульте нет никаких именованных областей… Перейти к...

Далее

Хитрости компоновки: произвольный заголовок

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

Как вывести произвольный макет в произвольном месте схемы компоновки данных.

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

По шагам рассмотрю как вывести шапку для счет-фактуры:

Как вывести произвольный макет в произвольном месте схемы компоновки данных. В ходе работы мне понадобилось формировать печатные формы по заданному макету поставщика. Решил делать с использованием СКД, но столкнулся с тем, что нужно выводить произвольный заголовок, но непонятно как. Немного поискав и посмотрев примеры нашел способ сделать это быстро и просто. Внимание – написанное ниже предполагает, что вы знаете, что такое СКД и как примерно работают в СКД макеты. По шагам рассмотрю как вывести шапку для счет-фактуры: 1. Создаем в схеме новую группировку без указания поля (детальные записи) 2. Установим имя группировке 3. Удалим у данной группировки из выбранных полей автополе 4. В других настройках выберем макет оформления “Без оформления” (иначе на наш макет будет накладываться стандартный макет и вокруг всех ячеек будет рамка) 5. На вкладке макеты добавляем наши данные 6. Добавляем макет группировки и указываем наше имя группировки из п.2 и указываем область с нашими данными 7. Готово Автор статьи Александр Фотов, оригинал статьи тут...

Далее

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

Отзывов (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; КонецЕсли; КонецЦикла; // Если нашли в строке области для объединения, то прекращаем дальнейшие поиски Если не ОбъединяемаяОбласть = Неопределено Тогда возврат; КонецЕсли; КонецЦикла; КонецПроцедуры Вставляем вызов после формирования табличного документа: Результат представлен ниже: Главный недостаток этого способа, трудно заранее определить начальную и конечную область поиска, т. к. функция может отработать  и объединить любые другие смежные идентичные ячейки. Если есть идеи как однозначно идентифицировать ячейки заголовка группировок пишите. А пока этот код можно использовать с некоторыми изменения в каждом  конкретном случае....

Далее

Срез последних на каждую дату в СКД

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

С задачей получения среза последних на каждую дату рано или поздно сталкиваются все. Безусловно, это задача достаточно просто решается запросом с соединением по максимальной дате из меньших или равных дат. Но эту же задачу можно решить и с помощью компоновки данных. Не будем рассуждать о том, какой из способов более производителен, все может зависеть от конкретной задачи.

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

Далее
Страница 1 из 812345...Последняя »

Авторизация

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

Архивы

Закладки

  • Your favorites will be here.