Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 дек 2024, 08:45

Функция СтрЗаменить( )

Автор Naxer, 10 янв 2013, 14:53

0 Пользователей и 1 гость просматривают эту тему.

Naxer

Здравствуйте.
1С:Предприятие 7.7 SQL Бухгалтерия ЧП.

Имеется в сией системе встроенная функция
СтрЗаменить("Старая_Строка", "Заменяющий_Символ", "Заменяемый_Символ");

А имеется ли функция заменения по позиции в строке:
НеизвестнаяФункция("Старая_Строка", "Заменяющий_Симол", Позиция_Замены);

Или опять самому сочинять ???
Заранее Спасибо.

Herby

Цитата: Naxer от 10 янв 2013, 14:53А имеется ли функция заменения по позиции в строке:
НеизвестнаяФункция("Старая_Строка", "Заменяющий_Симол", Позиция_Замены);

на этот вопрос вам справка по встроенному языку подскажет. Ветка: Системные/Функции-Процедуры/Строковые

SharZem

Мне когда-то приходилось исправлять наименования справочника. Для этого использовал следующий код:

    Процедура ИзменитьОдноНаДругое()
Если СтрРодит.Выбран() = 0 тогда
Предупреждение ("Необхідно вибрати групу довідника",0);
Возврат
КонецЕсли;
Спр=СоздатьОбъект("Справочник.Товары");
СпрГруппа=СоздатьОбъект("Справочник.Товары");
СпрГруппа = СтрРодит;
Спр.ИспользоватьРодителя(СпрГруппа);
Спр.ПорядокКодов();
Спр.ВыбратьЭлементы();
  ном=0;
  НачатьТранзакцию();
  Пока Спр.ПолучитьЭлемент()=1 Цикл
  Если Спр.ЭтоГруппа()=1 ТОгда
  продолжить;
  КонецЕсли;
  СобственноеИмя=Спр.СобственноеИмя;

  Если СтрЧислоВхождений(СобственноеИмя,Строка1) = 1 Тогда
      НовоеИмя=ВРЕГ(СтрЗаменить(СобственноеИмя,Строка1,Строка2));
  Если НовоеИмя <> Спр.Наименование Тогда
  Спр.СобственноеИмя = Строка(СокрЛП(НовоеИмя));
  Спр.наименование = Строка(СокрЛП(НовоеИмя));
  Спр.ДляЦенника= Строка(СокрЛП(НовоеИмя));
  Спр.Записать();
  ном=ном+1;
  Если Ном = 100 Тогда
  ЗафиксироватьТранзакцию();
  ном = 0;
  НачатьТранзакцию();
  КонецЕсли;
  Состояние ("Записано " +Ном+ " элементов");
  КонецЕсли;
  КонецЕсли;
  КонецЦикла;
  ЗафиксироватьТранзакцию();
  Предупреждение("Процедуру закінчено !",5);
    КонецПроцедуры

Как сами видите, нужно использовать 2 функции:
СтрЧислоВхождений(<СтрИсточник>,<СтрПодстрока>)
и
СтрЗаменить(<СтрИсточник>,<СтрПодстрока>,<СтрЗамены>)

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск