Имя: Пароль:
1C
1С v8
БП2.0 ОСВ по счету. СКД Выражение представления
0 nkolp
 
17.03.14
15:44
Задача: В ОСВ по счету изменить представление поля Субконто1 - для субконто Контрагенты показать НаименованиеПолное, а не основное представление.
Изначельно в типовой В этом поле написано выражение -

Выбор
    Когда Не ЗначениеЗаполнено(Субконто1) Тогда "<...>"  
    Иначе Субконто1
Конец

Добавляю условие -
Выбор
    Когда Не ЗначениеЗаполнено(Субконто1) Тогда  "<...>"  
    Когда Субконто1 ССЫЛКА Справочник.Контрагенты Тогда ВЫРАЗИТЬ(Субконто1 КАК Справочник.Контрагенты).НаименованиеПолное
    Иначе Субконто1
Конец

Система пишет - Ожидается ключевое слово "Тогда"
Пробовал так:

Выбор
    Когда Не ЗначениеЗаполнено(Субконто1) Тогда  "<...>"  
    Когда (Субконто1 ССЫЛКА Справочник.Контрагенты) Тогда ВЫРАЗИТЬ(Субконто1 КАК Справочник.Контрагенты).НаименованиеПолное
    Когда Истина Тогда Субконто1
Конец

Пишет - Ожидается )")"

Пробовал даже так:

Выбор
    Когда Не ЗначениеЗаполнено(Субконто1) Тогда  "<...>"  
    Когда ТИПЗНАЧЕНИЯ(Субконто1)=  ТИП(Справочник.Контрагенты) Тогда ВЫРАЗИТЬ(Субконто1 КАК Справочник.Контрагенты).НаименованиеПолное
    Когда Истина Тогда Субконто1
Конец

Всё равно - синтаксическая ошибка ???
Где засада?
1 nkolp
 
17.03.14
15:55
Пробовал даже вставлять внутрь ещё один оператор ВЫБОР
2 nkolp
 
17.03.14
15:58
В самом запросе  менять ссылку на строку нельзя - это Измерение СКД
3 nkolp
 
17.03.14
16:35
Получилось с использованием экспортной функции в общем модуле, но это не вариант - надо менять типовую.
4 Ksandr
 
17.03.14
16:56
В выражении представления использовать Ссылка было нельзя, как сейчас не знаю.
Поиграй с ВЫРАЗИТЬ и сравнивай с пустым значением
5 nkolp
 
17.03.14
17:13
Спасибо(4) :) Сделал в модуле объекта - изменил представление программно (см. комменты //-> //<-):

Процедура СформироватьОтчет(Результат = Неопределено, ДанныеРасшифровки = Неопределено, ВыводВФормуОтчета = Истина, ВнешниеНаборыДанных = Неопределено, ВыводитьПолностью = Истина) Экспорт
    
    Результат.Очистить();
    
    Настройки = КомпоновщикНастроек.ПолучитьНастройки();
    ВыводЗаголовкаОтчета(ЭтотОбъект, Результат);
    Если ВыводитьПолностью Тогда
        ДоработатьКомпоновщикПередВыводом(ВнешниеНаборыДанных);
        КомпоновщикНастроек.Восстановить();
        НастройкаКомпоновкиДанных = КомпоновщикНастроек.ПолучитьНастройки();
        КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
        //->
        МассивТипов = Новый Массив;
        МассивТипов.Добавить(Тип("СправочникСсылка.Контрагенты"));
        Если ЭтотОбъект.СхемаКомпоновкиДанных.НаборыДанных.ОсновнойНаборДанных.Поля[0].ТипЗначения = Новый ОписаниеТипов(МассивТипов) Тогда
            ЭтотОбъект.СхемаКомпоновкиДанных.НаборыДанных.ОсновнойНаборДанных.Поля[0].ВыражениеПредставления =
            "Субконто1.НаименованиеПолное";
        КонецЕсли;
        //<-
        СтандартныеОтчеты.ВывестиОтчет(ЭтотОбъект, Результат, ДанныеРасшифровки, ВыводВФормуОтчета, ВнешниеНаборыДанных, Истина, НастройкаКомпоновкиДанных);
    КонецЕсли;
    ВыводПодписейОтчета(ЭтотОбъект, Результат);
    
    Если ВыводитьПолностью Тогда
        // Выполним дополнительную обработку Результата отчета
        ОбработкаРезультатаОтчета(Результат);
        
        // Сохраним настройки для Истории
        СтандартныеОтчеты.СохранитьНастройкуДляИстории(ЭтотОбъект);
    КонецЕсли;
    
КонецПроцедуры
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.