Посты с тэгами "Запрос"

Полезные примеры: вывести (рассчитать) процент для группировок

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

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

Для большего понимания того, о чем пойдет речь, загрузите пример настроек СКД из этой статьи (пример написан для УТ)

Итак, поставим задачу: Необходимо вывести процент наценки: ПроцентНаценки = 100*(СтоимостьПродажи – Себестоимость) / Себестоимость.

Для строк без иерерхии данная задача решается просто. Расчетом процента в запросе. Но вот вопрос: если у нас иерархическая структура отчета и вообще неизвестно, какая она будет… как считать проценты и выводить их нормально?

Данный пример будет полезен, так как мне он кажется не очевидным, то есть понять, как это сделать правильно, можно не сразу. Для большего понимания того, о чем пойдет речь, загрузите пример настроек СКД из этой статьи (пример написан для УТ) Итак, поставим задачу: Необходимо вывести процент наценки: ПроцентНаценки = 100*(СтоимостьПродажи – Себестоимость) / Себестоимость. Для строк без иерерхии данная задача решается просто. Расчетом процента в запросе. Но вот вопрос: если у нас иерархическая структура отчета и вообще неизвестно, какая она будет… как считать проценты и выводить их нормально?...

Далее

Полезные примеры: получение данных на основании СКД

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

Когда СКД только появилась, я задавал себе вопрос: “СКД для отчетов – замечательная вещь! Может быть, как-то можно ее использовать в работе и в других областях? Вместо запросов”. С одной стороны, СКД – очень мощный инструмент, с другой стороны – как-то не совсем удобно или понятно его использовать (там же надо что-то куда-то вставлять, чтобы получить данные), а запрос написал и выгрузил в таблицу или дерево. Все разрешилось само собой (методом проб и ошибок, конечно), когда я стал решать реальные задачи. Сейчас я даже простые данные получаю с помощю СКД… спросите, почему? Есть одна, но очень серьезная причина:

Когда СКД только появилась, я задавал себе вопрос: “СКД для отчетов – замечательная вещь! Может быть, как-то можно ее использовать в работе и в других областях? Вместо запросов”. С одной стороны, СКД – очень мощный инструмент, с другой стороны – как-то не совсем удобно или понятно его использовать (там же надо что-то куда-то вставлять, чтобы получить данные), а запрос написал и выгрузил в таблицу или дерево. Все разрешилось само собой (методом проб и ошибок, конечно), когда я стал решать реальные задачи. Сейчас я даже простые данные получаю с помощю СКД… спросите, почему? Есть одна, но очень серьезная причина:...

Далее

ДобавитьКДате в запросе не работает! 1С 8.2

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

Помогите почему-то после ДобавитьКДате ….ДатаОплатыПоДоговору —пустая!См.ниже…..

—–……..——-

ВЫБОР КОГДА ИсточникДанных.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности=0

ТОГДА ИсточникДанных.Регистратор.Дата
ИНАЧЕ
ДОБАВИТЬКДАТЕ(ВЫРАЗИТЬ(ИсточникДанных.Регистратор.Дата КАК ДАТА), ДЕНЬ, ВЫРАЗИТЬ(ИсточникДанных.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности КАК ЧИСЛО))
КОНЕЦ КАК ДатаОплатыПоДоговору
// А вот так все проходит! (когда число 15 ставим конкретное)

ДОБАВИТЬКДАТЕ(ВЫРАЗИТЬ(ИсточникДанных.Регистратор.Дата КАК ДАТА), ДЕНЬ, 15) КАК ДатаОплатыПоДоговору

Помогите почему-то после ДобавитьКДате ….ДатаОплатыПоДоговору —пустая!См.ниже….. —–……..——- ВЫБОР КОГДА ИсточникДанных.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности=0 ТОГДА ИсточникДанных.Регистратор.Дата ИНАЧЕ ДОБАВИТЬКДАТЕ(ВЫРАЗИТЬ(ИсточникДанных.Регистратор.Дата КАК ДАТА), ДЕНЬ, ВЫРАЗИТЬ(ИсточникДанных.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности КАК ЧИСЛО)) КОНЕЦ КАК ДатаОплатыПоДоговору // А вот так все проходит! (когда число 15 ставим конкретное) ДОБАВИТЬКДАТЕ(ВЫРАЗИТЬ(ИсточникДанных.Регистратор.Дата КАК ДАТА), ДЕНЬ, 15) КАК ДатаОплатыПоДоговору Перейти к...

Далее

Стандартный параметр &Период и проблемы в использовании

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

Создадим отчет с одни набором данных запрос:

ВЫБРАТЬ
    ТоварыНаСкладахОстатки.Склад,
    ТоварыНаСкладахОстатки.Номенклатура,
    ТоварыНаСкладахОстатки.КоличествоОстаток
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(&МояДата, )
                               КАК ТоварыНаСкладахОстатки
 
Создадим отчет с одни набором данных запрос: ВЫБРАТЬ ТоварыНаСкладахОстатки.Склад, ТоварыНаСкладахОстатки.Номенклатура, ТоварыНаСкладахОстатки.КоличествоОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки(&МояДата, )  КАК ТоварыНаСкладахОстатки Теперь перейдем на вкладку параметры и увидим что система, помимо нашего параметра &МояДата создала еще и параметр &Период. Для того, чтобы наглядно наблюдать за периодами, создадим основную форму отчета и поместим на нее табличное поле с данными: КомпоновщикНастроек.Настройки.ПараметрыДанных Сохраним отчет и откроем его в предприятии. В табличном поле с параметры отображается только параметр &Период: Соответственно, любое изменение этого параметра не даст нужного результата. Почему недоступен параметр &МояДата? Конечно же потому что на вкладке параметры у него установлена галку Ограничение доступности. Снимаем галку. Теперь в доступных параметрах видим оба. Только при формировании отчета увидим, что отчет реагирует на параметр &Период, а не на &МояДата. В данном примере самое простое переименовать в запросе параметр &МояДата на &Период и добиться нужного результата. Но может быть у Вас запрос, в котором уже использовался параметр &Период, или Ваши религиозные взгляды не разрешают Вам использовать этот параметр, в любом случае можно решить проблему так: ВЫБРАТЬ ТоварыНаСкладахОстатки.Склад, ТоварыНаСкладахОстатки.Номенклатура, ТоварыНаСкладахОстатки.КоличествоОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.Остатки({&МояДата}, ) КАК ТоварыНаСкладахОстатки UPD от пользователя Boo: Главная проблема при использовании «стандартных» (добавляемых системой) параметров в том что при использовании в отчете нескольких виртуальных таблиц, в случае определения этого параметра, его значение будет использоваться во всех остальных случаях взамен «собственных». Приведу пример: ВЫБРАТЬ РаботникиСП.Сотрудник, РаботникиСП.ПричинаИзмененияСостояния, РаботникиСП.Период, РаботникиСПДругаяДата.Период КАК Период2, РаботникиСПДругаяДата.ПричинаИзмененияСостояния КАК ПричинаИзмененияСостояния2 ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&Период, Сотрудник = &Сотрудник) КАК РаботникиСП ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ДругаяДата, ) КАК РаботникиСПДругаяДата ПО РаботникиСП.Сотрудник = РаботникиСПДругаяДата.Сотрудник Во втором подзапросе, в качестве параметра даты среза будет использовано значение «стандартного» параметра ПЕРИОД, а не значение ДругаяДата. Данный «глюк» будет наблюдаться даже в том случае если второй подзапрос вывести во второй набор данных и связать уже средствами СКД. Вариант с использованием во втором запросе ваыражения типа «ДОБАВИТЬКДАТЕ(&Период, МЕСЯЦ, -1) » тоже не сработает, месяц не вычтется. А вот переименование в запросе параметра «Период» в, например, «ПерваяДата», решает эту проблему. Кстати, точно такая же проблема наблюдается с виртуальными таблицами регистров накопления и бухгалтерии, используемыми для получения, например, оборотов. Там система добавляет параметры «НачалоПериода» и «КонецПериода». Так что в случае запросов даже чуть повышенной сложности, есть смысл выключать доступность и использование «стандартных периодов»....

Далее

Консоль отчетов СКД+

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

О разработке

Внешний отчет “Консоль отчетов” основан на системе компоновки данных и использует большинство ее возможностей (c) 1С.

В начале освоения системы компоновки данных не понятно, во что превращается запрос написанный в ней. Особенно это касается параметров. Включив “Выводить текст запроса” мы увидим привычный запрос.
Возможность увидеть время выполнение запроса + вывод в табличный документ положительно влияет на качество кода :)

О разработке Внешний отчет “Консоль отчетов” основан на системе компоновки данных и использует большинство ее возможностей (c) 1С. В начале освоения системы компоновки данных не понятно, во что превращается запрос написанный в ней. Особенно это касается параметров. Включив “Выводить текст запроса” мы увидим привычный запрос. Возможность увидеть время выполнение запроса + вывод в табличный документ положительно влияет на качество кода Скриншоты Скачать Внешний отчет “Колнсоль отчетов СКД+”...

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

Авторизация

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

Архивы

Закладки

  • Your favorites will be here.