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


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

Поля неограниченной длины во внешней таблице запроса

Поля неограниченной длины во внешней таблице запроса
Я
   Cоляпсус
 
25.05.18 - 14:50
Добрый день уважаемые. Сложилась такая ситуация. Сделал запрос, в нём срастил две таблицы, внешнюю ТЗ и РегистрНакопления.
http://prntscr.com/jmgq4t
Ситуация такова: при попытке сформировать выдаёт ошибку, что нельзя сравнивать поля неограниченной длины и поля несовместимых типов.
http://prntscr.com/jmgow6
я теоретически понимаю что это может быть так, но ни разу не сталкивался с таким и не знаю что делать.
Буду благодарен если подскажите.
Может регистр тоже сначала в ВТ загнать, а потом соединить? Может поможет? Хотя не уверен конечно
Заранее спасибо
 
 
   PR
 
1 - 25.05.18 - 14:51
ВЫРАЗИТЬ
И длины, а не длинны
   lodger
 
2 - 25.05.18 - 14:51
(0) нет. не поможет. нельзя сравнивать поля неограниченной длины
   Cоляпсус
 
3 - 25.05.18 - 14:54
(1) Выразить строку сравнения?
Да я в роде длины и написал
   Cool_Profi
 
4 - 25.05.18 - 14:55
(3) Пишется "вроде" ))))
НАПИШИ ГДЕ ВЫРАЗИТЬ(ДлиннннннаяСтрока КАК Строка(100)) = ВнешнийИсточник.Реквизит

Вместо 100 подставь нужное значение
   DrShad
 
5 - 25.05.18 - 15:01
+(4) максимум 1024
   Cоляпсус
 
6 - 25.05.18 - 15:02
(4) Ну тут согласен, косякнул)))) Быстро набираю иногда не слежу)))
А вместо 100 какое значение поставить типа ВТТовары.Номенклатура?
   Cоляпсус
 
7 - 25.05.18 - 15:13
100 - это ведь длинна строки имеется в виду?
   Cоляпсус
 
8 - 25.05.18 - 15:19
http://prntscr.com/jmh538
что-то всёравно не нравится, ошибка перестала вылезать, а запросы стали пустые возвращаться. Или я не то и не там написал. Вроде во всемирном мозге смотрел, там тоже самое, примерно)
   dezss
 
9 - 25.05.18 - 15:22
(6) Какого типа ВТТовары.Номенклатура и СебестоимостьТовара.АналитикаУчетаНоменклатуры.Номенклатура какого?
   dezss
 
10 - 25.05.18 - 15:23
(9) +Может тебе стоит сравнивать ВТТовары.Номенклатура.Наименование с твоей аналитикой?
 
 Рекламное место пустует
   singlych
 
11 - 25.05.18 - 15:32
Вангую что во внешней ТЗ Номенклатура - строка.
Сделай ссылку.
   Cоляпсус
 
12 - 25.05.18 - 15:36
(10) ВТТОвары.Номенклатура = СебестоимостьТоваров.АналитикаУчетаНоменклатуры - я вот так пробовал не помогает. Так не могу сдеать ВТТовары.Номенклатура.Наименование - пишет тогда поле не найдено.
   Cоляпсус
 
13 - 25.05.18 - 15:36
(11) Преобразовать в ссылку?
   Cоляпсус
 
14 - 25.05.18 - 15:38
(12) Как сделать ссылку, у меня же её нет в ВТТовары?
   Cоляпсус
 
15 - 25.05.18 - 15:39
ВТТовары - это и есть внешняя ТЗ
   singlych
 
16 - 25.05.18 - 15:40
(13) Внешнюю ТЗ ты откуда брал?
   Cоляпсус
 
17 - 25.05.18 - 15:46
http://prntscr.com/jmhk39 вот так я по идее её получил
   Cоляпсус
 
18 - 25.05.18 - 15:47
Если пытаюсь выразить, выдаёт такую ошибку
http://prntscr.com/jmhilw
похоже необходимо что-то ещё дописать
   hhhh
 
19 - 25.05.18 - 15:51
(18) в этой строчке у тебя 38 ошибок. Это рекорд.
   singlych
 
20 - 25.05.18 - 15:56
Сделай шаг после точки останова в (17) и напиши в табло
ТипЗнч(ВыборкаТоварыСтрок[0].Номенклатура)
Че за тип?
   lodger
 
21 - 25.05.18 - 15:57
(17) зачем стоматологов мучают 1ской?
   dezss
 
22 - 25.05.18 - 16:00
(20) да строка у него там, походу...

ну что ж, у нас новый ливинг стар!!!

(17) Тебе надо еще узнать тип СебестоимостьТовара.АналитикаУчетаНоменклатуры.Номенклатура.
Если это номенклатура, то можешь сравнивать так:

Выразить(ВТТовары.Номенклатура как строка(200)) = СебестоимостьТовара.АналитикаУчетаНоменклатуры.Номенклатура.Наименование

Но я бы вообще так не делал. Это глупо и неправильно)
   Cоляпсус
 
23 - 25.05.18 - 16:02
(22) Подскажешь правильный выход?
   Cоляпсус
 
24 - 25.05.18 - 16:09
(20) Хм он пишет NULL, а всё по тому что выглядит так, поэтому по ходу и ошибка
http://prntscr.com/jmhwgh
   dezss
 
25 - 25.05.18 - 16:11
(24) тогда проще...надо узнать, почему там есть null. Либо убрать его, либо исключить в самом запросе через конструкцию ЕстьNull()
   Cоляпсус
 
26 - 25.05.18 - 16:28
(25) в при выгрузке из результата запроса, выгружаются две строки, ссылка на документ и уже сама табличная часть документа.
http://prntscr.com/jmi62r
"Либо убрать его, либо исключить в самом запросе через конструкцию ЕстьNull()" ты прав
   Cоляпсус
 
27 - 25.05.18 - 16:30
(25) Надо избавится как то от первой строки
   Cоляпсус
 
28 - 25.05.18 - 16:40
(25) Ещё разок не подскажешь как правильно избавиться от первой строки пустой где ссылка. Запомню раз и навсегда.
Понимаю, что (25) всё объяснил, но можешь чуть подробнее?
Спасибо
   Cоляпсус
 
29 - 25.05.18 - 16:46
(25) Наверное удалить строку из выгруженной ТЗ я подозреваю, но так тоже наверное не правильно.
   dezss
 
30 - 25.05.18 - 16:48
(28) ЕстьNull(ВТТовары.Номенклатура,Значение(Справочник.Номенклатура.ПустаяСсылка)) = СебестоимостьТовара.АналитикаУчетаНоменклатуры.Номенклатура
   lodger
 
31 - 25.05.18 - 16:48
(29) наверное надо заглянуть в предыдущий запрос, который дает ТЗ и убрать из него ИТОГИ
   dezss
 
32 - 25.05.18 - 16:49
(31) у него там выгрузка из тч, вроде...хотя хз, я весь запрос не видел, но есть скрин в (17)
   lodger
 
33 - 25.05.18 - 16:51
(32) по именам переменных инфа100, что это результат запроса.
 
 
   Cоляпсус
 
34 - 25.05.18 - 16:53
(31) Я думал над этим, но пока  не успел придумать что с этим поделать. Так как сам запрос это ДанныеПечати, а они приходят параметром прямо в процедуру. Насколько я помню, они провалятся или в документ в самой конфигурации или в общий модуль тоже в основной конфигурации, которую конечно бы не хотелось бы трогать. Можно, но не очень хочется.
   lodger
 
35 - 25.05.18 - 16:57
(34) тогда делай внутреннее соединение с условием
НЕ ВТТовары.Номенклатура ЕСТЬ NULL
И ВТТовары.Номенклатура = СебестоимостьТовара.АналитикаУчетаНоменклатуры.Номенклатура
   Cоляпсус
 
36 - 25.05.18 - 17:05
(35) Так не прокатывает, пустой запрос возвращается,(
   lodger
 
37 - 25.05.18 - 17:27
(36) покеж свой запрос с этой модификацией.
http://www.heypasteit.com/


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