Есть СКД-отчет. В нем выбиралась номенклатура и прочие данные с ней связанные (продажи и т.д.). Теперь нужно вытягивать для номенклатуры еще и штрихкод (строка) из регистра. Но дело в том, что нужно отбирать штрихкоды (строки) определенной длины.
ГДЕ
ШтрихкодыНоменклатуры.Штрихкод = ПОДСТРОКА(ШтрихкодыНоменклатуры.Штрихкод, 1, 13)
И НЕ ШтрихкодыНоменклатуры.Штрихкод = ПОДСТРОКА(ШтрихкодыНоменклатуры.Штрихкод, 1,12)
(2) ГДЕ ВЫБОР КОГДА Штрихкод = ПОДСТРОКА (Штрихкод,1, 13) ТОГДА Истина ИНАЧЕ Ложь КОНЕЦ - обрезает 16-значные. Оставляет и 13, и 11-значные штрихкоды. В 11-значных штрихкодах пробелов нет.
ГДЕ ШтрихкодыНоменклатуры.Штрихкод = ПОДСТРОКА(ШтрихкодыНоменклатуры.Штрихкод, 1, 13)
И НЕ ШтрихкодыНоменклатуры.Штрихкод = ПОДСТРОКА(ШтрихкодыНоменклатуры.Штрихкод, 1,
(12) возможно у вас строка фиксированной длины, тогда и пустая она забивается пробелами.
тут можно попробовать:
ПОДСТРОКА (Штрихкод,1, 13) + " " = ПОДСТРОКА (Штрихкод + " ", 1, 18)
ГДЕ
ШтрихкодыНоменклатуры.Штрихкод = ПОДСТРОКА(ШтрихкодыНоменклатуры.Штрихкод, 1, 13)
И НЕ ШтрихкодыНоменклатуры.Штрихкод = ПОДСТРОКА(ШтрихкодыНоменклатуры.Штрихкод, 1,12)
Для строки неограниченной длины есть такой вариант запроса:
ГДЕ Выбор
Когда ВЫРАЗИТЬ(Наименование КАК СТРОКА(13)) = Наименование Тогда
13
Иначе
Выбор
Когда ВЫРАЗИТЬ(Наименование КАК СТРОКА(12)) = Наименование Тогда
12
Иначе
0
Конец
Конец = 13 ИЛИ Выбор
Когда ВЫРАЗИТЬ(Наименование КАК СТРОКА(13)) = Наименование Тогда
13
Иначе
Выбор
Когда ВЫРАЗИТЬ(Наименование КАК СТРОКА(12)) = Наименование Тогда
12
Иначе
0
Конец
Конец = 12