1с как добавить код в отчетах
Приветствую. Продолжаем изучать объекты на дереве конфигурации и на очереди "Отчет" (Рисунок 1).
Создание отчета ничем не отличается от создания любого другого объекта дерева конфигурации: через контекстное меню или через значок плюсик.
Отчет - это объект дерева конфигурации, который предназначен для обработки данных и вывода их в виде, удобном пользователю.
Как и в жизни, отчеты хранят какую-то информацию, так и наши отчеты будут хранить информацию, которую хочет видеть пользователь.
Приступим к созданию отчета. Перед нами стоит задача: необходимо вывести список всех сотрудников по предприятию.
Добавляем отчет и называем его "Список сотрудников" (Рисунок 2).
Теперь необходимо нажать на кнопку "Открыть схему компоновки данных" (Рисунок 3).
Схема компоновки данных (СКД) - это специальный механизм (инструмент) платформы, который позволяет с легкостью создавать отчеты, даже не имея опыта разработки.
В открывшемся окне нажимаем "Готово"(Рисунок 4).
В следующем окне нужно подготовить все для создания отчета. Для этого создадим запрос (Рисунок 5).
После этого переходим в низ открывшегося окна и нажимаем кнопку "Конструктор запроса" (Рисунок 6).
В открывшемся окне нужно выбрать тот объект, по которому вы хотите сделать отчет, в данном случае нас интересует отчет по сотрудникам, значит выбираем справочник "СписокСотрудников" (Рисунок 7).
Перетаскиваем справочник (или двойным нажатием или на стрелочку вправо, выделив справочник) во второй столбец (Рисунок 7).
Теперь необходимо раскрыть элементы этого справочника и выбрать там те, которые мы хотим видеть в отчете (Рисунок 8). Перетаскиваем в столбец "Поля" нужные элементы (Рисунок 8).
После этого нажимаем "Ок" и в поле "" появится запрос (Рисунок 9).
Переходим на вкладку "Настройки" (Рисунок 10).
На этой вкладке нужно создать сам отчет (Рисунок 11). Создаем группировку.
В новом окне нажимаем "Ок", ничего не меняя (Рисунок 12).
После этого идем вниз и перетаскиваем нужные поля (Рисунок 13).
В итоге у вас должно получиться так (Рисунок 14).
После этого закроем все окна, отчет готов, но нужно добавить его в одну из подсистем, иначе пользователь не сможет им пользоваться (Рисунок 15).
Запустим пользователя, перейдем в подсистему и найдем наш отчет (Рисунок 16).
Как видите, отчета нет. Нужно нажать кнопку "Сформировать" и отчет появится (Рисунок 17).
Таким образом, нажимая на кнопку "Сформировать" отчет будет формироваться каждый раз по новым данным, которые пользователь может добавлять каждый час или день.
Создание отчета завершено - это самый простейший отчет, который может создавать платформа. Это минимально, что она может и ее функционал намного больше, чем мы сделали сейчас. Но все это еще впереди, пока остановимся на этом.
На этом статья урока подходит к концу. Попробуйте выполнить все действия, которые описаны в этом уроке. Если что-то не получается, то вы всегда сможете написать вопрос о том, что вам непонятно или вернуться к предыдущим урокам и посмотреть их - ссылки внизу!
Дополнение готовых отчетов своими колонками.
В отчета сделанных с помощью "Схемы компоновки данных" из пользовательского режима можно добавлять свои Поля, которые будет выводиться при формировании.
В данных полях позволительно применять арифметические действа.
Открываем "Настройки. " и переходим на закладку "Пользовательские настройки".
2. Добавляем "Новое поле Выражение"
Как будет отображаться при формировании
Выражение детальных записей:
[Сумма продажи] / Количество
Собственно из чего получились данные
Выражение итоговых записей:
[Сумма продажи] / Количество
Выражение для получения итогов по группировкам
Добавление полей проставляет собой прописывание арифметических действий между Доступными полями, (это позволительно отмеченных зеленым квадратиком) . Также особенность, если название такого поля состоит из двух или более слов, его необходимо заключить в квадратные скобки [ ]. Получиться вот так - [Сумма продажи].
После сохранения, это поле станет доступно для выбора:
Вот с помощью несложных манипуляций получаете нужное для себя значение. Данная возможность позволить добавлять нужные поля. В таких вариантах расчета как вам необходимо. Рентабельность, Эффективность и прочее значения будут считаться в вашей логики арифметических расчетов.
Итого, необходимо сохранить что вы сделали:
В этом случае ваша работа не будет потеряна и при следующем открытии отчета можно будет воспользоваться.
Функций, используемые при написании полей.
1. Арифметические « + , - , * , / » с этим понятно, думаю объяснить принцип их действия не надо.
2. Логические выражения в используются для определения отборов. « > , < , = , >= , , И , ИЛИ , НЕ » . Данные выражения используется с операцией выбора.
3. Операции выбора. Применяться для получения одного из возможных значений в соответствии с указанными условиями
ВЫБОР
КОГДА < Операция выбора >ТОГДА < Выражение >
ИНАЧЕ < Выражение >
КОНЕЦ
Пример :
ВЫБОР
КОГДА Количество > 0 и Сумма > 0 ТОГДА «Правильно»
ИНАЧЕ «Ошибка»
КОНЕЦ
Это расшифровывается так: при условии когда количество больше нуля и сумм больше нуля, будет выводиться текст «Правильно», а если хоть одно из условий не соблюдено выводиться «Ошибка».
4. Встроенная функция, позволяет произвести определенные преобразования с полями.
ПОДСТРОКА ( «Выражение» , «Начальная позиция» , «Конечная Позиция» ) – выбирается часть «Выражения» , ограниченного рамками «Начальной…» и «Конечной…» .
Как это поисходит при значении Номенклатура - «Паста шоколадная» формула Подстрока(Номенклатура, 1, 5) выведет значение «Паста»
Для работы с датой используются функции
Будет выводится соответствующий названию функции значение.
НАЧАЛОПЕРИОДА ( «Дата» , «Период сдвига» ), КОНЕЦПЕРИОДА ( «Дата» , «Период сдвига» ). Для данных функции, значение Выражения даты на начало или конец заданной даты.
ДОБАВИТЬКДАТЕ ( «Дата» , «Период сдвига» , «Величина , на которую требуется увеличить дату» ) - функция позволяет увеличить или уменьшить дату на определенное значение .
РАЗНОСТЬДАТ ( «Дата1» , «Дата2» , «Период сдвига» ) - Функция предназначена для получения разницы между двумя датами .
«Период сдвига» одно из «Минута, Час, День, Неделя, Месяц, Квартал, Год, Декада, Полугодие».
5. Агрегатные функции языка запросов используются при группировке результатов подсчете итогов
СУММА ( <> ) арифметическую сумму всех попавших в выборку значений.
СРЕДНЕЕ ( <> ) вычисляет среднее значение всех попавших в выборку
МИНИМУМ ( <> ) вычисляет минимальное значение из всех попавших в выборку значений
МАКСИМУМ ( <> ) вычисляет максимальное значение из всех попавших в выборку значений
КОЛИЧЕСТВО ( <> ) подсчитывает количество значений параметра, попавших в выборку. Данная функция позволяет имеет варианты использования. КОЛИЧЕСТВО(*) - позволяет подсчитать количество строк в результате. КОЛИЧЕСТВО(РАЗЛИЧНЫЕ «Выражение») - позволяет подсчитать количество различных значений указанного поля.
Сумма(Выбор
Когда Подстрока ( Номенклатура , 1 , 5 ) = "Паста"
Тогда Количество * 0.2
Иначе Количество * 0.35
Конец)
Получится сумма значений при этом когда в начале наименования номенклатуры присутствует «Паста» в этом случает количество увеличивается на 0.2 если не присутствует увеличивается на 0.35.
Год ([ Документ . Дата ])
Выведется Год когда документ записан/проведен.
Более сложный пример, без расшифровки.
Выбор
Когда Квартал ([ Документ . Дата ]) = 1 И Подстрока ( Номенклатура , 1 , 5 ) = "Паста"
Тогда Количество * 0.2
Иначе Выбор
Когда Квартал ([ Документ . Дата ]) = 2
Тогда Количество * 0.3
Иначе Выбор
Когда Квартал ([ Документ . Дата ]) = 3
Тогда Количество * 0.4
Иначе Выбор
Когда Квартал ([ Документ . Дата ]) = 4
Тогда Количество * 0.5
Конец
Конец
Конец
Конец
Речь пойдет об отчетах, созданных на базе СКД (на всякий случай пишу, если еще остались люди, которые делают отчеты не на СКД).
Добавить отчет в типовую конфигурацию 1С, построенную на базе БСП, можно одним из следующих способов:
Добавляемый отчет может быть:
Вроде все должно быть просто и интуитивно понятно, но есть нюансы, и в каждом случае добавление происходит по разному. В общем, разработчики БСП и других типовых продуктов не дают соскучиться J .
Варианты отчетов
Прежде чем приступить к описанию добавления отчетов, хочется сказать несколько слов о вариантах.
Варианты отчетов - это встроенный механизм СКД, который позволяет создавать для отчета произвольное количество предопределенных и пользовательских вариантов. По своей сути варианты – это отдельные отчеты, созданные на базе одной и той же системы компоновки данных.
Существует отдельная подсистема БСП, для управления вариантами отчетов, которая встроена во все типовые конфигурации. Подсистема предоставляет общее хранилище вариантов, общие формы для вывода и настройки отчетов, механизмы для отображения отчетов – формирование специальных панелей для каждого раздела системы. Пользователь может управлять настройками предопределенных вариантов отчетов, создавать и настраивать собственные варианты в режиме 1С Предприятие. Также подсистема позволяет создавать контекстные отчеты, привязанные к определенным объектам метаданных.
Для каждого отчета существует основной предопределенный вариант. В дальнейшем, говоря об отчете, я буду подразумевать именно его основной вариант.
Общая сравнительная таблица:
Тип добавления
В основную конфигурацию
В расширение конфигурации
В качестве внешнего отчета
Обновление вспомогательных данных (идентификаторы объектов)
Обновление вспомогательных данных (варианты отчетов)
Предопределенные настройки вариантов
Общий модуль: ВариантыОтчетовПереопределяемый
Модуль менеджера отчета
Возможность добавление обработчиков событий формы
Указывается в общем модуле: ВариантыОтчетовПереопределяемый
Указывается в модуле менеджера отчета:
ПриОпределенииНастроек
Доступна по умолчанию
Описание назначения для контекстного отчета
Модуль менеджера отчета, модуль менеджера объекта назначения
Модуль менеджера отчета
Модель объекта отчета
Описание основного варианта (по умолчанию)
Свойство отчета «Пояснение»
Добавление пользовательских вариантов отчета
Добавление нового отчета в основную конфигурацию
Рассмотрим добавление отчета в основную конфигурацию. В более старых конфигурациях типа УТ 10.3, УПП все было предельно просто. Добавляешь отчет, выводишь его в меню интерфейса или на панели быстрого доступа, и все работает.
В новых все несколько сложнее, и есть свои нюансы.
Для того, чтобы отчет выводился в основном окне раздела в группе «Отчеты», достаточно просто включить отчет в необходимую подсистему.
Однако, в этом случае, отчет не будет виден на специальной панели отчетов, которую предоставляет БСП. Панель открывается при переходе по ссылке «Отчеты по » из каждого раздела системы:
Отчеты выводятся с разбивкой по подгруппам согласно иерархии подсистем, и имеют описания. Причем , могут быть выведены несколько вариантов одного и того же отчета. Если просто добавить отчет в конфигурацию и включить в нужную подсистему, отчет не будет виден в указанной панели. Отчет будет доступен только в группе «Отчеты» основного окна раздела. Кстати, не так давно, он бы даже не работал, пока не будут обновлены идентификаторы объектов метаданных.
Обновить идентификаторы можно одним из трех способов:
- Запустить 1С Предприятие в режиме обновления ИБ, задав параметр запуска: «ЗапуститьОбновлениеИнформационнойБазы»:
- Увеличить номер версии конфигурации.
- Воспользоваться обработкой из состава БСП: «Обновление вспомогательных данных»
В текущих версиях, идентификаторы обновляются при запуске 1С в пользовательском режиме автоматически . Наконец-то разработчики сделали это, слава богам!
Однако, для того, чтобы отчет, добавленный в основную конфигурацию появился на панели отчетов, все же необходимо обновить вспомогательные данные вручную, выбрав пункт «Варианты отчетов»:
После выполнения этих действия, отчет будет добавлен в специальные справочники: «Варианты отчетов» и «Предопределенные варианты отчетов», и его основной вариант будет виден в панелях отчетов согласно указанной подсистемы.
Конечно, все дальнейшие настройки, такие как добавление описания, вывод отчета или других его вариантов в другие подразделы или панели отчетов, можно выполнить непосредственно в пользовательском режиме, перейдя по ссылке «Все отчеты»:
Но, более правильно указать основные (предопределенные) настройки в конфигурации. Тем более, что некоторые виды настроек, например видимость варианта отчета в зависимости от функциональных опций, нельзя настроить в пользовательском режиме.
Настройки вариантов отчетов задаются в процедуре общего модуля: «ВариантыОтчетовПереопределяемый >> НастроитьВариантыОтчетов». Здесь описаны все типовые отчеты и их варианты. Все настройки необходимо создавать для двух объектов: «Описание отчета» и «Описание варианта», которые можно получить из общего списка настроек, переданных в процедуру:
Объект «ОписаниеОтчета» имеет следующие свойства:
Включен - если свойство имеет значение «ложь», отчет не регистрируется в справочнике «Варианты отчетов».
ОпределитьНастройкиФормы – свойство определяет наличие в модуле объекта отчета экспортной процедуры « ОпределитьНастройкиФормы ». В данной процедуре указывается наличие дополнительных обработчиков для событий модуля формы отчета, которые также должны присутствовать в модуле объекта отчета:
Объект «ОписаниеВарианта» имеет следующие свойства:
Описание - Описание варианта отчета, которое выводится на панели отчетов.
ВидимостьПоУмолчанию - если свойство имеет значение «ложь», вариант не виден по умолчанию в панели отчетов, но в справочнике «Варианты отчетов» он регистрируется.
Размещение – настройка размещения отчета. По умолчанию, коллекция содержит все подсистемы, выбранные для отчета. Можно добавить новые подсистемы для размещения или удалить существующие. Дополнительно, можно указать важность размещения: «Важный» или «СмТакже»:
ФункциональныеОпции – подключенные к команде вывода варианта отчета функциональные опции:
НастройкиДляПоиска – дополнительные сведения для поиска варианта отчета
Для вступления настроек в силу, требуется обновить вспомогательные данные, выбрав пункт «Варианты отчетов».
В пользовательском режиме, можно переопределить эти настройки для текущего пользователя или всех пользователей системы. Тем не менее, всегда остается возможность вернуться к предопределенным настройкам, заданным в конфигурации:
Добавление нового отчета в расширение конфигурации
На первый взгляд, добавление отчета в расширении не должно отличаться от его добавления в основную конфигурацию, но это не так.
Во-первых, для того, чтобы отчет был виден на панели отчетов, не нужно выполнять обновление вспомогательных данных. Необходимая информация в справочники: «Варианты отчетов» и «Предопределенные варианты отчетов» добавляется автоматически, при начале работы системы. Я думаю логика разработчиков следующая: расширение может подключить обычный пользователь в режиме 1С Предприятия. И он не должен знать о необходимости обновлении вспомогательных данных.
Для отчетов, добавленных в расширениях, также существует возможность описания предопределенных настроек: описание, подсистемы, функциональные опции. Однако, эти настройки выполняются не в переопределяемом общем модуле, а непосредственно в модуле менеджера отчета:
Все настройки аналогичны тем, которые выполнялись для отчетов основной конфигурации. Отличие только в том, что объект «НастройкиОтчета» уже передан в процедуру в качестве параметра.
Для применения созданных настроек обязательно должен быть установлен параметр «НастроитьВариантыОтчета» в экспортной процедуре модуля менеджера отчета «ПриОпределенииНастроек»:
Если флаг установлен, предопределенные настройки обновляются автоматически, без необходимости обновления вспомогательных данных.
В этой же процедуре указывается наличие дополнительных обработчиков событий модуля формы отчета:
На заметку. Для отчетов созданных в расширениях, есть возможность указания описания для основного варианта без использования менеджера отчета. Для задания описания «по умолчанию» используется свойство отчета «Пояснение»:
Добавление контекстного отчета в основную конфигурацию или в расширение
Алгоритм добавления контекстных отчетов одинаков для отчетов созданных в основной конфигурации и для отчетов, созданных в расширениях.
В обоих случаях, необходимо определить экспортную процедуру «ПриОпределенииНастроек» в модуле менеджера отчета, и указать объекты назначения:
Сами команды необходимо описать в отдельной процедуре:
Основные свойства команды:
Представление – наименование команды в интерфейсе объекта назначения,
КлючВарианта – идентификатор варианта отчета компоновки данных, который требуется запустить.
Дополнительные свойства команды:
Важность - группы в подменю «Отчеты», в которой следует вывести команду открытия отчета. Доступные значения: "Важное", "Обычное" и "СмТакже".
Порядок - п орядок размещения отчета по отношению к другим отчетам.
СочетаниеКлавиш - с очетание клавиш для быстрого открытия отчета (тип «СочетаниеКлавиш».
ВидимостьВФормах - и спользуется для указания перечня форм, в которых требуется выводить отчет. По умолчанию, отчет выводится во всех формах объекта, подключенных к БСП.
ФункциональныеОпции - имена функциональных опций, определяющих видимость команды открытия отчета в форме.
УсловияВидимости – дополнительные условия, о пределяющие видимость команды отчета (массив). Для добавления новых условий рекомендуется использовать процедуру общего модуля «ПодключаемыеКоманды.ДобавитьУсловиеВидимостиКоманды(Команда, Реквизит, Значение, Знач ВидСравнения = Неопределено)».
Параметр «Реквизит» - это имя реквизита объекта назначения.
ДополнительныеПараметры – можно указать дополнительные параметры, и потом их обработать в переопределенном обработчике события модуля формы отчета «ПриСозданииНаСервере».
Ссылка на объект назначения передается в контекстный отчет в качестве параметра формы «ПараметрКоманды» . Для указания отбора по переданному значению, необходимо переопределить событие модуля формы отчета «ПриСозданииНаСервере», и добавить значение параметра в структуру «ФормаПараметры.Отбор»:
При необходимости можно обработать данные, переданные в свойстве команды «ДополнительныеПараметры»:
Примечание. Описывать команды для вывода контекстных отчетов можно не только в модуле менеджера самого отчета, но и в модуле менеджера объекта назначения, в экспортной процедуре «ДобавитьКомандыОтчетов». В этом случае, команда должны иметь дополнительный обязательный параметр «Менеджер», в котором необходимо указать полное имя менеджера отчета. Контекстные отчеты в типовых конфигурациях описаны именно таким способом.
Добавление отчетов с помощью механизма внешних отчетов и обработок
Процесс добавления общих и контекстных отчетов с использованием механизма дополнительных отчетов и обработок подробно описан во многих статьях, например в этой .
Я не думаю, что у кого-то возникают сложности при добавлении отчетов таким способом. Отмечу лишь, что в данном случае не нужно обновлять вспомогательные данные. Также, нет возможности указания предопределенных настроек для вариантов отчета. Все настройки вариантов указываются в пользовательском режиме, прямо в форме элемента дополнительного отчета:
Возможность добавления в модуль объекта обработчиков событий формы отчета доступна по умолчанию.
Если я ошибаюсь, и существуют вопросы и непонятные моменты в работе механизма дополнительных отчетов и обработок, пишите в комментариях, и я напишу отдельную статью на эту тему.
Дополнительно хочу отметить, что варианты отчетов, созданные в пользовательском режиме настраиваются одинаково для любого из способов добавления основного отчета.
На этом все, спасибо за внимание, и за то, что читаете мои статьи J .
Другие мои статьи по использованию механизмов БСП в типовых конфигурациях 1С
Рассмотрим возможность добавления пользовательских полей в схему компоновки данных отчета 1С 8. Для примера добавим поле 1С 8.3 “Цена” в типовой отчет “Валовая прибыль предприятия” и разместим его между колонками “Количество” и “Выручка” в 1С.
Рис. 1 Типовой отчет “Валовая прибыль предприятия”
Нам нужно нажать на кнопку “Еще”, перейти на закладку “Прочее” и выбрать пункт “Изменить вариант отчета”.
Переходим на закладку “Пользовательские поля”, нажимаем кнопку “Добавить”, выбираем пункт “Новое поле выражение”
Рис. 2 Добавление нового поля в отчет
2. Как избежать ошибки деления на 0
В поле “Заголовок” указываем название нашей колонки. Оно будет выводится в отчет. В поле “Выражение детальных записей” укажем следующий код 1С 8.3:
КОГДА Количество <> 0
Эта конструкция нужна, чтобы избежать ошибки деления на 0. Разберем ее подробнее.
“КОГДА Количество <> 0 ТОГДА” – проверяем поле “Количество” на неравенство нулю. Если условие выполняется (“Количество” не равно нулю), то выполняется конструкция “Выручка/Количество”. Если же условие не выполняется (“Количество” равно нулю), то делаем поле “Количество” равным нулю – “ИНАЧЕ 0”.
В общем виде эта конструкция выглядит так:
Аналогичным образом можно добавить любую другую формула в 1С для расчета пользовательского поля. Важно помнить, что обращение к полям отчета осуществляется по заголовкам колонок отчета 1С 8.
Копируем данную конструкцию в поле “Выражение итоговых записей”.
Рис. 3 Код для избегания ошибки деления на ноль
Сохраняем созданное поле, нажав на кнопку “Ок”. Видим, что наше поле появилось на вкладке “Пользовательские поля”.
Рис. 4 Вкладка “Пользовательские поля”
Настроим округление поля 1С 8.3 Цена до двух знаков после запятой. Переходим на закладку Условное оформление 1С и нажимаем кнопку “Добавить”
Рис. 5 Настройка округления данных в поле
На закладке Оформление находим параметр “Формат”. Устанавливаем флаг использования, нажимаем на кнопку выбора.
Рис. 6 Редактирование элемента условного оформления
На закладке “Число” устанавливаем флаг использования на поле “Точность”, задаем нужное количество знаков после запятой. Ниже можно посмотреть пример, как будет выглядеть наше число после применения настроек 1С 8.3. Сохраняем изменения, нажав на кнопку “ОК”.
Рис. 7 Результат проведения настроек округления
Для параметра “Формат” установилось нужное нам значение
Рис. 8 Для параметра формат было установлено необходимое значение
Перейдем на закладку “Оформляемые поля”. Найдем в доступных полях группировку “Пользовательские поля”, раскроем ее и увидим созданное нами поле “Цена”. Выбираем его двойным кликом или перенеся его мышкой в список выбранных полей.
Рис. 9 Перенос созданного поля в список выбранных
Видим, что наша настройка формата добавилась в таблицу на вкладке “Условное оформление”.
Рис. 10 Настройка формата добавлена в таблицу
Осталось разместить колонку “Цена” между колонками “Количество” и “Выручка” в 1С. Для этого переходим на закладку “Поля”. В списке доступных полей находим группировку “Пользовательские поля”, раскроем ее и увидим созданное нами поле “Цена”. Переносим его мышкой между колонками “Количество” и Выручка в 1С.
Важно обратить внимание, что в отчет 1С 8 выводятся только колонки, у которых стоит флаг использования. Поэтому неважно, что колонка “Цена” стоит перед колонками “Вес (нетто)” и “Объем”. Флаг использование у них не стоит, в отчет 1С 8 они выведены не будут.
Нажимаем кнопку “Завершить редактирование”.
Рис. 11 Перенос нового поля и завершение редактирования отчета в 1С
Переформируем отчет 1С 8 и посмотрим на результат
Рис. 12 Новый вид отчета “Валовая прибыль предприятия”
Специалист компании «Кодерлайн»
Вас могут заинтересовать следующие статьи:
94 [PROP_CODE] => TAGS2 [TITLE] => Вас могут заинтересовать следующие семинары: ) --> 95 [PROP_CODE] => TAGS [TITLE] => Вас могут заинтересовать следующие вебинары: ) -->
Вас могут заинтересовать следующие вебинары:
В данной статье разберем механизм работы пользовательских полей в системе компоновки данных. Вы можете создать новое пользовательское поле в отчете и запрограммировать в нём собственный алгоритм вывода данных. Название «пользовательское» у него тоже появилось не случайно. Предполагается, что работать с ним будет именно пользователь. Почему пользователь? Потому что эти поля доступны в настройках отчета, то есть Вам не нужно снимать с поддержки конфигурацию и даже не нужно иметь доступ в конфигуратор, чтобы доработать типовой отчет. Этот функционал доступен из пользовательского режима.
К слову, аналогичный функционал создан и для разработчиков, это – вычисляемые поля в отчете. Техническое отличие вычисляемых полей состоит только в том, что в их выражениях можно использовать собственные функции, написанные на языке программирования. Однако на них подробнее остановимся в будущих статьях, здесь же речь пойдет именно о пользовательских полях в 1С.
2. Доработка отчета "Ведомость расчетов с клиентами"
Отработаем следующий кейс: директор требует в типовой отчет ERP «Ведомость расчетов с клиентами» добавить дополнительное поле, которое явно бы указывало, кто должник: мы или партнер. Директор – человек занятой и во все эти цифры вникать времени не имеет. Задачу поставили руководителю отдела продаж. Штатного программиста в организации нет, доступа в конфигуратор также нет, платные работы директор не согласует, а результат нужен через час.
Рис. 1 Пользовательское поле в отчете "Ведомость расчетов с клиентами"
На самом деле уложиться в срок вполне реально. Приступаем.
Проваливаемся в «Продвинутые настройки отчета»
Рис. 2 Продвинутые настройки отчета для добавления пользовательского поля в 1С
Добавляем новое пользовательское поле в СКД, тут два варианта «Выбор» и «Выражение».
Поле выбор – специализированный механизм, работа с ним интуитивно понятна, но круг задач ограничивается выводом значения по заданному условию.
Поле выражение – универсальный механизм, как правило более трудоемкий и требующий больших знаний, однако способный решить гораздо больший круг задач.
Рис. 3 Изменение варианта отчета "Ведомость расчета с клиентами"
Наше поле должно сравнить задолженности и вывести нужное значение. Поле "Выбор" отлично справится с данной задачей, используем его.
В заголовке поля можно использовать пробелы. Добавляем отбор, проваливаемся в выражение.
Переносим долг клиента в отбор, теперь его можно сравнить с любым значением, а если наступить на значение и кликнуть правой кнопкой мышки, появится меню, в котором можно включить сравнение с другим полем.
Рис. 4 Сравнение полей в отчете "Ведомость расчетов с клиентами"
В значении выбираем "Наш долг". Отбор готов – завершаем редактирование условия.
Рис. 5 Завершение редактирования пользовательского поля в отчете
Теперь, если заданное условие будет выполняться, значением поля будет единица (это тоже можно использовать, например, при подсчете должников). Представление – это строка. Если представление не заполнено, в отчет будет выводиться значение поля. Аналогично настроим ситуацию, где должен выводиться маячок о нашей задолженности, только с учебной целью: настроим вывод надписи "Наш" прямо в значении.
Рис. 6 Редактирование пользовательского поля в 1С
В отборе действия аналогичные, только долг клиента теперь будет меньше нашего. Теперь провалимся в значение и видим: типом может быть не только число, но и строка, дата, галочка, а если выбрать тип "поле компоновки", то значением пользовательского поля может быть любое другое поле отчета. Нам нужна строка – выбираем, и теперь можем вписать слово "Наш" в значении.
Рис. 7 Редактирование пользовательского поля СКД
Пользовательское поле в СКД готово, нажимаем «Ок».
Рис. 8 Пользовательского поле в СКД готово
Теперь пользовательское поле в 1С СКД появилось в доступных полях, выводим его в отчет.
Рис. 9 Выводим пользовательское поле в отчет
Сохраним полученный вариант.
Рис. 10 Ведомость расчетов с клиентами с пользовательским полем
В название варианта добавим информацию об особенностях отчета и откроем доступность всем пользователям.
Рис. 11 Открытие доступа пользовательского поля в отчете всем пользователям
Рис. 12 Новая версия Ведомости расчетов с клиентами
Директор остался доволен, наградил выходным 31 декабря, но, как это часто бывает, главный бухгалтер Марья Ивановна была свидетелем Вашего триумфа и нам прилетает новый кейс.
3. Доработка поля "Валюта"
Необходимо в поле валюта добавить код этой валюты в скобочках. Валют много, с кодами им работать удобнее, а скобочки – это красиво.
Казалось бы, что может быть проще. Идем в "Продвинутые настройки", проваливаемся в группировку с валютой, находим её код, добавляем реквизит. Согласно настроек по умолчанию реквизит поля будет вместе с владельцем.
Рис. 13 Редактирование поля "Валюта"
Рис. 14 Результат редактирования поля "Валюта"
Сдаем главбуху, но Марья Ивановна непреклонна. Без скобочек – некрасиво, запятую – убрать, и пусть написано будет по-русски. Переделать!
Вариант решения мы нашли, это – пользовательское поле в СКД. Начинаем с размышлений, какой вариант пользовательского поля в отчете взять? Тут мы ничего не сравниваем, и нам потребуется написать выражение, которые не умеет поле "Выбор", поэтому используем поле "Выражение".
Наберем следующее выражение:
[Валюта.Наименование валюты] + " ( " + [Валюта.Цифровой код] + " ) "
Здесь мы в квадратных скобках прописываем доступные поля или их реквизиты, в кавычках – любые символы (не забывайте про пробелы), а плюсиками мы их всех соединяем в единое целое.
На ранних релизах платформы система не может перевести код валюты в строку и потребуется дополнить выражение командой СТРОКА — вот так :
[Валюта.Наименование валюты] + " ( " + СТРОКА([Валюта.Цифровой код]) + " ) "
Нижнее окошко (Выражение итоговых записей) требуется заполнить, если хотим сделать поле реквизитом, в нашем кейсе этого не требуется, но имейте это ввиду – пригодится.
Рис. 15 Редактирование пользовательского поля "Выражение"
Поле мы создали и можем его вставить в группировку, получив такой результат:
Рис. 16 Результат редактирования пользовательского поля в СКД
Но нам же нужно подменить валюту на наше самописное поле.
Обращаю внимание, просто заменить поле "Валюта" нельзя, даже если при тестировании отчет будет работать, нет гарантий, что при работе обменов или переносе данных из другой программы отчет не сломается. Поле "Валюта2" – это ссылка, а в пользовательском поле используется наименование и код, что может привести к дублям или ошибке.
Надежнее не заменять ссылку на "Валюту", а заменить ее представление. Я не зря упомянул функционал выражения-представления из конфигуратора. Фактически, в нашем кейсе мы движемся тем же путем. У нас есть ссылка – "Валюта", мы создали её представление –"Наименование валюты для бухгалтерии", осталось уговорить программу отображать данное представление валюты в отчете.
Для этого воспользуемся закладкой "Условное оформление". Найдите там параметр "Текст". Проваливаемся, выбираем "Поле компоновки данных", находим наше пользовательское поле для бухгалтерии.
Рис. 17 Поле компоновки данных
Картинка получилась такая
Рис. 18 Результат замены поля "Валюта"
Переходим на закладку "Оформляемые поля" и указываем, что данное представление мы задали для поля "Валюта".
Рис. 19 Представление для поля "Валюта"
Завершаем редактирование. Проверяем отчет, сохраняем вариант.
Рис. 20 Конечный результат в отчете "Ведомость расчетов с клиентами"
Специалист компании «Кодерлайн»
Вас могут заинтересовать следующие статьи:
94 [PROP_CODE] => TAGS2 [TITLE] => Вас могут заинтересовать следующие семинары: ) --> 95 [PROP_CODE] => TAGS [TITLE] => Вас могут заинтересовать следующие вебинары: ) -->
Вас могут заинтересовать следующие вебинары:
Читайте также: