#0
by S3rGotcha
Только начинаю осваивать 1С. Столкнулся с проблемой: Есть строка вида: СТР="Префикс1=Значение1;Префикс2=Значение2..." Есть массив префиксов: МассивПрефиков = {Префикс1=, Префикс2=, ...} Есть процедура, где строку разбивают на массив вида ИсходныйМассив = {Префикс1=Значение1, Префикс2=Значение2, ...} Далее в процедуре вызывается функция, на вход ей подаются элементы массива ИсходныйМассив и весь МассивПрефиксов. Задача функции - вернуть ВыходнойМассив вида {Префикс1, Значение1} (конечно попутно там происходит проверка еще кое-каких условий, но ВыходнойМассив должен отдаваться с 2 значениями). По факту получаю: Вызываю в основной процедуре эту функцию: Заканчивается ошибкой: итератор для значения не определен Заканчивается ошибкой: Получение элемента по индексу для значения не определено Отсюда вопрос: в чем я не прав?
#3
by Ненавижу 1С
ВыходнойМассив должен отдаваться с 2 значениями это называется Структура или Соответствие, на крайний случай таблица значений или список значений
#4
by S3rGotcha
Оператор возврат есть. Выглядит он вот так: Значения в выходной массив предварительно задаются так: ВыходнойМассив.Добавить(ПервыйЭлемент); ВыходнойМассив.Добавить(ВторойЭлемент);
#12
by asady
у тебя условие (Найти(ЗаписьВСтроке, МассивАтрибутов[ИндексПрефикса])>0 и СравнитьПервыеСимволы(ЗаписьВСтроке, МассивАтрибутов[ИндексПрефикса])>0) никогда не ИСТИНА
#15
by S3rGotcha
судя по тому, что в основной функции в качестве маркера я использую: Сообщить("Функция ВыборАтрибутов. Выходое значение 0: "+ВыходнойМассив[0]); Сообщить("Функция ВыборАтрибутов. Выходое значение 1: "+ВыходнойМассив[1]); И вижу вывод, то условие-таки выполняется. Разве нет?
#17
by S3rGotcha
а как по массиву атрибутов двигаться? )) Я далек от программирования. Использовал классический цикл for для массива. Вроде верно?
#24
by asady
это конструкция языка - это другое. где ты видел инкрементацию переменной цикла в теле цикла?
#25
by S3rGotcha
ну я просто по аналогии решил сделать. Раз в условиях нельзя задать - задал в теле цикла после выполнения. Яжнезнал ))
#28
by S3rGotcha
Запустил уже. В процедуре Вроде правильно отображает, но на последний элемент ругается: Индекс находится за границами массива. Т.е. первые 2 параметра со значениями выводятся. Последний - нет.
#33
by asady
у тебя выскакивает сообщение "массив пустой"? ты отладчиком вообще пользоваться умеешь?
#34
by S3rGotcha
нет, у меня выскакивает сообщение Индекс находится за границами массива. Все предыдущие элементы нормально отрабатываются функцией, а вот последний - никак.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
- Может ли функция вернуть массив?
- Как вернуть из 1С в C# структуру данных? И можно ли вернуть инфу в параметр
- Помогите... Как вернуть массив документов через COM - соединение (1с8)
- Параметр запроса для встроенной функции "В" - массив или список значений?
- Как скопировать массив структур в массив
- Как функции вернуть несколько значений
В этой группе 1С
- доп листы книги продаж в декларации по НДС
- Ввод начальных остатков по счету 97
- После корректировки поступления на 10.06 зависла сумма,как списать?УПП
- 1C Розница 2, возврат по эквайрингу на следующий день.
- Множественное ограничение типов в дереве значений
- УПП. Как доначислить амортизацию за прошлые периоды
- Бухгалтерия 3.0 с какого регистра попадают счет фактуры агента в книгу продаж?
- Закрытие года в УПП
- УТ 10.3 - Для чего нужна "сумма регламентная" в документе Инвентаризация?
- Книга продаж (графа 13 б)
- v7: Индексированная таблица: 2 выборки по разным индексам, можно ли?
- Получить текущее значение реквизита внешней обработки
- Регистр ПартииТоваровНаСкладах поле Организация пустое
- Как вывести текстовый ресурс в таблицу СКД?
- Регистр накопления НДС Продажи
- 1с umi-cms и ут 11.1, кто сталкивался, подскажите
- УФ: добавить реквизит в командную панель таб. части
- Подскажите пожалуйста по выполнению Java функции в 1с
- каким документом (как) отразить доход от процентов (оформить в УПП )
- Проблема с подключением эквайрингового терминала