1с как программно записать флажок булево
Ниже приведено несколько полезных шаблонов кода по работе с табличным документом:
Код 1C v 8.х Код 1C v 8.х Код 1C v 8.х Код 1C v 8.х
Для того, чтобы появилась возможность использовать свойство "Значение", необходимо явно присвоить свойству ячейки "СодержитЗначение" значение Истина или установить флажок "Содержит значение" в палитре свойств.
Для ячейки, у которой установлен признак "СодержитЗначение", можно задать тип значения, размещаемого в ячейке.
Следующий фрагмент демонстрирует, как можно управлять этими свойствами из встроенного языка://задаем нужный тип с помощью объекта "ОписаниеТипов"
Для ячейки табличного документа можно задавать формат вывода данных. Для этого используется свойство "Формат", которое содержит форматную строку. Приемы работы с форматной строкой полностью совпадают с функцией Формат()
Элемент управления в табличном документе
Для ячейки, у которой установлен признак "СодержитЗначение", можно также задать элемент управления, который будет использоваться для редактирования этого значения.
Элемент управления можно назначить через палитру свойств или из встроенного языка с помощью метода "УстановитьЭлементУправления()". Чтобы проверить в программе, установлен ли элемент управления для конкретной ячейки, можно использовать свойство "ЭлементУправления", которое возвращает элемент управления, назначенный для ячейки.
Элементы управления, встроенные в ячейку, отображаются только при входе в режим редактирования значения. На приведенном ниже рисунке редактируемая ячейка обведена овалом и в ней отображается флажок:
Ниже показан пример установки элемента управления типа "Флажок" из встроенного языка://задаем нужный тип с помощью объекта "ОписаниеТипов"
Для элементов управления, расположенных в табличном документе, расширяется набор свойств, методов и событий:
Разберем самые важные свойства и методы:
Свойство "ВстроенВЯчейку" имеет тип "булево" и говорит о том, что элемент управления встраивается в ячейку или просто привязывается к ней, о чем было рассказано выше.
Свойство "Видимость" позволяет показать или скрыть элемент управления.
Свойство "Значение" предоставляет доступ к значению, которое редактируется в элементе управления. Оно используется только для элементов управления, поддерживающих связь с данными.
Метод "Расположить" позволяет разместить элемент управления в конкретной области ячеек табличного документа. Именно этот метод был использован в вышеприведенном примере.
Пока, так сказать, первая попытка, посему прошу не судить строго. Надеюсь, кому-то пригодится.
Штатная работа с булевым значением в табличном поле крайне неудобна, приходится выбирать либо информативное и понятное отображение, либо удобство управления с контролем изменения значения. А очень хочется и то и другое.
Но если ставим все красиво, исчезает возможность контролировать изменение этой ячейки. Исчезает возможность задать процедуру "ПриИзменении".
Но есть возможность всё-же реализовать такую возможность.
Описываю процедуру по шагам (есть ньюансы, поэтому прошу строго придерживаться порядка, а после получения результата уже можно "поэкспериментировать"):
1. Создаем в нужном табличном поле реквизит типа Булево , назовем его, к примеру, Имя_реквизита . Можно реквизит не создавать, а использовать переменную, если галочку не нужно хранить в документе (С) webester
2. Создаем колонку на форме в табличном поле
3. Указываем Имя=Имя_реквизита
4. Пропускаем поле Данные (поле должно оставаться пустым, это важно!)
5. Указываем ЭлементУправления=Флажок , появится поле "ДанныеФлажка"
6. Указываем ДанныеФлажка=Имя_реквизита
7. Указываем РежимРедактирования=Непосредственно
Как мы видим, возможность перехватить событие "ПриИзменении" исчезает из свойств. что же делать? Смотрим дальше.
8. Заходим в свойства табличного поля
9. Создаем процедуру на событие ПриОкончанииРедактирования с таким текстом:
9а. Как вариант (С) Yashazz, можно использовать процедуру ПриИзмененииФлажка , тогда Элемент.ТекущаяКолонка.Имя при желании можно сократить до Колонка.Имя ,
но в таком случае мы не сможем использовать флаг ОтменаРедактирования (например, если нужно динамически задать условия изменения, например, доступность).
Вот мой пример использования для сравнения обеих процедур:
10. Создаем процедуру Имя_реквизита_ПриИзменении() , где, например, производим пересчет текущей строки в зависимости от значения реквизита Имя_реквизита.
*к примеру, лично у меня в зависимости от показания меняется сумма услуги в текущей строке:
П.С. если кто нибудь из старожилов может уделить мне пару минут внимания и объяснить, как правильно и грамотно публиковать свои наработки, буду очень благодарен. Мой скайп - valhalla_resa.
В этой статье начнем разбирать основные элементы управляемой формы 1С 8.3. Управление формой осуществляется посредством различных элементов формы, которые расположены иерархически на закладке Элементы конструктора формы. Самым главным элементом является сама форма, которая расположена вверху иерархии элементов, а остальные элементы ей подчинены.
Добавление элементов на форму
Делается это достаточно просто: необходимо выделить элемент Форма в окне Элементы конструктора формы и нажать на кнопку «Добавить». После этого откроется окно, в котором необходимо выбрать нужный тип элемента
После выбора, элемент нужного появится в окне Элементы.
Элемент управляемой формы Поле
Разберем элемент управляемой формы Поле. Этот элемент нужен для ввода информации на форме. А также для отображения какой-либо информации. После того, как Вы добавите этот элемент на форму, справа откроется палитра свойств элемента формы. Пока Вас должны интересовать два свойства – ПутьКДанным и Вид.
В свойстве ПутьКДанным разработчик может связать элемент формы с нужным реквизитом формы. Обратите внимание, что после того, как был добавлен элемент Поле ввода на форму он не отобразился на самой форме. Это произошло потому, что наш новый элемент не связан с реквизитом формы. Для примера я создал на форме обработки несколько реквизитов с разными примитивными типами и один реквизит с ссылочным типом.
Здесь и далее используется конфигурация, созданная в книге «Программировать в 1С за 11 шагов»
Теперь свяжем наш недавно добавленный элемент формы с одним из реквизитов, для этого выберем нужный реквизит с свойстве элемента ПутьКДанным.
После этого заполнятся свойства ПутьКДанным и Вид, а сам элемент отобразится в представлении формы.
Обратите внимание на свойство элемента Вид. При помощи этого свойства определяется функциональность поля ввода. Можно выбрать различные значения этого свойства.
В зависимости от выбранного значения будет определятся функционал. На рисунках выше выбрано значение – поле ввода, т.е. мы можем вводить какие-либо значения в это поле ввода, а если выбрать значение поле надписи, то ни чего вводить мы не сможем.
Этот значение свойств Вид поля ввода удобно выбирать, когда нужно просто показать справочную информацию пользователю.
Теперь добавим новый элемент формы с типом Поле ввода и свяжем его с реквизитом РеквзитДата посредством уже знакомого нам свойства ПутьКДанным
Как Вы видите вид поля ввода поменялся, а так же поменяется возможный выбор значений свойства Вид.
Таким образом, делаем вывод – функциональность поля ввода зависит от типа реквизита.
Для реквизита с типом Булево будут доступны следующие значения свойства Вид.
А для реквизита с ссылочным типом будут доступны иные значения свойства Вид.
Более подробно работа с элементами формы на практичных примерах дается в книге «Основы разработки в 1С:Такси. Разработка управляемого приложения за 12 шагов».
Эта книга подойдёт тем, кто уже начал программировать и испытывает определенные сложности с этой темой и тем, кто уже давно программирует, но ни разу еще не работал с управляемыми формами 1С
- Без сложных технических терминов;
- Более 600 страниц практического материала;
- Каждый пример сопровождается рисунком (скриншот);
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:
можно оплатить вручную:
Вступайте в мои группы:
One thought on “ Элементы управляемой формы 1С 8.3. Поле ввода ”
Огромное спасибо, за отличную публикацию! побольше бы таких сайтов как у Вас!
Многие, кто только начинает изучать программирование, впервые сталкиваются с новым для себя примитивным типом булево. Еще его по-другому называют логический тип. Данный тип назван в честь английского математика Джорджа Буля, который изучал вопросы математической логики.
Прежде чем начать изучать этот примитивный тип, узнаем вообще, что такое булевы или логические выражения.
Булевы выражения это что-то типа вопроса, на который должен быть однозначные ответ или да, или нет.
Так же могу и быть более сложные вопросы:
Кнопка нажата – да;
Кнопка нажата – нет;
Булевы выражения используются во всех условных переходах:
В языке программирования 1С переменную с примитивным типом Булево можно задать явно:
Где Истина и Ложь единственные значения, которые может принимать примитивный тип Булево.
Ложь – значить, что какое-то утверждение, наоборот, не соответствует действительности (Ответ –Нет).
Так же переменные с типом булево могут быть заданы с помощью какого-либо логического выражения.
Например:
В этом случае, в переменой А будет значение Истина, а в переменной типа Б – ложь;
В языке программирования 1С над переменными типа булево можно осуществлять различные операции.
Всего их три – И, ИЛИ и НЕ.
Понять функциональность этих операций помогут следующие таблицы
А | Б |
Истина | Ложь |
Ложь | Истина |
С = А И Б | А | Б |
Истина | Истина | Истина |
Ложь | Ложь | Истина |
Ложь | Истина | Ложь |
Ложь | Ложь | Ложь |
С = А ИЛИ Б | А | Б |
Истина | Истина | Истина |
Истина | Ложь | Истина |
Истина | Истина | Ложь |
Ложь | Ложь | Ложь |
А можно ли выполнять данные операции подряд?
Да можно, данные операции будут выполняться слева направо. И иметь следующий уровень старшинства:
Первый: в первую очередь выполняются операции в скобках
Второй: Операция НЕ
Третий: Операция И
Четвертый: Операция ИЛИ.
Чтобы не путаться в операциях, я советую Вам использовать скобки, где только возможно.
В данном случае сначала будет работать операция И между А и С.
Смотрим таблицу А – Ложь, С – Ложь, результат А И С будет Ложь.
Следующим шагом будет выполнение операции ИЛИ между Ложью (Результат предыдущей операции) и значением Б, которое Истина.
Результат будет Истина.
А если нам надо, чтобы прошла сначала операция ИЛИ между С и Б, а потом только операция И между А и тем, что получилось, то для этого необходимо использовать скобки.
Многие начинающие программисты не совсем до конца понимают принципы взаимодействия между переменными типа Булево. Помочь в этом сможет только практика. А практики с переменными типа Булево достаточно в моем задачнике к книге «Программировать в 1С за 11 шагов»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:
можно оплатить вручную:
Вступайте в мои группы:
2 thoughts on “ Примитивный тип Булево ”
Что-то вы напутали. Операция (А И В) будет равна Истина, только если ОБА операнда равны Истина.
Операция (А ИЛИ В) равна Истина, если ХОТЯ БЫ ОДИН из операндов равен Истина.
Читайте также: