Имя: Пароль:
1C
1C 7.7
v7: Как назначить вид?
, ,
0 DrRaptor
 
10.09.13
18:19
Есть документ. В нем реквизит типа <Документ>. Нужно при  создании документа присвоить реквизиту вид в зависимости от ситуации.
Вот часть текста:
  Если Найти(ТипИсполнения.Идентификатор(),"ДС")>0 Тогда
     НазначитьВид(ДокументЗайма,"ОперацияДС");
  ИначеЕсли Найти(ТипИсполнения.Идентификатор(),"ЦБ")>0 Тогда
     НазначитьВид(ДокументЗайма,"ОперацияЦБ");
  КонецЕсли;

Проверяю про Отладчику:
Команда НазначитьВид отрабатывается, а вид не присваивается. В чем дело?

Вот что выдается в отладчике:
  ДокументЗайма.Вид() = ""
  Найти(ТипИсполнения.Идентификатор(),"ДС") = 24
1 DrRaptor
 
11.09.13
11:29
Кто-нибудь, подскажите, пожалуйста, в чем может быть дело.
2 Bigbro
 
11.09.13
11:41
ну в указанной части кода проблем не видно, что еще сказать )
3 DrRaptor
 
11.09.13
12:06
Может есть какие-то ограничения на использование команды?
4 Хряк
 
11.09.13
12:47
какой тип у реквизита ДокументЗайма
5 DrRaptor
 
11.09.13
12:53
реквизит типа <Документ>
6 DrRaptor
 
11.09.13
12:57
Я уже создал новый пустой вид документа. В нем реквизит "Новый1" с типом <Документ>. В форме одна процедура при открытии с командой
НазначитьВид(новый1,"ОперацияЦБ");

Все равно вид не назначается! Может в глобальном модуле нужно какое-то разрешение установить, галочку где-то поставить... Может нельзя вообще реквизиту документа вид назначать...
7 Voronve
 
11.09.13
12:57
НазначитьТип(<?>,,,)
Синтаксис:
НазначитьТип(<ИмяРеквизита>,<ИмяТипа>,<Длина>,<Точность>)
Назначение:
Назначить тип для реквизита неопределенного типа.
Параметры:
<ИмяРеквизита> - строка с наименованием реквизита неопределенного типа, как он назван в конфигураторе.
<ИмяТипа> - строковое выражение - название типа данных (или Вид субконто), который назначается реквизиту. Например, ''Строка'', ''Число'', ''Справочник.Товары'', ''Документ.РасходнаяНакладная'' и т.п.
<Длина> - необязательный параметр. Число - длина поля представления данных. Имеет смысл только при задании числового или строкового типа.
<Точность> - необязательный параметр. Число знаков после десятичной точки. Имеет смысл только при задании числового типа.
8 DrRaptor
 
11.09.13
13:02
ну НазначитьТип то понятно что работает, тут все нормально.
Вопрос то про НазначитьВид
9 Aleksey
 
11.09.13
13:03
(8) а попробуй добавить



Если Найти(ТипИсполнения.Идентификатор(),"ДС")>0 Тогда
     НазначитьВид(ДокументЗайма,"ОперацияДС");
ДокументЗайма=ПолучитьПустоеЗначение("Документ.ОперацияДС");
  ИначеЕсли Найти(ТипИсполнения.Идентификатор(),"ЦБ")>0 Тогда
     НазначитьВид(ДокументЗайма,"ОперацияЦБ");
ДокументЗайма=ПолучитьПустоеЗначение("Документ.ОперацияЦБ");
  КонецЕсли;
10 Хряк
 
11.09.13
13:04
неизменятьвид не забудь
11 Aleksey
 
11.09.13
13:06
Форма.ДокументЗайма.НеИзменятьВид(1);
12 DrRaptor
 
11.09.13
13:12
Спасибо.

Вот так работает:
Форма.ДокументЗайма.НеИзменятьВид(1);    
    
    Если Найти(ТипИсполнения.Идентификатор(),"ДС")>0 Тогда
        НазначитьВид(ДокументЗайма,"ОперацияДС");        
    ИначеЕсли Найти(ТипИсполнения.Идентификатор(),"ЦБ")>0 Тогда
        НазначитьВид(ДокументЗайма,"ОперацияЦБ");        
    КонецЕсли;
13 DrRaptor
 
11.09.13
13:13
А я считал, что НеИзменятьВид(0) - типа так дается разрешение на присвоение нового вида. Думал, что (1) вообще запрещает менять вид. Пробовал вообще без НеИзменятьВид - не помогало.
14 DrRaptor
 
11.09.13
14:13
Все работает, но проверка вида в отладчике все равно ничего не показывает:
ДокументЗайма.Вид() = ""
че за хрень?
15 Voronve
 
11.09.13
14:17
(14) Все логично. .Вид() - возвращает тебе "РасходнаяНакладная" из "Документ.РасходнаяНакладная". Если документ пустой (не выбран) .Вид() вернет тебе пустую строку
16 DrRaptor
 
11.09.13
14:20
а как тогда узнать какой вид назначен реквизиту?
17 DrRaptor
 
11.09.13
16:08
как узнать какой вид назначен реквизиту?
18 viktor_vv
 
11.09.13
16:13
А если вид назначать так

ДокументЗайма = ПолучитьпустоеЗначение("Докмент.ОперацияДС");

что даст ДокументЗайма.Вид() ?
19 Chum
 
11.09.13
16:14
Еще есть ВидыДляВыбора
20 viktor_vv
 
11.09.13
16:16
(18)+ Не, не поможет.
21 DrRaptor
 
11.09.13
16:17
ПолучитьпустоеЗначение("Докмент.ОперацияДС") вообще ничего не дает
22 DrRaptor
 
11.09.13
16:20
Когда вид реквизита задан жестко в конфигураторе, все условия, сравнения и прочее работают нормально даже при невыбранном значении реквизита ДокументЗайма.
Как только делаю неопределенный документ - все слетает, ничего не работает! Присвоение вида реквизиту в самом начале работы формы не помагает.
23 DrRaptor
 
12.09.13
10:54
Никто ответа не знает?