Имя: Пароль:
1C
 
отследить в строке / (слэш)
0 админ1
 
22.09.05
08:01
народ, утро
вопрос есть:
как из строки "инн/кпп"
выдрать отдельно ИНН и КПП? делал   лев(инн/кпп, 10)
прав(инн/кпп, 9) , потому как по стольку в них символов
но есть контрагенты, у которых кпп=0, то бишь выглядит так:
6364636463/0
1 Морозов Александр
 
22.09.05
08:08
Найти(<?>,)
Синтаксис:
Найти(<Строка1>,<Строка2>)
Назначение:
Возвращает позицию первого вхождения в строку поиска заданной подстроки.
Параметры:
<Строка1> - строка в которой ищем (место поиска);
<Строка2> - строка которую ищем (шаблон поиска).
Замечание:
Если не находит - возвращает число 0.
Первая позиция имеет индекс 1.
2 AzLi
 
22.09.05
08:12
Вот...
ИНН = Лев(ИННКПП,Найти(ИННКПП,"/")-1);
КПП = Прав(ИННКПП,СтрДлина(ИННКПП)-Найти(ИННКПП,"/"));
мож где -то по количеству либо прибавить единичку, либо отнять... но смысл такой..
3 Grant
 
22.09.05
08:13
Стр=СтрЗаменить(Стр,"/",РазделительСтрок);
Инн=СтрПолучитьСтроку(Стр,1);
КПП=СтрПолучитьСтроку(Стр,2);
4 AzLi
 
22.09.05
08:14
да и еще наверное треба поставить условие, если вдруг юзер не поставил слэш...:)
5 AzLi
 
22.09.05
08:16
(3) красиво, но опять же желательно с условием на "забывчего юзера"
6 Grant
 
22.09.05
08:17
(5)Учителя толковые... :)
Условие не надо... Будет пустое значение КПП...
7 AzLi
 
22.09.05
08:21
(6) не помню.. 1с ругаться не будет если там тока 1 строка, а хотят вторую..?
по крайней мере в классическом программировании, на Delphi, C... да и в 1С всегда стараюсь отловить подобные бяки...:)
8 Grant
 
22.09.05
08:30
(7) Не, ругаться не будет...
Если строки нет, то будет =""...
9 Ёпрст
 
22.09.05
09:23
И не забыть проверить на обратный слеш ... "\" на всяк случай ...
10 Deon
 
22.09.05
09:30
Берем типовую конфигурацию:

//******************************************************************************
// ПолучитьИНН(ИННКПП)
//
// Параметры:
//  ИННКПП  - строка, написанные вместе ИНН и КПП юр лица.
//
// Возвращаемое значение:
//  значение ИНН юр лица.
//  
// Описание:
//  Функция возращает ИНН из переданной строки
//
Функция ПолучитьИНН(ИННКПП)
   
   Если Найти(ИННКПП, "\") <> 0 Тогда
       // найден разделитель
       Возврат Лев(ИННКПП, Найти(ИННКПП, "\") - 1);

   Иначе
       Возврат СокрЛП(ИННКПП);

   КонецЕсли;

КонецФункции // ПолучитьИНН()

//******************************************************************************
// ПолучитьКПП(ИННКПП)
//
// Параметры:
//  ИННКПП  - строка, написанные вместе ИНН и КПП юр лица.
//
// Возвращаемое значение:
//  значение КПП юр лица.
//  
// Описание:
//  Функция возращает КПП из переданной строки
//
Функция ПолучитьКПП(ИННКПП)

   Если Найти(ИННКПП, "\") <> 0 Тогда
       // найден разделитель
       Возврат Сред(ИННКПП, Найти(ИННКПП, "\") + 1);

   Иначе
       Возврат "";

   КонецЕсли;

КонецФункции // ПолучитьКПП()
Ошибка? Это не ошибка, это системная функция.