Имя: Пароль:
1C
1С v8
Как в строковом реквизите ТЧ документа хранить null?
🠗 (Serg_1960 24.04.2018 15:20)
,
0 Tester
 
24.04.18
13:55
Всем привет.
Только что поставили в тупик. Необходимо в ТЧ документа добавить реквизит строкового типа, котором одновременно мог бы хранить null ну или Неопределено.
Составной тип, например, Строка и Число делать не хочется. Как быть?
1 mehfk
 
24.04.18
13:58
>> Как быть?
Не придумывать идиотские схемы.
2 Сти
 
24.04.18
13:59
(0) "Неопределено" можно устроить только в составном типе. Null - никак, поскольку это вообще ничего, а раз поле есть, то это уже что-то.
3 Рэйв
 
24.04.18
14:01
храни "NULL" и не парься:-)
4 Сти
 
24.04.18
14:05
(3) Не, так не пойдет. Это нужно, чтобы потом спросить: "Связываю в запросе поля, в которых хранится Null, а они не связываются. Почему и что делать?" ;)
5 Ненавижу 1С
 
гуру
24.04.18
14:05
здесь вам не нормальный SQL, терпите!
6 Рэйв
 
24.04.18
14:07
(4) А ты в запросе выбери сначала все из таб части в ВТ и сделай
Выбор Когда Реквизит="NULL" Тогда
    NULL
    Иначе
    Реквизит
Конец КАК Реквизит

А потом с ВТ уже соединяй
7 Рэйв
 
24.04.18
14:08
(6) это к (0) наверное:-)
8 Сти
 
24.04.18
14:11
(6) соединять Null с Null в запросе? )))
Не, конечно можно использовать EстьNull и что-то вместо него подставлять с обоих сторон, но...
9 Рэйв
 
24.04.18
14:14
(8)да хз зачем это нужно:-) В сабже истоки этого креатива не озвучиваются.
10 Buster007
 
24.04.18
14:20
в 7ке можно?
11 George Wheels
 
24.04.18
14:37
А чем пустая строка не устраивает?
12 cw014
 
24.04.18
14:38
+(1) А задача какая стоит, что так извращаться надо?
13 VS-1976
 
24.04.18
14:45
(0) Делай составной. Там только колонка тип добавится. И в запросе можно будет использовать Неопределенно ( пустой тип ).
14 VS-1976
 
24.04.18
14:48
(13) null ты не получишь для полей в 1С
15 d4rkmesa
 
24.04.18
14:48
(0)
"Null
Описание:
Значения данного типа используются исключительно для определения отсутствующего значения при работе с базой данных, например, при соединении таблиц."

Т.е. хранить null в реквизите нельзя. Того, кто ставит такие задачи, отлупить черенком от лопаты.
16 Вафель
 
24.04.18
14:49
доавить отдельный реквизит булево: пустая строка
17 Timon1405
 
24.04.18
14:52
(14) (15) выберите в запросе артикул у группы номенклатуры и расскажите что в 1с нет нулл
18 Rovan
 
гуру
24.04.18
14:53
(0) создать Перечисление Служебное:
NULL, Неопределено
19 Ненавижу 1С
 
гуру
24.04.18
14:53
Давно уже придуман паттерн Nullable. Если тип вашего значения не поддерживает NULL, то достаточно структуру дополнить булевым полем IsNull.
20 VS-1976
 
24.04.18
14:57
(17) Я посмотрел. Выбирает Null но это всё туфта. Это просто пока в базе не инициализировано значение. После того как туда что-то попадёт, как вернуть Null?
21 Ненавижу 1С
 
гуру
24.04.18
14:59
(20) хватит личных фантазий уже:

Кроме того, значение типа Null будет иметь, например, реквизит иерархического справочника для элементов-групп, если в метаданных указано, что этот реквизит используется только для элементов не являющихся группами.

https://its.1c.ru/db/metod8dev#content:2516:hdoc
22 Timon1405
 
24.04.18
15:02
(20) вопрос "После того как туда что-то попадёт, как вернуть Null" конечно философский.
вообще-то именно так и работают таблицы регистрации изменений: сначала нулл, а потом номер сообщения.
23 d4rkmesa
 
24.04.18
15:07
(17) Тогда напишите автору, как его хранить в реквизите, бгг. ХранилищеЗначений и сериализованную строку не предлагать.
24 VS-1976
 
24.04.18
15:08
(22) Проверил нефейфуа null не возвращает, хоть и проглатывает без ошибок. По этому null это до поры до времени. А вот юзверы артикулы стирают, так как не туда и не то проставляют

пНоменклатураСсылка = Справочники.Номенклатура.НайтиПоКоду( "000003900" );
оНоменклатура = пНоменклатураСсылка.ПолучитьОбъект();
оНоменклатура.Артикул = Null;
оНоменклатура.Записать();
25 Вафель
 
24.04.18
15:09
(24) в 1с автоматическое приведение типов
26 Fish
 
24.04.18
15:13
Я за вариант (3). Имхо, лучше не придумаешь для решения задачи в (0).
27 BeerHelpsMeWin
 
24.04.18
15:16
В (1) всё написано. А если всё-таки надо - смотри (16).
28 Ненавижу 1С
 
гуру
24.04.18
15:22
(24) что твой быдлокод доказывает?
у объекта группа нельзя обратить к реквизиту Артикул (в типовых)
29 breezee
 
24.04.18
15:26
Зачем?)
30 VS-1976
 
24.04.18
15:35
(28) Что сказал хоть сам понял? Приведи свой быдло код. Пальцем тыкать все умеют если что...
31 Ненавижу 1С
 
гуру
24.04.18
15:48
(30) просто прочти текст в (21)
32 VS-1976
 
24.04.18
15:52
(31) И что там такого написано? Что можно как-то null в поле загнать средствами 1С?
33 Сияющий в темноте
 
24.04.18
20:37
По сути,неопределенно,нул и пустая строка это отсутствие значения,зачем их еще различать?
34 Сти
 
25.04.18
06:27
(33) Неужели?
35 Ненавижу 1С
 
гуру
25.04.18
10:50
(33) в стандартных СУБД так и есть
36 Tester
 
25.04.18
14:48
Всем спасибо.
Сделал как описано в (1)  :)