|
СтрРазделить в СКД | ☑ | ||
---|---|---|---|---|
0
Буковка
14.12.23
✎
14:26
|
Добрый день!
Подскажите, пожалуйста, можно ли реализовать СтрРазделить в СКД? Реквизит имеет строковый тип. Пример, "Новый, 123" Нужно получить 2 колонки, в которые будут выводиться значения через известный заранее разделитель (в первой - "новый", во второй - "123". Как вариант, рассматриваю обработку результата в модуле объекта |
|||
1
unenu
14.12.23
✎
14:36
|
ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки, Истина);
последний параметр позволит |
|||
2
Baiji
14.12.23
✎
14:37
|
А зачем разделить то?
Лев(ЭтоСтрока, СтрНайти(ЭтоСтрока,",")) КАК Колонка1, Прав(ЭтоСтрока, ДлинаСтроки(ЭтоСтрока)-СтрНайти(ЭтоСтрока,",")) КАК Колонка2 Можно прямо в запросе: https://wonderland.v8.1c.ru/blog/novye-funktsii-yazyka-zaprosov-i-sistemy-komponovki-dannykh/?sphrase_id=663464 Конечно, если там неопределенное число колонок, то тут надо совсем извращатся |
|||
3
Мимохожий Однако
14.12.23
✎
14:39
|
(2) Прямо в запросе зависит от совместимости конфигурации. ТС об конфигурации ничего не сообщил
|
|||
4
Буковка
14.12.23
✎
15:03
|
(2) это то, что нужно! спасибо!
|
|||
5
Буковка
14.12.23
✎
15:21
|
(2) а если будет несколько значений, то смогу так решить? например:
6955459159974;5|6955459160000;8|6955459154184;13 должно выводиться так: колонка 1 колонка 2 6955459159974 5 6955459160000 8 6955459154184 13 |
|||
6
mikecool
14.12.23
✎
15:25
|
зачем именно в запросе?
|
|||
7
Буковка
14.12.23
✎
15:27
|
(6) можно не в запросе
а скд мне даст эту возможность, если не в модуле объекта? |
|||
8
Лефмихалыч
14.12.23
✎
18:16
|
(5) это надо делать до СКД. Сначала читаешь свой файл, парсишь строки, заполняешь таблицу значений, потом эту таблицу значений уже передаешь в СКД.
|
|||
9
Буковка
15.12.23
✎
06:17
|
(8) нашла на мисте похожую тему, переделала под свои условия. Работает в запросе.
Ниже код, если у кого будет похожая задача: ВЫБРАТЬ ПриходнаяНакладная.Ссылка КАК Ссылка, (ВЫРАЗИТЬ(ПриходнаяНакладная.КомментарийЛогистики КАК СТРОКА(1000))) + "|" КАК Текст ПОМЕСТИТЬ Строка ИЗ Документ.ПриходнаяНакладная КАК ПриходнаяНакладная ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ 0 КАК Номер ПОМЕСТИТЬ Цифры ОБЪЕДИНИТЬ ВЫБРАТЬ 1 ОБЪЕДИНИТЬ ВЫБРАТЬ 2 ОБЪЕДИНИТЬ ВЫБРАТЬ 3 ОБЪЕДИНИТЬ ВЫБРАТЬ 4 ОБЪЕДИНИТЬ ВЫБРАТЬ 5 ОБЪЕДИНИТЬ ВЫБРАТЬ 6 ОБЪЕДИНИТЬ ВЫБРАТЬ 7 ОБЪЕДИНИТЬ ВЫБРАТЬ 8 ОБЪЕДИНИТЬ ВЫБРАТЬ 9 ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ Н1.Номер * 100 + Н2.Номер * 10 + Н3.Номер КАК Номер ПОМЕСТИТЬ Номера ИЗ Цифры КАК Н1 ЛЕВОЕ СОЕДИНЕНИЕ Цифры КАК Н2 ПО (ИСТИНА) ЛЕВОЕ СОЕДИНЕНИЕ Цифры КАК Н3 ПО (ИСТИНА) ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ПОДСТРОКА(ВЗ.Текст, ВЗ.Н + 1, ВЗ.К - ВЗ.Н - 1) КАК Поле1, ВЗ.Ссылка КАК Ссылка ПОМЕСТИТЬ ВТ_Новая ИЗ (ВЫБРАТЬ Номера.Номер КАК Н, МИНИМУМ(Н.Номер) КАК К, МАКСИМУМ(Н.Номер) КАК Макс, Строка.Текст КАК Текст, Строка.Ссылка КАК Ссылка ИЗ Номера КАК Номера ВНУТРЕННЕЕ СОЕДИНЕНИЕ Строка КАК Строка ПО (ПОДСТРОКА(Строка.Текст, Номера.Номер, 1) ПОДОБНО "[|]" ИЛИ Номера.Номер = 0) ВНУТРЕННЕЕ СОЕДИНЕНИЕ Номера КАК Н ПО (ПОДСТРОКА(Строка.Текст, Н.Номер, 1) ПОДОБНО "[|]") И (Н.Номер > Номера.Номер) СГРУППИРОВАТЬ ПО Номера.Номер, Строка.Текст, Строка.Ссылка) КАК ВЗ ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ЛЕВ(ВТ_Новая.Поле1, СТРНАЙТИ(ВТ_Новая.Поле1, ";") - 1) КАК Колонка1, ПРАВ(ВТ_Новая.Поле1, ДЛИНАСТРОКИ(ВТ_Новая.Поле1) - СТРНАЙТИ(ВТ_Новая.Поле1, ";")) КАК Колонка2, ВТ_Новая.Ссылка КАК Ссылка ИЗ ВТ_Новая КАК ВТ_Новая |
|||
10
Буковка
15.12.23
✎
11:00
|
аппну тему
всё работает в консоли запросов, но есть сложность задать разделитель как параметр поскажите, пожалуйста, как это можно сделать? |
|||
11
unenu
15.12.23
✎
11:02
|
(10) переключить в латинскую раскладку и ввести "[|]"
|
|||
12
Мимохожий Однако
15.12.23
✎
11:04
|
Попробуй похожее на
СТРНАЙТИ(ВТ_Новая.Поле1,&Разделитель) КАК Колонка1 |
|||
13
Буковка
15.12.23
✎
11:11
|
(12) проблема с первым разделителем в виде прямого слэша
|
|||
14
Буковка
15.12.23
✎
11:11
|
(11) так пробовала, не получилось
|
|||
15
Буковка
15.12.23
✎
11:12
|
пробовала задавать как параметр и писать хардкодом в запросе
итог один - в консоли нормально, а на скд не делит |
|||
16
unenu
15.12.23
✎
11:58
|
(15) возможно некий метод в модуле объекта модифицирует запросы СКД, удаляя "запрещенные" символы.
в отладке поставите точку останова в начале метода ПриКомпоновке...( и в конце сверьте тексты запросов. |
|||
17
Буковка
15.12.23
✎
13:55
|
(16) всё нормально. Спасибо за подсказки. Код рабочий, я немного накосячила в другом наборе данных в отчете.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |