Имя: Пароль:
1C
1С v8
СтрЗаменить в тексте запроса или в СКД
0 Мимохожий Однако
 
09.06.22
08:50
Составляю отчёт, в котором надо преобразовать Артикул из 123456up в 123456 и соединить со справочником номенклатуры с артикулом 123456.
Это пример одной позиции. На новых платформах эта возможность есть, а вот на платформе 8.3.18 и ранее нет. Есть у кого пример кода с преобразование строки аналогично функции СтрЗаменить().
Я попытался добавить экспортную функцию в общий модуль, которая убирает ненужные символы из строкового значения и даже добавил в вычисляемые поля СКД. Но вот как соединить новый артикул с артикулом Номенклатуры не нашёл.
1 Ненавижу 1С
 
гуру
09.06.22
08:53
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК СпрНоменклатура
  ПО Таблица.Артикул ПОДОБНО Спр.Номенклатура.Артикул+"%"

но это не точно
2 Мимохожий Однако
 
09.06.22
08:59
То, что надо. Спасибо )
3 Deon
 
09.06.22
09:03
(0) А как оно будет на новых платформах?
4 Мимохожий Однако
 
09.06.22
09:11
Из справки СтрЗаменить(<Строка>,<ПодстрокаПоиска>,<ПодстрокаЗамены>)
Данная функция находит в исходной строке все вхождения подстроки поиска и заменяет ее на подстроку замены.
Строка - Строка. Исходная строка.
ПодстрокаПоиска - Строка. Искомая подстрока.
ПодстрокаЗамены - Строка. Подстрока, на которую будет заменена подстрока поиска.
Возвращаемое значение: Строка. Строка, полученная в результате замены.
Если второй параметр – константа, то длина строки равна:
<Строка> + (<Строка> / <ПодстрокаПоиска> с округлением в большую сторону) * (<ПодстрокаЗамены> -  <ПодстрокаПоиска>), но не меньше чем длина <Строка>.
Если второй параметр не константа, то длина строки равна длине <Строка> * <ПодстрокаЗамены>.
Если полученная длина больше 1024, то получается строка неограниченной длины.
5 Мимохожий Однако
 
09.06.22
09:13
В выбранном поле пишешь и всё. Открой пустую конфигурацию с новой платформой и попробуй через конструктор. Там все подсказки видны
6 Kassern
 
09.06.22
09:13
7 Kassern
 
09.06.22
09:18
(0) можно попробовать так:
ИмяОбщегоМодуля.ДополнитьАртикул(Артикул)

ПриКомпановке инициализировать общий модуль

ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных,, ДанныеРасшифровкиКонсоли, Истина);
8 Мимохожий Однако
 
09.06.22
09:23
(7) Я так и сделал. Сначала получил запрос, как посоветовали. А потом в СКД преобразовал артикул и получил свод с группировкой по найденной номенклатуре.