|
Помогите с задачей по массивам в 1С8.2 | ☑ | ||
---|---|---|---|---|
0
yuli4ka
24.03.12
✎
14:17
|
Нужно написать функцию сортировки массива структур. На форме есть табличное поле с определенным набором колонок. При добавлении строки, создается структура: ключи — колонки, значения — значения этих колонок; затем структура заносится в общий массив. Пользователь выбирает поле для сортировки, и нажимает «Сортировать», после чего данный массив структур сортируется и построчно выводится на экран в текстовом виде (1 строка — 1 запись массива).
Итак, в функцию сортировки на вход передается массив структур, и поле для сортировки; на выходе — отсортированный массив. Алгоритм сортировки — желательно рекурсивный, но не обязательно. |
|||
1
Чел
24.03.12
✎
14:21
|
а откуда взялось пожелание по рекурсии? Это не есть хороший стиль программирования...
|
|||
2
Lama12
24.03.12
✎
14:23
|
(0) Не понял. А разве нельзя отсортировать таблицу значений, а потом данные поместить в структуру и далее в массив?
|
|||
3
Lama12
24.03.12
✎
14:24
|
2+
Зачем изобретать сложности? (0)Или это домашнее задание? |
|||
4
yuli4ka
24.03.12
✎
14:26
|
Мне нужно выполнить именно так поставленную задачу. Можете помочь?
|
|||
5
Lama12
24.03.12
✎
14:26
|
(0)И где фотка?
|
|||
6
yuli4ka
24.03.12
✎
14:27
|
фотки нет
|
|||
7
Чел
24.03.12
✎
14:28
|
нет фотки - нет функции
|
|||
8
Чел
24.03.12
✎
14:29
|
шутка =)))
|
|||
9
yuli4ka
24.03.12
✎
14:29
|
какую фотку нужно?
|
|||
10
yuli4ka
24.03.12
✎
14:29
|
)))
|
|||
11
Armando
24.03.12
✎
14:30
|
(9) известно какую)
|
|||
12
Чел
24.03.12
✎
14:31
|
(0) правильно я понял, что в конечном счете табличка заливается в массив структур, где строка массива - строка таблицы, а структура - есть значения ячеек строки по колонкам?
|
|||
13
yuli4ka
24.03.12
✎
14:33
|
да
|
|||
14
Lama12
24.03.12
✎
14:33
|
(6) Не правильный ответ.
Задача поставлена с условием не оптимальности структуры кода. Видимо для того, что б избавиться от возможностей системы сортировать коллекции. Т.е. с целью обучения. В принципе, я могу написать такую функцию, и даже это мне в будущем зачтется. Т.к. моя стоимость на рынке будет больше. Но лень... Ну что господа, у кого есть желание снабдить Украину еще одним неквалифицированным, аттестованным специалистом? |
|||
15
yuli4ka
24.03.12
✎
14:35
|
да, с целью обучения, я только начинаю разбираться в 1С программировании)))
|
|||
16
zak555
24.03.12
✎
14:35
|
> На форме есть табличное поле
предлагаю не изобретать велосипед : Табличная часть.Сортировать (Tabular section.Sort) Табличная часть (Tabular section) Сортировать (Sort) Синтаксис: Сортировать(<Колонки>, <ОбъектСравнения>) Параметры: <Колонки> (обязательный) Тип: Строка. Список имен колонок, разделенных запятыми, по которым производится сортировка таблицы. После каждого имени колонки через пробел может быть указано направление сортировки. Направление определяется: "Убыв" ("Desc") - упорядочивать по убыванию; "Возр" ("Asc") - упорядочивать по возрастанию. По умолчанию сортировка производится по возрастанию. Порядок указания имен колонок таблицы определяет порядок сортировки. Это означает, что сначала таблица сортируется по колонке, указанной первой. Затем группы строк с одинаковым значением в этой колонке сортируются по колонке, которая указана второй, и так далее. <ОбъектСравнения> (необязательный) Тип: СравнениеЗначений. Объект для сравнения элементов. Если объект сравнения не задан, сравнение выполняется по следующим правилам: элементы, чьи типы не совпадают, сравниваются по коду типа; элементы простых типов сравниваются по значению; элементы остальных типов сравниваются по строковому представлению. Описание: Сортирует табличную часть в соответствии с указанными правилами сортировки. Доступность: Сервер, толстый клиент, внешнее соединение. Примечание: Использование метода допустимо только в том случае, если табличная часть получена из свойства объекта. Если табличная часть получена из свойства ссылки (или выборки), то использование этого метода будет вызывать ошибку выполнения. Пример: ТаблицаЦен.Сортировать("Цена Убыв, Товар Возр"); |
|||
17
yuli4ka
24.03.12
✎
14:39
|
мне нужно сделать именно так как написано в условии))
|
|||
18
Чел
24.03.12
✎
14:39
|
Вспомни школьную информатику 9 класс - сделай самую банальную сортировку методом пузырька или методом max/min (20 строчек кода). Или погугли более оптимальные методы сортировки =) - с целью обучения )
И вообще! На то это и учебная задачка, чтобы самой сделать, а не с чьей-то помощью =)) |
|||
19
zak555
24.03.12
✎
14:40
|
(17) чё ?
|
|||
20
yuli4ka
24.03.12
✎
14:40
|
я и хочу сама разобраться, подскажите с чего начать, может литературу какую-то
|
|||
21
zak555
24.03.12
✎
14:41
|
(20) тогда тебе nasf\гилиев_базовый\BLOCK_1
|
|||
22
Чел
24.03.12
✎
14:42
|
а в чем ты хочешь разобраться? В 1С? Или в программировании? Или в программировании в 1С?
|
|||
23
yuli4ka
24.03.12
✎
14:43
|
в программировании в 1С
|
|||
24
DarKySiK
24.03.12
✎
14:44
|
(23) а цель?
|
|||
25
Чел
24.03.12
✎
14:45
|
(23) если задача на программирование в 1С, то решение - в (2) и (16)
|
|||
26
yuli4ka
24.03.12
✎
14:46
|
сейчас поступить на обучение программистов 1с, а в будущем работать по этой специальности
|
|||
27
DarKySiK
24.03.12
✎
14:47
|
ого, этому где-то учат О_о
|
|||
28
yuli4ka
24.03.12
✎
14:48
|
ну да, учат
|
|||
29
Нуф-Нуф
24.03.12
✎
14:48
|
тема сисек нераскрыта
|
|||
30
МихаилМ
24.03.12
✎
14:48
|
(27)
у франчей вестимо. |
|||
31
Чел
24.03.12
✎
14:48
|
(28) Чтобы программировать в 1С - для начала надо научиться вообще программировать. Тогда лучше начать с Бейсика или Паскаля =)
|
|||
32
GROOVY
24.03.12
✎
14:49
|
(23) Тогда смотри (16) и не парь мозг себе и окружающим. Это залог успеха.
|
|||
33
DarKySiK
24.03.12
✎
14:51
|
(31) да с ШАЯ хотя бы)
|
|||
34
Чел
24.03.12
✎
14:54
|
(30) во-во! Я тоже когда пошел работать во франч - мне задачу поставили. Только это было куда понятней - написать на листочке алгоритм сортировки массива... Без каких-либо структур, таблиц значения ))
(33) ну уж точно не с 1С =) |
|||
35
Чел
24.03.12
✎
14:55
|
... злые мы... обидели девочку =)
|
|||
36
DarKySiK
24.03.12
✎
14:57
|
все дело в фотке ( 100%
|
|||
37
zak555
24.03.12
✎
14:59
|
(30) фрначи учат ? о_О
|
|||
38
yuli4ka
24.03.12
✎
15:00
|
да...злые вы...
можете помочь, помогите.. |
|||
39
zak555
24.03.12
✎
15:00
|
(38) можешь фотку показать ?
|
|||
40
yuli4ka
24.03.12
✎
15:01
|
какую фотку...
|
|||
41
GROOVY
24.03.12
✎
15:03
|
(40) Массива со структурами в текстовом виде.
|
|||
42
zak555
24.03.12
✎
15:03
|
(40) свою на реке Псеп
|
|||
43
yuli4ka
24.03.12
✎
15:06
|
))))
|
|||
44
Чел
24.03.12
✎
15:07
|
(40) как положено - фас + профиль + в полный рост + нужно учесть пост (29).
Без всего этого никак нельзя. Никак. |
|||
45
GROOVY
24.03.12
✎
15:08
|
По задаче: рекомендую перед написанием алгоритма ознакомиться с популярными эффективными методами сортировки: http://vmtcom.dreamwidth.org/71528.html
|
|||
46
Armando
24.03.12
✎
15:10
|
(45) круто)
|
|||
47
zak555
24.03.12
✎
15:14
|
(45) бу га га
|
|||
48
Чел
24.03.12
✎
15:18
|
(45) аа! Мегакруть! ))
|
|||
49
yuli4ka
24.03.12
✎
15:19
|
я вижу, вам только поржать))
|
|||
50
Чел
24.03.12
✎
15:21
|
(49) а что еще делать в субботу? =) не учебные же задачки решать )
|
|||
51
yuli4ka
24.03.12
✎
15:21
|
ну да, и это правда
|
|||
52
Чел
24.03.12
✎
15:23
|
(51) а что ты хочешь? Тебе много подсказок и намёков уже надавали - если перечитаешь внимательно. Или тебе нужен готовый код функции?
|
|||
53
GROOVY
24.03.12
✎
15:23
|
(49) Ну почему же?
1. Вы с формами в 1С работать умеете? 2. Задачу надо выполнить в управляемых формах или обычных? 3. Как создать структуру знаете? 4. Как создать массив и поместить в него значение знаете? 5. Как перебрать коллекции в 1С представляете? |
|||
54
yuli4ka
24.03.12
✎
15:23
|
Кто-нибудь может реально чем-то помочь?
|
|||
55
GROOVY
24.03.12
✎
15:25
|
Я просто не вижу озвученных проблем при решении задачи, помочь в чем надо то? Код готовый скинуть? Никто не будет его писать, так как все 1Сники жадные и ленивые. Простимулировать кого-то на написание кода может фотография, это вполне серьезно, сейчас весна, у некоторых обострения на этой почве :)
|
|||
56
yuli4ka
24.03.12
✎
15:26
|
Я еще ничего не умею как программист в 1С, до этого программировала в HTML и PHP.
|
|||
57
МихаилМ
24.03.12
✎
15:26
|
(49)
не вижу состороны Вас даже минимальных усилий для решения задачи. выложите готовую обработку с заполнеными тестовыми данными. и методом вывода результата отладте ее. а на форуме останется лишь обсудить метод сортировки. иначе получается, что все надо написать за Вас. |
|||
58
Чел
24.03.12
✎
15:28
|
(56) программировала в HTML ??? Впервые слышу про такой язык программирования...
|
|||
59
yuli4ka
24.03.12
✎
15:30
|
ладно, не цепляйтесь к словам
|
|||
60
GROOVY
24.03.12
✎
15:30
|
(56) И решили начать изучение 1С с этой задачи? Кто Вам это посоветовал?
Начните лучше с этого: http://v8.1c.ru/metod/books/book.jsp?id=187 |
|||
61
Офелия
24.03.12
✎
15:32
|
(45) супер :))) ничего подобного раньше не видела. посмотрела bubblesort
|
|||
62
МихаилМ
24.03.12
✎
15:32
|
+(57)
очень сложно обсуждать общие неконкретные вопросы разбейте задачу на подзадачи. тогда получите более конкретные ответы, а не ржачки и стеб Пока Вы неконкретны, никто не хочет вступать с Вами в отношения помощи тк сложно оценить количество усилий для завершения задачи путем преписки. |
|||
63
zak555
24.03.12
✎
15:33
|
(56) вот php
как там идёт сортировка массива ? |
|||
64
Чел
24.03.12
✎
15:33
|
+ (60) или хотя бы (21)
|
|||
65
GROOVY
24.03.12
✎
15:33
|
(61) Вот кто бы мне это показал когда я изучал эти штуки... :)
|
|||
66
yuli4ka
24.03.12
✎
15:34
|
Я с этого http://v8.1c.ru/metod/books/book.jsp?id=187 и начала изучение 1С. А это задание мне дали сделать для поступления на курсы.
|
|||
67
Офелия
24.03.12
✎
15:36
|
(65) :)
а я изучала по книжке "алгоритмы и структуры данных", тоже классно было для своего времени |
|||
68
Чел
24.03.12
✎
15:36
|
(66) если не можешь решить задание для поступления на курсы - значит курсы еще не для твоего уровня. Найди курсы более адекватные твоим нынешним знаниям.
|
|||
69
Lama12
24.03.12
✎
15:37
|
(45) Класс!
Такой визуализации алгоритма быстрой сортировки я еще не видел. |
|||
70
yuli4ka
24.03.12
✎
15:37
|
спасибо за совет
|
|||
71
GROOVY
24.03.12
✎
15:37
|
(66) Тогда ответьте на вопросы по пунктам из (53).
|
|||
72
HeroShima
24.03.12
✎
15:39
|
Ужас..
|
|||
73
yuli4ka
24.03.12
✎
16:53
|
ссылка есть у кого нибудь на nasf\гилиев_базовый\BLOCK_1
|
|||
74
GROOVY
24.03.12
✎
16:54
|
(73) spec8.ru
|
|||
75
GROOVY
24.03.12
✎
16:57
|
Вот тебе ссылки на офф халяву:
http://www.spec8.ru/free-materials http://easyedu.ru/category/prog82/step1/ http://chistov.spb.ru/forum/38 http://chistov.spb.ru/publ/free_webinar/6 Хотя если книжку осилила, то тебе все это не пригодится... Ну и нигде тебе про методы сортировки, описание переменных, работу с циклами рассказывать не будут. |
|||
76
yuli4ka
24.03.12
✎
17:00
|
а где про методы сортировки можно посмотреть?
|
|||
77
Чел
24.03.12
✎
17:00
|
||||
78
yuli4ka
24.03.12
✎
17:02
|
(77)-это понятно, какие книги посоветуете?
|
|||
79
GROOVY
24.03.12
✎
17:07
|
(78) http://www.booksgid.com/programmer/4684-donald-knut.-iskusstvo.html
Дональд Кнут, Искусство программирования, том.3 |
|||
80
GROOVY
24.03.12
✎
17:08
|
+79 Знания полученные из этой книги никак не помогут в кодинге на 1С.
|
|||
81
Чел
24.03.12
✎
17:08
|
(78) а для чего тебе это? Ты собираешься серьёзно заниматься разработкой алгоритмов? Или ты учишься программировать на 1С? Нам в школе на информатике рассказали 2 алгоритма - пузырьком и max/min. Изучение этих методов было исключительно в рамках учебного процесса (чтобы мозги развивать в нужном направлении). А на деле - все методы давно реализованы и рассованы по библиотекам. 1С умеет сортировать некоторые объекты средствами платформы (уж какой там метод заложен - не в курсе). И любой программер никогда не станет сортировать массив руками (т.е. пузырьком и т.п.) - он загонит его в какой-нибудь объект (например ТаблицаЗначений) и отсортирует средствами платформы.
|
|||
82
yuli4ka
24.03.12
✎
17:13
|
программировать на 1С, но что-бы решить поставленную задачу, нужно разобраться и в сортировке массива
|
|||
83
GROOVY
24.03.12
✎
17:16
|
(82) Вы перебрать элементы массива сможете?
|
|||
84
yuli4ka
24.03.12
✎
17:18
|
смогу
|
|||
85
GROOVY
24.03.12
✎
17:24
|
Структуру в массив поместит сможете?
|
|||
86
Чел
24.03.12
✎
17:26
|
(82) тогда напиши самый простейший вариант - отсортируй методом пузырька:
Процедура СортировкаПузырьком(МойМассив) Для Сч1 = 1 по РазмерМассива Цикл Для Сч2 = 1 по РазмерМассива Цикл Если МойМассив[Сч1] > МойМассив[Сч2] Тогда А = МойМассив[Сч1]; МойМассив[Сч2] = МойМассив[Сч1]; МойМассив[Сч2] = А; КонецЕсли; КонецЦикла; КонецЦикла; КонецПроцедуры |
|||
87
Чел
24.03.12
✎
17:27
|
ну или что-то типа того... Навскидку написал...
|
|||
88
yuli4ka
24.03.12
✎
17:32
|
спасибо, буду разбираться
|
|||
89
acsent
24.03.12
✎
17:54
|
Для Сч2 = Сч1 по РазмерМассива
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |