Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Массивы 1с 7.7 , Помогите построить... 2 страниц V   1 2 >          
l2d808 Подменю пользователя
сообщение 05.09.11, 8:02
Сообщение #1

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 248
Из: Советский Союз
Спасибо сказали: 64 раз
Рейтинг: 0

Добрый день уважаемое сообщество. У меня платформа 7.7. Пытаюсь понять как в 1с7.7 реализирован принцип построения многомерных массивов. К сожалению не получаетсяю:-)
перем а[ы]


Работает, а вот
перем а[ы,в]

работать отказывается в чистую. подскажите пожалуйста как правильно строить многомерные массивы в 1с7.7
Заранее благодарен.


Signature
Короеды это не жуки. Это пользователи. Они едят кору головного мозга ...

Vofka Подменю пользователя
сообщение 05.09.11, 8:11
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Никогда вроде в 1С не встречал многомерных массивов smile.gif . А почему вас ТЗ не устраивает?

DartRomanius Подменю пользователя
сообщение 05.09.11, 8:15
Сообщение #3

Ветеран
Иконка группы
Группа: Местный
Сообщений: 824
Из: Запорожье
Спасибо сказали: 145 раз
Рейтинг: 0

Если не отшибает мне память то максимум 2-х мерные.
перем а[n][n];


Signature
-----------------------------------------------------------------------------------
Единственный, интуитивно понятный интерфейс - мамкина сиська!
Всему остальному надо учиться! (с) Не знаю кто....

l2d808 Подменю пользователя
сообщение 05.09.11, 8:21
Сообщение #4

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 248
Из: Советский Союз
Спасибо сказали: 64 раз
Рейтинг: 0

Цитата(Vofka @ 05.09.11, 9:11) *
Никогда вроде в 1С не встречал многомерных массивов smile.gif . А почему вас ТЗ не устраивает?

Вроде и ТЗ устраивает. Но задача состоит в том например: надо построить массив по контрагентам закупки за период. Периоды могут изменятся, Контрагенты могут изменятся. Тытаюсь написать полуинтелектуальную обработку аналитики по контрагентам, а вот дву, трех- мерных массивов применить не могу, помогите пожалуйста обойти эти ограничения.

Цитата(DartRomanius @ 05.09.11, 9:15) *
Если не отшибает мне память то максимум 2-х мерные.
перем а[n][n];


Попорбовал Ваше предложение. В 7.7 не работает. :-(

Цитата(DartRomanius @ 05.09.11, 9:15) *
Если не отшибает мне память то максимум 2-х мерные.
перем а[n][n];

Попробовал Ваше предложение. В 7.7 не к сожалению работает.


Signature
Короеды это не жуки. Это пользователи. Они едят кору головного мозга ...

Vofka Подменю пользователя
сообщение 05.09.11, 8:26
Сообщение #5

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Цитата
Вроде и ТЗ устраивает.

Так используйте ТЗ smile.gif

Цитата
а вот дву, трех- мерных массивов применить не могу

Ещё раз повторюсь - если подходит ТЗ, то можно сказать так: 2-х мерный массив = ТЗ с 2 колонками, 3-мерный массив = ТЗ с 3 колонками. Или же надо использовать какие-то специфичные методы, которые присущи только массивам?

DartRomanius Подменю пользователя
сообщение 05.09.11, 8:31
Сообщение #6

Ветеран
Иконка группы
Группа: Местный
Сообщений: 824
Из: Запорожье
Спасибо сказали: 145 раз
Рейтинг: 0

Цитата(Vofka @ 05.09.11, 9:26) *
Ещё раз повторюсь - если подходит ТЗ, то можно сказать так: 2-х мерный массив = ТЗ с 2 колонками, 3-мерный массив = ТЗ с 3 колонками. Или же надо использовать какие-то специфичные методы, которые присущи только массивам?


С каких это делов то? smile.gif
ТЗ в принципе 2-х мерный массив с фиксированной (почти) строкой.


Signature
-----------------------------------------------------------------------------------
Единственный, интуитивно понятный интерфейс - мамкина сиська!
Всему остальному надо учиться! (с) Не знаю кто....

l2d808 Подменю пользователя
сообщение 05.09.11, 8:32
Сообщение #7

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 248
Из: Советский Союз
Спасибо сказали: 64 раз
Рейтинг: 0

Цитата(Vofka @ 05.09.11, 9:26) *
Так используйте ТЗ smile.gif


Ещё раз повторюсь - если подходит ТЗ, то можно сказать так: 2-х мерный массив = ТЗ с 2 колонками, 3-мерный массив = ТЗ с 3 колонками. Или же надо использовать какие-то специфичные методы, которые присущи только массивам?

ТЗ.ПерваяКолонка[М];
ТЗ.ВтораяКолонка[L];
ТЗ.ТретьяКолонка[N];

Причем: M,N,L Могут меняться в зависимости от многих ситуаций. их предсказать не возможно.
Приблизительно такое должно быть построение. Это как-то может быть выполнимо?


Signature
Короеды это не жуки. Это пользователи. Они едят кору головного мозга ...

DartRomanius Подменю пользователя
сообщение 05.09.11, 8:35
Сообщение #8

Ветеран
Иконка группы
Группа: Местный
Сообщений: 824
Из: Запорожье
Спасибо сказали: 145 раз
Рейтинг: 0

ТЗ - в принципе массив с оберткой, повторяюсь 2-х мерный массив за счет колонок.

Можно комбинировать кстати, получится уже не массив, а несколько более сложная структура - например ТЗ или СЗ с значениями типа ТЗ или СЗ.

ЗЫ: ТЗ - ТаблицаЗначений, СЗ - СписокЗначений


Signature
-----------------------------------------------------------------------------------
Единственный, интуитивно понятный интерфейс - мамкина сиська!
Всему остальному надо учиться! (с) Не знаю кто....

oleynik Подменю пользователя
сообщение 05.09.11, 8:38
Сообщение #9

Общительный
**
Группа: Пользователи
Сообщений: 16
Спасибо сказали: 9 раз
Рейтинг: 0

В 1С 7.7. аналог одномерного массива - список значений, а двумерного - таблица значений. Вроде так... А может Вам подойдут регистры? К ним можно обращаться с запросом.


Signature
Незнание закона не освобождает от ответственности. А знание - освобождает!

Vofka Подменю пользователя
сообщение 05.09.11, 8:42
Сообщение #10

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Цитата
А может Вам подойдут регистры? К ним можно обращаться с запросом.

Не, ну это вы уже загнули...

l2d808 Подменю пользователя
сообщение 05.09.11, 8:44
Сообщение #11

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 248
Из: Советский Союз
Спасибо сказали: 64 раз
Рейтинг: 0

Цитата(DartRomanius @ 05.09.11, 9:35) *
ТЗ - в принципе массив с оберткой, повторяюсь 2-х мерный массив за счет колонок.

Можно комбинировать кстати, получится уже не массив, а несколько более сложная структура - например ТЗ или СЗ с значениями типа ТЗ или СЗ.

ЗЫ: ТЗ - ТаблицаЗначений, СЗ - СписокЗначений


Простите за вопрос, Но. Можно пример кода? по моим условиям, я не могу понять как СЗ мне поможет в этой ситуации.

Цитата(Vofka @ 05.09.11, 9:42) *
Не, ну это вы уже загнули...

Я не очень силен пока в 1с. Подскажите что такое регистры и как они мне могут помочь?


Signature
Короеды это не жуки. Это пользователи. Они едят кору головного мозга ...

alex1c Подменю пользователя
сообщение 05.09.11, 8:48
Сообщение #12

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 235
Спасибо сказали: 45 раз
Рейтинг: 40

Цитата(l2d808 @ 05.09.11, 9:32) *
ТЗ.ПерваяКолонка[М];
ТЗ.ВтораяКолонка[L];
ТЗ.ТретьяКолонка[N];

Причем: M,N,L Могут меняться в зависимости от многих ситуаций. их предсказать не возможно.
Приблизительно такое должно быть построение. Это как-то может быть выполнимо?


Используйте ТЗ.ПолучитьЗначение(<Строка>,<Колонка>) и УстановитьЗначение(<Строка>,<Колонка>,<Знач>) и легко можна обойтись без всяких массивов...

Vofka Подменю пользователя
сообщение 05.09.11, 8:55
Сообщение #13

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13948
Из: Киев
Спасибо сказали: 4514 раз
Рейтинг: 3635.6

Цитата
С каких это делов то? smile.gif

Ну примерно с таких, как написал выше alex1c smile.gif

ЗЫ. не увидел сразу этого вопроса.

l2d808 Подменю пользователя
сообщение 05.09.11, 8:58
Сообщение #14

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 248
Из: Советский Союз
Спасибо сказали: 64 раз
Рейтинг: 0

Цитата(alex1c @ 05.09.11, 9:48) *
Используйте ТЗ.ПолучитьЗначение(<Строка>,<Колонка>) и УстановитьЗначение(<Строка>,<Колонка>,<Знач>) и легко можна обойтись без всяких массивов...

Проблема в том что колонки нужно регламентировать, а меня интересует ситуация, при которой число колонок будет плавающим.

Цитата(Vofka @ 05.09.11, 9:55) *
Ну примерно с таких, как написал выше alex1c smile.gif

ЗЫ. не увидел сразу этого вопроса.

Не подходит его вариант. Мне нужно чтоб число колонок было плавающим. И на каждой строчке свое количество столбцов.


Signature
Короеды это не жуки. Это пользователи. Они едят кору головного мозга ...

DartRomanius Подменю пользователя
сообщение 05.09.11, 9:15
Сообщение #15

Ветеран
Иконка группы
Группа: Местный
Сообщений: 824
Из: Запорожье
Спасибо сказали: 145 раз
Рейтинг: 0

Цитата(l2d808 @ 05.09.11, 9:58) *
Проблема в том что колонки нужно регламентировать, а меня интересует ситуация, при которой число колонок будет плавающим.


Не подходит его вариант. Мне нужно чтоб число колонок было плавающим. И на каждой строчке свое количество столбцов.


Колонки можно добавлять динамически так-сказать, по ходу пьесы...



Цитата(Vofka @ 05.09.11, 9:55) *
Ну примерно с таких, как написал выше alex1c smile.gif

ЗЫ. не увидел сразу этого вопроса.


Не, сама ТЗ все-таки 2-х мерный массив, а вот если (как и говорилось выше) использовать сложные значения....
Но ИМХО это уже будет сложная структура не совсем подходящая под определения простого массива.

ЗЫ: в догонку, можно еще использовать что-то типа Перем А[Н1 * ДлинаСтроки + Н2], где н1 = номер строки, а н2 = номер колонки. smile.gif И по.... что где-то низзя использовать н-мерность (в данном случае 2).


Signature
-----------------------------------------------------------------------------------
Единственный, интуитивно понятный интерфейс - мамкина сиська!
Всему остальному надо учиться! (с) Не знаю кто....

Virgo Подменю пользователя
сообщение 05.09.11, 9:15
Сообщение #16

Оратор
*****
Группа: Пользователи
Сообщений: 284
Из: Симферополь-Севастополь
Спасибо сказали: 56 раз
Рейтинг: 0

ТЗ можно вкладывать в ТЗ

l2d808 Подменю пользователя
сообщение 05.09.11, 9:21
Сообщение #17

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 248
Из: Советский Союз
Спасибо сказали: 64 раз
Рейтинг: 0

Цитата(l2d808 @ 05.09.11, 9:02) *
Добрый день уважаемое сообщество. У меня платформа 7.7. Пытаюсь понять как в 1с7.7 реализирован принцип построения многомерных массивов. К сожалению не получаетсяю:-)
перем а[ы]


Работает, а вот
перем а[ы,в]

работать отказывается в чистую. подскажите пожалуйста как правильно строить многомерные массивы в 1с7.7
Заранее благодарен.

Наше одно из решений: но оно не является универсальным для всех ситуаций.
А[число]=1,,,N;
В[А[число]]=АгрегатноеЗначение;


Тут возможно правильное построение в том случае, когда один или несколько измерений массива является целочисленным элементом. В этом случае мы можем использовать N мерные массивы. Можно создать специфическое кодирование агрегатов, тогда все уровни массива возможно будет создать агрегатными... Сам додумался. :-) Если кому не понятно спрашивайте. Помогу с удовольствием. Но помните, минус этого алгоритма в том,что если вы не используете(Код товара, Код Контрагента, либо какие-то еще уникальные числа в 1с7.7), тогда вам придется в ручную создавать алгоритм кодирования Ваших Агрегатных Данных.


Signature
Короеды это не жуки. Это пользователи. Они едят кору головного мозга ...

Acid Подменю пользователя
сообщение 05.09.11, 10:31
Сообщение #18

Про1С-ник
Иконка группы
За заслуги на форуме в 2010 году
Группа: Местный
Сообщений: 2104
Из: Занзибар
Спасибо сказали: 377 раз
Рейтинг: 260.7

велосипед вы свой в 1С внедряете, уважаемый. не пытайтесь работать в 1С как с нормальным языком программирования. они сами смотрят в языки, и уже на базе чужих функций делают 1с-велосипед.

l2d808 Подменю пользователя
сообщение 05.09.11, 11:06
Сообщение #19

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 248
Из: Советский Союз
Спасибо сказали: 64 раз
Рейтинг: 0

Цитата(Acid @ 05.09.11, 11:31) *
велосипед вы свой в 1С внедряете, уважаемый. не пытайтесь работать в 1С как с нормальным языком программирования. они сами смотрят в языки, и уже на базе чужих функций делают 1с-велосипед.

Спасибо Вам за уточнение :-), Но без Єнтого велосипеда я не знал как слепить каркас для моей новой обработки. А так Вы правы, Энто чем-то похоже на извращенную систему криптографии на основе 1с вложенных данных :-).


Signature
Короеды это не жуки. Это пользователи. Они едят кору головного мозга ...

g789 Подменю пользователя
сообщение 05.09.11, 11:40
Сообщение #20

Говорящий
***
Группа: Пользователи
Сообщений: 62
Спасибо сказали: 14 раз
Рейтинг: 0

Для многомерного массива, наверно, удобнее использовать СписокЗначений (в качестве значений которого использовать СпискиЗначений и т.д. до любой размерности),

а так читаем ЖКК и видим:

Переменные могут объединяться в массивы.В данной реализации програм­мы предусмотрены только одномерные массивы.

Оператор объявления переменной
Перем
Объявление переменной в явном виде.

Синтаксис:

Перем <Имя_переменной> [[<Размерность>]] [Экспорт];

Параметры
<Имя_переменной>
Имя переменной.
[<Размерность>]
Необязательная числовая константа (записывает­ся в квадратных скобках), указывается только в том случае, если объявляется массив и должна представляться в виде положительного целого числа.
Экспорт
Необязательное ключевое слово Экспорт указы­вает, что данная переменная станет доступна для других модулей. Использование данного ключево­го слова имеет смысл только в глобальном про­граммном модуле.

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


2 страниц V   1 2 >
Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 10:16
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!