Как создать новый массив со значениями без цикла #732898


#0 by timeforlive
Всем привет! Сразу с примера: Таким образом в 1С можно создать массив и добавлять в него значения, но это очень и очень не удобно, особенно, если нужно 1000 значений заполнить руками. Кто-то предложет сделать следующим образом: 1. создать файл Excel, внести туда данные 2. создать обработку, которая считывала бы данные и результатом бы создавала корректные текст Это конечно круто, но мне было проще сделать себе програмку в C#. Вот ссылка, если кому-то поможет (и не только по 1С): После обработки RenameText я для удобства использую программу Microsoft Excel с формулой: ="["&F1&"]" где F1 - это число от 1 до n (т.е. индекс массива) и программой SubLime: 1. скопировать текст 2. найти все TAB-отступы (Find All) - удалить их; П.С. можно средней кнопкой мыши выделять по вертикали текст Вот мой вопрос: можно ли как в C# указать в 1С значения массива без метода Добавить, пример из C#:
#1 by Cube
СП: Массив (Array) По количеству элементов Синтаксис: Новый Массив(<КоличествоЭлементов1>,...,<КоличествоЭлементовN>) Параметры: <КоличествоЭлементов1>,...,<КоличествоЭлементовN> (необязательный) Тип: Число. Каждый параметр определяет количество элементов массива в соответствующем измерении. Может задаваться неограниченное количество параметров. Если ни один параметр не указан, то создается одномерный массив с нулевым количеством элементов. Описание: Создает массив из указанного количества элементов. Если задано несколько параметров, то будет создан массив, элементами которого являются массивы (и т.д. в зависимости от количества параметров). Фактически конструктор позволяет создать массивы массивов, которые могут являться аналогом многомерного массива. Пример:
#2 by ShoGUN
Нет. Мне, правда странно, что "Добавить" не устраивает, т.к. цикл проще, чем формирование выражения инициализации...
#3 by ShoGUN
А вообще, столбец Excel - это COMSafeArray, с которым можно работать из 1С, в т.ч. и выгружать в массив 1С.
#4 by Rovan
"можно ли как в C# указать в 1С значения массива без метода Добавить, пример из C#: " Если это строки, то в типовых конфах есть функция отвечающая за это что-то типа *** Заполнить одним вызовом весь массив одним значением можно через Таблицу значений
#5 by ShoGUN
- пища для размышления. Всё делается проще.
#6 by nordbox
а почему именно массив а не ТЗ ??
#7 by ktvladimir
кури в строну ЗначениеИзСтрокиВнутр, ЗначениеВСтрокуВнутр, посмотри как выглядит массив в строковом представлении, на дальше сообразишь)
#8 by nordbox
это кому?
#9 by FIXXXL
Функция РазложитьСтрокуВМассивПодстрок(Знач Стр, Разделитель = ",") Экспорт
#10 by ktvladimir
я к тому, что взять руками написать маленький массив преобразовать его в строку с помощью ЗначениеВСтрокуВнутр увидеть что структура довольно простая и можно построить свою строку которую при помощи обратной функции ЗначениеИзСтрокиВнутр преобразовать в массив в исходной строке разделители меняем с помощью  СтрЗаменить
#11 by Зеленый пень
Я один не вкурил, зачем такой велосипед автору?
#12 by ktvladimir
так к примеру массив из 3 букв А, Б И В выглядит как {"#",51e7a0d2-530b-11d4-b98a-008048da3034, {3, {"S","А"}, {"S","Б"}, {"S","В"} } } пустой массив как {"#",51e7a0d2-530b-11d4-b98a-008048da3034, {0} } итак разрядность получаем с помощью СтрЧислоВхождений делаем замены разделителя небольшие преобразования и получаем строку нужного массива который получаем обратной функцией ЗначениеИзСтрокиВнутр
#13 by ktvladimir
как я понял есть строка данных разделенных неким разделитем, которую не обходимо загнать в массив для дальнейшей работы... может я и не прав)
#14 by ShoGUN
Зачем? Зачем это нужно, когда ?
#15 by ShoGUN
+ Раз уж автор всё равно в эксель полез.
#16 by Krolik Bezobraznik
Автор знает толк в извращениях. Автор, расскажи задачу то или это вопрос из серии "А что если жабе всунуть в задницу соломинку и надуть, поплывет она или нет?"
#17 by ktvladimir
Откель я знаю) может он откажется от экселя. случаи бывают разные. Он предложил свой вариант, я предложил свой. кстати довольно шустрый). Любые вариации интересны тем, что расширяют знания. я к примеру не знал про Не сильный знаток экселя... каждый раз гуглю.... но всегда легко гуглить когда знаешь что искать, так что за 3 спасибо одназначно
#18 by ShoGUN
В Готовая функция, добавь в закладки.
#19 by ktvladimir
ну собственно из 3 это уже проглядывало) Все равно спасибо. итак соединение с экселем уже не быстрая операция. Смотря какая частота нужна.. ну и в данном случае есть выгрузка в эксель. а бывает зачастую что выгрузка просто в текстовые файлы). я же не знаю как изначально выглядит задача. Может есть некий транспортный файл, который ТС преобразовывает в csv и потом глядит в экселе). Идея отлично, но не стоит зацикливаться одним экселем)
#20 by ktvladimir
про эксель. У Вас есть уже опят с такой функцией? как она ведет себя в случае с форматированием? те наличием объединенных ячеек? часто приходят сторонние прайсы в виде экселя где есть объединения ячеек в заголовках, названиях колонок итд
#21 by ShoGUN
Нормально ведёт, при объединении ячеек значение будет в верхней левой, остальные будут показываться пустыми(как и при любом другом методе чтения, собственно).
#22 by ktvladimir
учту в след раз попробую предварительно грузануть в тз.
#23 by Classic
Эксель зло.
#24 by timeforlive
Вот вам задача, это не из серии . Генерация названия. Для того, чтобы создавались из определенных значений (а не из случайных букв символов), то нужно создать массив с этими значениями. Так как значения уже есть, но не в корректном для 1С виде, то нужна была обработка. Если появится необходимость, сделаю обработку для выгрузки из Ексель дынных методом: - взять значение из ячейки - поставить ДО или ПОСЛЕ свое значение - следующая ячейка ... а я добавил, спасибо
#25 by DrZombi
>>>  поставить ДО или ПОСЛЕ свое значение Поставь, кто мешает? Но вот для чего лепить компот в в замене текста кода. Ну а коль ты так любишь допиливать Код и далее его выполнять. А не заполнять все нормально и сразу. Вот: Выполнить Выполнить (Execute) Синтаксис: Параметры:     <Строка>     Строка, содержащая текст исполняемого кода. Описание: Позволяет выполнить фрагмент кода, который передается ему в качестве строкового значения. Примечание: В режиме запуска веб-клиент оператор не поддерживается и его вызов игнорируется.
#26 by DrZombi
+ Как пользоваться Выполнить, освоишь сам :)
#27 by timeforlive
Хм, интересно. Спасибо.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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