Имя: Пароль:
1C
1С v8
Упорядочивание элементов
,
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