Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   Вопрос по массивам (http://forums.kuban.ru/f1040/vopros_po_massivam-5928822.html)

Wanderer27 21.07.2014 15:25

Вопрос по массивам
 
Затупил чего то, не знаю как и сделать. :(
В Инете ответ не нашел.
Внизу функция, которая формирует массив.
Мне нужно вернуть из нее этот массив.

ругается "Возврат Мас<<?>>;
{Документ.РасходнаяНакладная.Форма.Модуль(7672)**: Ожидается скалярное выражение (Мас)"

По идее если напишу Возврат Мас[7] она вернет только 7-ой элемент. А мне нужно весь массив.

Функция ЧтениеТекста(тхт_стр)
Перем Мас[7];
..................
Мас[н]=Лев(тхт_стр,НомерРазделителя-1);
...................
Возврат Мас;
КонецФункции

Как сделать? Спасибо!

101 21.07.2014 16:11

хмм чем таблица значений не устраивает или список ?

VZ 21.07.2014 16:13

Поверить сообщению, что функция умеет возвращать только скалярное значение ;)
Изучить программирование, чтоб понять, что данное поведение функции естественное.
Изучить встроенный язык 1С.
Как вариант, записаться на курсы.
Поручить работу тому, кто умеет (обменять деньги на время, необходимое для изучения всего этого).

Пудель 21.07.2014 22:55

:)
[img]http://aquafisher.org.ua/wp-content/uploads/Pterophyllum_scalare_zebra.jpg[/img]

Чучундер 22.07.2014 01:31

(2) а ТЗ - скалярное выражение..?
Возврат ТЗ; - вполне себе катит... хотя тут возвращается скаляр - ссылка... - вот почему на таблицу значений может быть ссылка, аа на массив - нет...?

101 22.07.2014 08:33

(4) ТЗ - объект со свойствами а массив - фигня непонятная (с) ;)))

angro 22.07.2014 08:55

что-то вы гоните

&НаКлиенте
Функция тт()

т = новый массив();
т.Добавить("1");

возврат т;
КонецФункции

&НаКлиенте
Процедура Команда1(Команда)

рр = тт();
Сообщить(рр[0]);

КонецПроцедуры

bma1 22.07.2014 09:12

2(6) а попробуй передать массив между клиентом-сервером-клиентом

angro 22.07.2014 09:26

(7) ну замени &НаКлиенте на &НаСервере
этож УФ

angro 22.07.2014 09:28

&НаКлиенте
Процедура Команда1(Команда)

т = новый массив();
рр = Команда1НаСервере(т);
Сообщить(рр[0]);

КонецПроцедуры

&НаСервере
Функция Команда1НаСервере(т)

т.Добавить("1");

возврат т;
КонецФункции

Uho 22.07.2014 09:47

а это что вообще такое? [quote=Wanderer27;35945177]Перем Мас[7];[/quote]

user1C 22.07.2014 10:21

(10)
уже забыл что это такое? ;)))

101 22.07.2014 11:35

(6)-(11) Чукча не читатель ? (с) речь про 7-ую 1С

user1C 22.07.2014 11:42

(12)
я в курсе, чукча не читатель, говоришь...

Uho 22.07.2014 11:50

[quote=101;35953574]речь про 7-ую 1С [/quote] а что это вообще такое? :)))

angro 22.07.2014 14:35

(12) о как, а там и массивы были?

VZ 22.07.2014 14:43

15-angro > Ты не поверишь :D
Одномерные.

Helen1986 22.07.2014 15:36

ну из одномерных массив любой размерности делался одной функцией. только это не айс был с точки зрения производительности

VZ 22.07.2014 15:49

17-Helen1986 > Вообще не очень удобный объект. Гораздо удобнее будет список.
Массив редко в конфах используется, а уж в передаче параметров - совсем не помню.

AnyBody 24.07.2014 10:17

(0) Ты пытаешься вернуть локальную переменную функции.
Она во вне не существует. Создай массив внутри функции и все заработает.

AnyBody 24.07.2014 11:11

[quote=AnyBody;35977218] (0) Ты пытаешься вернуть локальную переменную функции. Она во вне не существует. Создай массив внутри функции и все заработает. [/quote]
Это я погорячился, каша из v7 и v8.
Sorry!

Helen1986 24.07.2014 11:13

(18) списки и ТЗ удобнее, но тормознутее.
массив прост как палка, более быстр и более ограничен.
Но в конкретных местах массив м.б. намного выгоднее в плане быстродействия

Helen1986 24.07.2014 11:18

и ваще - в каждой избушке свои игрушки [img]http://cdn.trinixy.ru/pics3/20081216/podborka_505_79.jpg[/img]


Текущее время: 14:19. Часовой пояс GMT +3.