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

Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
1. Razlagutt 12.03.15 10:37 Сейчас в теме
1С:Предприятие 8.2 (8.2.19.121)
БГУ 1.0.31.9

Здравствуйте! Имеем следующий запрос:
ВЫБРАТЬ
	ОтражениеЗарплатыВУчете.Ссылка КАК Документ,
	ОтражениеЗарплатыВУчете.Представление
ИЗ
	Документ.ОтражениеЗарплатыВУчете КАК ОтражениеЗарплатыВУчете


Пытаюсь преобразовать ОтражениеЗарплатыВУчете.Представление в строку вот так:
ВЫРАЗИТЬ(ОтражениеЗарплатыВУчете.Представление КАК СТРОКА(150))

Выдает ошибку (см. скрин). Не понимаю где ошибка?
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. Swetlana 25 12.03.15 10:47 Сейчас в теме
(1) Razlagutt, проверьте тип поля Представление
5. Razlagutt 12.03.15 11:01 Сейчас в теме
4. kuzev 47 12.03.15 10:59 Сейчас в теме
(1) Razlagutt, Представление в запросе нельзя выразить в Строку.
6. Razlagutt 12.03.15 11:03 Сейчас в теме
(4) kuzev, вот здесь утверждают, что можно и объясняют почему.
8. Swetlana 25 12.03.15 11:13 Сейчас в теме
(6) Razlagutt, вроде как неограниченную строку нельзя выразить в ограниченную, может и ошибаюсь
9. Razlagutt 12.03.15 11:16 Сейчас в теме
(8) Swetlana, вот здесь утверждают, что можно и нужно.
11. PetroP 12.03.15 11:21 Сейчас в теме
2. GunnyBear 3 12.03.15 10:45 Сейчас в теме
а вы уверены что .Представление это строка неограниченной длины?

попробуй через времянку
7. Razlagutt 12.03.15 11:10 Сейчас в теме
(2) GunnyBear, да, ибо при сравнении с реквизитом "Комментарий" другого документа вылетает ошибка: "Нельзя сравнивать поля неограниченной длины и поля несовместимых типов". Причем комментарий "не сопротивляется никаким модификациям", а вот ОтражениеЗарплатыВУчете.Представление или ОтражениеЗарплатыВУчете.Ссылка никак не хотят в строку преобразовываться. Я просто в ступоре. Вроде не было таких проблем раньше.
10. Razlagutt 12.03.15 11:18 Сейчас в теме
(2) GunnyBear, кстати, времянка не помогла.
13. PetroP 12.03.15 11:36 Сейчас в теме
(10) Razlagutt, во времянке используйте ЕстьНулл. Тогда поможет.
18. Razlagutt 12.03.15 11:44 Сейчас в теме
20. PetroP 12.03.15 11:48 Сейчас в теме
(18) Razlagutt, не то. Промахнулся.
12. Melius 12.03.15 11:23 Сейчас в теме
ПРЕДСТАВЛЕНИЕ() ? Здесь по любому строку получим
15. Razlagutt 12.03.15 11:38 Сейчас в теме
(12) Melius, да она и так строка. Только неограниченная и при сравнении с реквизитом "Комментарий" другого документа ругается на неограниченность длины представления. А при попытке урезать получается сабж.
14. spezc 782 12.03.15 11:37 Сейчас в теме
16. Melius 12.03.15 11:41 Сейчас в теме
(14) spezc, воот)) Сидел и вспоминал) Помню мне в свое время еще кто-то носом по монитору водил и объяснял, что выразить для приведения типов и только! Видимо плохо водили
17. Razlagutt 12.03.15 11:41 Сейчас в теме
(14) spezc, "улыбаемся и машем" (с) Автор неизвестен
Прикрепленные файлы:
19. spezc 782 12.03.15 11:48 Сейчас в теме
(17) значит у вас там не строка сидит
22. Razlagutt 12.03.15 11:51 Сейчас в теме
(19) spezc, и снова улыбаемся и машем!
Прикрепленные файлы:
21. Melius 12.03.15 11:49 Сейчас в теме
может все таки попробовать?
ВЫБРАТЬ
    ОтражениеЗарплатыВУчете.Ссылка КАК Документ,
    ПОДСТРОКА(ПРЕДСТАВЛЕНИЕ(ОтражениеЗарплатыВУчете.Представление), 1, 10) КАК СтрокаПоЛюбому
ИЗ
    Документ.ОтражениеЗарплатыВУчете КАК ОтражениеЗарплатыВУчете
24. Razlagutt 12.03.15 11:54 Сейчас в теме
(21) Melius, у меня уже панический смех начинается))))))))))))))) Логика заканчивается!!!!
Прикрепленные файлы:
23. spezc 782 12.03.15 11:53 Сейчас в теме
выполните запрос:

ВЫБРАТЬ
	ОтражениеЗарплатыВУчете.Ссылка КАК Документ,
	ВЫБОР
		КОГДА ТИПЗНАЧЕНИЯ(ОтражениеЗарплатыВУчете.Представление) = ТИПЗНАЧЕНИЯ("")
			ТОГДА ПОДСТРОКА(ОтражениеЗарплатыВУчете.Представление, 1, 150)
		ИНАЧЕ "ХЗ что"
	КОНЕЦ КАК Представление
ИЗ
	Документ.ОтражениеЗарплатыВУчете КАК ОтражениеЗарплатыВУчете
Показать
25. Razlagutt 12.03.15 11:56 Сейчас в теме
(23) spezc, не дает. "Неверные параметры ПОДСТРОКА". Скрин у Melius посмотрите.
26. PetroP 12.03.15 11:58 Сейчас в теме
(23) spezc, при составном типе данные выборки могут иметь только один тип.
27. spezc 782 12.03.15 12:00 Сейчас в теме
выполните запрос:

ВЫБРАТЬ
    ОтражениеЗарплатыВУчете.Ссылка КАК Документ
ИЗ
    Документ.ОтражениеЗарплатыВУчете КАК ОтражениеЗарплатыВУчете
ГДЕ 
	НЕ ТИПЗНАЧЕНИЯ(ОтражениеЗарплатыВУчете.Представление) = ТИПЗНАЧЕНИЯ("")
33. Razlagutt 12.03.15 13:24 Сейчас в теме
(27) spezc, (29) Melius, (30) GunnyBear, (30) GunnyBear, хорошо. Тогда надо ОтражениеЗарплатыВУчете.Ссылка преобразовывать в строку и сравнивать со строковым реквизитом другого документа, например комментарий. НО
ПОДСТРОКА(ПРЕДСТАВЛЕНИЕ(ОтражениеЗарплатыВУчете.Ссылка), 0, 100)

Выдает ошибку: Неверные параметры ПОДСТРОКА(<<?>>ПРЕДСТАВЛЕНИЕ(ОтражениеЗарплатыВУчете.Ссылка), 0, 100)!!!! Причем без разницы с вирт.таблицами или без них.
34. GunnyBear 3 12.03.15 13:43 Сейчас в теме
(33)да ты пойми что сравниваются значения в запросе который исполняется в СУБД, а представление формирует сервер 1С (боюсь предположить как это всё работает в файловом варианте)
36. Razlagutt 12.03.15 14:49 Сейчас в теме
(34) GunnyBear, (35) FractonKireyev, что-то бред какой-то, ребят. Мне нужно просто:
1) Получить строку на подобии "Отражение зарплаты в учете РБ000000001 от 31.01.2015 23:59:59" из документа "Отражение зарплаты в учете". Делается это через преобразование ссылки в строку. Если она неограниченной длины, то обрезать ее;
2) Отобрать документы отличные от "Отражение зарплаты в учете", в комментарии которых содержится фраза "Отражение зарплаты в учете РБ000000001 от 31.01.2015 23:59:59";
3) Вывести отбор на экран.
Неужели без таблицы значений не решается данная задача?
37. AlexO 135 12.03.15 14:59 Сейчас в теме
(36) Razlagutt,
Неужели без таблицы значений не решается данная задача?
"Представление" - это другая "строка", не та, что тип "Строка".
"Ссылка" - тоже не строка. Поэтому
ПРЕДСТАВЛЕНИЕ(ОтражениеЗарплатыВУчете.Ссылка), 0, 100)
Не будет работать - нужно хотя бы "КАК СТРОКА".
(22) Razlagutt,
и снова улыбаемся и машем!
Машите дальше, кидайте глубже.
(9) Razlagutt,
вот здесь утверждают
Мало, что где утверждают. Сказочников от 1С, которые конфигуратор не открывали, но массово пишут на форумы или статьи - полно.
(24) Razlagutt,
Логика заканчивается!!!!
Когда вы начали заниматься 1С - вам следовало начать изучать 1С именно с этой аксиомы.
(31) Alexey_,
Таким образом, единственное, что можно сделать с полем "Представление", это получить его в результат запроса.
Язык запросов у 1С - вообще штука ограниченная.
40. Allexe8.1 13.03.15 04:52 Сейчас в теме
(37)
"Представление" - это другая "строка", не та, что тип "Строка".

Обычная строка, только формируется уже после выполнения запроса .

(39) Razlagutt,
в комментарии которых содержатся соответствующие названия документов

А почему не ссылки, в, например, дополнительных свойствах (если конфу не ломать) ?
41. Razlagutt 13.03.15 08:46 Сейчас в теме
(40) Allexe8.1,
А почему не ссылки, в, например, дополнительных свойствах (если конфу не ломать) ?

Под "конфу не ломать" я понимаю не модифицировать ничего. Если так, то доп.свойств нет в том документе, где в комментарии вписывается название документа, например, "Отражение зарплаты в учете РБ000000001 от 31.01.2015 23:59:59". Но теперь мне уже просто интересно как решить подобную задачу запросом, если конечно это возможно.
42. Allexe8.1 13.03.15 09:58 Сейчас в теме
(41) Razlagutt, что-то вроде:

ВЫБРАТЬ Ссылка ИЗ ЖурналДокументов.ОтражениеЗарплатыВУчете КАК ЖурналЗП

ЛЕВОЕ СОЕДИНЕНИЕ ЖурналДокументов.ПокупкаОС КАК ЖурналОС

ПО ЖурналОС.Комментарий ПОДОБНО ВЫБОР КОГДА ЖурналЗП.Ссылка  Ссылка Документ.ОтражениеЗапрлатыВУчете ТОГДА "Отражение зарплаты в учете" 
КОГДА ЖурналЗП.Ссылка  Ссылка Документ.НачислениеОтпуска Тогда "Начисление отпуска"
КОНЕЦ + ЖурналЗП.Ссылка.Номер + "%"

? )

Это если номер - строковый. И с датой что-то нужно еще придумывать.
53. Razlagutt 16.03.15 09:09 Сейчас в теме
(42) Allexe8.1,
И с датой что-то нужно еще придумывать.

Я думаю, что с ней ничего не придумаешь.

(49) vasyak319,
Razlagutt, не разу не видел БГУ, но разве в ней нет, как в любой другой типовой конфигурации, механизма свойств и категорий?

В первой редакции нет. Точнее сказать не везде.
Тем более, что любое изменение свойств ссылки, влияющей на её представление (взяли, да и переставили документ позже по времени), поломает вам весь ваш отчёт, в таких муках рождённый?

Вот это исключено. Ибо иначе поломается не только отчет но и учет.

Всем. Ответ на свой вопрос я получил. Моя идея оказалась глупой. Спасибо, что приняли участие. Спасибо за помощь, ликбез, разнос (критику). Тема закрыта.
43. ildarovich 7865 13.03.15 12:36 Сейчас в теме
(41) Razlagutt, вам правильно все отвечали, что получить строку представления в запросе для дальнейшего использования проблематично. И, главное, поиск в комментариях многих видов документов по такой строке будет очень долгим. То есть сам подход к решению бизнес-задачи неправильный.
Но если вас интересует теоретическая возможность построения внутри запроса представления ссылки, то ее можно решить, записав очень громоздкое выражение строк на двадцать(?). Часть этого выражения, связанная с представлением даты документа в виде строки можно построить по материалам статьи Выразить число как строку и дату как строку в запросе.
Allexe8.1; +1 Ответить
46. Razlagutt 13.03.15 14:34 Сейчас в теме
(43) ildarovich,
Razlagutt, вам правильно все отвечали, что получить строку представления в запросе для дальнейшего использования проблематично.

Судя по посту №33 я отказался от идеи использовать для решения своей задачи "Представление" и решил попробовать перевести Ссылку в строку, но столкнулся с той же проблемой.
И, главное, поиск в комментариях многих видов документов по такой строке будет очень долгим. То есть сам подход к решению бизнес-задачи неправильный.

Бесспорно, но в реальной задачи один вид и без модификации формы это единственное возможное на мой взгляд решение.
47. PetroP 13.03.15 15:04 Сейчас в теме
(46) Razlagutt, передавайте в запрос шаблон представления, а в самом запросе составляйте его полностью с номером и датой.
49. vasyak319 150 13.03.15 16:20 Сейчас в теме
(46) Razlagutt, не разу не видел БГУ, но разве в ней нет, как в любой другой типовой конфигурации, механизма свойств и категорий? А если есть, нафига вы вместо нормальной ссылки в соответствующем свойстве запихиваете её представление в комментарий? Тем более, что любое изменение свойств ссылки, влияющей на её представление (взяли, да и переставили документ позже по времени), поломает вам весь ваш отчёт, в таких муках рождённый?
50. AlexO 135 13.03.15 17:34 Сейчас в теме
(49) vasyak319,
А если есть, нафига вы вместо нормальной ссылки в соответствующем свойстве запихиваете её представление в комментарий?
Ну так у нас вон какая эволюция - "хочу Представление - хочу Ссылку в строку - хочу все комментарии в запросе!"
Все логично ))
Тем более, что любое изменение свойств ссылки, влияющей на её представление (взяли, да и переставили документ позже по времени)
Это высшая одноэсовая математика, её изучают на 5-ом одноэсовом курсе.
48. AlexO 135 13.03.15 15:50 Сейчас в теме
(43) ildarovich, Сергей, судя по (47) PetroP - появился все-таки один, кто его понимает, и разговаривает на одном языке ))
> Подписался на диалог.
(42) Allexe8.1,
И с датой что-то нужно еще придумывать.
С датой ничего не нужно придумывать. С ней нужно сравниваться. По ней нужно ориентироваться.
Вы плюсики для чего ставите - просто так, у вас их много?
45. AlexO 135 13.03.15 13:19 Сейчас в теме
(40) Allexe8.1,
Обычная строка, только формируется уже после выполнения запроса .
Все средства 1С говорят - что это "строка". Но для запроса 1С - это не "Строка". Поэтому - это "другая" строка.
(41) Razlagutt,
Но теперь мне уже просто интересно как решить подобную задачу запросом
Она и решается простым запросом, только вы бродите в потемках трех сосен.
(43) ildarovich,
То есть сам подход к решению бизнес-задачи неправильный.
Автору топика понятно все - кроме единственного, что он неправильно поставил перед собой исходную задачу. А т.к. "понятно все" - он с разбегу снова и снова пытается решить нерешаемое, а 1С ему этого не позволяет.
Но если вас интересует теоретическая возможность построения внутри запроса представления ссылки
Что вы, Сергей, автор не может простой запрос поиска и отбора документов написать. Но может заявить, что ему "все понятно" ))
38. AlexO 135 12.03.15 15:02 Сейчас в теме
(36) Razlagutt,
Делается это через преобразование ссылки в строку. Если она неограниченной длины, то обрезать ее
Ссылка не может быть неограниченной длины.
Единственное ограничение - если строка более 1024 символов. Такую 1С тоже в запросах не обрабатывает.
(36) Razlagutt,
Отобрать документы отличные от "Отражение зарплаты в учете", в комментарии которых содержится фраза
Непонятно, чего хотите но:
- есть "Документ.Ссылка ССЫЛКА Документы.РеализацияТоваровУслуг"
- есть ПОДСТРОКА (Комментарий, ля-ля-ля)
- отбор в запросе делается через ГДЕ.
39. Razlagutt 12.03.15 15:31 Сейчас в теме
(38) AlexO,
1) Вы к этому представлению вцепились как кот в валерьянку! Зачем?
2) Если непонятно чего хочу, зачем писать так много о том, что неведомо?

Теперь по-существу.
Есть журнал документов "Отражение зарплаты в учете". Мне нужно получить 2 колонки:
1) Ссылки на доки из журнала "Отражение зарплаты в учете";
2) Ссылки на доки из журнала, ну например "Покупка ОС", в комментарии которых содержатся соответствующие названия документов из первой колонки.

Так понятнее?
44. AlexO 135 13.03.15 13:14 Сейчас в теме
(39) Razlagutt,
Вы к этому представлению вцепились как кот в валерьянку! Зачем?
Это вы себе адресуйте.
Это вы все время то представление пытаетесь получить, то - ссылку в строку загнать.
Есть журнал документов "Отражение зарплаты в учете". Мне нужно получить 2 колонки: Так понятнее?
Нет.
Если нужны документы ("ссылки на них", как вы изволите выражаться) - получайте их из регистров или из самих документов. Причем тут журнал - известно (понятнее) только вам.
Видимо, так понятнее. Но в топике никому больше не понятнее.
28. spezc 782 12.03.15 12:06 Сейчас в теме
молчит. поди база упала.
cute_sky_1C; +1 Ответить
29. Melius 12.03.15 12:07 Сейчас в теме
может там 8.3.6 и новые сюрпризы? Кстати имеет смысл посмотреть этот запрос в файловом варианте, ну а вдруг?
30. GunnyBear 3 12.03.15 12:17 Сейчас в теме
на ИТС есть/была статья как формируется представление, почитайте
31. Alexey_ 27 12.03.15 12:23 Сейчас в теме
Каждая объектная таблица в информационной базе имеет виртуальное поле - "Представление". Это поле содержит текстовое представление объекта. В запросе возможно получать данное поле точно также как и другие поля таблиц, однако никакие операции с данным полем выполнять нельзя. Данная особенность связана с тем, что это поле является виртуальным, и, на самом деле, при получении данного поля из базы данных, запрос получает несколько полей, а при получении значения поля из результата запроса преобразовывает полученные значения в строку. Таким образом, единственное, что можно сделать с полем "Представление", это получить его в результат запроса.
http://its.1c.ru/db/metod8dev/content/2655/hdoc
user2018771; Student1C; ONLYTILT; Remdiz; Babylka; rpgshnik; mystra; user712426; Tolpinski; Gendelf; vladir; spezc; Melius; +13 Ответить
32. Melius 12.03.15 12:25 Сейчас в теме
(31) Alexey_, пришел и всю магию испортил
ONLYTILT; EugeneSemyonov; andreich_ru; rpgshnik; user712426; Gendelf; spezc; +7 Ответить
35. FractonKireyev 12.03.15 13:50 Сейчас в теме
Попробуйте так:
1. Результат запроса без всяких операций над "Представление" выгружаете в таблицу значений
2. Делаете другой запрос (именно другой запрос, а не ещё один запрос в пакете запросов), в котором указываете
выбрать из &ТЗ как ТЗ

и в параметр ТЗ передаёте полученную 1-м запросом таблицу. Только не забудьте, что если идет такая передача параметра, то всё, что можно сделать с этой таблицей - это поместить её во временную таблицу, а потом (в следующем запросе пакета) уже делайте с ней всё, что необходимо.
51. kuzev 47 13.03.15 18:52 Сейчас в теме
Я в посте № 4 написал:
Представление в запросе нельзя выразить в Строку

Оказывается, этого оказалось мало =)
52. AlexO 135 15.03.15 22:11 Сейчас в теме
(51) kuzev, конечно, тут такая алхимия поперла, что я даже подписался ))
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот