ВЫБРАТЬ
ОтражениеЗарплатыВУчете.Ссылка КАК Документ,
ОтражениеЗарплатыВУчете.Представление
ИЗ
Документ.ОтражениеЗарплатыВУчете КАК ОтражениеЗарплатыВУчете
Пытаюсь преобразовать ОтражениеЗарплатыВУчете.Представление в строку вот так:
ВЫРАЗИТЬ(ОтражениеЗарплатыВУчете.Представление КАК СТРОКА(150))
(2) GunnyBear, да, ибо при сравнении с реквизитом "Комментарий" другого документа вылетает ошибка: "Нельзя сравнивать поля неограниченной длины и поля несовместимых типов". Причем комментарий "не сопротивляется никаким модификациям", а вот ОтражениеЗарплатыВУчете.Представление или ОтражениеЗарплатыВУчете.Ссылка никак не хотят в строку преобразовываться. Я просто в ступоре. Вроде не было таких проблем раньше.
(12) Melius, да она и так строка. Только неограниченная и при сравнении с реквизитом "Комментарий" другого документа ругается на неограниченность длины представления. А при попытке урезать получается сабж.
(14) spezc, воот)) Сидел и вспоминал) Помню мне в свое время еще кто-то носом по монитору водил и объяснял, что выразить для приведения типов и только! Видимо плохо водили
ВЫБРАТЬ
ОтражениеЗарплатыВУчете.Ссылка КАК Документ,
ПОДСТРОКА(ПРЕДСТАВЛЕНИЕ(ОтражениеЗарплатыВУчете.Представление), 1, 10) КАК СтрокаПоЛюбому
ИЗ
Документ.ОтражениеЗарплатыВУчете КАК ОтражениеЗарплатыВУчете
ВЫБРАТЬ
ОтражениеЗарплатыВУчете.Ссылка КАК Документ,
ВЫБОР
КОГДА ТИПЗНАЧЕНИЯ(ОтражениеЗарплатыВУчете.Представление) = ТИПЗНАЧЕНИЯ("")
ТОГДА ПОДСТРОКА(ОтражениеЗарплатыВУчете.Представление, 1, 150)
ИНАЧЕ "ХЗ что"
КОНЕЦ КАК Представление
ИЗ
Документ.ОтражениеЗарплатыВУчете КАК ОтражениеЗарплатыВУчете
ВЫБРАТЬ
ОтражениеЗарплатыВУчете.Ссылка КАК Документ
ИЗ
Документ.ОтражениеЗарплатыВУчете КАК ОтражениеЗарплатыВУчете
ГДЕ
НЕ ТИПЗНАЧЕНИЯ(ОтражениеЗарплатыВУчете.Представление) = ТИПЗНАЧЕНИЯ("")
(27) spezc, (29) Melius, (30) GunnyBear, (30) GunnyBear, хорошо. Тогда надо ОтражениеЗарплатыВУчете.Ссылка преобразовывать в строку и сравнивать со строковым реквизитом другого документа, например комментарий. НО
Выдает ошибку: Неверные параметры ПОДСТРОКА(<<?>>ПРЕДСТАВЛЕНИЕ(ОтражениеЗарплатыВУчете.Ссылка), 0, 100)!!!! Причем без разницы с вирт.таблицами или без них.
(33)да ты пойми что сравниваются значения в запросе который исполняется в СУБД, а представление формирует сервер 1С (боюсь предположить как это всё работает в файловом варианте)
(34) GunnyBear, (35) FractonKireyev, что-то бред какой-то, ребят. Мне нужно просто:
1) Получить строку на подобии "Отражение зарплаты в учете РБ000000001 от 31.01.2015 23:59:59" из документа "Отражение зарплаты в учете". Делается это через преобразование ссылки в строку. Если она неограниченной длины, то обрезать ее;
2) Отобрать документы отличные от "Отражение зарплаты в учете", в комментарии которых содержится фраза "Отражение зарплаты в учете РБ000000001 от 31.01.2015 23:59:59";
3) Вывести отбор на экран.
Неужели без таблицы значений не решается данная задача?
А почему не ссылки, в, например, дополнительных свойствах (если конфу не ломать) ?
Под "конфу не ломать" я понимаю не модифицировать ничего. Если так, то доп.свойств нет в том документе, где в комментарии вписывается название документа, например, "Отражение зарплаты в учете РБ000000001 от 31.01.2015 23:59:59". Но теперь мне уже просто интересно как решить подобную задачу запросом, если конечно это возможно.
ВЫБРАТЬ Ссылка ИЗ ЖурналДокументов.ОтражениеЗарплатыВУчете КАК ЖурналЗП
ЛЕВОЕ СОЕДИНЕНИЕ ЖурналДокументов.ПокупкаОС КАК ЖурналОС
ПО ЖурналОС.Комментарий ПОДОБНО ВЫБОР КОГДА ЖурналЗП.Ссылка Ссылка Документ.ОтражениеЗапрлатыВУчете ТОГДА "Отражение зарплаты в учете"
КОГДА ЖурналЗП.Ссылка Ссылка Документ.НачислениеОтпуска Тогда "Начисление отпуска"
КОНЕЦ + ЖурналЗП.Ссылка.Номер + "%"
? )
Это если номер - строковый. И с датой что-то нужно еще придумывать.
Razlagutt, не разу не видел БГУ, но разве в ней нет, как в любой другой типовой конфигурации, механизма свойств и категорий?
В первой редакции нет. Точнее сказать не везде.
Тем более, что любое изменение свойств ссылки, влияющей на её представление (взяли, да и переставили документ позже по времени), поломает вам весь ваш отчёт, в таких муках рождённый?
Вот это исключено. Ибо иначе поломается не только отчет но и учет.
Всем. Ответ на свой вопрос я получил. Моя идея оказалась глупой. Спасибо, что приняли участие. Спасибо за помощь, ликбез, разнос (критику). Тема закрыта.
(41) Razlagutt, вам правильно все отвечали, что получить строку представления в запросе для дальнейшего использования проблематично. И, главное, поиск в комментариях многих видов документов по такой строке будет очень долгим. То есть сам подход к решению бизнес-задачи неправильный.
Но если вас интересует теоретическая возможность построения внутри запроса представления ссылки, то ее можно решить, записав очень громоздкое выражение строк на двадцать(?). Часть этого выражения, связанная с представлением даты документа в виде строки можно построить по материалам статьи Выразить число как строку и дату как строку в запросе.
Razlagutt, вам правильно все отвечали, что получить строку представления в запросе для дальнейшего использования проблематично.
Судя по посту №33 я отказался от идеи использовать для решения своей задачи "Представление" и решил попробовать перевести Ссылку в строку, но столкнулся с той же проблемой.
И, главное, поиск в комментариях многих видов документов по такой строке будет очень долгим. То есть сам подход к решению бизнес-задачи неправильный.
Бесспорно, но в реальной задачи один вид и без модификации формы это единственное возможное на мой взгляд решение.
(46) Razlagutt, не разу не видел БГУ, но разве в ней нет, как в любой другой типовой конфигурации, механизма свойств и категорий? А если есть, нафига вы вместо нормальной ссылки в соответствующем свойстве запихиваете её представление в комментарий? Тем более, что любое изменение свойств ссылки, влияющей на её представление (взяли, да и переставили документ позже по времени), поломает вам весь ваш отчёт, в таких муках рождённый?
(43) ildarovich, Сергей, судя по (47) PetroP - появился все-таки один, кто его понимает, и разговаривает на одном языке ))
> Подписался на диалог.
(42) Allexe8.1,
И с датой что-то нужно еще придумывать.
С датой ничего не нужно придумывать. С ней нужно сравниваться. По ней нужно ориентироваться.
Вы плюсики для чего ставите - просто так, у вас их много?
Обычная строка, только формируется уже после выполнения запроса .
Все средства 1С говорят - что это "строка". Но для запроса 1С - это не "Строка". Поэтому - это "другая" строка.
(41) Razlagutt,
Но теперь мне уже просто интересно как решить подобную задачу запросом
Она и решается простым запросом, только вы бродите в потемках трех сосен.
(43) ildarovich,
То есть сам подход к решению бизнес-задачи неправильный.
Автору топика понятно все - кроме единственного, что он неправильно поставил перед собой исходную задачу. А т.к. "понятно все" - он с разбегу снова и снова пытается решить нерешаемое, а 1С ему этого не позволяет.
Но если вас интересует теоретическая возможность построения внутри запроса представления ссылки
Что вы, Сергей, автор не может простой запрос поиска и отбора документов написать. Но может заявить, что ему "все понятно" ))
Делается это через преобразование ссылки в строку. Если она неограниченной длины, то обрезать ее
Ссылка не может быть неограниченной длины.
Единственное ограничение - если строка более 1024 символов. Такую 1С тоже в запросах не обрабатывает.
(36) Razlagutt,
Отобрать документы отличные от "Отражение зарплаты в учете", в комментарии которых содержится фраза
Непонятно, чего хотите но:
- есть "Документ.Ссылка ССЫЛКА Документы.РеализацияТоваровУслуг"
- есть ПОДСТРОКА (Комментарий, ля-ля-ля)
- отбор в запросе делается через ГДЕ.
(38) AlexO,
1) Вы к этому представлению вцепились как кот в валерьянку! Зачем?
2) Если непонятно чего хочу, зачем писать так много о том, что неведомо?
Теперь по-существу.
Есть журнал документов "Отражение зарплаты в учете". Мне нужно получить 2 колонки:
1) Ссылки на доки из журнала "Отражение зарплаты в учете";
2) Ссылки на доки из журнала, ну например "Покупка ОС", в комментарии которых содержатся соответствующие названия документов из первой колонки.
Вы к этому представлению вцепились как кот в валерьянку! Зачем?
Это вы себе адресуйте.
Это вы все время то представление пытаетесь получить, то - ссылку в строку загнать.
Есть журнал документов "Отражение зарплаты в учете". Мне нужно получить 2 колонки: Так понятнее?
Нет.
Если нужны документы ("ссылки на них", как вы изволите выражаться) - получайте их из регистров или из самих документов. Причем тут журнал - известно (понятнее) только вам.
Видимо, так понятнее. Но в топике никому больше не понятнее.
Каждая объектная таблица в информационной базе имеет виртуальное поле - "Представление". Это поле содержит текстовое представление объекта. В запросе возможно получать данное поле точно также как и другие поля таблиц, однако никакие операции с данным полем выполнять нельзя. Данная особенность связана с тем, что это поле является виртуальным, и, на самом деле, при получении данного поля из базы данных, запрос получает несколько полей, а при получении значения поля из результата запроса преобразовывает полученные значения в строку. Таким образом, единственное, что можно сделать с полем "Представление", это получить его в результат запроса.
http://its.1c.ru/db/metod8dev/content/2655/hdoc
Попробуйте так:
1. Результат запроса без всяких операций над "Представление" выгружаете в таблицу значений
2. Делаете другой запрос (именно другой запрос, а не ещё один запрос в пакете запросов), в котором указываете
выбрать из &ТЗ как ТЗ
и в параметр ТЗ передаёте полученную 1-м запросом таблицу. Только не забудьте, что если идет такая передача параметра, то всё, что можно сделать с этой таблицей - это поместить её во временную таблицу, а потом (в следующем запросе пакета) уже делайте с ней всё, что необходимо.