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

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

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

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

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

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