Вход | Регистрация

1С:Предприятие ::

Метки: 

Представление документа в СКД

Я
   MistaEr
 
14.09.18 - 17:03
Всем доброго времени!
Отчет СКД. Выводятся много документов. Представление документов строится в общем модуле, "Мой документ " + Документ.Организация + Документ.Подразделение + Документ.Номер + Документ.Дата.
Документ.Дата нужно получить без времени. Ну ладно, я согласился что в запросе невозможно привести дату в нужный мне формат и представление документа собрал вручную в общем модуле. В консоле запросов ПредставлениеСсылки(Документ) тоже красиво все выводит, но проходит через процедуру много раз, это не оптимально.
В СКД строю отчет, отчет выполняется в фоне, представление берется так же из процедуры события. Это же тоже не оптимально?
 
 
   Пуля
 
1 - 14.09.18 - 17:07
Отрежь последние 8 символов
   MistaEr
 
2 - 14.09.18 - 17:10
(0) Собрал бы я представление документа не показывая ссылку, снова даты лезут с временем. Формат не работает и в вычисляемых выражениях и в пользовательских полях тоже
   MistaEr
 
3 - 14.09.18 - 17:11
(1) Дату не получится со строкой сложить
   Cool_Profi
 
4 - 14.09.18 - 17:13
Сделай общий модуль с повторно используемыми значениями.
Будет быстрей.
   MistaEr
 
5 - 14.09.18 - 17:14
(4) Входящие параметры будут разные документы. Смысл?
   Пуля
 
6 - 14.09.18 - 17:22
(3) Получится
   dmt
 
7 - 14.09.18 - 17:26
(2) давно ли это Формат не работает?
   MistaEr
 
8 - 14.09.18 - 17:33
(7) Как я понял там язык запросов только
   MistaEr
 
9 - 14.09.18 - 17:33
(6) Подскажи
   dmt
 
10 - 14.09.18 - 17:38
(8) в вычисляемых выражениях? нет, смело пиши Формат(, "ДФ=dd.MM.yy")
 
 Рекламное место пустует
   MistaEr
 
11 - 14.09.18 - 18:20
Спасибо поробую
   echo77
 
12 - 15.09.18 - 12:19
(0)
Вот так писал:

// Функция возвращает представление документа в виде Документ.Синоним <Номер> от <Год>г.

//
// Параметры:

//  Документ     - ДокументСсылка/ДокументОбъект
//    Дата        - Дата и время документа. Это для того чтобы исключить обращение к БД

//
// Возвращаемое значение:

//   Строка   - Строка вида Заказ на производство 00000043750 от 2016 г.
//

Функция ПолучитьКраткоеПредставлениеДокумента(Документ, Дата = Неопределено) Экспорт
    
    Если Не ЗначениеЗаполнено(Документ) Тогда
        Возврат Документ
    КонецЕсли;
    
    Попытка
        ДатаДокумента = ?(Дата <> Неопределено, Дата, Документ.Дата);
        
        ДокументПредставление = Строка(Документ);
        
        ДокументПредставление = СтрЗаменить(Документ, ДатаДокумента, "");
        ДокументПредставление = ДокументПредставление + Формат(ДатаДокумента, "ДФ='yyyy ""г.""'");
        
        Возврат ДокументПредставление
    Исключение
        // Если что-то пошло не так - возвращаем то что получили

        Возврат Документ
    КонецПопытки;
    
КонецФункции

Чтобы не ходить каждый раз в базу данных делаем так: создаем функцию, которая на входе получает параметры примитивных типов(Строка, число, дата), минимум ссылок - чтобы не ходит в БД.
А в СКД, при вызове этой функции передаем ей параметры так Строка(Документ.Организация), Строка(Документ.Подразделение),  Документ.Номер, Документ.Дата

в итоге СКД на этапе запроса получит представления этих данных
   EvgeniuXP
 
13 - 16.09.18 - 15:56
Или запиши представление сразу в базу и вытягивай от туда.


Список тем форума
Рекламное место пустует Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует