Имя: Пароль:
1C
 
Привести к типу
0 Mandel
 
30.03.11
17:16
У меня в регистре есть измерение с составным типом: справочник и строка.
как мне обходя записи регистра через набор записей привести все значения измерения к типу строка?
1 Scooter
 
30.03.11
17:18
(0)ну например был у измерения тип Справочник какую строку вы хотите получить? Наименование?
2 Ненавижу 1С
 
гуру
30.03.11
17:19
Если ТипЗнч(Запись.Измерение)=Тип("Строка") Тогда
 Результат = Запись.Измерение;
Иначе
 Результат = Запись.Измерение.Наименование;
КонецЕсли;
3 Mandel
 
30.03.11
17:20
Например, да.
но а ,например,"привести" нет такого метода?
4 Ненавижу 1С
 
гуру
30.03.11
17:22
(3)


ОписаниеТипов (TypeDescription)
ПривестиЗначение (AdjustValue)
Синтаксис:

ПривестиЗначение(<Значение>)
Параметры:

<Значение> (необязательный)

Тип: Произвольный. Значение, которое будет приводиться.
Возвращаемое значение:

Тип: Произвольный. Если значение передано, то выполняется проверка на соответствие значения описанию типа. Если значение соответствует, то метод возвращает переданное значение. Если значение не соответствует, то оно приводится к типу, доступному в описании типа.
Если значение не передано, то выдается значение по умолчанию для данного описания типа.
Описание:

Формирует значение на основании описания типа и переданного значения.

Доступность:

Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Пример:

// В форме расположено табличное поле Товары, в котором для ячейки
// колонки Номенклатура определено событие НачалоВыбора, процедура
// обработчик которого приведена в примере
Процедура ТоварыНоменклатураНачалоВыбора(Элемент,СтандартнаяОбработка)
   ТипСтр = "СправочникСсылка.Номенклатура";
   Элемент.ОграничениеТипа = Новый ОписаниеТипов(ТипСтр);
   Значение = Элемент.Значение
   Элемент.Значение = Элемент.ОграничениеТипа.ПривестиЗначение(Значение);
   Элемент.ВыбиратьТип = Ложь;
КонецПроцедуры
5 Scooter
 
30.03.11
17:23
(3)а чем тебе (2) не нравится

Можно еще
Результат = СокрЛП(Строка(Запись.Измерение));
6 Mandel
 
30.03.11
17:23
ну это на элементы формы. а мне на измерение регистра.
7 Mandel
 
30.03.11
17:24
да у меня просто такое чувство, что есть запись, у которой тип вообще не соответствует не одному типу моего измерения.
8 Mitriy
 
30.03.11
17:25
ЗаписьНабора.Измерение1 = Строка(ЗаписьНабора.Измерение);
9 Mitriy
 
30.03.11
17:25
(7) угу... Неопределено...
10 Mandel
 
30.03.11
17:25
т.е. тип измерения = справочник,
а в предприятии тип строка или неопределено или документ
11 Mandel
 
30.03.11
17:25
да я понимаю, что это фантастика )
12 Mitriy
 
30.03.11
17:25
(8)* ЗаписьНабора.Измерение1 = Строка(ЗаписьНабора.Измерение1);
13 Mitriy
 
30.03.11
17:26
(11) реквизит составного типа может принимать либо тип из описанных, либо Неопределено, если тип не выбран...
14 Mandel
 
30.03.11
17:28
понимаю. ну да ладно тогда.
а скажите мне тогда такую вещь. в запросе по остаткам по всем измеренияи и ресурсам (без группировки) могут быть такие две записи:
измерени1 измерени2 10 рублей
измерени1 измерени2 -10 рублей
15 Mitriy
 
30.03.11
17:33
ну... раз просишь:

в запросе по остаткам по всем измеренияи и ресурсам (без группировки) могут быть такие две записи:
измерени1 измерени2 10 рублей
измерени1 измерени2 -10 рублей
16 Mandel
 
31.03.11
07:16
это почему же? вообще свернуться должны
17 Mandel
 
31.03.11
07:42
например, такой же ситуации не должно быть:
ИП "Иванов"  Валенки 10
ИП "Иванов"  Валенки -10
18 Dmitrii
 
гуру
31.03.11
08:05
(17) Смотри в отладчике значение измерений в полученной таблице.

Уверен, что в первой строке ИП "Иванов" - строка, а во втором - справочник. Ну или с валенками таже история - в первой строке Валенки - это строка, а во втором - ссылка на элемент справочника.

(11) >> да я понимаю, что это фантастика )

Это не фантастика. Это всего лишь кривые руки авторов конфигурации, которые делая запись в регистр не озаботились о приведении к пустому значению любого из доступных типов. Что касается составных типов, то тебе уже написали, что если тип значения не установлен, то значение как раз и будет Неопределено.
19 Mandel
 
31.03.11
12:45
по крайней мере типы совпадают.
20 Mandel
 
31.03.11
14:04
ну а если и типы совпадают и значения, но запрос все равно такие цифры выдает, то что делать?
21 Mandel
 
31.03.11
16:38
в sql может что-то запустить?
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан