Новости для бухгалтера, бухучет, налогообложение, отчетность, ФСБУ, прослеживаемость и маркировка, 1С:Бухгалтерия

Вход или Регистрация

Показывать по 10 20 40 сообщений
Новая тема Ответить
Письмо в техподдержку 1С
[1С:Бухгалтерия 8]

Массив в цикле

177
читатель
офлайн
Дата регистрации: 07.05.2008
Сообщений: 470
Пост №1
 
16.05.2011 10:01

"Помогите, имеется строка, где через запятую занесены слова, как получить каждое слово используя разделитель ",".<br>использую Функцию РазложитьСтрокуВМассивПодстрок(Знач Стр, Разделитель = ",") но вычисляется только последний элемент, предыдущие откидываются, выборка через цикл-выдает ошибку,<br>///код выдает последний элемент<br>ДлинаРазделителя = СтрДлина(Разделитель);<br> Пока 1=1 Цикл<br> Поз = Найти(Стр,Разделитель);<br> Если Поз=0 Тогда<br> МассивСтрок.Добавить(Стр);<br> Возврат МассивСтрок;<br> КонецЕсли;<br> МассивСтрок.Добавить(Лев(Стр,Поз-1));<br> Стр = Сред(Стр,Поз+ДлинаРазделителя);<br> Сообщить(""""+Стр);<br> КонецЦикла;<br>///код через выборка через цикл<br>МассивСтрок= РазложитьСтрокуВМассивПодСтрок(СтруктураШапкиДокумента.Комментарий,",");<br> КоличествоПодстрок = МассивСтрок.Количество();<br>Для каждого строка из МассивСтрок Цикл<br> КонецЦикла;<br> <br>Нужно получить каждый элемент из строки и занести в ТЗ, для дальнейшего использования....."

BelikovS
читатель
офлайн
Дата регистрации: 05.03.2007
Сообщений: 1701
Пост №2
 
16.05.2011 10:32

"> выборка через цикл-выдает ошибку,<br>Какую ошибку?<br><br>Вот такой код прекрасно работает:<br>Стр = "1,2,тест,тест2";<br>Мас = ОбщегоНазначения.РазложитьСтрокуВМассивПодстрок (Стр, ",");<br>Для Каждого сСтр Из Мас Цикл<br> Сообщить (сСтр);<br>КонецЦикла;"

177
читатель
офлайн
Дата регистрации: 07.05.2008
Сообщений: 470
Пост №3
 
16.05.2011 10:36

Я сделала проще выгрузила в списокзначений и в цикле получаю каждый элемент.

Федько_Андрей
читатель
офлайн
Дата регистрации: 15.04.2011
Сообщений: 378
Пост №4
 
16.05.2011 10:40

"Функция РазложитьСтрокуВМассивПодСтрок(Стр,Разделитель)<br> <br> МассивСтрок1 = Новый Массив;<br> <br> ДлинаРазделителя = СтрДлина(Разделитель);<br> Пока 1=1 Цикл<br> Поз = Найти(Стр,Разделитель);<br> Если Поз=0 Тогда<br> МассивСтрок1.Добавить(Стр);<br> Возврат МассивСтрок1;<br> КонецЕсли;<br> МассивСтрок1.Добавить(Лев(Стр,Поз-1));<br> Стр = Сред(Стр,Поз+ДлинаРазделителя);<br> КонецЦикла;<br> Возврат МассивСтрок1;<br>КонецФункции<br>&НаКлиенте<br>Процедура Команда1(Команда)<br> Стр=Объект.Реквизит1;<br> МассивСтрок= РазложитьСтрокуВМассивПодСтрок(Стр,",");<br> КоличествоПодстрок = МассивСтрок.Количество();<br> <br> Для каждого строка из МассивСтрок Цикл<br> Сообщить(строка);<br> КонецЦикла;<br><br>КонецПроцедуры"

Показывать по 10 20 40 сообщений

Читают тему:

Быстрый переход
Для технических специалистов
  • Книга жалоб и предложений по работе сайта
  • Для технических специалистов
  • Представление регламентированной отчетности
  • Говорильня
  • Бухгалтерский учет: обсуждаем проекты нормативных актов и рекомендаций по ведению учета от БМЦ
  • Новый порядок применения ККТ (онлайн кассы с передачей сведений в ФНС)
  • Интернет-конференция: Оформление командировок по новым правилам
  • МАРКИРОВКА
  • ЕГАИС
  • Учет, налогообложение, автоматизация