Найти в Дзене
maksim-it

Рассказываю как работать с отчетами в 1С как профи.

Продолжаю цикл статей про работу с отчетами в 1C. Не буду перечислять все статьи, просто оставлю ссылку на всю рубрику. В прошлой статье мы рассмотрели, каким образом добавить дополнительные вычисляемые поля в наш отчёт с довольно простыми арифметическими действиями: +-*/. Но это далеко не все возможности данного механизма. Возможно, в школьных/институтских занятиях вы проходили информатику, и помните простые условия: ЕСЛИ (Здесь наше условие) ТОГДА (Здесь выполняется действие) КОНЕЦЕСЛИ. И в наших пользовательских полях есть некая аналогия этой операции сравнения: ВЫБОР КОГДА (Здесь наше условие) ТОГДА (Здесь выполняется действие) КОНЕЦ Конечно, без примера мы никуда. Давайте создадим его. Добавляем новое пользовательское поле. Как это сделать рассматривали в прошлой главе. Пусть будет так: Если наименование номенклатуры "Chanel №5 Парфюмерная вода, 100 мл" Тогда "Это шанель" Переводим на язык 1С: ВЫБОР КОГДА [Номенклатура.Наименование] = "Chanel №5 Парфюмерная вода, 100 мл" ТОГДА

Глава 7/2. Расширяем возможности пользовательских полей.

Продолжаю цикл статей про работу с отчетами в 1C. Не буду перечислять все статьи, просто оставлю ссылку на всю рубрику.

В прошлой статье мы рассмотрели, каким образом добавить дополнительные вычисляемые поля в наш отчёт с довольно простыми арифметическими действиями: +-*/. Но это далеко не все возможности данного механизма.

Возможно, в школьных/институтских занятиях вы проходили информатику, и помните простые условия:

ЕСЛИ (Здесь наше условие) ТОГДА (Здесь выполняется действие) КОНЕЦЕСЛИ.

И в наших пользовательских полях есть некая аналогия этой операции сравнения:

ВЫБОР КОГДА (Здесь наше условие) ТОГДА (Здесь выполняется действие) КОНЕЦ

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

Шанель
Шанель

Пусть будет так:

Если наименование номенклатуры "Chanel №5 Парфюмерная вода, 100 мл" Тогда "Это шанель"

Переводим на язык 1С:

ВЫБОР КОГДА [Номенклатура.Наименование] = "Chanel №5 Парфюмерная вода, 100 мл" ТОГДА "Это Шанель" КОНЕЦ

ПРИМЕР
ПРИМЕР

Откуда взялось Номенклатура.Наименование, а не просто Номенклатура?

Дело в том, что сама по себе Номенклатура - это ссылка. То есть, ссылка - это совсем другой тип данных, не СТРОКА. Мы можем сравнивать только одинаковые типы данных. Мы не можем сравнить число со строкой, ссылку с числом итд. Только с одинаковыми типами данных. А вот Номенклатура.Наименование - это как раз строка.

Есть второй вариант - [Номенклатура] поместить в функцию ПРЕДСТАВЛЕНИЕ(), эта функция превращает любой тип данных в строку. Будет выглядеть вот так:

ВЫБОР КОГДА ПРЕДСТАВЛЕНИЕ([Номенклатура]) = "Chanel №5 Парфюмерная вода, 100 мл" ТОГДА "Это Шанель" КОНЕЦ

Я буду использовать Номенклатура.Наименование, вы используйте на свой вкус)

Ссылка номенклатура
Ссылка номенклатура

Итоговые записи не нужны, так как итоги - это про Ресурсы (числовые показатели), а у нас тип данных в данном случае - обычная строка.

Второй важный момент - необходимо добавить наш ПРИМЕР в группировку, не в поля. В нашем случае Поля - это числовые показатели, то есть показатели в рамках группировки. А наш ПРИМЕР это строковое значение, по нему итогов быть не может. Выбираем нижнюю группировку, где выводится номенклатура, дальше все аналогично первому уроку - пользовательские поля, перенос в группировку и нажимаем ОК.

-4

Завершаем редактирование и формирует отчет.

ПРИМЕР
ПРИМЕР

А что если я хочу чтобы вместо пустых строк было что то другое? Тогда просто добавляем условие ИНАЧЕ

ВЫБОР КОГДА Наше условие ТОГДА действие ИНАЧЕ действие КОНЕЦ

Сделаем так:

ИНАЧЕ
ИНАЧЕ

Прочитать можно так:

"Если наименование номенклатуры "Chanel №5 Парфюмерная вода, 100 мл", тогда будет "Это шанель", иначе выводи просто номенклатуру.

Нажимаем ок, завершаем редактирование и вот результат"

Итог
Итог

Давайте для закрепления добавим второе поле. Назовем его ПРИМЕР 2. Условимся, что если количество остаток меньше 10, то это будет "мало остатков, больше 10 - "достаточно". Можно задать гораздо больше условий и больше вложенностей для условия ВЫБОР КОГДА, но я думаю это будет уж слишком сложно для понимания.

Смотрим поля, заголовок Количество на самом деле называется количество конечный остаток

Количество
Количество

Пишем

ПРИМЕР 2
ПРИМЕР 2

Нажимаем Ок, завершаем редактирование, выводим наше поле в группировку номенклатура (аналогично прошлым шагам) и заново формируем отчет. Получаем:

ПРИМЕР 2
ПРИМЕР 2

На этом завершим урок. В следующей главе под дробью /3 сделаю небольшие дополнения по пользовательским полям. Если остались вопросы - задавайте их комментариях. Для связи со мной также