Избавиться от Null в запросе по реальному регистру. #419979


#0 by Alexis
Запрос: ВЫБРАТЬ РАЗРЕШЕННЫЕ    ПартииТоваровНаСкладах.Период,    ПартииТоваровНаСкладах.МоментВремени ИЗ    РегистрНакопления.ПартииТоваровНаСкладах КАК ПартииТоваровНаСкладах При выгрузке в таблицу все типы колонок получаются вида: "родной тип значения", Null Как избавиться от Null`ей ?
#1 by Нуф-Нуф
ЕстьНУЛЛ?
#2 by Нуф-Нуф
или НЕ НУЛЛ?
#3 by Ненавижу 1С
зачем?
#4 by Ненавижу 1С
ни про то вообще
#5 by Нуф-Нуф
похоже
#6 by Alexis
Ага. Не про то. На выходе в таблице составной тип получается ("родной", null). Вопрос: как убрать Null?
#7 by mikecool
см
#8 by Alexis
Идет сравнение со значениями "родного" типа: со всеми прокатывает, кроме "ВидДвижения" - выдает "Неверные параметры в операции сравнения. Нельзя сравнивать поля неограниченной длины и поля несовместимых типов."
#9 by Ненавижу 1С
а с чем ты сравниваешь его? По-моему NULL тут не причем
#10 by NcSteel
+1 . Подозреваю что то не так в коде, в студию
#11 by 73
Может не так сравниваешь?
#12 by mikecool
+11 или не то
#13 by Alexis
С таблицей движений, выгруженной из ДокументОбъекта. P.S.Столько вопросов. Когда ответы будут?
#14 by mikecool
тебе ответили в нул тут ни при чем
#15 by mikecool
+14 если не смог правильно задать вопрос - жди вопросы в ответ
#16 by Defender aka LINN
Он тебе жить мешает?
#17 by Alexis
Мешает если спрашиваю.
#18 by Ненавижу 1С
ну долби дальше, клюв уже хороший
#19 by Alexis
Вот: ВЫБРАТЬ РАЗРЕШЕННЫЕ Ошибка: {ОбщийМодуль.Доработки(4295)}: Ошибка при вызове метода контекста (Выполнить): {(91, 42)}: Неверные параметры в операции сравнения. Нельзя сравнивать поля неограниченной длины и поля несовместимых типов. И ТаблицаТоваровСравнение.ВидДвижения <<?>>= втТаблицаТоваровДо.ВидДвижения
#20 by Defender aka LINN
Ну. У тебя там разные типы. При чем тут NULL?
#21 by 73
И что здесь можно увидеть? Смотри как временные формируются(втТаблицаТоваровДо втТаблицаТоваровПосле).
#22 by Ненавижу 1С
ха, тут вообще другая ситуация, что значит описать проблему "грамотно". Никто твоих втТаблицаТоваровПосле и втТаблицаТоваровДо не видел и не знает, что там
#23 by Alexis
Про (втТаблицаТоваровДо втТаблицаТоваровПосле) в началке ветки. А разные типы потому, что один из них составной: ("родной" и Null)/
#24 by Ненавижу 1С
где вначале? а выводы делаешь неправильные: NULL отлично сравнивается на равенство
#25 by Alexis
Null сравнивается, а составной тип нет.
#26 by Alexis
+ По крайней мере для "ВидДвижения".
#27 by Ненавижу 1С
или показывай свои таблицы временные или смотри
#28 by Defender aka LINN
Ты дурак? У значения не может быть составного типа. А с ВидДвижения в запросе и правда какие-то траблы были, уже и сам не помню.
#29 by lxs
неважно какой тип.. У тебя Фрукт1 может быть равным Яблоко и Груша; Фрукт2, также может быть равным Яблоко и Груша. Ты присваиваешь Фрукт1 = Яблоко, Фрукт2 = Груша. И сравниваешь Фрукт1 = Фрукт2 - пох, какой у них тип, составной или нет..
#30 by Ненавижу 1С
+ на крайняк можно заменить в временных таблицах на ВЫБОР
#31 by НЕА123
2 ALL: сегодня пятница?
#32 by lxs
сегодня единственный рабочий день недели..
#33 by Alexis
На мисте, походу сплошные флеймеры остались, по делу никто не отвечает.
#34 by Alexis
"У значения не может быть составного типа" - интересная фраза. А у чего (кого) может?
#35 by НЕА123
у реквизита, например.
#36 by НЕА123
+ а значение реквизита - нет.
#37 by НЕА123
+ не может быть одновременно конкретное значение быть равным числу 0 и NULL. PS жарко.
#38 by Alexis
Это демагогия. Пробую установить индекс по "ВидДвижения". Ошибка: "Индексируемое поле не может иметь составной тип и тип неограниченной длины <<?>>ТаблицаТоваровДо.ВидДвижения КАК ВидДвижения,"
#39 by Alexis
Колонка в созданной программно ТЗ(не привязанной к табличному полю на форме) - это "значение" или "реквизит"?
#40 by mikecool
у тебя поле неограниченной длины пользуйся выразить
#41 by lxs
)))) ты сравниваешь значения..а не колонки..
#42 by mikecool
колонка - это контейнер, содержащий в опред строке значение
#43 by Alexis
Заеб..ли. Неужели нельзя с начала темы внимательно прочитать? Смотрю в отладчике: строка из 1-й таблицы, колонка "ВидДвижения", тип ("ВидДвиженияНакопления"); строка из 2-й таблицы, колонка "ВидДвижения", тип ("ВидДвиженияНакопления",Null) Так получается при запросе к реальной таблице регистра накопления.
#44 by ptiz
Вот в такую ошибку верим.
#45 by Alexis
"на крайняк можно заменить в временных таблицах на ВЫБОР Можно, только сначала от Null в таблице нужно избавиться, иначе: "Неверные параметры в операции сравнения. Нельзя сравнивать поля неограниченной длины и поля несовместимых типов. КОГДА ТаблицаТоваровДо.ВидДвижения <<?>>= Значение(ВидДвиженияНакопления.Приход)"
#46 by 73
Дело не в Null-ах, а в косяках при сравнении перечислений типа ВидДвиженияНакопления. Если заменить во временных на булево, то и сравнивать надо с булевым.
#47 by Alexis
"Дело не в Null-ах, а в косяках при сравнении перечислений типа ВидДвиженияНакопления" Верно отчасти. Если убрать null, то "ВЫБОР КОГДА", а операция вхождения из не работает в любом случае. "Если заменить во временных на булево, то и сравнивать надо с булевым" Как?
#48 by hhhh
ну ты объясни, что у тебя за таблица ТаблицаТоваровДо, откуда она взялась? А так это всё переливание из пустого в порожнее. Ошибка то в этой таблице, а ты нам показал как формируется первая таблица. Тут же не все экстрасенсы. Может ты нетипизированую таблицу подсовываешь или полученную из Левого соединения.
#49 by Alexis
К .  то "ВЫБОР КОГДА"- работает.
#50 by Alexis
таблица выгрузки из запроса в
#51 by 73
А вторая?
#52 by Alexis
ДокОбъект.Движения.партииТоваровНаСкладах.Выгрузить ЗЫ Прочитал бы всю тему.
#53 by Alexis
Походу от Null избавлялся так: создавал таблцу со структурой в , тип каждой колонки задавал явно, и перегружал колонки в нее из талицы запроса. После  этого в ставил ВЫБОР КОГДА - так все работает. Надеялся есть более элегантный способ.
#54 by 73
Попробуй в изменить: Выбор Когда ПартииТоваровНаСкладах.ВидДвижения = Значение(ВидДвиженияНакопления.Приход) Тогда Значение(ВидДвиженияНакопления.Приход) Иначе Значение(ВидДвиженияНакопления.Расход) Конец КАК ВидДвижения,
#55 by hhhh
лучше в соединении заменить:            И (ВЫБОР КОГДА ТаблицаТоваровСравнение.ВидДвижения = Значение(ВидДвиженияНакопления.Приход) И втТаблицаТоваровДо.ВидДвижения = Значение(ВидДвиженияНакопления.Приход) ИЛИ ТаблицаТоваровСравнение.ВидДвижения = Значение(ВидДвиженияНакопления.Расход) И втТаблицаТоваровДо.ВидДвижения = Значение(ВидДвиженияНакопления.Расход) ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ)
#56 by 73
Дык, автор в пишет что ошибку дает:
#57 by hhhh
Тогда и не сработает. Та же самая формула.
#58 by hhhh
можно посмотреть отладчиком движения ДокОбъект.Движения.партииТоваровНаСкладах какой там тип?
#59 by НЕА123
почти офф. почему через ВЫБОР? ЕСТЬNULL(ТаблицаТоваровДо.ВидДвижения,Значение(ВидДвиженияНакопления.Расход))
#60 by 73
Формула не совсем та, поскольку до помещения во временную. Null-ов там нет. Там какие-то косяки при сравнении. Попробуйте соединить по ВидДвижения разные регистры накопления. У меня например, какие-то соединяются без проблем, какие-то - нет, такую же ошибку дает. Логику не понял.
#61 by Alexis
- ошибку не дает, но Null остается. - см. - В запросе не помагает избавиться от Null, а в надо избавиться от "ВидДвижения" - заменять на булево.
#62 by 73
Может, не избавляться надо, а другую таблицу привести к такой-же Например, что-то типа: Выбрать *
#63 by hhhh
так я тебе Движения просил посмотреть, а не таблицу. Может выгрузить косячит.
#64 by hhhh
разные виды регистров есть. Если это регистр оборотов, а не остатков, то действительно ВидДвижения = NULL. Наверно, именно поэтому в общем случае Вид движения имеет составной тип.
#65 by Alexis
Регистр "остатков". УПП(1.2.21.1)
#66 by 73
Про разные виды регистров знаю. Я пробовал одинаковые: Остатки.
#67 by hhhh
может быть команда Выгрузить общая для всех. Вот она и фигачит составной тип.
#68 by 73
Как я понял - наоборот. Составной дает запрос.
#69 by 73
Да и все равно, косячно как-то. Говорю же, пробовал соединять: . Автор, не пробовал?
#70 by hhhh
а если и вторую таблицу тоже сделать ДокОбъект.Движения.партииТоваровНаСкладах.Выгрузить тогда должно нормально быть.
#71 by Alexis
Не совсем нормально - "ВидДвижения" все равно надо на булево заменять до запроса в .
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С