|
Упорядочивание элементов | ☑ | ||
---|---|---|---|---|
0
Nykos
29.08.13
✎
12:16
|
Привет форумчане. Подскажите пожалуйста, как можно упорядочить данное поле?
http://www.cyberforum.ru/attachments/300786d1376978811 |
|||
1
ale-sarin
29.08.13
✎
12:18
|
Так же, как сделана нумерация документов и справочников в 1С. Не 1, а 01, и.т.д.
|
|||
2
ale-sarin
29.08.13
✎
12:19
|
+1 Т.е. 1.1.02, вместо 1.1.2
|
|||
3
Nykos
29.08.13
✎
12:26
|
Для тех, кто не видит картинку:
http://2.firepic.org/2/images/2013-08/29/swruzrfjozc7.jpg (2)Справочник время от времени выгружается из Екселя, и там такая нумерация. Заставить человека в Экселе заполнять 01 вместо 1 вряд ли удастся) Да и в 1С выглядеть будет для пользователя "некрасиво". Все, что приходит на ум это создать дополнительное поле с нумерацией вида "01" и с помощью обработчика закинуть туда имеющееся поле, которое преобразуется к понятной 1С нумерации. А потом, соответственно, сортировать по созданному полю, которое можно скрыть. Может как-то так? |
|||
4
Maxus43
29.08.13
✎
12:37
|
Маску номера можно покурить ещё
|
|||
5
Nykos
29.08.13
✎
12:51
|
(4) что-то почитал я про маску и ни разу не ясно как это мне поможет
|
|||
6
Maxus43
29.08.13
✎
12:55
|
(5) маска сама подставит 0 впереди например
|
|||
7
Nykos
29.08.13
✎
14:16
|
(6) ну допустим, но его же не везде надо будет подставлять, только в некоторых позициях. перебором что-ли? или как? где можно почитать про это, а то кругом автомобильные и телефонные номера в примерах, мне это вообще не катит я так понял
|
|||
8
Nykos
30.08.13
✎
16:43
|
Вот смотрите. В справочнике есть поле Номер вида:
1.1.8 1.1.9 1.1.10 1.1.11 1.1.12 При помощи следующих махинаций - Пока Результат.Следующий() Цикл Объект = Результат.Ссылка.ПолучитьОбъект(); Объект.Код = "0" + Лев(СтрЗаменить(Объект.НомерРасценки, ".", "0")+"00000000",9);//неясно как, но работает Объект.Записать(); КонецЦикла; - получаю поле Номер вида: 0101080000 0101090000 0101010000 0101011000 0101012000 Помогите пожалуйста переделать код так, чтобы поле Номер имело вид: 0101080000 0101090000 0101100000 0101110000 0101120000 В ёкселе такого результата можно добиться следующим способом (если кто-то шарит в VBA): Sub tralala() beg_r = 16 end_R = 871 For i = beg_r To end_R v = Trim$(Cells(i, 6).Value) + "." new_v = "" Do While Len(v) > 0 pos_t = InStr(1, v, ".") sv = Mid$(v, 1, pos_t - 1) sv = Right("00" + sv, 2) new_v = new_v + sv v = Mid$(v, pos_t + 1) Loop new_v = Left(new_v + "0000000000000000000", 10) Cells(i, 15) = new_v Next i End Sub |
|||
9
bborisko
30.08.13
✎
16:46
|
(8) Так и выполни его в екселе перед загрузкой.
|
|||
10
Nykos
30.08.13
✎
17:35
|
Так а если все-таки в 1с?
|
|||
11
Nykos
30.08.13
✎
17:49
|
Или объясните плиз, почему при выгрузке из экселя в иерархический справочник обычным элементам номенклатуры присваивается значение в поле, а родителю нихрена не присваивается?
|
|||
12
Nykos
30.08.13
✎
17:50
|
реквизиты для групп и элементов стоят
|
|||
13
Ёпрст
30.08.13
✎
17:56
|
(0) новая текстовая колонка с формулой + упорядочивание по этой колонке.
В формулу - тупо так: 100*число1+10*число2+*число3 где 1.1.10 = число1.число2.число3, т.е число1=1 число2=1 число3=10 |
|||
14
Rie
30.08.13
✎
17:59
|
(8) InStr - Найти, Mid - Сред, Left - Лев.
Алгоритм тот же. |
|||
15
Nykos
30.08.13
✎
18:08
|
(13) Дак я так и стараюсь сделать блин, только оно напротив родителя пустое поле оставляет
|
|||
16
Nykos
30.08.13
✎
18:08
|
и при упорядочивании все равно лабуда получается, все "папки" вверху списка
|
|||
17
Nykos
02.09.13
✎
09:59
|
в итоге за выходные нифига с места не сдвинулся
|
|||
18
Nykos
02.09.13
✎
12:35
|
(13) а как правильно переменные определить эти? число1 число2 и тд. у меня же не тупо 1.1.10, но и 2.7.24 например. Как это все грамотно прописать, подскажи пожалуйста
|
|||
19
Nykos
02.09.13
✎
12:49
|
и как быть если у меня число3 вообще нету, например 1.1
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |