1с к чему приведет установка флажков отмеченных на рисунке

Обновлено: 07.07.2024

Элементы управления - это объекты формы, определяющие визуальное представление формы и предназначенные для интерактивного взаимодействия с пользователем (например, кнопки, флажки, поля ввода и т.д., визуальное объединение "элементарных" элементов управления).

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

Для обычных форм элементы управления настраиваются только конфигуратором, а для управляемых возможны определенные корректировки элементов в режиме 1С:Предприятие.

В элементах управления данные не хранятся!

Для обычной формы полный список элементов можно открыть из меню "Форма" - "Список элементов управления формы" (рис. отсюда ): Добавить элемент управления в обычную форму можно:
  1. через пункт главного меню "Форма - Вставить элемент управления";
  2. с помощью командной панели "Элементы управления".

Элемент управления "Панель"

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

Особенности использования элемента управления "Панель":

  1. Если в форму вставлен элемент управления "Панель", то для этого элемента можно задать режим "Автоправила", отличный от одноименного режима формы, причем данный режим будет действовать на все страницы панели. Свойство "Автоправила" обеспечивает автоматическую привязку границ элементов управления. Для Панели автоправила можно выставить в значение, отличающееся от значения родительской формы.
  2. При размещении элементов управления в форме нельзя разместить один и тот же элемент управления на двух страницах.
  3. Многостраничная форма может не иметь закладок, если:
    • для свойства формы "Отображать закладки" установлено значение "Не отображать";
    • отображение закладок отключено программным способом.
  4. Закладки на форме могут быть расположены сверху, снизу, справа и слева.
    используя пункт контекстного меню формы "Добавить страницу";


Элемент управления "Поле HTML-документа"

Элемент управления "Поле HTML-документа" предназначен для просмотра или редактирования HTML-документов и позволяет:
  1. отобразить на форме веб-страницу;
  2. назначить обработчики для множества событий.

HTML-документ в элементе управления "Поле HTML-документа" может быть сформирован:

  1. программно;
  2. загружен из ресурса, указываемого через URL;
  3. загружен из макета типа HTML-документ.

Редактировать HTML-документ, отображаемый в элементе управления "Поле HTML-документа", можно в режиме 1С:Предприятие (в конфигураторе документ не редактируется).

Элементы формы для списочных значений

В ходе разработчик прикладного решения, может возникнуть задача выбора какого-либо значения из заранее заданного списка. Список значений при этом может быть связан с какими-то данными конфигурации, либо определяться для формы. Эта задача может быть реализована с использованием элементов формы для выбора, ввода и вывода списочных значений:

  1. "Поле выбора" (пользователь может выбрать значение из списка, который можно как связать с данными, так и определить произвольный для данной формы через опцию "Строки списка выбора");
  2. "Поле списка" (пользователю показывается полный список значений, список раскрывать не нужно);
  3. "Поле ввода" (можно выбрать из данных ссылочного типа).

Можно одновременно создать элемент управления "Поле ввода" вместе с поясняющей надписью, представляющей элемент управления "Надпись", для чего необходимо создавать поле ввода через пункт главного меню "Форма - Вставить элемент управления. ".

Особенности работы с элементами формы для списочных значений:

  1. Элемент управления "Поле ввода" предназначен для:
    • ввода значений непосредственно в поле, например, с клавиатуры;
    • выбора ссылок на объекты;
    • выбора значений из предварительно сформированного списка.
  2. Тонкая прерывистая линия красного цвета в поле ввода означает, что данное поле обязательно к заполнению.
  3. Состав кнопок, расположенных справа у элемента управления "Поле ввода", определяется:
    • значением свойства поля ввода "Тип значения";
    • выбором соответствующего свойства в окне свойств элемента управления.

Отсюда . Первая опция определяется тем, что не каждый тип данных можно открыть скажем на просмотр (например для перечислений). Вторая опция также существует:

Для примера нам понадобится любая конфигурация (хоть созданная с нуля) со справочником "Номенклатура". Остальное не важно.

Подготавливаем галочки. К слову, они могут быть любыми, если вам не нравятся стандартные флажки создайте свои. Главное, чтобы первой стояла картинка с флажком, а потом уже без флажка. У меня получился вот такой файл:


Создаем внешнюю обработку. Размещаем на ней реквизит с типом "Динамический список" и устанавливаем галочку "Произвольный запрос"


Нажимаем на "Открыть" рядом с настройкой списка и устанавливаем запрос. Запрос выглядит следующим образом:

Добавляем на форму список и его реквизиты "Пометка", "Ссылка"


В поле "Пометка" устанавливаем следующие свойства элемента:

  • Вид - Поле картинки
  • Положение заголовка - Нет
  • Картинка значений - Наша картинка с галочками
  • Гиперссылка ячейки - Да

Для элемента формы "Список" установите событие "Выбор" с названием процедуры "СписокВыбор".

Скопируйте код ниже в модуль формы:

Поздравляю, теперь в вашем динамическом списке есть галочки!

А теперь как всё это работает.

Особенностью динамических списков является невозможность ввода данных непосредственно в список. Когда-то раньше такая возможность была, но нас ее лишили по техническим причинам. Поэтому вся информация, которая отображается в динамическом списке не может редактироваться и получается запросом.

Для динамических списков есть событие ПриПолученииДанныхНаСервере. Там тоже можно заполнить и переопределить некоторые поля. Но есть парочка больших НО, которые следует учитывать:

  1. Процедура выполняется без контекста. То есть реквизиты формы в ней недоступны. Есть, конечно, способ передать реквизиты через настройки компоновщика, но это не очень удобно.
  2. Отборы по таким полям не будут работать. А фишка динамических списков как раз в гибкости настроек. В итоге пользователь будет работать с ними как с обычными полями, а потом чесать репу и писать в саппорт что у него список не работает. Если вы пойдете этим путем - настоятельно рекомендую выделять такие колонки цветом.
  3. Это не имеет никакого отношения к интерактивному взаимодействию пользователя со списком.

А поскольку мы не можем менять данные в самом списке, значит они должны отображаться уже с учетом наших изменений. Остается передавать их в запрос через параметры. Делается это через переменную ВыбраннаяНоменклатура. Информацию к отображению можно передавать любым желаемым способом и в любой желаемой форме, главное чтобы запрос динамического списка его принял.

Еще один важный момент, без которого ничего не получится, это картинки флажков. Если вывести в списке обычное булево поле, то возникает ряд трудностей. Мало того, что галочки отрисовываются без чекбоксов, так еще и нажатие не срабатывает. Двойной клик по полю неудобен, а событие ПриАктивацииПоля не срабатывает если поле уже активировано. Для их решения, собственно, и сделаны манипуляции с полем картинки. На него навешивается гиперссылка и выбор будет срабатывать по однократному нажатию. Более того, у нас даже меняется курсор, показывая что чекбокс отзывается на нажатие.

Что имеем в сухом остатке:

  • При нажатии на поле картинки срабатывает событие.
  • В этом событии дополняется (или наоборот) массив ВыбраннаяНоменклатура.
  • ВыбраннаяНоменклатура передается в динамический спискок
  • Динамический список в зависимости от параметра отображает текущее состояние чекбоксов.
  • Теперь снова можно нажимать на поле картинки, цикл замкнулся.

К слову, тот же прием вы можете использовать для ввода полей другого типа. Например прописать в событии "Выбор" для поля с датой процедуру ПоказатьВводДаты(), и вот уже пользователь может вводить дату в динамический список не меняя самих данных, по которым строится запрос. В некоторых случаях может быть удобно сделать реквизит с типом ТаблицаЗначений и хранить в нем сколько угодно временных данных, влияющих на динамический список.

Код разрабатывался для Управляемых форм на платформе 8.3, конфигурация значения не имеет.

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

В списке документов нет возможности добавить колонку с данными, соответственно и нет возможности добавить свой флажок.

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

У списков есть возможность использовать флажок "Пометка удаления". Вот и задействуем эту возможность в своих целях.

Принцип работы такой, при изменении пометки удаления будем запоминать (или забывать) отмеченные документы.

В то же время заблокируем фактическую установку пометки. Не забудем показать состояние флажка отмечен/снят вместо пометки удаления.

Вот собствено и весь принцип работы.

Список отмеченных документов будем хранить в соответствии:

Отображение нашего состояния флажка поручим процедуре

Запомним или забудем отмеченные документы в процедуре

С помощью нажатия на кнопку обработаем выбранные документы

Вариант 2. Без использования "Пометки удаления". Добавлено после обсуждений в комментариях.

Способ почти идентичный, по этому расписывать подробно нет смысла.

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

В приложенной к публикации обработке выложен расширенный, полностью рабочий код, который можно скопировать в типовой документ и пользоваться. Изменение интерфейса происходит полностью программно в модуле формы. Это обеспечивает более удобное обновление типовых конфигураций. При обновлении достаточно будет снимать необходимые галочки с процедур.

При добавлении кода из обработки в типовой модуль формы необходимо проследить, есть ли в модуле обработчики ДокументСписокПередНачаломИзменения или ДокументСписокПриПолученииДанных и при их наличии раскомментировать соответствующие строки в процедурах ДокументСписокПередНачаломИзменения_Подключаемая и ДокументСписокПриПолученииДанных_Подключаемая. Что бы не забывались вызываться типовые процедуры.

А так же необходимо проследить за именем списка документов и при необходимости переименовать в добавляемом коде имя "ДокументСписок" на необходимое.

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

  1. для построения отчетов, а также
  2. вывода информации, имеющей сложную структуру и содержащей произвольный набор таблиц и диаграмм.

Это самый прогрессивный метод создания отчетов в 1С, рекомендованный и самой фирмой 1С. Система компоновки данных интегрирована в объект конфигурации "Отчет", что позволяет создавать отчеты без программирования.

Основные элементы системы компоновки данных представлены на следующей схеме:

Система компоновки данных 1С

У объекта конфигурации "Отчет" реализовано свойство "Основная схема компоновки данных".

СКД имеет очень гибкий и функциональный конструктор, который позволяет описать :

  • исходные данные, которые будет использовать отчет (наборы данных, связи между наборами данных, вычисляемые поля, ресурсы и т.д.);
  • настройки компоновки данных, которые будут использоваться по умолчанию (в том случае, если пользователь не задаст собственные настройки).

Создание отчета на основе Системы компоновки данных (СКД)

Настройки компоновки данных могут быть созданы с помощью специального конструктора настроек компоновки данных, или вручную.

В настройках системы компоновки данных обязательно должна быть задана структура настроек. Всё остальное СКД либо добавляет автоматически, либо оно необязательно в принципе.

Схема компоновки данных 1С

О связи схемы компоновки данных и компоновщика настроек компоновки данных (с примером)

Схема компоновки данных описывает данные, которые предоставляются отчету (откуда получать данные и как можно управлять компоновкой данных) и представляет собой базу, на основе которой могут быть сформированы всевозможные отчеты.

Схема компоновки данных может содержать:

  • текст запроса с инструкциями системы компоновки данных;
  • описание нескольких наборов данных;
  • подробное описание доступных полей;
  • описание связей между несколькими наборами данных;
  • описание параметров получения данных;
  • описание макетов полей и группировок; и др.

В режиме 1С:Предприятие система автоматически, на основании схемы компоновки данных, содержащейся в отчете, может создать форму отчета и форму настроек отчета.

Особенности использования системы компоновки данных:

  1. При использовании в системе компоновки данных диаграммыможно включить в выходную форму любое количество диаграмм без ограничения.
  2. В общем случае, текст запроса не подразумевает наложение условия на какую-то одну группу выводимых данных. Поэтому условия из отбора, установленного для группировки и указанного в настройках системы компоновки данных, в текст запроса не помещаются.
  3. В языке выражений системы компоновки данных можно использовать собственные функции (и при интерактивной, и при программной работе с системой компоновки данных). Функции должны быть описаны с ключевым словом "Экспорт" и расположены в любом общем модуле.
  4. Колонка в отчете, значение которой будет вычисляться по некоторым выражениям с использованием полей исходного набора данных, может быть создано в окне конструктора схемы компоновки ( здесь рисунки ):
    • в разделе "Вычисляемые поля";
    • в разделе "Настройки" на закладке "Пользовательские поля".
  5. Параметр схемы компоновки данных может быть создан:
    • автоматически, на основании текста запроса;
    • интерактивно, в окне конструктора схемы компоновки данных в разделе "Параметры";
    • программным образом.
Результат вывода отчета представляется в виде, похожем на электронную таблицу, в каком элементе управления "Поле табличного документа". Настроить связь между полями внешней и вложенной схем можно: При настройке наборов данных в схеме компоновки данных установленный флаг "Автозаполнение" означает: поля списка выборки запроса верхнего уровня становятся доступными для отбора, порядка, выбора, группировки (за исключением полей ряда типов); поля виртуальных таблиц, на которые можно наложить условия в параметрах этих таблиц становятся доступными для отбора; параметры виртуальных таблиц становятся доступными параметрами.

Система компоновки данных 1С

Автозаполнение Система компоновки данных 1С

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

Читайте также: