Группа: Местный
Сообщений: 248
Из: Советский Союз
Спасибо сказали: 65 раз
Рейтинг: 0
Добрый день уважаемое сообщество. У меня платформа 7.7. Пытаюсь понять как в 1с7.7 реализирован принцип построения многомерных массивов. К сожалению не получаетсяю:-)
перем а[ы]
Работает, а вот
перем а[ы,в]
работать отказывается в чистую. подскажите пожалуйста как правильно строить многомерные массивы в 1с7.7 Заранее благодарен.
Короеды это не жуки. Это пользователи. Они едят кору головного мозга ...
Группа: Местный
Сообщений: 248
Из: Советский Союз
Спасибо сказали: 65 раз
Рейтинг: 0
Цитата(Vofka @ 05.09.11, 9:11)
Никогда вроде в 1С не встречал многомерных массивов . А почему вас ТЗ не устраивает?
Вроде и ТЗ устраивает. Но задача состоит в том например: надо построить массив по контрагентам закупки за период. Периоды могут изменятся, Контрагенты могут изменятся. Тытаюсь написать полуинтелектуальную обработку аналитики по контрагентам, а вот дву, трех- мерных массивов применить не могу, помогите пожалуйста обойти эти ограничения.
Цитата(DartRomanius @ 05.09.11, 9:15)
Если не отшибает мне память то максимум 2-х мерные. перем а[n][n];
Попорбовал Ваше предложение. В 7.7 не работает. :-(
Цитата(DartRomanius @ 05.09.11, 9:15)
Если не отшибает мне память то максимум 2-х мерные. перем а[n][n];
Попробовал Ваше предложение. В 7.7 не к сожалению работает.
Короеды это не жуки. Это пользователи. Они едят кору головного мозга ...
Группа: Основатель
Сообщений: 13981
Из: Киев
Спасибо сказали: 4549 раз
Рейтинг: 3678.1
Цитата
Вроде и ТЗ устраивает.
Так используйте ТЗ
Цитата
а вот дву, трех- мерных массивов применить не могу
Ещё раз повторюсь - если подходит ТЗ, то можно сказать так: 2-х мерный массив = ТЗ с 2 колонками, 3-мерный массив = ТЗ с 3 колонками. Или же надо использовать какие-то специфичные методы, которые присущи только массивам?
Ещё раз повторюсь - если подходит ТЗ, то можно сказать так: 2-х мерный массив = ТЗ с 2 колонками, 3-мерный массив = ТЗ с 3 колонками. Или же надо использовать какие-то специфичные методы, которые присущи только массивам?
С каких это делов то? ТЗ в принципе 2-х мерный массив с фиксированной (почти) строкой.
----------------------------------------------------------------------------------- Единственный, интуитивно понятный интерфейс - мамкина сиська! Всему остальному надо учиться! (с) Не знаю кто....
Группа: Местный
Сообщений: 248
Из: Советский Союз
Спасибо сказали: 65 раз
Рейтинг: 0
Цитата(Vofka @ 05.09.11, 9:26)
Так используйте ТЗ
Ещё раз повторюсь - если подходит ТЗ, то можно сказать так: 2-х мерный массив = ТЗ с 2 колонками, 3-мерный массив = ТЗ с 3 колонками. Или же надо использовать какие-то специфичные методы, которые присущи только массивам?
Причем: M,N,L Могут меняться в зависимости от многих ситуаций. их предсказать не возможно. Приблизительно такое должно быть построение. Это как-то может быть выполнимо?
Короеды это не жуки. Это пользователи. Они едят кору головного мозга ...
Группа: Пользователи
Сообщений: 16
Спасибо сказали: 9 раз
Рейтинг: 0
В 1С 7.7. аналог одномерного массива - список значений, а двумерного - таблица значений. Вроде так... А может Вам подойдут регистры? К ним можно обращаться с запросом.
Незнание закона не освобождает от ответственности. А знание - освобождает!
Причем: M,N,L Могут меняться в зависимости от многих ситуаций. их предсказать не возможно. Приблизительно такое должно быть построение. Это как-то может быть выполнимо?
Используйте ТЗ.ПолучитьЗначение(<Строка>,<Колонка>) и УстановитьЗначение(<Строка>,<Колонка>,<Знач>) и легко можна обойтись без всяких массивов...
Проблема в том что колонки нужно регламентировать, а меня интересует ситуация, при которой число колонок будет плавающим.
Не подходит его вариант. Мне нужно чтоб число колонок было плавающим. И на каждой строчке свое количество столбцов.
Колонки можно добавлять динамически так-сказать, по ходу пьесы...
Цитата(Vofka @ 05.09.11, 9:55)
Ну примерно с таких, как написал выше alex1c
ЗЫ. не увидел сразу этого вопроса.
Не, сама ТЗ все-таки 2-х мерный массив, а вот если (как и говорилось выше) использовать сложные значения.... Но ИМХО это уже будет сложная структура не совсем подходящая под определения простого массива.
ЗЫ: в догонку, можно еще использовать что-то типа Перем А[Н1 * ДлинаСтроки + Н2], где н1 = номер строки, а н2 = номер колонки. И по.... что где-то низзя использовать н-мерность (в данном случае 2).
----------------------------------------------------------------------------------- Единственный, интуитивно понятный интерфейс - мамкина сиська! Всему остальному надо учиться! (с) Не знаю кто....
Группа: Местный
Сообщений: 248
Из: Советский Союз
Спасибо сказали: 65 раз
Рейтинг: 0
Цитата(l2d808 @ 05.09.11, 9:02)
Добрый день уважаемое сообщество. У меня платформа 7.7. Пытаюсь понять как в 1с7.7 реализирован принцип построения многомерных массивов. К сожалению не получаетсяю:-)
перем а[ы]
Работает, а вот
перем а[ы,в]
работать отказывается в чистую. подскажите пожалуйста как правильно строить многомерные массивы в 1с7.7 Заранее благодарен.
Наше одно из решений: но оно не является универсальным для всех ситуаций.
А[число]=1,,,N; В[А[число]]=АгрегатноеЗначение;
Тут возможно правильное построение в том случае, когда один или несколько измерений массива является целочисленным элементом. В этом случае мы можем использовать N мерные массивы. Можно создать специфическое кодирование агрегатов, тогда все уровни массива возможно будет создать агрегатными... Сам додумался. :-) Если кому не понятно спрашивайте. Помогу с удовольствием. Но помните, минус этого алгоритма в том,что если вы не используете(Код товара, Код Контрагента, либо какие-то еще уникальные числа в 1с7.7), тогда вам придется в ручную создавать алгоритм кодирования Ваших Агрегатных Данных.
Короеды это не жуки. Это пользователи. Они едят кору головного мозга ...
велосипед вы свой в 1С внедряете, уважаемый. не пытайтесь работать в 1С как с нормальным языком программирования. они сами смотрят в языки, и уже на базе чужих функций делают 1с-велосипед.
Группа: Местный
Сообщений: 248
Из: Советский Союз
Спасибо сказали: 65 раз
Рейтинг: 0
Цитата(Acid @ 05.09.11, 11:31)
велосипед вы свой в 1С внедряете, уважаемый. не пытайтесь работать в 1С как с нормальным языком программирования. они сами смотрят в языки, и уже на базе чужих функций делают 1с-велосипед.
Спасибо Вам за уточнение :-), Но без Єнтого велосипеда я не знал как слепить каркас для моей новой обработки. А так Вы правы, Энто чем-то похоже на извращенную систему криптографии на основе 1с вложенных данных :-).
Короеды это не жуки. Это пользователи. Они едят кору головного мозга ...
Группа: Пользователи
Сообщений: 62
Спасибо сказали: 14 раз
Рейтинг: 0
Для многомерного массива, наверно, удобнее использовать СписокЗначений (в качестве значений которого использовать СпискиЗначений и т.д. до любой размерности),
а так читаем ЖКК и видим:
Переменные могут объединяться в массивы.В данной реализации программы предусмотрены только одномерные массивы.
Оператор объявления переменной Перем Объявление переменной в явном виде.
Параметры <Имя_переменной> Имя переменной. [<Размерность>] Необязательная числовая константа (записывается в квадратных скобках), указывается только в том случае, если объявляется массив и должна представляться в виде положительного целого числа. Экспорт Необязательное ключевое слово Экспорт указывает, что данная переменная станет доступна для других модулей. Использование данного ключевого слова имеет смысл только в глобальном программном модуле.
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!