Вход | Регистрация


1С:Предприятие :: 1С:Предприятие 8 общая

Как в строковом реквизите ТЧ документа хранить null?

↓ [Serg_1960, 24.04.18 - 15:20]
Как в строковом реквизите ТЧ документа хранить null?
Я
   Tester
 
24.04.18 - 13:55
Всем привет.
Только что поставили в тупик. Необходимо в ТЧ документа добавить реквизит строкового типа, котором одновременно мог бы хранить null ну или Неопределено.
Составной тип, например, Строка и Число делать не хочется. Как быть?
 
 
   mehfk
 
1 - 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, а они не связываются. Почему и что делать?" ;)
   Ненавижу 1С
 
5 - 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)да хз зачем это нужно:-) В сабже истоки этого креатива не озвучиваются.
   Buster007
 
10 - 24.04.18 - 14:20
в 7ке можно?
 
 Рекламное место пустует
   George Wheels
 
11 - 24.04.18 - 14:37
А чем пустая строка не устраивает?
   cw014
 
12 - 24.04.18 - 14:38
+(1) А задача какая стоит, что так извращаться надо?
   VS-1976
 
13 - 24.04.18 - 14:45
(0) Делай составной. Там только колонка тип добавится. И в запросе можно будет использовать Неопределенно ( пустой тип ).
   VS-1976
 
14 - 24.04.18 - 14:48
(13) null ты не получишь для полей в 1С
   d4rkmesa
 
15 - 24.04.18 - 14:48
(0)
"Null
Описание:
Значения данного типа используются исключительно для определения отсутствующего значения при работе с базой данных, например, при соединении таблиц."

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

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

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

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


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует