Имя: Пароль:
1C
1С v8
Убрать точки в поле с типом строка в СКД
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)
               |
               |СГРУППИРОВАТЬ ПО
               |    Дано.МОЛ,
               |    Дано.ТоварНаименование,
               |    Дано.ТипБСО,
               |    Дано.СерияБСО,
               |    Дано.НомерБланка

как вариант: посмотри в сторону пользовательского поля, там, СтрЗаменить (которая стандартная) возможно будет работать
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой