Имя: Пароль:
1C
1C 7.7
v7: Вопрос к семерочникам по преобразованию реквизитов
0 Skylark
 
16.10.11
17:59
Есть реквизит типа Число 6.0, надо его преобразовать в тип Строка 6.

- меняю в конфигураторе тип реквизита на Строка 7
- сохраняю
- обработкой обрезаю лишние пробелы
- меняю в конфигураторе тип реквизита на Строка 6
- сохраняю

Вроде все получается как надо. Подскажите, нет ли может каких "подводных камней"? База очень ответственная.
1 Зеленый Кот
 
16.10.11
18:01
нет
2 Злопчинский
 
16.10.11
18:05
правда непонятно зачем в строку 7 сначала делать...
3 Skylark
 
16.10.11
18:08
Если сразу преобразовать к Строка 6, добавится пробел вначале, а последний символ обрежет
4 Мимохожий Однако
 
16.10.11
18:12
Я бы добавил реквизит Строка 6, добавил обработкой. На всех формах изменил ссылку на новый реквизит. Если "база ответственная".
5 Voronve
 
16.10.11
18:12
(0) 1. Заводишь реквизит типа строка (6 символов)
2. Обработкой, из режима предприятия, заполняешь как нужно.
3. Сносишь реквизит типа число.
4. Переименовываешь реквизит типа строка.
6 Skylark
 
16.10.11
18:14
Новый реквизит не прокатит. К нему есть обращение в коде, причем как по 1с-скому имени, так и в прямых запросах
7 acsent
 
16.10.11
18:15
(6) И что?
8 Злопчинский
 
16.10.11
18:16
(3) не знал...
9 EvgeniuXP
 
16.10.11
18:18
(6) переименуй реквизит числа в другое имя, а строковый реквизит под старое имя реквизита числа.
10 EvgeniuXP
 
16.10.11
18:19
в случае чего - потом восстановишь :)
11 DJ Anthon
 
16.10.11
18:20
(6) - в (0) самый лучший и универсальный способ
12 Voronve
 
16.10.11
18:21
(6) В прямых запросах обращение идет через .Реквизит или через .SP<номер> ?
13 Skylark
 
16.10.11
18:21
Просьба переименования больше не советовать.

Высказывайтесь, кто в теме по (0)
14 Skylark
 
16.10.11
18:21
(12) через sp
15 Voronve
 
16.10.11
18:22
(14) Тогда крутиться как ты предложил
16 BlackSeaCat
 
16.10.11
18:54
Я бы способ из (4) видоизменил так:

1. Добавил временный реквизит Строка6.
2. Обработкой записал в него преобразованное как надо значение из имеющегося Число6.
3. Изменил тип требуемого реквизита на Строка6.
4. Обработкой перенес в него значения из временного реквизита.
5. Уничтожил временный реквизит.
17 Гость2
 
16.10.11
20:01
(16) Самое верное решение
18 Злопчинский
 
16.10.11
21:00
(16,17) в итоге в (0) получилось правильное решение с меньшим количеством телодвижений
19 BlackSeaCat
 
16.10.11
21:15
(18) Если стремиться в первую очередь к наименьшему количеству телодвижений, то "правильным" решением будет одноходовка типа "Изменить реквизит на строка 6".

Вот только беда - вылезает непонятный глюк платформы, о котором далеко не все знают (я - в их числе). Кто даст гарантию, что этот глюк - единственный?

По крайней мере, лично я бы в такой ситуации сперва применил именно одноходовку, а обнаружив баг - способ из (16) без вариантов.

Кроме того, мой способ универсален - если требуется не преобразование "в лоб", а с префиксами и т.п., то... sapienti sat.
20 Skylark
 
16.10.11
21:21
Вот жеж народ :-)
Да мало ли как это можно сделать.
Вопрос был к тем, кто "знает" - нет ли еще каких неочевидных вещей, вроде (3)
И не надо, кстати, обзывать это багом, я думаю такое поведение платформы обосновано.
21 acsent
 
16.10.11
21:58
(20) Блжд, ты же сделал уже все, че очкуешь то?
AdBlock убивает бесплатный контент. 1Сергей