![]() |
![]() |
![]() |
|
Аналог функции ВСтрокуСРазделителями() в 8-ке | ☑ | ||
---|---|---|---|---|
0
Dunstan
11.11.09
✎
11:50
|
Кто знает как список значений либо структуру легким движением преобразовать в строку или обратно?
Нужен аналог ВСтрокуСРазделителями() и ИзСтрокиСРазделителями()... Хелп плз! |
|||
1
Ненавижу 1С
гуру
11.11.09
✎
11:52
|
(0) разделитель запятая? это конструктор структуры
|
|||
2
Живой Ископаемый
11.11.09
✎
11:52
|
а почему именно эти? почему не ВСтрокуВнутр()?
|
|||
3
skunk
11.11.09
✎
11:52
|
ЗначениеВСтрокуВнутр (ValueToStringInternal)
Синтаксис: ЗначениеВСтрокуВнутр(<Значение>) |
|||
4
Dunstan
11.11.09
✎
11:55
|
А ЗначениеВСтрокуВнутр работает со Списком Значений?
|
|||
5
Живой Ископаемый
11.11.09
✎
11:57
|
А ЗначениеЗаполнено(Список) возвращает ложь, если список пустой?
|
|||
6
skunk
11.11.09
✎
11:58
|
(4)а книжку открыть и почитать уже религия не позваляет?
Параметры: <Значение> (обязательный) Тип: Произвольный. Преобразуемое значение. |
|||
7
Mort
11.11.09
✎
12:01
|
Только если автор понимает что результат ЗначениеВСтрокуВнутр(<Значение>) будет не читаем.
|
|||
8
Соратник
11.11.09
✎
12:01
|
Ногами не пинать в 8-ке меньше года ;)
// <Функция реализует действия аналогичные методу объекта СписокЗначений в 7.7> // // Параметры // <Параметр1> - <СписокЗначений> - <Список значений для выгрузки в строку> // <Параметр2> - <Строка> - <Строка или символ разделитель> // // Возвращаемое значение: // <Строка> - <Строка со значениями через разделитель> // Функция _пскВСтрокуСРазделителем(СписокЗначений,Разделитель) Экспорт Строка = ""; РазмерСписка = СписокЗначений.Количество(); Сч = 0; Для каждого ЭлементСписка Из СписокЗначений Цикл Сч = Сч+1; Значение = ЭлементСписка.Значение; Если ТипЗнч(Значение) = Тип("Строка") Тогда ПодготовленноеЗначение = """"+СтрЗаменить(СокрЛП(Значение),"""","""""")+""""; ИначеЕсли ТипЗнч(Значение) = Тип("Число") Тогда ПодготовленноеЗначение = Формат(Значение,"ЧРД='.'"); Иначе ПодготовленноеЗначение = """"+Строка(Значение)+""""; КонецЕсли; Строка = Строка + ПодготовленноеЗначение + ?(Сч = РазмерСписка,"",Разделитель); КонецЦикла; Возврат Строка; КонецФункции // пскВСтрокуСРазделителем() Функция _пскИзСтрокиСРазделителями(СтрокаСоЗначениями,Разделитель) Экспорт СтрокаЗначений = СокрЛП(СтрокаСоЗначениями); Список = НОВЫЙ СписокЗначений; Пока 1 = 1 Цикл поз = Найти(СтрокаЗначений,Разделитель); Если поз > 0 Тогда Значение = Лев(СтрокаЗначений,поз-1); Если Лев(Значение,1) = """" и Прав(Значение,1) = """" Тогда // это строка Значение = Строка(Сред(Значение,2)); Значение = Лев(Значение,СтрДлина(Значение)-1); ИначеЕсли Лев(Значение,1) = """" и Прав(Значение,1) <> """" Тогда // это кусок строки, в которой попалась запятая Значение = Строка(Сред(Значение,2)); ПервыйКусок = Значение; ОстатокВсейСтроки = Сред(СтрокаЗначений,поз); ПозицияКонцаСтроки = Найти(СтрокаЗначений,""","); ПозицияКонцаВторогоКуска = Найти(ОстатокВсейСтроки,""","); ВторойКусок = Лев(ОстатокВсейСтроки,ПозицияКонцаВторогоКуска-1); Значение = ПервыйКусок + ВторойКусок; поз = ПозицияКонцаСтроки+1; Иначе Значение = Число(Значение); КонецЕсли; Список.Добавить(Значение); СтрокаЗначений = Сред(СтрокаЗначений,поз+1); Иначе Значение = СтрокаЗначений; Список.Добавить(Значение); Возврат Список; КонецЕсли; КонецЦикла; КонецФункции |
|||
9
Dunstan
11.11.09
✎
12:33
|
Большое спасибо...
|
|||
10
skunk
11.11.09
✎
12:50
|
(8)ужас )))
|
|||
11
Serginio1
11.11.09
✎
13:18
|
||||
12
Соратник
11.11.09
✎
16:06
|
(10) А в чем ужас? Может что нахрапом по "семерошному" сделал... так подскажите где код украсить можно? :) Но функции сии работают у меня уже больше полугода и нужны были для работы с семерочными базами филиалов (электронные накладные)
|
|||
13
Serginio1
11.11.09
✎
16:16
|
(8) Если Лев(Значение,1) = """" и Прав(Значение,1) = """" Тогда
Вполне может быть такая строка "рррр""," но в данном случае , разделителем не является. Делай автомат по аналогии с 8 и в зависимости от состояния делай поиск. Вариант 11 можно значительно ускорить, но лень. Там же если состояние FieldScan можно возвращать число. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |