Constantus
05.06.19, 15:46
Приветствую, Форумчане!
1с8.3.6, БСП, самопис, УФ
Имеется некий отчет СКД, который получает данные
1. 62eb77f6-0bf6-4ba3-84e9-8751e13ee027 - уникальный код как СТРОКА
2. 62eb77f6-0bf6-4ba3-84e9-8751e13ee027 - как "УникальныйИдентификатор"
Как видно визуально значения одинаковы, но типы разные... Имеется ли возможность сравнить эти два типа и сделать вывод, что эти значения одинаковы или нет?
Т.е. сравнивать в СКД УникальныйИдентификатор и СТРОКУ?
ВЫРАЗИТЬ(УникальныйИдентификатор КАК СТРОКА)
ВЫРАЗИТЬ(УникальныйИдентификатор КАК СТРОКА(40))
Для сравнения строка должна быть ограниченной длины
pablo @ Вчера, 17:35 необходимо зарегистрироваться для просмотра ссылки
,
тогда лучше КАК СТРОКА(36)
Из разговора программистов:
...
- Возьмем, например, 1000, или для ровного счета 1024...
Petre, в сообщении выше я не поумничать хотел. Если преобразовать идентификатор к строке с длиной 40, я не проверял, но предполагаю, что возможно, в строке будет 4 пробела в конце и как следствие если сравнивать такую строку со строкой без пробелов, оно может дать не тот эффект, который ожидается. А если приводить к строке с длиной 36 символов, то такого 100% не будет.
Моя вина в том, что я поленился считать количество символов
Vofka @ Today, 9:12
необходимо зарегистрироваться для просмотра ссылки
,
Все верно, 36. 32 значимых и 4 для дефизов. Я тоже за то, чтобы считать точно
Constantus
06.06.19, 11:09
Попробую уточнить задачу, сейчас подробности вышли (как всегда до последнего в тайне держат
Есть Заказ, в его ТЧ есть реквизит "КлючСтроки" как уникальный индентификатор
Имеется регистр накопления, "Итоги", там имеются данные с регистром "КлючСтроки", но как СТРОКА...
Требуется объединить (левое объединение) ТЧ Заказа и этого РН "Итоги" по реквизиту "КлючСтроки" один из которых уникальный индентификатор (ТЧ Заказа) другой СТРОКА из регистра накопления...
Как в СКД сделать подобное объединение?
Constantus, ну так написали ж: ВЫРАЗИТЬ(УникальныйИдентификатор КАК СТРОКА(36)). Это мы привели УникальныйИдентификатор к строке. Делайте с ним дальше что хотите, он уже строка.
Цитата(Vofka @ 06.06.19, 11:22) необходимо зарегистрироваться для просмотра ссылки
Это мы привели УникальныйИдентификатор к строке.
Вроде бы в запросе нельзя преобразовывать типы.
Vofka @ Сегодня, 13:15
необходимо зарегистрироваться для просмотра ссылки
,
ГУИД = ДокСсылка.УникальныйИдентификатор();
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ВЫРАЗИТЬ(&ГУИД КАК СТРОКА(36)) КАК Поле1";
Запрос.УстановитьПараметр("ГУИД", ГУИД);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// Вставить обработку выборки ВыборкаДетальныеЗаписи
КонецЦикла;
Ругается
Vidocq05, хм. А так ругается:
ГУИД = СокрЛП(ДокСсылка.УникальныйИдентификатор());
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ВЫРАЗИТЬ(&ГУИД КАК СТРОКА(10)) КАК Поле1";
Запрос.УстановитьПараметр("ГУИД", ГУИД);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// Вставить обработку выборки ВыборкаДетальныеЗаписи
КонецЦикла;
?
И так
| ВЫРАЗИТЬ(100 КАК СТРОКА(10)) КАК Поле1
?
Цитата(Vofka @ 06.06.19, 13:55) необходимо зарегистрироваться для просмотра ссылки
ГУИД = СокрЛП(ДокСсылка.УникальныйИдентификатор());
Так Вы уже преобразовали в строку, т.е. в запрос уже пошла строка.
Vidocq05, я понимаю, но мне интересно вот что: можно ли преобразовать строку в строку (меньшего размера), число в строку?
Цитата(Vofka @ 06.06.19, 13:55) необходимо зарегистрироваться для просмотра ссылки
И так
| ВЫРАЗИТЬ(100 КАК СТРОКА(10)) КАК Поле1
?
И так ругается
Vofka @ Сегодня, 14:57
необходимо зарегистрироваться для просмотра ссылки
,
Строку в строку меньшего размера можно
На сколько я знаю, преобразовать тип значения в другой тип в запросе нельзя вообще.
Constantus
06.06.19, 16:50
Vofka @ Сегодня, 14:22
необходимо зарегистрироваться для просмотра ссылки
,
Пытаюсь добавить в одной временной таблице поле:
ВЫРАЗИТЬ(ПоступлениеИзделийВПодразделениеОсновнаяКомплектация.КлючСтроки КАК СТРОКА(36))
Ошибка: Несовместимые типы "Выразить"
Это я пытался из уникального индентификатора во временной таблице сделать строку, чтобы потом связать по нему с другой ВТ
Где нужно преобразовывать? В связях между временными таблицами?
Преобразования типов в запросе нет - только приведение.
Constantus
06.06.19, 17:03
Petre @ Сегодня, 20:00 необходимо зарегистрироваться для просмотра ссылки
,
Так возможно левое объединение таблиц в одной из которой связующее поле уникальный индентификатор, а у другой строка?
Constantus @ Yesterday, 17:03 необходимо зарегистрироваться для просмотра ссылки
,
Вы ведь сами убедились, что нет.
Цитата(Vidocq05 @ 06.06.19, 16:03) необходимо зарегистрироваться для просмотра ссылки
На сколько я знаю, преобразовать тип значения в другой тип в запросе нельзя вообще.
Я думал, что можно
В СКД можно использовать функции общего модуля, в которой Вы можете преобразовать идентификатор в строку.
pablo @ Today, 9:37 необходимо зарегистрироваться для просмотра ссылки
,
На этапе выборки?
Petre @ Сегодня, 9:54 необходимо зарегистрироваться для просмотра ссылки
,
Да, если соединять не таблицы в запросе, а наборы данных в СКД
Constantus
07.06.19, 14:52
pablo @ Сегодня, 13:41 необходимо зарегистрироваться для просмотра ссылки
,
А можно детальней про общий модуль и как его применить в самом СКД?
необходимо зарегистрироваться для просмотра ссылки
Смотреть на вычисляемое поле
Constantus @ 07.06.19, 15:52
необходимо зарегистрироваться для просмотра ссылки
,
Vofka @ 07.06.19, 9:21
необходимо зарегистрироваться для просмотра ссылки
,
Немного запоздалый ответ, но все таки...
Можно преобразовать в строку путем
|ПРЕДСТАВЛЕНИЕ(Источник.ГУИД) КАК ГУИД
Хотя нет, все равно ругается при сравнении
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.