Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Список значений в строку , Преобразование списка значений в строку          
salton Подменю пользователя
сообщение 31.08.17, 10:55
Сообщение #1

Говорящий
***
Группа: Пользователи
Сообщений: 92
Из: Полтава
Спасибо сказали: 24 раз
Рейтинг: 0

Прошу тапками не бросаться - я пытаюсь разобраться с 1С 8 совсем недавно. Матчасть читал. Столкнулся намедни с необходимостью: список значений (внутри может быть как 1 так и больше срок) необходимо преобразовать в строку с разделителями (пускай это будет ",").
Функции аналогичной как в 1С 7.7 не нашел. Вернее сказать нашел - ЗначениеВСтрокуВнутр(), описание которой повергло в ступор. На просторах интернета нашел кусок кода:
Функция ВСтроку(Знач Массив)    
    СтрокаВнутр=СтрЗаменить(ЗначениеВСтрокуВнутр(Массив), """}," + Символы.ПС + "{""S"",""", "");
    СтрокаВнутр2=Сред(СтрокаВнутр,Найти(СтрокаВнутр,Массив[0]));    
    Возврат Лев(СтрокаВнутр2,СтрДлина(СтрокаВнутр2)-6);
КонецФункции


А также нашел пару-тройку других вариантов на основании которых было сделано решение:
Функция ВСтроку(Массив)
    ном=0;
    Для каждого элемент Из Массив Цикл
        стр=Строка(стр)+Строка(Массив.Получить(ном).Значение)+",";
        ном=ном+1;
    КонецЦикла;
    возврат Лев(стр,СтрДлина(Стр)-1);
КонецФункции


Итак вопрос - как первый код сделать рабочим?

При условии, что:
Массив = Новый СписокЗначений;
Массив.Добавить(1);
Массив.Добавить(2);
Массив.Добавить(3);
Массив.Добавить(4);


Заранее спасибо!

Vidocq05 Подменю пользователя
сообщение 31.08.17, 11:29
Сообщение #2

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 214
Из: Сумы
Спасибо сказали: 38 раз
Рейтинг: 0

salton @ Сегодня, 11:55 * ,
Нужно именно со списка значений?
Если с массива то вот:

СтрСоединить (StrConcat)
Синтаксис:

СтрСоединить(<Строки>, <Разделитель>)
Параметры:

<Строки> (обязательный)

Тип: ФиксированныйМассив; Массив.
Массив, содержащий объединяемые строки.
<Разделитель> (необязательный)

Тип: Строка.
Строка, которая будет вставлена между объединяемыми строками.
Если параметр не задан, строки будут объединены слитно друг с другом.
Значение по умолчанию: Неопределено.
Возвращаемое значение:

Тип: Строка.
Строка, содержащая соединенные исходные строки с разделителем между ними.
Описание:

Соединяет массив переданных строк в одну строку с указанным разделителем.


salton @ Сегодня, 11:55 * ,
Или так

МассивЭлементов = ВашСписокЗначений.ВыгрузитьЗначения();

СоединеннаяСтрока = СтрСоединить(МассивЭлементов,",");

Спасибо сказали: salton,

Flexy Подменю пользователя
сообщение 31.08.17, 11:30
Сообщение #3

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 230 раз
Рейтинг: 0

Спис = Новый СписокЗначений;
Спис.Добавить(1);
Спис.Добавить(2);
Спис.Добавить(3);
Спис.Добавить(4);
Спис.Добавить(5);
Результат = "";
Для Каждого Элем Из Спис Цикл
Результат = ?(Спис.Индекс(Элем) > 0,  Результат+","+Элем.Значение, Результат+Элем.Значение)     
КонецЦикла;

Спасибо сказали: salton,

salton Подменю пользователя
сообщение 31.08.17, 12:07
Сообщение #4

Говорящий
***
Группа: Пользователи
Сообщений: 92
Из: Полтава
Спасибо сказали: 24 раз
Рейтинг: 0

Flexy, спасибо! Ваш код лаконичнее моего.

Но... интересует вариант с помощью
ЗначениеВСтрокуВнутр()

Flexy Подменю пользователя
сообщение 31.08.17, 12:13
Сообщение #5

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 230 раз
Рейтинг: 0

Цитата(salton @ 31.08.17, 12:07) *
Но... интересует вариант с помощью
ЗначениеВСтрокуВнутр()

А для чего это нужно?

Сообщение отредактировал Flexy - 31.08.17, 12:14

salton Подменю пользователя
сообщение 31.08.17, 12:14
Сообщение #6

Говорящий
***
Группа: Пользователи
Сообщений: 92
Из: Полтава
Спасибо сказали: 24 раз
Рейтинг: 0

Цитата(Vidocq05 @ 31.08.17, 12:29) *
salton @ Сегодня, 11:55 ,
Или так

МассивЭлементов = ВашСписокЗначений.ВыгрузитьЗначения();

СоединеннаяСтрока = СтрСоединить(МассивЭлементов,",");


"Процедура или функция с указанным именем не определена (СтрСоединить)"

Сам читал за эту функцию.... но не работает почему-то...

Цитата(Flexy @ 31.08.17, 13:13) *
А для чего это нужно?

Чисто ради интереса...

Свою задачу я решил методом который описал выше в теме. Но принцип есть принцип!

Flexy Подменю пользователя
сообщение 31.08.17, 12:17
Сообщение #7

Танцор с Бубном
Иконка группы
Группа: Местный
Сообщений: 1121
Из: Днепра
Спасибо сказали: 230 раз
Рейтинг: 0

Цитата(salton @ 31.08.17, 12:14) *
Чисто ради интереса...

Свою задачу я решил методом который описал выше в теме. Но принцип есть принцип!

Данный метод не рекомендуется использовать.
Примечание:
Используется для сохранения функциональной совместимости с 1С:Предприятием 7.7. Использовать для других целей не рекомендуется.

Ради интереса, для 8-ки, могу посоветовать сериализацию в/из XDTO

Vidocq05 Подменю пользователя
сообщение 31.08.17, 12:24
Сообщение #8

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 214
Из: Сумы
Спасибо сказали: 38 раз
Рейтинг: 0

Цитата(salton @ 31.08.17, 13:14) *
"Процедура или функция с указанным именем не определена (СтрСоединить)"

Сам читал за эту функцию.... но не работает почему-то...

Какая у Вас платформа? Данной функции в 8.2 нету. Она появилась в 8.3.

salton Подменю пользователя
сообщение 31.08.17, 12:26
Сообщение #9

Говорящий
***
Группа: Пользователи
Сообщений: 92
Из: Полтава
Спасибо сказали: 24 раз
Рейтинг: 0

Vidocq05 @ Сегодня, 13:24 * ,
у меня 8.3.8.2322
в синтаксис-помощнике нет.
на выполнение кода ругается.

Bernet Подменю пользователя
сообщение 31.08.17, 13:18
Сообщение #10

Ветеран
Иконка группы
Группа: Местный
Сообщений: 858
Из: Місто щасливих людей
Спасибо сказали: 317 раз
Рейтинг: 0

salton @ Сегодня, 13:26 * ,
релиз платформы тоже имеет значение, данная функция появилась не то в 8.3.9 не то в 8.3.10, это уже в описаниях к релизам надо смотреть


Signature
Дописываю конфигурации на платформе 8.х.
- Управление торговым предприятием для Украины
- Управление производственным предприятием для Украины
- Управление небольшой фирмой для Украины
- Бухгалтерия для Украины;
- Общепит для Украины
- Ресторан (Рарус)
- Розница

Vidocq05 Подменю пользователя
сообщение 01.09.17, 8:30
Сообщение #11

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 214
Из: Сумы
Спасибо сказали: 38 раз
Рейтинг: 0

Цитата(Bernet @ 31.08.17, 14:18) *
релиз платформы тоже имеет значение, данная функция появилась не то в 8.3.9 не то в 8.3.10, это уже в описаниях к релизам надо смотреть

Появилась она в 8.3.6, на сколько я знаю.
Цитата(salton @ 31.08.17, 13:26) *
у меня 8.3.8.2322
в синтаксис-помощнике нет.
на выполнение кода ругается.

Скорее всего стоит режим совместимости с 8.2, поэтому она и не работает.

salton Подменю пользователя
сообщение 01.09.17, 9:39
Сообщение #12

Говорящий
***
Группа: Пользователи
Сообщений: 92
Из: Полтава
Спасибо сказали: 24 раз
Рейтинг: 0

Цитата(Vidocq05 @ 01.09.17, 9:30) *
Скорее всего стоит режим совместимости с 8.2, поэтому она и не работает.

Режим совместимости включен...
Сейчас выключу и проверю! А потом отпишусь!

Наверное я поспешил.... как пошло обновление - висит на реструктуризации Справоничка ЦеновыеГруппы. Или же просто процесс идет, но у меня интерфейс висит!
Подожду часок-полтора... База небольшая - 35 гигов.

Vidocq05 Подменю пользователя
сообщение 01.09.17, 9:41
Сообщение #13

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 214
Из: Сумы
Спасибо сказали: 38 раз
Рейтинг: 0

Цитата(salton @ 31.08.17, 13:14) *
Чисто ради интереса...

Свою задачу я решил методом который описал выше в теме. Но принцип есть принцип!

Если чисто ради интереса, то создайте пустую конфигурацию и там пробуйте внешней обработкой.

salton Подменю пользователя
сообщение 01.09.17, 9:43
Сообщение #14

Говорящий
***
Группа: Пользователи
Сообщений: 92
Из: Полтава
Спасибо сказали: 24 раз
Рейтинг: 0

Цитата(Vidocq05 @ 01.09.17, 10:41) *
Если чисто ради интереса, то создайте пустую конфигурацию и там пробуйте внешней обработкой.


Я попробую.... На тестовой - вот как обновиться - так и попробую 64000000.gif

salton Подменю пользователя
сообщение 01.09.17, 12:33
Сообщение #15

Говорящий
***
Группа: Пользователи
Сообщений: 92
Из: Полтава
Спасибо сказали: 24 раз
Рейтинг: 0

Цитата(Vidocq05 @ 31.08.17, 12:29) *
salton @ Сегодня, 11:55 ,
Или так

МассивЭлементов = ВашСписокЗначений.ВыгрузитьЗначения();
СоединеннаяСтрока = СтрСоединить(МассивЭлементов,",");


Спасибо! Проверил - работает!

зы. Но мне лично нужна совместимость с 8.2 upset.gif потому вариант возьму на заметку, на будущее!

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 29.03.24, 0:56
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!