|
|
|
Как получить в запросе строку из Уникальный идентификатор? | ☑ | ||
|---|---|---|---|---|
|
0
program345
28.08.25
✎
07:43
|
Привет!
В запросе вывожу поле: УНИКАЛЬНЫЙИДЕНТИФИКАТОР(МойДокумент.Ссылка.ДокументОснование) Оно имеет тип УникальныйИдентификатор, как его привести к строковому типу в запросе? |
|||
|
1
2S
28.08.25
✎
07:45
|
Не стыдно?
|
|||
|
2
program345
28.08.25
✎
07:45
|
только ПРЕДСТАВЛЕНИЕ использовать?
|
|||
|
3
2S
28.08.25
✎
07:51
|
Обрабатывай в выборке. Выразить для УИН не работает.
|
|||
|
4
program345
28.08.25
✎
08:01
|
(3) я так понимаю выразить для составных типов.
|
|||
|
5
Ненавижу 1С
гуру
28.08.25
✎
08:34
|
(4) не только, числа одной точности можно переводить в числа другой, менять длину строки
|
|||
|
6
Garykom
гуру
28.08.25
✎
09:38
|
(0) На ИС статья есть про это https://infostart.ru/1c/articles/1788844/
Суть: там все плохо с этим |
|||
|
7
Anton1307
28.08.25
✎
15:09
|
ПРЕДСТАВЛЕНИЕ(УНИКАЛЬНЫЙИДЕНТИФИКАТОР(МойДокумент.Ссылка.ДокументОснование)) Но с этой строкой ты сможешь работать уже за пределами запроса, в работе с результатом запроса. Поместить эту строку во временную таблицу или использовать для поиска/сравнений/соединений в самом запросе - не получится. |
|||
|
8
spiller26
28.08.25
✎
15:09
|
(0) Никак, пройденный этап.
Запросом выгрузить в таблицу, а затем в другой запрос таблицу загрузить как строку |
|||
|
9
spiller26
28.08.25
✎
15:09
|
ТабВФайле = ПублИндОбъектов.Выгрузить();
Запрос = Новый Запрос;
Запрос.Текст = "
|ВЫБРАТЬ
| ПРЕДСТАВЛЕНИЕ(ВлФизЛица.УИД) КАК УИД,
| ВлФизЛица.Наименование КАК Наименование,
| ВлФизЛица.Код КАК Код,
| ВлФизЛица.ИНН КАК ИНН,
| ВлФизЛица.СтраховойНомерПФР КАК СтраховойНомерПФР,
| ВлФизЛица.Ссылка КАК ФизЛицоСсылка
|ИЗ
| (ВЫБРАТЬ
| УНИКАЛЬНЫЙИДЕНТИФИКАТОР(ФизическиеЛица.Ссылка) КАК УИД,
| ФизическиеЛица.Наименование КАК Наименование,
| ФизическиеЛица.Код КАК Код,
| ФизическиеЛица.ИНН КАК ИНН,
| ФизическиеЛица.СтраховойНомерПФР КАК СтраховойНомерПФР,
| ФизическиеЛица.Ссылка КАК Ссылка
| ИЗ
| Справочник.ФизическиеЛица КАК ФизическиеЛица
| ГДЕ
| ФизическиеЛица.ЭтоГруппа = ЛОЖЬ) КАК ВлФизЛица
|
|УПОРЯДОЧИТЬ ПО
| ВлФизЛица.Наименование";
ТабВБазе = Запрос.Выполнить().Выгрузить();
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ВЫРАЗИТЬ(ТабВФайле.УИДфайла КАК СТРОКА(36)) КАК файл_УИД,
| ТабВФайле.ФизическоеЛицоКод КАК файл_Код,
| ТабВФайле.ФизическоеЛицоИНН КАК файл_ИНН,
| ТабВФайле.ФизическоеЛицоСНИЛС КАК файл_СНИЛС,
| ТабВФайле.ФизическоеЛицоНаименование КАК файл_Наименование
|ПОМЕСТИТЬ ВтТабВФайле
|ИЗ
| &ТабВФайле КАК ТабВФайле
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВЫРАЗИТЬ(ВтТабВБазе.УИД КАК СТРОКА(36)) КАК УИД,
| ВтТабВБазе.Код КАК Код,
| ВтТабВБазе.ИНН КАК ИНН,
| ВтТабВБазе.СтраховойНомерПФР КАК СНИЛС,
| ВтТабВБазе.Наименование КАК Наименование,
| ВтТабВБазе.ФизЛицоСсылка КАК ФизЛицоСсылка
|ПОМЕСТИТЬ ВтТабВБазе
|ИЗ
| &ТабВБазе КАК ВтТабВБазе
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВтТабВБазе.ФизЛицоСсылка КАК ФизЛицоСсылка,
| ВтТабВБазе.Код КАК Код,
| ВтТабВФайле.файл_Код КАК файл_Код,
| ВтТабВБазе.УИД КАК УИД,
| ВтТабВФайле.файл_УИД КАК файл_УИД,
| ВтТабВБазе.ИНН КАК ИНН,
| ВтТабВФайле.файл_ИНН КАК файл_ИНН,
| ВтТабВБазе.СНИЛС КАК СНИЛС,
| ВтТабВФайле.файл_СНИЛС КАК файл_СНИЛС,
| ВтТабВБазе.Наименование КАК Наименование,
| ВтТабВФайле.файл_Наименование КАК файл_Наименование
|ИЗ
| ВтТабВФайле КАК ВтТабВФайле
| ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВтТабВБазе КАК ВтТабВБазе
| ПО (ВтТабВБазе.УИД = ВтТабВФайле.файл_УИД)";
Запрос.Параметры.Вставить("ТабВФайле", ТабВФайле);
Запрос.Параметры.Вставить("ТабВБазе", ТабВБазе);
ТабСоответствий = Запрос.Выполнить().Выгрузить(); |
|||
|
10
PR
28.08.25
✎
15:06
|
(0) Зачем?
|
|||
|
11
Shurjk
28.08.25
✎
16:04
|
На СКД можно.
|
|||
|
12
unenu
28.08.25
✎
16:32
|
(10) для быстрых сверок между базами(клонами или разными не суть) по уидам.
Представление(), Строка() и пр. только для выгрузки в ТЗ. Соединениях, условия в одном пакете после них работать не будут. Я выгружал УИДЫ в ТЗ из одной базы(источник) Затем выгружал УИДЫ в ТЗ из другой базы(приемник) Потом в консоли запросов загружал обе ТЗ в ВТ и кручу-верчу в соединениях, условиях как хочешь. Все можно делать из консоли запросов. |
|||
|
13
Kigo_Kigo
28.08.25
✎
16:29
|
(11) XMLСтрока в вычисляемом поле? А смысл?
|
|||
|
14
PR
28.08.25
✎
16:38
|
(12) Разве вопрос был тебе?
|
|||
|
15
unenu
28.08.25
✎
16:52
|
(14) Разве я не могу озвучить идею, даже если она банальна.
Зачем мы тогда тут? |
|||
|
16
PR
28.08.25
✎
16:54
|
(15) Конечно можешь
Но у ТС вопрос про запрос, а твой пример в принципе без особых проблем решается не в запросе |
|||
|
17
unenu
28.08.25
✎
17:00
|
(16) самый краткий и точный ответ в (8)
Промежуточное звено диск, а не код. Остальные звенья - запросы. |
|||
|
18
PR
28.08.25
✎
17:08
|
(17) ТС в (0) не написал, нахрена ему это, поэтому не вижу смысла гадать
Захочет, ответит |
|||
|
19
Сергиус
31.08.25
✎
13:26
|
(18) в (12) он ответил зачем
|
|||
|
20
Волшебник
31.08.25
✎
13:39
|
(19) ТС — это топик-стартер, то есть автор ветки
|
|||
|
21
PR
31.08.25
✎
13:56
|
(19) Почему-то с возрастом все больше бесит тупость окружающих
В (12) ответил не он |
|||
|
22
Волшебник
31.08.25
✎
14:10
|
(21) стареешь
|
|||
|
23
PR
31.08.25
✎
22:24
|
(22) Наверное
Это если в 45 такое, что же в 90 будет? Буду вообще с битой ходить, сразу наотмашь лупить за тупость? |
|||
|
24
aka MIK
01.09.25
✎
00:12
|
(8) позорище
И впредь в версии 8.х.хххх все равно сделают, правда мы все на пенсии уже будем |
|||
|
25
PR
01.09.25
✎
01:29
|
Интересно, кстати, почему в 1С где-то в полях ГУИД строкой, а не спецтипом, раз уж такие дела?
Типа наследие прошлого? |
|||
|
26
PR
01.09.25
✎
01:11
|
(3), (4), (9), пора бы уже понять, что такое ВЫРАЗИТЬ
ВЫРАЗИТЬ — это всего-лишь приведение значения к указанному типу, а ни в коем случае не преобразование к другому типу То есть попытка найти в значении поля значение именно указанного типа То есть, например: У нас поле Заказ составного типа, где может быть ссылка на заказ поставщику или на заказ на производство И значение поля Заказ на производство №1 от 01.01.2025 В этом случае ВЫРАЗИТЬ(Т.Заказ КАК Документ.ЗаказПоставщику) даст пустое значение, точнее пустую ссылку не документ ЗаказПоставщику (а может Неопределено, точно не помню, смотреть лень) А вот ВЫРАЗИТЬ(Т.Заказ КАК Документ.ЗаказНаПроизводство) даст Заказ на производство №1 от 01.01.2025 Еще пример: У нас поле Значение составного типа, где может быть число или строка И значение поля число 100 В этом случае ВЫРАЗИТЬ(Т.Значение КАК Строка) даст пустую строку (ну или Неопределено, не помню) А вот ВЫРАЗИТЬ(Т.Заказ КАК Число) даст 100 Еще с помощью ВЫРАЗИТЬ можно из строки брать часть строки, например, первые 1000 символов То есть как и ПОДСТРОКА Нужно, например, когда требуется строку неограниченной длины сделать ограниченной длины, для того, чтобы можно было ее сравнивать на равенство Еще с помощью ВЫРАЗИТЬ можно число округлять до определенного количества знаков после запятой Именно поэтому ВЫРАЗИТЬ(УНИКАЛЬНЫЙИДЕНТИФИКАТОР(Т.Ссылка) КАК Строка) даст ровным счетом нихуя, то есть пустое значение, а не ГУИД Учите матчасть |
|||
|
27
Злопчинский
01.09.25
✎
01:32
|
ну, а допустим пусть в запросе т.ссылка возврашается как тип "уникальный идентификатор". Допустим. Выгрузить запрос в ТЗ. И колонку УИД принудительно типизировать как строку через переопределение типа колонки - так можно в 8-ке?
|
|||
|
28
PR
01.09.25
✎
01:45
|
(27) К чему это допущение, просто нужно вместо ссылки написать УНИКАЛЬНЫЙИДЕНТИФИКАТОР(Т.Ссылка), это как раз и вернет тип "Уникальный идентификатор"
Что такое "принудительно типизировать" я не знаю и к чему это приведет тоже не знаю, но смысла в этой херне не вижу никакого, нужно просто тупо добавить колонку типа "Строка", пройтись по строкам ТЗ и заполнить эту колонку Строка(ЗначениеИзКолонкиУникальныйИдентификатор) Кого тянет блевать от такой долгой уродливой процедуры, без проблем идите к лешему в ассемблеры, си, джавы и прочую шляпу, хули вы в 1С претесь Что? То, что на 1С делается за день, на джаве делается полгода, а на ассемблере всю жизнь? Ну и что, зато код можно знаешь какой красивый заебенить! Что? Джава и ассемблер уже не нравятся? Ну так тогда завалите звукоисточающее отверстие и идите писать код в 1С так, как возможно, а не так как вам хочется |
|||
|
29
PR
01.09.25
✎
01:47
|
(28) Если выгружать в ТЗ, то вообще не придется ничего делать, достаточно в запросе написать ПРЕДСТАВЛЕНИЕ(УНИКАЛЬНЫЙИДЕНТИФИКАТОР(Т.Ссылка)), это как раз вернет строку
Тут просто нужно помнить, что в самом запросе со значением ПРЕДСТАВЛЕНИЕ(УНИКАЛЬНЫЙИДЕНТИФИКАТОР(Т.Ссылка)) как со строкой работать не получится, только уже после получения данных после выполнения запроса |
|||
|
30
rsv
01.09.25
✎
11:26
|
(2) типа да. С натяжкой в (29) . Не надо искать CAST или CONVERT
Не найдете. |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |