Приветствую, Форумчане!
1с8.3.6, БСП, самопис, УФ
Имеется некий отчет СКД, который получает данные
1. 62eb77f6-0bf6-4ba3-84e9-8751e13ee027 - уникальный код как СТРОКА
2. 62eb77f6-0bf6-4ba3-84e9-8751e13ee027 - как "УникальныйИдентификатор"
Как видно визуально значения одинаковы, но типы разные... Имеется ли возможность сравнить эти два типа и сделать вывод, что эти значения одинаковы или нет?
Т.е. сравнивать в СКД УникальныйИдентификатор и СТРОКУ?
ВЫРАЗИТЬ(УникальныйИдентификатор КАК СТРОКА)
ВЫРАЗИТЬ(УникальныйИдентификатор КАК СТРОКА(40))
Petre, в сообщении выше я не поумничать хотел. Если преобразовать идентификатор к строке с длиной 40, я не проверял, но предполагаю, что возможно, в строке будет 4 пробела в конце и как следствие если сравнивать такую строку со строкой без пробелов, оно может дать не тот эффект, который ожидается. А если приводить к строке с длиной 36 символов, то такого 100% не будет.
Моя вина в том, что я поленился считать количество символов
Vofka @ Today, 9:12
,
Все верно, 36. 32 значимых и 4 для дефизов. Я тоже за то, чтобы считать точно
Попробую уточнить задачу, сейчас подробности вышли (как всегда до последнего в тайне держат
Есть Заказ, в его ТЧ есть реквизит "КлючСтроки" как уникальный индентификатор
Имеется регистр накопления, "Итоги", там имеются данные с регистром "КлючСтроки", но как СТРОКА...
Требуется объединить (левое объединение) ТЧ Заказа и этого РН "Итоги" по реквизиту "КлючСтроки" один из которых уникальный индентификатор (ТЧ Заказа) другой СТРОКА из регистра накопления...
Как в СКД сделать подобное объединение?
Constantus, ну так написали ж: ВЫРАЗИТЬ(УникальныйИдентификатор КАК СТРОКА(36)). Это мы привели УникальныйИдентификатор к строке. Делайте с ним дальше что хотите, он уже строка.
Vidocq05, можно.
ГУИД = ДокСсылка.УникальныйИдентификатор();
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ВЫРАЗИТЬ(&ГУИД КАК СТРОКА(36)) КАК Поле1";
Запрос.УстановитьПараметр("ГУИД", ГУИД);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// Вставить обработку выборки ВыборкаДетальныеЗаписи
КонецЦикла;
Vidocq05, хм. А так ругается:
ГУИД = СокрЛП(ДокСсылка.УникальныйИдентификатор());
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ВЫРАЗИТЬ(&ГУИД КАК СТРОКА(10)) КАК Поле1";
Запрос.УстановитьПараметр("ГУИД", ГУИД);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// Вставить обработку выборки ВыборкаДетальныеЗаписи
КонецЦикла;
| ВЫРАЗИТЬ(100 КАК СТРОКА(10)) КАК Поле1
Vidocq05, я понимаю, но мне интересно вот что: можно ли преобразовать строку в строку (меньшего размера), число в строку?
Vofka @ Сегодня, 14:22
,
Пытаюсь добавить в одной временной таблице поле:
ВЫРАЗИТЬ(ПоступлениеИзделийВПодразделениеОсновнаяКомплектация.КлючСтроки КАК СТРОКА(36))
Преобразования типов в запросе нет - только приведение.
Petre @ Сегодня, 20:00
,
Так возможно левое объединение таблиц в одной из которой связующее поле уникальный индентификатор, а у другой строка?
В СКД можно использовать функции общего модуля, в которой Вы можете преобразовать идентификатор в строку.
Petre @ Сегодня, 9:54
,
Да, если соединять не таблицы в запросе, а наборы данных в СКД
pablo @ Сегодня, 13:41
,
А можно детальней про общий модуль и как его применить в самом СКД?
http://pro1c.org.ua/redirect.php?https://dropmefiles.com/hLjBv
Смотреть на вычисляемое поле
Constantus @ 07.06.19, 15:52
,
Vofka @ 07.06.19, 9:21
,
Немного запоздалый ответ, но все таки...
Можно преобразовать в строку путем
|ПРЕДСТАВЛЕНИЕ(Источник.ГУИД) КАК ГУИД
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua