Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Вывод и сортировка отчета по "Комментарию"
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Система компоновки данных
Darkmant
Добрый день.
Делаю отчет по Чекам ККМ на УТ 10.3 ,подскажите как вывести поле "Комментарий" в отчете, и возможно ли сделать по этому полю сортировку. На infostart нашел обработку, но придется дописывать, помогите разобраться)
Код Запроса представлен ниже:
ВЫБРАТЬ
    ЧекККМТовары.Номенклатура.Артикул КАК Артикул,
    ЧекККМТовары.Номенклатура.Наименование КАК Наименование,
    ЧекККМТовары.ХарактеристикаНоменклатуры.Наименование КАК Характеристика,
    ЧекККМТовары.Количество,
    ЧекККМТовары.Цена КАК ЦенаБезСкидки,
    ЧекККМТовары.Количество * ЧекККМТовары.Цена КАК СуммаБезСкидки,
    ЧекККМТовары.ПроцентСкидкиНаценки + ЧекККМТовары.ПроцентАвтоматическихСкидок КАК СкидкаПроцент,
    ЧекККМТовары.Сумма КАК Суммането,
    ЧекККМТовары.Ссылка КАК ЧекКоличество,
    ЧекККМТовары.Ссылка.НомерЧекаККМ,
    ЧекККМТовары.Ссылка КАК Чек,
    ЧекККМТовары.ПроцентСкидкиНаценки,
    ЧекККМТовары.ПроцентАвтоматическихСкидок,
    ВЫБОР
        КОГДА ЧекККМТовары.Ссылка.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЧекККМ.Возврат)
            ТОГДА -ЧекККМТовары.Сумма
        ИНАЧЕ ЧекККМТовары.Сумма
    КОНЕЦ КАК Сумма,
    ЧекККМ.ВидОперации КАК ВидОперации,
    ВЫБОР
        КОГДА ЧекККМ.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЧекККМ.Возврат)
            ТОГДА ЧекККМТовары.Ссылка
    КОНЕЦ КАК ЭтоВозврат,
    ВЫБОР
        КОГДА ЧекККМ.ВидОперации <> ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЧекККМ.Возврат)
            ТОГДА ЧекККМТовары.Ссылка
    КОНЕЦ КАК ЭтоПродажа
ИЗ
    Документ.ЧекККМ.Товары КАК ЧекККМТовары
        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЧекККМ КАК ЧекККМ
        ПО ЧекККМТовары.Ссылка = ЧекККМ.Ссылка
ГДЕ
    ЧекККМТовары.Ссылка.ПометкаУдаления = ЛОЖЬ

СГРУППИРОВАТЬ ПО
    ЧекККМТовары.Номенклатура.Артикул,
    ЧекККМТовары.Номенклатура.Наименование,
    ЧекККМТовары.ХарактеристикаНоменклатуры.Наименование,
    ЧекККМТовары.Количество,
    ЧекККМТовары.Цена,
    ЧекККМТовары.Сумма,
    ЧекККМТовары.Ссылка,
    ЧекККМТовары.Ссылка.НомерЧекаККМ,
    ЧекККМТовары.ПроцентСкидкиНаценки,
    ЧекККМТовары.ПроцентАвтоматическихСкидок,
    ЧекККМ.ВидОперации,
    ВЫБОР
        КОГДА ЧекККМТовары.Ссылка.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЧекККМ.Возврат)
            ТОГДА -ЧекККМТовары.Сумма
        ИНАЧЕ ЧекККМТовары.Сумма
    КОНЕЦ,
    ЧекККМТовары.Ссылка
Vofka
Добавить в запрос поле ЧекККМТовары.Ссылка.Комментарий
Darkmant
Vofka @ Сегодня, 14:59 необходимо зарегистрироваться для просмотра ссылки,
Подскажите еще, если не трудно, а длину поля комментарий таким образом ограничить "ВЫРАЗИТЬ (Комментарий КАК Строка(200))"
Ошибка В запросе, содержащем предложение СГРУППИРОВАТЬ ПО, в списке выборки не могут участвовать поля неограниченной длины "Комментарий"
<<?>>ЧекККМТовары.Ссылка.Комментарий,
Vofka
В секции СГРУППИРОВАТЬ так и пишите:
СГРУППИРОВАТЬ ПО
   ...
   ВЫРАЗИТЬ (Комментарий КАК Строка(200))
Darkmant
Vofka @ Сегодня, 15:20 необходимо зарегистрироваться для просмотра ссылки,
Вставил как Вы порекомендовали
    ВЫРАЗИТЬ (Комментарий КАК Строка(200))
    ВЫБОР
        КОГДА ЧекККМТовары.Ссылка.ВидОперации = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийЧекККМ.Возврат)
            ТОГДА -ЧекККМТовары.Сумма
        ИНАЧЕ ЧекККМТовары.Сумма
    КОНЕЦ,
    ЧекККМТовары.Ссылка

Ругается
Ошибка получения информации набора данных
по причине:
Ошибка в запросе набора данных
по причине:
{(52, 2)}: Синтаксическая ошибка "ВЫБОР"
<<?>>ВЫБОР

Извиняюсь за может глупые вопросы, с СКД только столкнулся на работе от предыдущего админа
Vofka
Запятую после ВЫРАЗИТЬ (Комментарий КАК Строка(200)) поставте. И епта, для СКД отдельный же раздел! icon_cuss.gif
Darkmant
Vofka @ Сегодня, 15:30 необходимо зарегистрироваться для просмотра ссылки,
Спасибо за помощь 32000000.gif

поставленная запятая, вернула к предыдущей ошибке "В запросе, содержащем предложение СГРУППИРОВАТЬ ПО, в списке выборки не могут участвовать поля неограниченной длины "Комментарий"
<<?>>ЧекККМТовары.Ссылка.Комментарий" вроде все варианты перепробовал. Без запятой ругается на "Выбор"
ivisor
Vofka @ Сегодня, 14:30 необходимо зарегистрироваться для просмотра ссылки,
Подскажите пожалуйста - зачем там в звпросе ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЧекККМ КАК ЧекККМ
Просто для понимания, а то я не догоняю ...
Только чтобы получить вид операции?
sava1
1.в таком виде там второй таблицы и не надо. Она не используется нормально.
2. соединение надо внутреннее.
Vofka
ivisor, это называется говнокод smile.gif . Как ответил выше sava1, оно там не надо. К ВидуОперации можно добраться через .Ссылка.ВидОперации. Результат будет одинаковый во всех смыслах.

Цитата(sava1 @ 18.05.16, 15:50) необходимо зарегистрироваться для просмотра ссылки
2. соединение надо внутреннее.

А в чем, в данном случае, отличие от левого?
ivisor
Vofka @ Сегодня, 15:12 необходимо зарегистрироваться для просмотра ссылки,
Я тоже подумал о доступе через .Ссылка.ВидОперации, но в 8.2 еще не профи, потому решил - "мало ли", в друг это не по феншую smile.gif вот и спросил.
Спасибо за разъяснение, знач я подумал правильно.
Darkmant
Vofka @ Сегодня, 16:12 необходимо зарегистрироваться для просмотра ссылки,
Может правильней будет вместо "выразить" использовать "подстрока", правильно ли работает преобразование типов в запросе, окончательно запутался в коде.
Без запятой в конце выражения ругается на "Синтаксическая ошибка "ВЫБОР"", с запятой тоже самое, может еще где какой касяк 09000000.gif
sava1
Цитата(Vofka @ 18.05.16, 16:12) необходимо зарегистрироваться для просмотра ссылки
А в чем, в данном случае, отличие от левого?

В данном - практически никакого.
При внутреннем быстрее отработает - только первой таблицей надо брать документ, а присоединять табличную часть (+ условия можно наложить на соединение, а не после).
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.