Как изменить размер массива / Есть ли в 1С аналог ReDim Preserve из VB? #805368


#0 by Dartanyan
8.1 Команды на VBA(Excel) следующая: 1) ReDim M(1 то 12) - возможно ли создать массив с заданным диапазоном индексов(1 To 12) в 1С. Если да, то как? 2) ReDim Preserve Arr - расширяется или уменьшается массив и значения элементов сохраняется - есть ли возможность расширить/уменьшить массив(изменить размерность) без потери данных? Т.е. без создания "Новый" и без Добавлять в цикле. Может есть более простой метод? Спасибо.
#1 by VS-1976
Нет такого. Есть только Очистить с потерей всех данных.
#2 by bodri
Зачем? П.С. Просто интересно когда это может понадобиться.
#3 by Dotoshin
А в чем смысл этого действия?
#4 by VS-1976
Это специфика basic человек живёт ещё его ограничениями. Ему нужно воспринимать Массив как объект Collection тогда у него всё встанет на место.
#5 by bodri
в СП нашел такое: Массив (Array) По количеству элементов Синтаксис: Новый Массив(<КоличествоЭлементов1>,...,<КоличествоЭлементовN>) Параметры: <КоличествоЭлементов1>,...,<КоличествоЭлементовN> (необязательный) Тип: Число. Каждый параметр определяет количество элементов массива в соответствующем измерении. Может задаваться неограниченное количество параметров. Если ни один параметр не указан, то создается одномерный массив с нулевым количеством элементов. Описание: Создает массив из указанного количества элементов. Если задано несколько параметров, то будет создан массив, элементами которого являются массивы (и т.д. в зависимости от количества параметров). Фактически конструктор позволяет создать массивы массивов, которые могут являться аналогом многомерного массива. Пример:
#6 by jsmith82
в 1ске же динамические массивы
#7 by jsmith82
в отличие от 7-ки (насколько помню)
#8 by Смотрящий
Как у 1совского массива сменить размерность ?
#9 by Xapac
Добавляй элемент
#10 by Chameleon1980
с годовщиной !
#11 by Dartanyan
А! понял. Спасибо. Не знаю как в 1с, но как правило массивы самые быстрые. Скорее всего понадобится, когда столкнетесь с анализом данных
#12 by jsmith82
Он редко тут появляется
#13 by Dartanyan
да. Практически всегда отсутствую. Но часто нахожу уже готовые ответы именно здесь. И пользуясь случаем, скажу спасибо всем, кто не ленится и делится опытом с нубами, вроде меня. Как говорится: Респект и уважуха!
#14 by breezee
Как вы в этом чертовом ВБА вообще работает? Чтобы создать динамический массив в ВБА надо: 1)Создать динамический массив 2)Переопределить этот динамический массив в конечный. Это же брел А еще там нет возможности посмотреть все методы объекта через вычисления выражения. Это вообще жесть
#15 by Dartanyan
я бы вам сказал в грубой форме,... ну да ладно. 1) а в 1с не нужно создавать массив? 2) во-первых, если нужно не "конечный", то есть Collection, например во-вторых, это стоит рассматривать, как выделение нужного обьема памяти, которая выделяется под все обьекты. Разроботчики языка 1с, просто, делают это за вас, что естественно сказывается на быстродействии. И Массив.Добавить = ReDim Массив(Ubound(Массив)+1). Вы этого не понимаете, потому что не знакомы с реальными языками программирования. "А еще там нет возможности" - есть всё и намного больше, просто, вы не там смотрели и не умеете правильно обьявлять переменные(начальный уровень программирования). Самое большое преимущество VBA в том, что можно быстро набросать, проверить, посмотреть результаты. Там редактировать код можно по ходу выполнения(есть ошибка - исправил, выполнил, перешел на след.строку и тд) и не нужно перезапускать ничего. В отдельном окне представлены все переменные и их значения(это типа Табло, но сразу со всеми переменными модуля и функции). Да че рассказывать... Я ковырялся во многих IDE для разных языков программирования и скажу, в чём - в чём, но в удобстве программирования у Майкрософта всё продумано чётко. Так что, когда захотите написать какой-то VBS, открывайте Excel и наслаждайтесь.
#16 by Филиал-msk
> Вы этого не понимаете, потому что не знакомы с реальными языками программирования. Настоящий гасконец!
#17 by DDwe
"не понимаете, потому что не знакомы с реальными языками программирования" жесть!!))))
#18 by Dartanyan
Я что-то неправильно написал? Память не выделяется в зависимости от типа переменной и их количества в массиве в реальных языках? VB, JS, 1с и тп - вертуальные. Это не я придумал
#19 by VS-1976
По поводу реального языка... нужно иногда распальцовку убирать... не виртуальные, а интерпретируемые Массив в 1С это алгоритм списка, он гораздо луче чем redim. redim в vb это анахронизм оставленный для совместимости.
#20 by Ненавижу 1С
А еще бывает Count и Capacity, но боюсь, для 1С это слабо актуально
#21 by Dartanyan
У меня не распальцовка, а ответ на "ты лох" в "развернутом" виде. Гораздо лучше чем? Вы наверное хотели сказать "удобнее". Может быть. Хотя речь даже не об этом, а о том, что redim и добавить выполняют одно и тоже - увеличивают размер мессива.
#22 by VS-1976
Удобнее конечно
#23 by Фрэнки
это удалось достоверно установить?
#24 by breezee
>Реальный язык программирования Да, вы правы, на ассемблере не пишу, да и в двоичном коде ничего толкового не не напишу. Вы же знаете, что разные языки для разного нужны? Зачем мне работа с памятью при создании скрипотв для ворда? Это не риторический вопрос
#25 by Asmody
В 1С есть просто Массив и ФиксированныйМассив. Первый – динамический, второй – статический (на самом деле, иммутабельный). Про массивы достаточно адекватно написано в СП.
#26 by Asmody
И, кстати, называть среду VBA "удобной"… Не, ну может быть кому-то нравится в гамаке стоя на лыжах…
#27 by Лефмихалыч
ты не знаешь, с чем он сравнивает
#28 by Asmody
написано "ковырялся во многих IDE"…
#29 by Злопчинский
типа "..я не гинеколог, но посмотреть могу.."..?
#30 by Fram
как длина массива регулируется в 1с уже понял или нет ещё?
#31 by VladZ
В 1с это не нужно.
#32 by VladZ
+31 Платформа 1С, в отличии от VB, это среда разработки программ бухгалтерского и управленческого учета. И греть голову вопросами "а какая тут у меня размерность массива?" - некогда. Тут все просто: добавил элемент - увеличил размерность. Удалил элемент - уменьшил.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С