|
v7: Как обрезать строку с данными до пробела??? | ☑ | ||
---|---|---|---|---|
0
faring
27.12.14
✎
16:42
|
Приветствую!
Прошу помощи по такому вопросу: есть внешняя печатная форма. при ее заполнении, необходимо в одной строке сократить данные вот так: (Иванов Иван Иванович) сократить до (Иванов) вот кусочек кода: Процедура Печать(Докум, Устройство=0, КолвоКопий=1) Перем НачПовт, КонПовт; Сумма = Докум.Сумма; Выдать =Докум.Выдать; //Вот эта строка, Вытаскивает ФИО из Документа, нужно только Фамилию!!!! ИсхТабл = СоздатьОбъект("Таблица"); НачПовт = 0; КонПовт = 0; ИсхТабл.ИсходнаяТаблица("Таблица"); ИсхТабл.ВывестиСекцию("Секция_1"); ИсхТабл.Показать("Таблица"); КонецПроцедуры // Печать() |
|||
1
DimG
27.12.14
✎
16:47
|
Не смешно.
|
|||
2
Aleksey
27.12.14
✎
16:47
|
Выдать = Лев(СокрЛП(Докум.Выдать(,Найти(СокрЛП(Докум.Выдать)," ")-1);
|
|||
3
MAG
27.12.14
✎
16:49
|
В типовой ТИС есть такая функция глФамилияИмяОтчество(Объект,Фамилия,Имя,Отчество)
|
|||
4
faring
27.12.14
✎
17:00
|
Спасибо, я в 1с вооще дуб.
|
|||
5
faring
27.12.14
✎
17:06
|
Не канает...
Выдать = Лев(СокрЛП(Докум.Выдать(,Найти(СокрЛП(Докум.Выдать)," ")-1)<<?>>; : Ожидается символ ')' |
|||
6
faring
27.12.14
✎
17:07
|
добавляешь скобку, просит запятую...
|
|||
7
b_ru
27.12.14
✎
17:11
|
Выдать = Лев(СокрЛП(Докум.Выдать),Найти(СокрЛП(Докум.Выдать)," ")-1);
|
|||
8
faring
27.12.14
✎
17:13
|
Отлично... все зашуршало....
|
|||
9
faring
27.12.14
✎
17:13
|
Спасибки....
|
|||
10
shulerr
27.12.14
✎
17:43
|
Можно вот так еще:
Выдать = стрПолучитьСтроку(стрЗаменить(сокрЛП(Докум.Выдать), " ", символы.ПС), 1); |
|||
11
aka AMIGO
27.12.14
✎
18:04
|
Обычно в типовых есть функция "ПолучитьФИО()"
Типа такой: Функция ПолучитьФИО(Сотр) Сотр = СтрЗаменить(Сотр, " "," "); СЗАвт = СоздатьОбъект("СписокЗначений"); СЗАвт = глРазложить(Сотр," "); Сотр = СЗАвт.ПолучитьЗначение(1); Если СЗАвт.РазмерСписка()>1 Тогда Сотр = Сотр+" " + Врег(Лев(СЗАвт.ПолучитьЗначение(2),1)) +"."; КонецЕсли; Если СЗАвт.РазмерСписка()>2 Тогда Сотр = Сотр+" " + Врег(Лев(СЗАвт.ПолучитьЗначение(3),1)) +"."; КонецЕсли; Возврат Сотр; КонецФункции Правда, в сочетании с глРазложить.. но это тоже не та проблема или-б так решал: Фам = СокрП(Лев(Докум.Выдать,Найти(Докум.Выдать," "))); |
|||
12
aka AMIGO
27.12.14
✎
18:06
|
ЗЫ. кстати, "до пробела" - бывает разное.. ©
Хорошо, что в топике есть разъяснение, какой этот "до пробела" должен быть.. |
|||
13
Chameleon1980
27.12.14
✎
21:00
|
пока найти
|
|||
14
Aleksey
27.12.14
✎
21:07
|
(11) А если впереди пробел?
|
|||
15
timurhv
27.12.14
✎
21:15
|
(0)
// Разбивает строку на несколько строк по разделителю. Разделитель может иметь любую длину. // // Параметры: // Строка - Строка - текст с разделителями; // Разделитель - Строка - разделитель строк текста, минимум 1 символ; // ПропускатьПустыеСтроки - Булево - признак необходимости включения в результат пустых строк. // Если параметр не задан, то функция работает в режиме совместимости со своей предыдущей версией: // - для разделителя-пробела пустые строки не включаются в результат, для остальных разделителей пустые строки // включаются в результат. // - если параметр Строка не содержит значащих символов или не содержит ни одного символа (пустая строка), то в // случае разделителя-пробела результатом функции будет массив, содержащий одно значение "" (пустая строка), а // при других разделителях результатом функции будет пустой массив. // // // Возвращаемое значение: // Массив - массив строк. // // Примеры: // РазложитьСтрокуВМассивПодстрок(",один,,два,", ",") - возвратит массив из 5 элементов, три из которых - пустые строки; // РазложитьСтрокуВМассивПодстрок(",один,,два,", ",", Истина) - возвратит массив из двух элементов; // РазложитьСтрокуВМассивПодстрок(" один два ", " ") - возвратит массив из двух элементов; // РазложитьСтрокуВМассивПодстрок("") - возвратит пустой массив; // РазложитьСтрокуВМассивПодстрок("",,Ложь) - возвратит массив с одним элементом "" (пустой строкой); // РазложитьСтрокуВМассивПодстрок("", " ") - возвратит массив с одним элементом "" (пустой строкой); // Функция РазложитьСтрокуВМассивПодстрок(Знач Строка, Знач Разделитель = ",", Знач ПропускатьПустыеСтроки = Неопределено) Экспорт Результат = Новый Массив; // для обеспечения обратной совместимости Если ПропускатьПустыеСтроки = Неопределено Тогда ПропускатьПустыеСтроки = ?(Разделитель = " ", Истина, Ложь); Если ПустаяСтрока(Строка) Тогда Если Разделитель = " " Тогда Результат.Добавить(""); КонецЕсли; Возврат Результат; КонецЕсли; КонецЕсли; // Позиция = Найти(Строка, Разделитель); Пока Позиция > 0 Цикл Подстрока = Лев(Строка, Позиция - 1); Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Подстрока) Тогда Результат.Добавить(Подстрока); КонецЕсли; Строка = Сред(Строка, Позиция + СтрДлина(Разделитель)); Позиция = Найти(Строка, Разделитель); КонецЦикла; Если Не ПропускатьПустыеСтроки Или Не ПустаяСтрока(Строка) Тогда Результат.Добавить(Строка); КонецЕсли; Возврат Результат; КонецФункции |
|||
16
Aleksey
27.12.14
✎
21:16
|
ФИОСписком = ИзСтрокиСРазделителями(СтрЗаменить(Докум.Выдать," ",",");
Фамилия = ?(ФИОСписком.РазмерСписка()>0,ФИОСписком.ПолучитьЗначение(1)); Имя = ?(ФИОСписком.РазмерСписка()>1,ФИОСписком.ПолучитьЗначение(2)); Отчество = ?(ФИОСписком.РазмерСписка()>2,ФИОСписком.ПолучитьЗначение(3)); |
|||
17
Chameleon1980
27.12.14
✎
21:24
|
пока гада находим - расстреливаем.
че не так-то? |
|||
18
User_Agronom
27.12.14
✎
21:38
|
(0) И кто после этой темы скажет, что 1С-ники программисты?
Тема "Как выбрать первое слово из строки" так серьезно обсуждается. |
|||
19
Chameleon1980
28.12.14
✎
01:38
|
б.ля когда народ думать то начнет.
с такими вопросами вообще в школу. тфу. |
|||
20
vcv
28.12.14
✎
09:09
|
Да какие программисты на 1С? Откуда?
Иногда создаётся впечатление, что 1С - рак мозга, который поражает всех причастных. Во ветка на инфостарте http://forum.infostart.ru/forum9/topic48161/message1276199/ , где, начиная с сообщения 19, "админ" занимается поиском ответа на вопрос, как запустить консольную утилиту для каждого pdf в папке, потому что "программист" говорит, что это невозможно. |
|||
21
iceman2112
28.12.14
✎
11:10
|
типовые вроде есть
|
|||
22
aka AMIGO
28.12.14
✎
14:05
|
Вы о чем? Ветка создана в пятницу, потому в ней могут быть самые неожиданные мысли.
Распальцовка нужна только при устройстве на работу, или сдаче экзаменов на спеца в 1С |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |