|
В строке надо удалить первые 3 символа | ☑ | ||
---|---|---|---|---|
0
Om_Bun
07.11.11
✎
13:44
|
При выводе на печать в строке не должны появляться первые 3 символа.
Решение нашел такое СтрЗаменить(Номер, Лев (Номер,3), "" ) Так правильно ? |
|||
1
RomaH
naïve
07.11.11
✎
13:45
|
Сред(Номер,3)
|
|||
2
Maxus43
07.11.11
✎
13:46
|
что не устраивает? и так нормально. вариантов то много, а суть одна
|
|||
3
andrewks
07.11.11
✎
13:46
|
жесть...
Сред(Номер, 3, ) |
|||
4
Fragster
гуру
07.11.11
✎
13:46
|
(2) гыгы
абвабвприветдятлам |
|||
5
Maxus43
07.11.11
✎
13:46
|
(1) перечитал вопрос то?)
|
|||
6
Maxus43
07.11.11
✎
13:46
|
(4) ась?
|
|||
7
andrewks
07.11.11
✎
13:46
|
(2) его вариант неправильный.
представим Номер = "123123123" |
|||
8
Wobland
07.11.11
✎
13:47
|
(0) вот тебе строка, поиграйся: "123123"
|
|||
9
Maxus43
07.11.11
✎
13:47
|
(4)(7) дада, каюсь, понедельник день суровый)
|
|||
10
Господин ПЖ
07.11.11
✎
13:47
|
>что не устраивает?
патамучта кривой в ж.пу... на строке "ооовываываоооыаыва" будет очень мило работать... |
|||
11
Wobland
07.11.11
✎
13:48
|
(9) мне ещё покайся ;)
|
|||
12
ОбычныйЧеловек
07.11.11
✎
13:48
|
Сред("Номер", 4) :)
|
|||
13
Aleksey
07.11.11
✎
13:48
|
Кажется что автор пытается префикс документа удалить? А почему нельзя воспользоваться типовой процедурой? Или самописка?
|
|||
14
andrewks
07.11.11
✎
13:49
|
(12) ну да, ну да...
щас всё друг перед другом покаемся :) |
|||
15
hhhh
07.11.11
✎
13:50
|
если префикс, то его вариант прокатит.
|
|||
16
andrewks
07.11.11
✎
13:50
|
(12) а не, кавычки лишние.
все неправы :) |
|||
17
Песец
07.11.11
✎
13:52
|
Сред(Сред(Сред(Номер, 2), 2), 2);
|
|||
18
Om_Bun
07.11.11
✎
13:52
|
(13) Да удаляю префикс документа. О стандартной даже не подумал, но она не идет т.к. самописка
|
|||
19
Песец
07.11.11
✎
13:54
|
Прав(Номер,СтрДлина(Номер)-3);
|
|||
20
Wobland
07.11.11
✎
13:55
|
(17) это какой-то Песец
|
|||
21
Fr1eNd
07.11.11
✎
13:55
|
(18) Зато из типовой можно код вытянуть и к себе вставить.
|
|||
22
Песец
07.11.11
✎
13:55
|
(18) Продам клавиши "Ctrl", "С" и "V", недорого.
|
|||
23
palpetrovich
07.11.11
✎
13:56
|
запросом нужно, через выразить :)
|
|||
24
Aleksey
07.11.11
✎
13:57
|
(21) Лучше не надо. Там тупой перебор и "найти"
|
|||
25
Aleksey
07.11.11
✎
13:58
|
// Процедура предназначена для преобразования номера документа.
// // Параметры: // Документ - (ДокументСсылка), документ, чей номер надо получить для печати. // // Возвращаемое значение. // Строка - номер документа для печати // Функция ПолучитьНомерНаПечать(Документ, МассивПрефиксов = Неопределено) Экспорт Если Документ = Неопределено Тогда Возврат 0; КонецЕсли; Номер = СокрЛП(Документ.Номер); // {ОбменДаннымиБСП // Если номер документа по стандарту БСП 8.2, сформируем номер через стандартную процедуру БСП. Если ПолучитьФункциональнуюОпцию("ИспользоватьОбменДанными") = Истина Тогда Если Сред(Номер, 5, 1) = "-" Тогда Номер = ПрефиксацияОбъектовКлиентСервер.ПолучитьНомерНаПечать(Номер, Ложь, // УдалитьПрефиксИнформационнойБазы Истина // УдалитьПользовательскийПрефикс ); Возврат Номер; КонецЕсли; КонецЕсли; // }ОбменДаннымиБСП Префикс = ""; Если МассивПрефиксов = Неопределено Тогда Организация = Неопределено; ПодразделениеОрганизации = Неопределено; Если ТипЗнч(Документ) = Тип("ВыборкаИзРезультатаЗапроса") ИЛИ ТипЗнч(Документ) = Тип("Структура") Тогда Организация = Документ.Организация; Иначе МетаданныеДокумента = Документ.Метаданные(); Если ЕстьРеквизитДокумента("Организация", МетаданныеДокумента) Тогда Организация = Документ.Организация; КонецЕсли; КонецЕсли; МассивПрефиксовДляОбхода = СформироватьМассивПрефиксовДляРИБИОрганизации(Организация); Иначе МассивПрефиксовДляОбхода = МассивПрефиксов; КонецЕсли; Для Каждого ТекущийПрефикс ИЗ МассивПрефиксовДляОбхода Цикл // удаление префикса из номера документа Если Найти(Номер, ТекущийПрефикс)=1 Тогда Номер = Сред(Номер, СтрДлина(ТекущийПрефикс)+1); КонецЕсли; // так же, может остаться "минус" впереди Если Лев(Номер, 1) = "-" Тогда Номер = Сред(Номер, 2); КонецЕсли; // удаление ведущих нулей Пока Лев(Номер, 1)="0" Цикл Номер = Сред(Номер, 2); КонецЦикла; КонецЦикла; Возврат Номер; КонецФункции // ПолучитьНомерНаПечать() |
|||
26
hhhh
07.11.11
✎
13:58
|
(21) для любителей приколов код из типовой
// удаление префикса из номера документа Если Найти(Номер, ТекущийПрефикс)=1 Тогда Номер = Сред(Номер, СтрДлина(ТекущийПрефикс)+1); КонецЕсли; |
|||
27
Господин ПЖ
07.11.11
✎
14:01
|
(26) мега код... без него - никак...
|
|||
28
Песец
07.11.11
✎
14:01
|
(26) А в чем прикол?
|
|||
29
hhhh
07.11.11
✎
14:03
|
(28) зачем функция Найти здесь? Чего ищем?
|
|||
30
andrewks
07.11.11
✎
14:03
|
(29) префикс, вестимо. а вдруг его нет?
|
|||
31
Песец
07.11.11
✎
14:05
|
(30) Проверяется, есть ли в начале номера искомый префикс. Если есть, удаляет с учетом того, что длина префикса м.б. разная.
|
|||
32
andrewks
07.11.11
✎
14:06
|
(31) и?
|
|||
33
Песец
07.11.11
✎
14:09
|
(32) ... в чем прикол? Надо удалять префикс, не проверив его наличие?
|
|||
34
hhhh
07.11.11
✎
14:09
|
(30) ну а просто проверить первую позицию нельзя? Типа
Если ЛЕВ(Номер, СтрДлина(ТекущийПрефикс)) = ТекущийПрефикс Тогда |
|||
35
andrewks
07.11.11
✎
14:10
|
(33) я чо, против что-ли? я ж так и написал в (30).
|
|||
36
palpetrovich
07.11.11
✎
14:10
|
зануды
|
|||
37
andrewks
07.11.11
✎
14:11
|
(36) ага :)
(34) ну и в чём разница? алгоритмически это то же самое. можно, конечно, было бы поспорить за быстродействие, если бы это был не номер, а какая-нибудь реально длинная строка |
|||
38
Starhan
07.11.11
✎
14:12
|
(36) педанты
А страна Педантов между прочим не плохо живет так что присоеденяйся и друзей подтягивай |
|||
39
Песец
07.11.11
✎
14:12
|
(34) Так не проще: Найти+СтрДлина вместо Найти.
|
|||
40
Fr1eNd
07.11.11
✎
14:17
|
Ну в типовых ещё не такие приколы есть, но когда надо быстро что-то получить почему бы не использовать код из типовой, особенно адаптировав его под себя.
|
|||
41
Песец
07.11.11
✎
14:17
|
39+ Ну и читабельность. И заведомо известно, что номер не должен быть длинным.
|
|||
42
Reset
07.11.11
✎
14:29
|
(31) "Проверяется, есть ли в начале номера искомый префикс"
Проверяется, есть ли В ЛЮБОМ месте номера искомый префикс. Читабельность - она разная. Для меня (к примеру), когда ищут по всей строке, а потом меняют вначале (а не там где нашли) - читабельность ухудшается. Я замечаю эти моменты и теряю секунды. Код должен быть точным. Имхо :P |
|||
43
Reset
07.11.11
✎
14:31
|
(42) Прогнал, не в любом, сверяют с 1.
Что косвенно доказывает, что для меня это код хуже читаем ;)) |
|||
44
Песец
08.11.11
✎
08:49
|
(43) Хмм...
Если Найти(Номер, ТекущийПрефикс)=1 Тогда <=> если нашли в номере текущий префикс в 1 позиции, тогда Если ЛЕВ(Номер, СтрДлина(ТекущийПрефикс)) = ТекущийПрефикс Тогда <=> Если слева в номере количество символов, равное длине текущего префикса равно текущему префиксу, тогда |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |