|
Убрать точки в поле с типом строка в СКД | ☑ | ||
---|---|---|---|---|
0
zbrhd13
naïve
21.05.24
✎
21:20
|
Имеется реквизит типа строка. Внутри артикул формата 1.1.1.1
Как в запросе или в СКД привести строку к виду 1111? Платформа 8.3.16, соответственно СтрЗаменить не работает. Думал над тем, чтобы через вычисляемое поле каким-то образом программно получить значение поля Артикул, уже внутри модуля СКД использовать СтрЗаменить и вернуть в СКД результат. Можно ли так сделать? Или есть решение проще? |
|||
1
PR
21.05.24
✎
21:39
|
(0) 1. Зачем?
2. Почему нет второго реквизита, без точек? 3. Функция общего модуля 4. Очень сложный ВЫБОР |
|||
2
zbrhd13
naïve
22.05.24
✎
07:13
|
(1) 1. Чтобы сортировать по артикулу как по числу
2. Нет ответа на этот вопрос 3. Не хотелось бы обновлять конфигурацию, хочется решить все внешним отчетом 4. ? |
|||
3
DJ Anthon
22.05.24
✎
07:22
|
(2) 4. ВЫБОР ПОДСТРОКА + ВЫБОР ПОДСТРОКА + ВЫБОР ПОДСТРОКА.....
|
|||
4
PuhUfa
22.05.24
✎
07:29
|
ПриКомпоновкеРезультата подкидывай в СКД таблицу с "исправленными" артикулами и дальше уже работай с ними
|
|||
5
spiller26
22.05.24
✎
09:02
|
(2) 1. Всё равно это будет строка, а не число
|
|||
6
unenu
22.05.24
✎
09:17
|
да, можно перед компоновкой результата создать ТЗ с полями:
АртикулСтрока АртикулЧисло - поместить эту ТЗ в набор данных объект - сделать соединение по полю АртикулСтрока с основным набором. Главный вопрос по составу ТЗ, т.е. фильтры можно получить из настроек компоновки и преобразовать их в фильтры запроса получения ТЗ. |
|||
7
Ненавижу 1С
22.05.24
✎
09:23
|
(2) и вопрос про порядок, в каком порядке должны идти ваши преобразованные артикулы?
1.1.12.1 1.1.7.1 |
|||
8
Fedor-1971
22.05.24
✎
09:44
|
(0) если уж хочется прямо запросом, то примерно так (выбросит всё что не цифра и склеит циферку):
ВЫБРАТЬ | 0 КАК С, | 1 КАК П |ПОМЕСТИТЬ Р16 | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | 1, | 10 | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | 2, | 100 | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | 3, | 1000 | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | 4, | 10000 | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | 5, | 100000 | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | 6, | 1000000 | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | 7, | 10000000 | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | 8, | 100000000 | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | 9, | 1000000000 | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | 10, | 10000000000 | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | 11, | 100000000000 | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | 12, | 1000000000000 | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | 13, | 10000000000000 | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | 14, | 100000000000000 | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | 15, | 1000000000000000 | |ОБЪЕДИНИТЬ | |ВЫБРАТЬ | 16, | 10000000000000000 |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | НомераБСО.Регистратор КАК Регистратор, | НомераБСО.Номенклатура КАК ТоварНаименование, | НомераБСО.Количество КАК КоличествоКт, | НомераБСО.Сумма КАК СуммаДок, | НомераБСО.Сотрудник КАК Сотрудник, | НомераБСО.ТипБСО КАК ТипБСО, | НомераБСО.СерияБСО КАК СерияБСО, | НомераБСО.НомерБланка КАК НомерБланка, | НомераБСО.Количество КАК Количество, | НомераБСО.Сумма КАК Сумма, | НомераБСО.ТипСписания КАК ТипСписания, | НомераБСО.ВидДвижения КАК ВидДвижения, | НомераБСО.Склад КАК Склад |ПОМЕСТИТЬ табБСО |ИЗ | РегистрНакопления.НомераБСО КАК НомераБСО |ГДЕ | НомераБСО.Период МЕЖДУ &ДатаНач И &ДатаКон | И НомераБСО.Организация = &Организация | И НомераБСО.ТипСписания В(&ТипСписания) | И НомераБСО.Количество > 0 |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ РАЗЛИЧНЫЕ | табБСО.ТоварНаименование КАК ТоварНаименование, | табБСО.Сотрудник КАК МОЛ, | табБСО.ТипБСО КАК ТипБСО, | табБСО.СерияБСО КАК СерияБСО, | табБСО.НомерБланка КАК НомерБланка |ПОМЕСТИТЬ табНомеровБСО |ИЗ | табБСО КАК табБСО |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Дано.МОЛ КАК МОЛ, | Дано.ТоварНаименование КАК ТоварНаименование, | Дано.ТипБСО КАК ТипБСО, | Дано.СерияБСО КАК СерияБСО, | Дано.НомерБланка КАК НомерБланка, | СУММА(А.П * Б.С) / МИНИМУМ(А.П) КАК НомерЧ |ПОМЕСТИТЬ табНомерЦифрой |ИЗ | табНомеровБСО КАК Дано, | Р16 КАК А, | Р16 КАК Б |ГДЕ | Б.С < 10 | И ПОДСТРОКА(Дано.НомерБланка, 17 - А.С, 1) = ПОДСТРОКА(""0123456789"", Б.С + 1, 1) | |СГРУППИРОВАТЬ ПО | Дано.МОЛ, | Дано.ТоварНаименование, | Дано.ТипБСО, | Дано.СерияБСО, | Дано.НомерБланка как вариант: посмотри в сторону пользовательского поля, там, СтрЗаменить (которая стандартная) возможно будет работать |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |