Сегодня придумал, как хранить в одном поле три значения — Да, ложь и неопределено
↓ [Asmody, |
Я |
19.11.08 — 16:02
Для этого нужно юзать составной тип, в состав которого входит только один тип — булево.
1 — 19.11.08 — 16:04
Про флажок с тремя состояниями слышал???
2 — 19.11.08 — 16:06
я догадался кто автор!!!!
а нафига? ведь составной тип и места жрет и медленее работает, проще число хранить
3 — 19.11.08 — 16:06
(1) Тьфу на тебя. Все испортил. Тут уже очередь выстроилась гению аплодировать
4 — 19.11.08 — 16:06
больше неопределенностей, хороших и разных… Лапиталя на вас нет, ироды!
5 — 19.11.08 — 16:07
Да создайте вы уже Гению отдельную секцию…
6 — 19.11.08 — 16:07
(2) как нафига? На работе заняться нечем, вот и лезет в голову всякая хрень.
7 — 19.11.08 — 16:08
(5) и забор вокруг этой секции не забыть, чтоб не вылез.
8 — 19.11.08 — 16:08
(5)О!
9 — 19.11.08 — 16:11
я тоже как-то сразу угадал автора.
однако вопрос к автору: а ты пробовал сделать составной тип с единственным типом?
10 — 19.11.08 — 16:11
)))жжоте каждый день
птрююю
11 — 19.11.08 — 16:15
(5) Гениев надо беречь
12 — 19.11.08 — 16:16
судя по набору значений — это перечисление со значениями «Да», «Ложь» и «Неопределено»…
13 — 19.11.08 — 16:17
(0) ты эту хрень по 50 раз в день на SMS и высылаешь?
14 — 19.11.08 — 16:20
Тогда я придумал новые значения булево:)
Военное булево «Так точно», «Никак нет».
Женское булево «Ни да, ни нет»
15 — 19.11.08 — 16:21
(12) Выбор из списка 1 2 3 со своими представлениями. Хотя, может имеется ввиду одновременное хранение :))).
16 — 19.11.08 — 16:22
(14) Женское булево — «Может быть»
17 — 19.11.08 — 16:24
(15) битовая маска? тогда силен 
18 — 19.11.08 — 16:24
Есть сопособ хранить в одном поле 2 147 484 646 градаций сосотояния да…нет.
19 — 19.11.08 — 16:25
Пардон 2 147 483 646
20 — 19.11.08 — 16:25
Топикстартер говорит про «Да, ложь и неопределено» и булевый тип. Интересно где здесь «Истина» затесалась….
21 — 19.11.08 — 16:26
(0) В С используются константы, определенные define для этих целей (соответсвенно в 1с можно числа приспособить).
А еще можно перечисление создать
22 — 19.11.08 — 16:27
(20) «Я в жизни прочитал три книги — букварь, вторую и зеленую»(с)
23 — 19.11.08 — 16:28
Узнал автора как всегда
И как всегда жесть…
24 — 19.11.08 — 16:29
(0) И как мы без этого писали?
25 — 19.11.08 — 16:32
(24)Так мы ж темнота…
26 — 19.11.08 — 16:32
(0) имеет смысл для хранения числа, т.к. значение 0 не всегда означает, что значение не указано.
27 — 19.11.08 — 16:33
(0) как и все сразу понял кто автор
и как обычно — очередная кучка мозгового дерьмеца
28 — 19.11.08 — 16:36
(26) 0 -он во всех языках всегда был 0 когда не указанно. А в некоторых «не указано» может быть равно любому числу, — зависит от того была ли очищена память после выделения под переменную
29 — 19.11.08 — 16:36
(0) Сори — лажанулся, действительно составной тип только из булеов не получишь. Идея была в чем — есть реквизит типа булево, уже заполнен, чтобы не менять на числовой в базе и не менять алгоритмы поменять на составной.. 
30 — 19.11.08 — 16:37
(16) Про женскую логику — жесть
31 — 19.11.08 — 16:38
(26) читай выше — составной тип, в состав которого входит только один тип — булево. нету тут чисел…
32 — 19.11.08 — 16:38
(29) видно осенний спермотосикоз дошел до высшей точки….
33 — 19.11.08 — 16:38
28, и в СКЛе тоже?
34 — 19.11.08 — 16:44
Автор «гениально» умеет народ заводить с пол-оборота. Один раз вякнул — а эхо до сих пор в ушах звенит…
Общий диагноз: аллергия на гения 
35 — 19.11.08 — 16:45
(33) естественно что нет. В SQL — тоже нет «не заполнено», если я не ошибаюсь, всегда 0, если тип поля числовой
36 — 19.11.08 — 16:45
(35) в скуле есть значение NULL
37 — 19.11.08 — 16:46
(36) Поле типа Integer может иметь значение NULL ?
38 — 19.11.08 — 16:47
(36) это не значение и не тип
39 — 19.11.08 — 16:47
(34) Да не… он классный, мы всегда с интересом следим за его творчеством.. Вот был бы он политиком был бы… ну вы знаете.
Вон товарищь рядом сидит и ржот… от пятничных веток обычно меньше…
40 — 19.11.08 — 16:48
(35) В SQL есть Null, он может быть в полях любого типа. Его можно запретить, но только для конкретных полей.
41 — 19.11.08 — 16:48
(37) не знаю, как MSSQL, но в MySQL — может
42 — 19.11.08 — 16:48
(37)
на мой взгляд самый близкая расшифровка
NULL — отсутствие поля
43 — 19.11.08 — 16:49
(37) ну как, почитал ответы?
44 — 19.11.08 — 16:50
(40) надо бы запретить по умолчанию. Нафига лишний байт для каждого поля каждой записи. Ещё и постоянная проверка поля таблицы на то может ли он содержать НУЛ, и содержит ли его запись.
45 — 19.11.08 — 16:51
(44) запрещай…
46 — 19.11.08 — 16:51
(42) Ну вообще-то NULL — это как раз значение 
47 — 19.11.08 — 16:52
(44) Как будто типовых ни разу не видел.. Да, постоянно и проверяют…
48 — 19.11.08 — 16:53
(47) Для меня 0 и НУЛ — одно и то же значение
49 — 19.11.08 — 16:54
(44) В 1с-овских таблицах как раз NULL не используется, поэтому оно и возникает только в случае JOIN-ов в запросах.
50 — 19.11.08 — 16:54
(48) ага, и предложению ИТОГ — разные…
51 — 19.11.08 — 16:55
(48) ну хорошо, вот Найти() нумерует символы с 0… а если не нашло — возвращает аналог NULL — Неопределено…
52 — 19.11.08 — 16:55
(48) А если поле — не числовое, а типа DateTime или строка? Или вообще BLOB?
53 — 19.11.08 — 16:59
(52) Есть диапазон допустимых значений для переменной. Например 0 — недопустимое. DateTime = 0 — не заполнено, строка — байт длинны строки (для перемнных) = 0 — не заполнено, для постоянных — отсутствие символа с кодом 0 в первом байте строки.
BLOB — аналогично строке переменной длинны имеет заголовок с размером «объекта».
54 — 19.11.08 — 17:01
(53) Ты не проектировщик СУБД часом? 
55 — 19.11.08 — 17:01
(51) Всякие НУЛЫ, НЕОПРЕДЕЛЕНО — это от лукавого. Это приколы конкретной библиотеки или среды разработки. Можно например вместо НЕОПРЕДЕЛЕНО — найти вернуть число 0
56 — 19.11.08 — 17:02
кстати дискусия вполне грамотная пошла, ничего что к сабжу не относиться!
мне нравиться такой подход к обсуждению гениАльных идей
57 — 19.11.08 — 17:02
+(54) И чем предложенное тобой отличается от NULL-значений? Я ж не знаю как они хранятся на физическом уровне. Может именно так, как ты описал?
58 — 19.11.08 — 17:04
(55) Не знаю, мне бы как-то странно было без неопределенных значений. По логике они иногда нужны бывают. А как они хранятся — это уж вопрос эффективности реализации конкретной СУБД.
59 — 19.11.08 — 17:05
(56) Просто смысл привносить в тему личностное отношение? Мы ведь умеем абстрагироваться, в отличие от животных…
60 — 19.11.08 — 17:06
(54) баловался в универе. Зачем моим скромным программкам целый СКЛ ?
61 — 19.11.08 — 17:08
(57) SQL хранит это дело страницами, в каждой странице одна или несколько строк таблици, строка не фиксированой длинны, для каждого поля используються разделителиОписатели, если его нету — это м есть null,
тоесть это когда в структуре есть поле а в данных строки его физически нету
62 — 19.11.08 — 17:08
А еще замечено, что NULL похож на черную дыру.
NULL всасывает в себя со всех сторон все материальные значения и не позволяет им покинуть себя.
Подтвержение тому:
1000 + NULL + 1000 — есть NULL
«Строка 1» + NULL + «Строка 2» — есть NULL
ps
нахождение NULL рядом с нормальными данными (особо типа ДатаВремя) искажает их. Будте внимательны!
:))
63 — 19.11.08 — 17:09
(60) Просто я к тому, что ты слишком много внимания более низкому уровню уделяешь. И мало внимания прикладным задачам. А они ой какие разные бывают, логика может быть самой причудливой, и неопределенные значения далеко не всегда лишние.
64 — 19.11.08 — 17:10
(0) Интересно, как ты добился, чтобы реквизиту назначался составной тип состоящий из одного типа.
А что делать с ОписаниеТипов при ПривестиЗначение?
65 — 19.11.08 — 17:11
(61) NULL для кода — это указатель на $FFFFFFF такого адреса памяти не существует
66 — 19.11.08 — 17:13
(64) Он и не добился.. Думал, что добился…
67 — 19.11.08 — 17:13
(57) Выходит что для хранения NULL используется либо 1 бит из поля-владельца (что то же самое что диапазон значений — 1значение), либо дополнительное целое поле длинной в 8 бит, либо в конце записи (данных полей) БД служебная запись длинной в количество_колонок записи (данных полей). Последние по моему самый лучший вариант
68 — 19.11.08 — 17:14
(65) Интерпретаторов это не касается
69 — 19.11.08 — 17:15
(67) для хранения в базе SQL значения NULL используеться 0бит см (61), а в памяти это обычный указатель (вроде 4 байта)
70 — 19.11.08 — 17:15
(64) -> (29) теорию загубил опыт
71 — 19.11.08 — 17:16
(5) Лучше отдельный Интернет.
72 — 19.11.08 — 17:17
(69) вникаю … (покурю пока)
73 — 19.11.08 — 17:29
vde69 я не пойму одного: если тип значения поля определен не как ссылочный, а как элементарный (строка, число, дата, булево) то каким образом после считывания с фиска (винчестера) выходит НУЛЬ ? Получается значит либо все типы ссылочные, либо у элементарных есть дополнительный байт, бит, запись ?
74 — 19.11.08 — 17:34
(73) Мы про 1с или про скуль? 
75 — 19.11.08 — 17:37
(74) ссылочным я называю поле связующие одну таблицу с другой
76 — 19.11.08 — 17:39
NULL нужен, а всякие Неопределено и пустые ссылки нах не надо
77 — 19.11.08 — 17:39
(75) Так оно числовым может быть. Легко. И GUID вроде тоже числовое значение… Я непонимаю, в чем вопрос? В конечном счете все типы данных — элементарные.
78 — 19.11.08 — 17:40
*(77)непонимаю — не понимаю
79 — 19.11.08 — 17:46
(77) «В конечном счете все типы данных — элементарные.»
отож! и где НУЛ и как хранится — непонятно
80 — 19.11.08 — 17:52
(79) Ну я верю vde69 в (61). То бишь для каждого поля есть еще и описатель. Если по-твоему изъясняться, то получается, что «все типы ссылочные». Или я че-то не понимаю.
81 — 19.11.08 — 17:57
(80) Я тоже понимаю так что ссылочные
82 — 19.11.08 — 20:53
Пепец знатоки епвашумать
Откройте книгу по MS SQL да прочитайте
83 — 19.11.08 — 21:01
(82) У меня есть талмуд 
(82) нах надо, оно и без меня 100 лет нормально работает
Сегодня поговорим про примитивный тип булево и про то как можно проверить значение подобного элемента на форме. У булева может быть только два значения «Ложь» или «Истина», на форме он обычно выглядит как флажок (флаговая кнопка, чекбокс, галочка) данный элемент все называют по разному. Проверить его значение можно по разному, сегодня рассмотрим один из более популярных и используемых вариантом, будем проверять установлен флажок или нет, и дополнительно в зависимости от варианта отображать другой элемент формы.
Проверка значения примитивного типа Булево
Давайте для примера сделаем вот такую форму, с её помощью мы будем регистрировать почту. На форме будет два элемента с типом Булево это «Входящая» и «Исходящая». Суть в том что, если письмо входящие нужно заполнить поле «Отправитель» а если исходящие тогда «Получатель».
Отображать на форме сразу два этих поля не совсем правильно, мы сделаем так, если булево «Входящая» будет отмечено то автоматически на форме будет отображаться поле «Отправитель», соответственно если будет отмечено булево «Исходящая» будет появляться поле «Получатель».
Таким образом мы будем проверять значение элемента формы с типом булево.

Думаю как сделать реквизит с типом булево вы уже знаете если нет то в свойствах реквизита в поле «Тип» нужно выбрать «Булево» и все.

Дальше отключим видимость тех реквизитов которые должны появляется автоматически «Отправитель» и «Получатель».

И для каждого реквизита с типом булево «Входящая» и «Исходящая» создадим событие «При изменении».

Остается написать небольшое условие которые будет проверять значение булева и в зависимости от него «Истина» или «Ложь» отображать дополнительный реквизит на форме. Т.е если флажок стоить (это истина) нужно отображать соответствующий элемент, а если флажка нет (это ложь) то и элемент не нужно отображать.

Сохраняем и проверяем что получилось, отмечаем первый реквизит с типом булево «Входящая».

После этого на форме должен появиться элемент «Отправитель».

Если выбрать «Исходящая» то должен появиться другой элемент «Получатель».

Как вариант можно сделать для проверки отдельную команду (кнопку).
Создать для неё вот такую процедуру которая будет проверять значения элементов с типом булево и в зависимости от результата отображать нужный реквизит.
Работать это будет примерно также, выбираем «Входящая» или «Исходящая» и нажимаем «Проверить булева», в результате также будет появляться дополнительный элемент на форме.
Вот один из вариантов проверки значения реквизита с типом булева на форме. Как видите все не так и сложно, но если остались вопросы или что-тоне получилось обязательно напишите.
Дополнительные реквизиты в 1С Управление Нашей Фирмой

Видеоинструкция к этой статье https://youtu.be/f9Q8398SjE4
В 1С Управление Нашей Фирмой есть возможность создавать дополнительные реквизиты — поля и справочники для ввода данных без программиста. Ссылки на добавление реквизитов есть во многих карточках и документах — карточка контрагента, карточка номенклатуры, заказ покупателя и т. п.
Дополнительные реквизиты могут использоваться в вспомогательных целях, таких как переменные в формулах динамических спецификаций.
Возможность использовать доп. реквизиты в 1С Управление Нашей Фирмой включается при установке программы, но если у вас эта функция отсутствует, то включить ее можно в разделе «Настройки» по ссылке «Общие настройки»

Рис 1. Включение модуля Дополнительных реквизитов в 1С Управление Нашей Фирмой
Для просмотра дополнительных реквизитов, а также для их создания и редактирования, необходимо в «Общих настройках» пройти по ссылке «Дополнительные реквизиты».

Рис 2. Журнал Дополнительные реквизиты в 1С Управление Нашей Фирмой
Журнал состоит из шапки с управляющими кнопками — «Добавить», «Копировать» и «Вставить», а также двух окон — в левом окне находится иерархический список групп (папок) реквизитов и в правом окне показываются дополнительные реквизиты, которые относятся в выделенной папке.
Для добавления реквизита необходимо нажать на кнопку «Добавить» и выбрать один из двух вариантов — «Новый» и «Из другого набора»

Рис 3. Кнопка «Добавить» в журнале Дополнительные реквизиты в 1С Управление Нашей Фирмой
Начнем обзор с создания нового реквизита.
1. Создание нового реквизита
Для создания нового реквизита в журнале «Дополнительные реквизиты» нажимаем кнопку «Добавить» и выбираем вариант «Новый».
Откроется карточка создания Дополнительного реквизита.

Рис 4. Карточка создания Дополнительного реквизита в 1С Управление Нашей Фирмой
Поле «Наименование»
В первую очередь необходимо заполнить поле «Наименование» — наименование реквизита должно четко его идентифицировать, так как на его основании будет заполнено поле «Идентификатор для формул» и поле «Имя» в блоке «Для разработчиков», которое используется для программного обращения к данному реквизиту.
Поле «Тип значения»
В строке «Тип значения» необходимо выбрать значение из раскрывающегося списка, который открывается нажатием на кнопку с тремя точками в правой части строки.

Рис 5. Карточка выбора Типов значений карточки Дополнительного реквизита в 1С Управление Нашей Фирмой
Часть элементов справочника «Типы значений» понятна большинству пользователей — Дата, Валюта и т. п., а часть значений будет понятна специалистам или опытным пользователям — рассмотрим эти значения подробно с примерами использования доп. реквизитов в карточке номенклатуры.
Типы значений дополнительных реквизитов в 1С: Управление Нашей Фирмой
1)Булево
Булево — имеет только 2 значения: да/нет, истина/ложь и т. п.

Рис 6. Вариант карточки Дополнительного реквизита при выборе типа значений Булево в 1С Управление Нашей Фирмой
В карточке Номенклатуры этот тип данных может выглядеть как Чек-бокс с галочкой.

Рис 7. Вариант карточки Номенклатуры при выборе типа значений Булево в 1С Управление Нашей Фирмой.
Мы можем изменить формат отображения нажав на ссылку «Формат по умолчанию» в карточке доп. реквизита справа от поля «Тип значения»

Рис 8. Конструктор форматной строки при выборе типа значений Булево в 1С Управление Нашей Фирмой.
Клик по ссылке откроет форму «Конструктор форматной строки». В ней нам нужен список из двух значений «Представление значения булево Ложь» и «Представление значения булево Истина» — если галочки перед строками снять, то останется первый вариант с чек-боксом.
В поле со значениями мы можем выбрать из трех вариантов Ложь/Истина, Да/Нет, Выключено/Включено или ввести собственное значение как в примере (см. Рис. 11).
В результате изменения формата в карточке номенклатуры этот реквизит будет выглядеть как текстовое поле с выбором значения, но на выбор будет выводиться только два значения.

Рис 9. Дополнительный реквизит с типом Булево с собственными значениями в карточке номенклатуры в 1С Управление Нашей Фирмой.
2)Строка
Строка — самый простой тип значений, который позволяет вводить любой набор символов. К строке не привязан справочник значений, поэтому в ней нет повторного выбора ранее введенной информации.
При выборе Типа значения в форме «Редактирование типа данных» в нижней части формы в зависимости от типа данных появляются дополнительные настройки.

Рис 10. Настройки отображения данных дополнительных реквизитов в 1С Управление Нашей Фирмой.
В типе значений «Строка» в нижней части расположены настройки длины строки: Длина — количество символов, Вариант изменения длины строки — «Переменная» (в зависимости от количества введенных символов) и «Фиксированная», а также чек-бокс для галочки «Неограниченная» — снимает все ограничения по количеству вводимых символов.
После выбора этого Типа значения в карточке Дополнительного реквизита появятся три дополнительных варианта выбора отображения реквизита — «Однострочное поле ввода», «Многострочное поле ввода» — при выборе данного варианта активируется параметр «Количество строк», который позволяет ограничить количество строк ввода.

Рис 11. Дополнительные параметры Дополнительных реквизитов с типом Строка в 1С Управление Нашей Фирмой.
3)Дополнительное значение
Дополнительное значение — раскрывающийся список, в котором значения могут быть внесены заранее или добавляться в процессе работы.

Рис 12. Создание Дополнительного реквизита с типом значения Дополнительное в 1С Управление Нашей Фирмой.
Галочка «Выводить в виде гиперссылки» позволяет отображать этот тип значений в документе в двух вариантах: без галочки — как раскрывающийся список, а с галочкой — как гиперссылка
Вариант без галочки:

Рис 13. Дополнительный реквизит с типом значения Дополнительное в карточке номенклатуры в 1С Управление Нашей Фирмой.
Для выбора значения нажимаем на стрелочку в правой части поля и появляется форма значения, в которой переходим по ссылке «Показать все» или «+(создать)».
При установленной галочке значение выводится, как ссылка, а для его изменения необходимо нажать на карандаш (справа от строки).

Рис 14. Гиперссылка дополнительного реквизита в карточке номенклатуры в 1С Управление Нашей Фирмой.
Ниже выбора варианта отображения, располагается табличная форма с двумя вкладками — «Главное» и «Значения».
Во вкладке «Главное» заполняем поля по необходимости — более подробно рассмотрим поля ниже.
Во вкладке «Значения» содержится список значений, присвоенных данному реквизиту.
Рис 15. Вкладка «Значения» в карточке дополнительного реквизита в 1С Управление Нашей Фирмой.
Значения можно ввести в этой вкладке с помощью кнопки «Создать» или после в процессе работы, как показано на Рис. 13.
Кнопка «Еще» раскрывает список дополнительных действий по управлению списком.

Рис 16. Список действий кнопки «Еще» во вкладки «Значения» карточки дополнительного реквизита в 1С Управление Нашей Фирмой.
Под полем списка значений располагается чек-бокс «Значения дополнительно характеризуются весовым коэффициентом» — после установки этой галочки каждому значению можно добавить числовое значение, которое позволяет дополнительно сортировать значения в отчетах или при выборе, также можно его использовать в других целях. В списке значений добавится колонка «Весовой коэффициент».

Рис 17. Весовые коэффициенты значений в карточке дополнительного реквизита в 1С Управление Нашей Фирмой.
Значения можно сгруппировать — кнопка «Создать группу» позволяет создавать группы (папки) значений.
4)Число
Этот тип значений ограничен только числовыми значениями.
В настройке отображения этого реквизита при его выборе программа выдает два поля: «Длина» — количество вводимых символов, «Точность» — количество символов после запятой, а также чек-бокс для галочки «Неотрицательное» — установленная галочка не дает ввести отрицательное число.

Рис 18. Настройки дополнительного реквизита при выборе типа значений в 1С Управление Нашей Фирмой.
Остальные Типы значений и их настройка более понятны пользователям и не имеют дополнительных настроек поэтому не будем их рассматривать.
Рассмотрим остальные элементы карточки «Дополнительный реквизит» общие для всех типов.
5)Составной тип данных
Составной тип данных находится в верней части формы выбора. Установка галочки позволяет создать поле, при нажатии на которое программа попросит у пользователя самостоятельно выбрать тип вводимых данных.
После установки галочки в чек-боксе «Составной тип данных» в списке появляется возможность выбора нескольких значений — например:
В заказе покупателя вы хотите отобразить Агента, человека, который нашел данный заказ -сторонний человек или сотрудник предприятия.
Создаем дополнительный реквизит с названием «Агент». А при выборе типа значений устанавливаем галочки: «Составной тип данных», «Контрагент», «Сотрудник».

Рис 19. Составной тип данных дополнительного реквизита в 1С Управление Нашей Фирмой.
В Заказе покупателя находим созданный реквизит «Агент» и нажимаем на три точки в правой части поля и, в открывшейся форме, нажимаем на нужный тип данных — Сотрудник или Контрагент

Рис 20. Поле с составным дополнительным реквизитом в 1С Управление Нашей Фирмой.
Выбор поля дает доступ к нужному справочнику «Контрагенты» или «Сотрудники».
В конце месяца можно отсортировать заказы по контрагентам и сотрудникам, начислить комиссионное вознаграждение контрагентам или премию сотрудникам.
Ссылка «Виден»
Позволяет настроить видимость реквизита в зависимости от настроенных условий.
Например:
У товара, в редких случаях, кроме основного цвета могут быть элементы с другим цветом.
Создаем два дополнительных реквизита — один реквизит с типом «Булево», а второй с типом «Строка».
В настройках реквизита с типом «Строка» нажимаем на ссылку «Виден» — откроется форма «Видимость дополнительного реквизита», в которой мы настраиваем условия видимости — нажимаем на кнопку «Добавить условия» и в табличной части заполняем строку из трех ячеек:
-
«Реквизит» — двойной клик на ячейку активирует ее, а клик на кнопку с тремя точками в правой части ячейки откроет дополнительную форму «Выбор реквизита» со списком доступных реквизитов, в котором кроме реквизитов программы есть дополнительные реквизиты, введенные нами. Выбираем доп. реквизит «Дополнительный цвет».

Рис 21. Настройка условий видимости дополнительного реквизита в 1С Управление Нашей Фирмой.
-
«Вид сравнения» — двойной клик откроет список выбора вида сравнения — равно, не равно, заполнено, не заполнено и т. п.
-
«Значение» — двойной клик откроет список значений выбранного реквизита, выбираем кликом нужное значение
В примере у нас получилось условие: Если в реквизите «Дополнительный цвет» установлена галочка, то реквизит «дополнительная гамма цветов» становится виден.

Рис 22. Видимость дополнительного реквизита в 1С Управление Нашей Фирмой.
Ссылка «Доступен»
Эта ссылка позволяет настроить доступность реквизита, также, как ссылка «Виден», но в отличии от нее реквизит виден всегда, но активен при определенном условии.
Чек-бокс (Галочка) «Заполнять обязательно»
При установленной галочке данный реквизит становится обязательным к заполнению, а ссылка справа позволяет настроить условие, при котором этот параметр будет действовать — настраивает аналогично предыдущим ссылкам «Виден» и «Доступен».
Поле «Идентификатор для формул»
Заполняется автоматически, но возможна ручная корректировка.

Рис 23. Карточка дополнительного реквизита 1С Управление Нашей Фирмой.
С права от поля расположена кнопка со стрелкой для перезаполнения поля на основании строки «Наименование».
Поле «Всплывающая подсказка»
Это поле позволяет выводить нужную информацию — наименование или инструкцию по заполнению реквизита, которая будет появляться при наведении на реквизит.
Поле «Комментарий»
В это поле можно занести любую информацию для внутреннего пользования по этому реквизиту.
На этом обзор работы с новой карточкой «Дополнительный реквизит» заканчиваем и переходим к рассмотрению копирования дополнительных реквизитов.
2. Копирование реквизита «Из другого набора»
В журнале «Дополнительные реквизиты» нажимаем кнопку «Добавить» и выбираем второй вариант — «Из другого набора».
Откроется форма «Добавление дополнительного реквизита»

Рис 24. Добавление Дополнительного реквизита из другого набора в 1С Управление Нашей Фирмой
Форма «Добавления Дополнительного реквизита» очень похожа на журнал «Дополнительные реквизиты» с некоторыми отличиями — отсутствуют верхние кнопки управления и в правой части добавлены поля
— «Тип значения» — показывает, какого типа значения присутствуют в выбранном варианте,
— «Всплывающая подсказка» — необходимо ввести текст, который будет появляться при наведении на реквизит мышкой,
а также два поля «Заголовок формы значения» и «Заголовок формы выбора значения» — текст, который будет выводиться на заголовках указанных форм.
Заполнили поля и нажимаем в нижнем правом углу желтую кнопку «Далее».
Откроется новая страница с выбором варианта добавления реквизита

Рис 25. Выбор варианта добавления Дополнительного реквизита из другого набора в 1С Управление Нашей Фирмой
-
Добавить реквизит как есть — реквизит будет показываться в папке копирования, но это будет тот же реквизит. Реквизит в программе один, но входит в две группы, о чем нас извещает ссылка в нижней части вкладки «Главное».

Рис 26. Разделение общего Дополнительного реквизита в 1С Управление Нашей Фирмой
При нажатии на ссылку откроется список групп реквизитов, в которых присутствует этот реквизит.
Для разделения реквизитов в самостоятельные параметры необходимо нажать кнопку «Изменить» справа от ссылки. В открывшейся форме необходимо выбрать один из двух вариантов: «Реквизит со своим списком значений» или «Общий реквизит» — в первом варианте будет полное разделение реквизитов на самостоятельные единицы, а во втором случае все останется так как есть.
Во вкладке «Значения» присутствует похожая ссылка и кнопка «Изменить», но уже для разделения списка значений.
-
Сделать копию реквизита по образцу (с общим списком значений) —будет создан новый реквизит, отдельный от копируемого, но с общим списком значений.
Вариант разделения аналогично с предыдущим вариантом, но ссылка и кнопка изменить есть только во вкладке «Значения».
-
Сделать копию реквизита — копируются тип реквизита и значения, а наименование вводим самостоятельно. В этом случае создается реквизит полностью независимый от копируемого.
Выбираем вариант копирования и нажимаем на кнопку «Далее» в нижнем правом углу.
При выборе варианта копирования «Добавить реквизит как есть» реквизит создается сразу. В вариантах «Сделать копию реквизита по образцу» и «Сделать копию реквизита» программа откроет карточку создания Дополнительного реквизита для заполнения полей «Наименование» и «Идентификатор для формул», так как в отличии от первого варианта копирования будут созданы новые реквизиты.
На этом обзор Дополнительных реквизитов заканчиваем.
Если остались вопросы пишите нам на почту mail@rps-1c.ru или звоните на телефон(он же WhatsApp) +7-923-158-67-74
Аренда 1С: УНФ в облачном сервисе 1С: Фреш — https://rps-1c.ru/content/published/1cfresh/1с-fresh/
Протестируйте 1С Управление Нашей Фирмой бесплатно 30 дней — https://rps-1c.ru/1capp/arenda_fresh.html
Значение Булево 1С — это значение Истина или Ложь. В числовом выражении Ложь это ноль, а Истина — число больше нуля (обычно единица).
Выражение (операция) Булево 1С — это математическое выражение, результатов которого является значение типа Булево 1С, например:
a = 0+1;
b = 2-1;
x = (a = b);
//x = Истина
Далее — подробнее о условных операциях 1С, значениях и выражениях булево 1С.
Условная операция 1С ЕСЛИ выглядит следующим образом:
Если ОПЕРАЦИЯ-БУЛЕВО Тогда
//действия1…
ИначеЕсли ОПЕРАЦИЯ-БУЛЕВО Тогда
//действия2…
Иначе
//действия3…
КонецЕсли;
Булево 1С — это результат вычисления со значениями Истина или Ложь, например:
Массив1 = Новый СписокЗначений();
Если Массив1.Количество() > 0 Тогда
//действия…
КонецЕсли;
//другой вариант, полностью аналогичный
Если НЕ Массив1.Количество() = 0 Тогда
//действия…
КонецЕсли;
Многие функции/методы объектов возвращают успешность выполнения операции как булево 1С, например:
Запрос = Новый Запрос();
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Следующий() Тогда
//действия…
КонецЕсли;
В условной операции 1С можно объединять несколько условий с использованием И и ИЛИ:
Массив1 = Новый СписокЗначений();
Если (Массив1.Количество() > 0 и Массив1.Количество() < 10) или Массив.Количество() > 100 Тогда
//действия…
КонецЕсли;
Условия булево 1С можно использовать непосредственно в коде программы:
Переменная1 = 5;
флгРезультат = (Переменная1 = 2 + 3); //флгРезультат будет равен ИСТИНА
В условной операции 1С оператор ЕСЛИ ИНАЧЕ ТОГДА можно заменить более кратким выражением. Следующие два варианта равны:
У реквизитов объектов (справочников, документов и т.п.) есть возможность установить тип булево 1С. Также можно создать переменную булево 1С, например:
флгВыполнено = Истина;
Далее, в условиях ЕСЛИ, можно писать равнозначно двумя способами:
//вариант 1
Если флгВыполнено = Истина Тогда
//делаем что-то
КонецЕсли;
//вариант 2
Если флгВыполнено Тогда
//делаем что-то
КонецЕсли;
Второй вариант таит в себе следующую «неприятность»:
Проголосовать за этот пост:
Загрузка…
Posted in Язык 1С
Примитивный тип Булево
Многие, кто только начинает изучать программирование, впервые сталкиваются с новым для себя примитивным типом булево. Еще его по-другому называют логический тип. Данный тип назван в честь английского математика Джорджа Буля, который изучал вопросы математической логики.
Прежде чем начать изучать этот примитивный тип, узнаем вообще, что такое булевы или логические выражения.
Булевы выражения это что-то типа вопроса, на который должен быть однозначные ответ или да, или нет.
5 < 7 — Да;
5 = 8 – Нет;
4 > 9 – Нет.
Так же могу и быть более сложные вопросы:
Кнопка нажата – да;
Или
Кнопка нажата – нет;
Булевы выражения используются во всех условных переходах:
Если тогда
//операторы
ИначеЕсли тогда
//операторы
КонецЕсли;
В языке программирования 1С переменную с примитивным типом Булево можно задать явно:
А = Истина;
Б = Ложь;
Где Истина и Ложь единственные значения, которые может принимать примитивный тип Булево.
Истина – значит, что какое-то утверждение соответствует действительности (Ответ — Да).
Ложь – значить, что какое-то утверждение, наоборот, не соответствует действительности (Ответ –Нет).
Так же переменные с типом булево могут быть заданы с помощью какого-либо логического выражения. Например:
А = 5 < 7;
Б = 6 > 9;
В этом случае, в переменой А будет значение Истина, а в переменной типа Б – ложь;
В языке программирования 1С над переменными типа булево можно осуществлять различные операции.
Например:
А = 5 < 7;
Б = 6 > 9;
В = А И Б;
С = А ИЛИ Б;
Д = Не А;
Всего их три – И, ИЛИ и НЕ.
Понять функциональность этих операций помогут следующие таблицы
Операция НЕ
| А | Б |
| Истина | Ложь |
| Ложь | Истина |
Операция И
| С = А И Б | А | Б |
| Истина | Истина | Истина |
| Ложь | Ложь | Истина |
| Ложь | Истина | Ложь |
| Ложь | Ложь | Ложь |
Операция ИЛИ
| С = А ИЛИ Б | А | Б |
| Истина | Истина | Истина |
| Истина | Ложь | Истина |
| Истина | Истина | Ложь |
| Ложь | Ложь | Ложь |
А можно ли выполнять данные операции подряд?
Да можно, данные операции будут выполняться слева направо. И иметь следующий уровень старшинства:
Первый: в первую очередь выполняются операции в скобках
Второй: Операция НЕ
Третий: Операция И
Четвертый: Операция ИЛИ.
Чтобы не путаться в операциях, я советую Вам использовать скобки, где только возможно.
Например:
А = Ложь;
Б = Истина;
С = Ложь;
Д = А и С или Б;
В данном случае сначала будет работать операция И между А и С.
Смотрим таблицу А – Ложь, С – Ложь, результат А И С будет Ложь.
Следующим шагом будет выполнение операции ИЛИ между Ложью (Результат предыдущей операции) и значением Б, которое Истина.
Результат будет Истина.
А если нам надо, чтобы прошла сначала операция ИЛИ между С и Б, а потом только операция И между А и тем, что получилось, то для этого необходимо использовать скобки.
Смотрим:
А = Ложь;
Б = Истина;
С = Ложь;
Д = А и (С или Б);
Результат будет диаметрально противоположный. Почему? Сейчас разберем. Благодаря скобкам сначала выполняется операция и между С и Б, т.к. С — Ложь, а Б – Истина, результат будет Истина. Потом между значением А (которое Ложь) и значением Истина (результатом предыдущей операции) выполняется операция И. Результат будет Ложь.
Многие начинающие программисты не совсем до конца понимают принципы взаимодействия между переменными типа Булево. Помочь в этом сможет только практика. А практики с переменными типа Булево достаточно в моем задачнике к книге «Программировать в 1С за 11 шагов»
Изучайте основы конфигурирования в 1С и учитесь программировать в «1С: Предприятии» с помощью моих книг: «Программировать в 1С за 11 шагов» и «Основы разработки в 1С: Такси»

Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника;
Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:
можно оплатить вручную:
Яндекс.Деньги — 410012882996301 Web Money — R955262494655
Вступайте в мои группы:
Вконтакте: https://vk.com/1c_prosto Фейсбуке: https://www.facebook.com/groups/922972144448119/ ОК: http://ok.ru/group/52970839015518 Твиттер: https://twitter.com/signum2009
www.1s-up.ru
Условные операции 1С и булево 1С
Значение Булево 1С — это значение Истина или Ложь. В числовом выражении Ложь это ноль, а Истина — число больше нуля (обычно единица).
Выражение (операция) Булево 1С — это математическое выражение, результатов которого является значение типа Булево 1С, например: a = 0+1; b = 2-1; x = (a = b); //x = Истина
Далее — подробнее о условных операциях 1С, значениях и выражениях булево 1С.
Условная операция 1С ЕСЛИ выглядит следующим образом: Если ОПЕРАЦИЯ-БУЛЕВО Тогда //действия1… ИначеЕсли ОПЕРАЦИЯ-БУЛЕВО Тогда //действия2… Иначе //действия3… КонецЕсли;
Булево 1С — это результат вычисления со значениями Истина или Ложь, например: Массив1 = Новый СписокЗначений(); Если Массив1.Количество() > 0 Тогда //действия…
КонецЕсли;
//другой вариант, полностью аналогичный Если НЕ Массив1.Количество() = 0 Тогда //действия… КонецЕсли;
Многие функции/методы объектов возвращают успешность выполнения операции как булево 1С, например: Запрос = Новый Запрос(); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда //действия… КонецЕсли;
В условной операции 1С можно объединять несколько условий с использованием И и ИЛИ: Массив1 = Новый СписокЗначений(); Если (Массив1.Количество() > 0 и Массив1.Количество() < 10) или Массив.Количество() > 100 Тогда //действия… КонецЕсли;
Условия булево 1С можно использовать непосредственно в коде программы: Переменная1 = 5; флгРезультат = (Переменная1 = 2 + 3); //флгРезультат будет равен ИСТИНА
В условной операции 1С оператор ЕСЛИ ИНАЧЕ ТОГДА можно заменить более кратким выражением. Следующие два варианта равны:
У реквизитов объектов (справочников, документов и т.п.) есть возможность установить тип булево 1С. Также можно создать переменную булево 1С, например: флгВыполнено = Истина;
Далее, в условиях ЕСЛИ, можно писать равнозначно двумя способами: //вариант 1 Если флгВыполнено = Истина Тогда //делаем что-то
КонецЕсли;
//вариант 2 Если флгВыполнено Тогда //делаем что-то КонецЕсли;
Второй вариант таит в себе следующую «неприятность»:
howknow1c.ru
Выгрузка Булево из 1С:УТ в 1С-Битрикс
Настраивая очередную интеграцию 1С:Управление торговлей 11 с сайтом, под управлением 1С-Битрикс, столкнулся с такой проблемой: реквизиты с типом «Булево» выгружались на сайт с типом «Строка» и со значением «Да». В результате стандартные реквизиты «Новинка», «Спецпредложение» и «Лидер продаж» перестали отображаться.
К сожалению, не нашел другого варианта, как исправить выгрузку на сайт в 1С:УТ. Доработки минимальны.
1. Все значения реквизитов свойств кроме Числа, Даты и Справочника выгружаются как универсальный тип Строка. Сделаем, чтобы Булево выгружалось не как строка, а как Справочник, для этого находим в Общем модуле конфигурации «ОбменССайтом» процедуру ВыгрузитьОсновныеРеквизитыСвойстваДляКлассификатора(). Добавляем в условие две строчки:
2. Теперь нужно выгрузить возможные значения. В нашем случае оно будет только одно: «Да» с идентификатором «YES». Добавим дополнительное условие чуть ниже в той же процедуре:
3. При выгрузке свойства номенклатуры нужно, чтобы при истинном значении Булево выгружалось «YES». Для этого находим в этом же модуле процедуру ВыгрузитьСвойстваНоменклатуры() и добавляем в ней пару строк:
4. Теперь можно сохранить изменения, и запустить обмен данными с сайтом. На всякий случай зайдем в меню «Контент — Свойства инфоблоков — Каталоги — Каталог товара» и проверим настройки Свойств элементов с типом Булево. Внешний вид у них должен быть установлен как «Флажки»:
Теперь «Новинка», «Спецпредложение» и «Лидер продаж» корректно передаются из 1С и отображаются флажками в карточке товара:
www.mikuslas.ru
Смотрите также
Значение заполнения
Это свойство позволяет установить значение по-умолчанию для реквизита.
Например, решим такую задачу: в справочнике «Сотрудники» есть реквизит «Вид приема на работу», который принимает одно из 3-х значений: «Штатный», «Внутренний совместитель» и «Внешний совместитель»:

Проверка заполнения
Это свойство реквизита, которое позволяет сделать реквизит обязательным для заполнения.
Например, решим такую задачу: в справочнике «Контрагенты» есть реквизит «УНП», который пользователь должен заполнить обязательно.
Для решения такой задачи достаточно в конфигураторе в настройках реквизита «УНП» установить свойство «Проверка заполнения» в значение «Выдавать ошибку»:

Связи параметров выбора
Это свойство позволяет установить связь между реквизитами одного объекта.
Пример задачи: в документе «Приходная накладная» есть реквизиты «Контрагент» (ссылка на справочник «Контрагенты») и «Договор» (ссылка на справочник «Договоры», который подчинен справочнику «Контрагенты»). При выборе договора пользователь должен видеть в списке только те договоры, которые принадлежат выбранному в этому же документе контрагенту. Договоры других контрагентов пользователь видеть не должен:

Параметры выбора
Это свойство позволяет настроить фильтр списка, который открывается при выборе значения реквизита.
Пример задачи:
В справочнике «Номенклатура» хранится список всех товаров и услуг организации:





- Значение заполнения (настройка значения по-умолчанию)
- Проверка заполнения (обязательность заполнения реквизита)
- Связи параметров выбора (настройка связи между реквизитами одного объекта)
- Параметры выбора (настройка фильтра списка при выборе значения реквизита)
2019-05-01 13:39
Программирование
Многие, кто только начинает изучать программирование, впервые сталкиваются с новым для себя примитивным типом булево. Еще его по-другому называют логический тип. Данный тип назван в честь английского математика Джорджа Буля, который изучал вопросы математической логики.
Прежде чем начать изучать этот примитивный тип, узнаем вообще, что такое булевы или логические выражения.
Булевы выражения это что-то типа вопроса, на который должен быть однозначные ответ или да, или нет.
5 < 7 — Да;
5 = 8 – Нет;
4 > 9 – Нет.
Так же могу и быть более сложные вопросы:
Кнопка нажата – да;
Или
Кнопка нажата – нет;
Булевы выражения используются во всех условных переходах:
Если <Булево выражение1> тогда //операторы ИначеЕсли <БулевоВыражение2> тогда //операторы КонецЕсли;
В языке программирования 1С переменную с примитивным типом Булево можно задать явно:
А = Истина; Б = Ложь;
Где Истина и Ложь единственные значения, которые может принимать примитивный тип Булево.
Истина – значит, что какое-то утверждение соответствует действительности (Ответ — Да).
Ложь – значить, что какое-то утверждение, наоборот, не соответствует действительности (Ответ –Нет).
Так же переменные с типом булево могут быть заданы с помощью какого-либо логического выражения.
Например:
А = 5 < 7; Б = 6 > 9;
В этом случае, в переменой А будет значение Истина, а в переменной типа Б – ложь;
В языке программирования 1С над переменными типа булево можно осуществлять различные операции.
Например:
А = 5 < 7; Б = 6 > 9; В = А И Б; С = А ИЛИ Б; Д = Не А;
Всего их три – И, ИЛИ и НЕ.
Понять функциональность этих операций помогут следующие таблицы
Операция НЕ
| А | Б |
| Истина | Ложь |
| Ложь | Истина |
Операция И
| С = А И Б | А | Б |
| Истина | Истина | Истина |
| Ложь | Ложь | Истина |
| Ложь | Истина | Ложь |
| Ложь | Ложь | Ложь |
Операция ИЛИ
| С = А ИЛИ Б | А | Б |
| Истина | Истина | Истина |
| Истина | Ложь | Истина |
| Истина | Истина | Ложь |
| Ложь | Ложь | Ложь |
А можно ли выполнять данные операции подряд?
Да можно, данные операции будут выполняться слева направо. И иметь следующий уровень старшинства:
Первый: в первую очередь выполняются операции в скобках
Второй: Операция НЕ
Третий: Операция И
Четвертый: Операция ИЛИ.
Чтобы не путаться в операциях, я советую Вам использовать скобки, где только возможно.
Например:
А = Ложь; Б = Истина; С = Ложь; Д = А и С или Б;
В данном случае сначала будет работать операция И между А и С.
Смотрим таблицу А – Ложь, С – Ложь, результат А И С будет Ложь.
Следующим шагом будет выполнение операции ИЛИ между Ложью (Результат предыдущей операции) и значением Б, которое Истина.
Результат будет Истина.
А если нам надо, чтобы прошла сначала операция ИЛИ между С и Б, а потом только операция И между А и тем, что получилось, то для этого необходимо использовать скобки.
Смотрим:
А = Ложь; Б = Истина; С = Ложь; Д = А и (С или Б);
Результат будет диаметрально противоположный. Почему? Сейчас разберем. Благодаря скобкам сначала выполняется операция и между С и Б, т.к. С — Ложь, а Б – Истина, результат будет Истина. Потом между значением А (которое Ложь) и значением Истина (результатом предыдущей операции) выполняется операция И. Результат будет Ложь.
Многие начинающие программисты не совсем до конца понимают принципы взаимодействия между переменными типа Булево. Помочь в этом сможет только практика. А практики с переменными типа Булево достаточно в моем задачнике к книге «Программировать в 1С за 11 шагов»
Изучайте основы конфигурирования в 1С и учитесь программировать в «1С: Предприятии» с помощью моих книг: «Программировать в 1С за 11 шагов» и «Основы разработки в 1С: Такси»

Изучайте программирование в 1С в месте с моей книги «Программировать в 1С за 11 шагов»
- Книга написана понятным и простым языком — для новичка.
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Научитесь понимать архитектуру 1С;
- Станете писать код на языке 1С;
- Освоите основные приемы программирования;
- Закрепите полученные знания при помощи задачника;
Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
- Очень доступный и понятный язык изложения
- Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
- Поймете идеологию управляемого приложения 1С
- Узнаете, как разрабатывать управляемое приложение;
- Научитесь разрабатывать управляемые формы 1С;
- Сможете работать с основными и нужными элементами управляемых форм
- Программирование под управляемым приложением станет понятным
Промо-код на скидку в 15% — 48PVXHeYu
Если Вам помог этот урок решить какую-нибудь проблему, понравился или оказался полезен, то Вы можете поддержать мой проект, перечислив любую сумму:
можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655
Вступайте в мои группы:
Вконтакте: https://vk.com/1c_prosto
Фейсбуке: https://www.facebook.com/groups/922972144448119/
ОК: http://ok.ru/group/52970839015518
Твиттер: https://twitter.com/signum2009














