Получить номер и дату документа в запросе

1. Craig 275 14.08.13 12:03 Сейчас в теме
Добрый день.

Не могу найти информацию об объединение в запросе даты и номера документа.
Вот простой запрос.
"ВЫБРАТЬ
| ПоступлениеТоваровУслуг.Ссылка,
| ПоступлениеТоваровУслуг.Номер,
| ПоступлениеТоваровУслуг.Дата
|ИЗ
| Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг"

Мне на выходе надо получить "Документ №000000153 от 01.08.2013".

Как, подскажите?
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
13. vladir 115 14.08.13 16:05 Сейчас в теме
(1) Ежели уж очень хочется, то можно сделать так:
ВЫБРАТЬ
	ПоступлениеТоваровУслуг.Ссылка,
	ПоступлениеТоваровУслуг.Представление,
	ПоступлениеТоваровУслуг.Номер,
	ПоступлениеТоваровУслуг.Дата,
	ВЫБОР
		КОГДА ДЕНЬ(ПоступлениеТоваровУслуг.Дата) = 1
			ТОГДА "01"
		КОГДА ДЕНЬ(ПоступлениеТоваровУслуг.Дата) = 2
			ТОГДА "02"
		КОГДА ДЕНЬ(ПоступлениеТоваровУслуг.Дата) = 3
			ТОГДА "и т.д."
		ИНАЧЕ "хх"
	КОНЕЦ КАК ДеньСтрокой,
	ВЫБОР
		КОГДА МЕСЯЦ(ПоступлениеТоваровУслуг.Дата) = 1
			ТОГДА "01"
		КОГДА МЕСЯЦ(ПоступлениеТоваровУслуг.Дата) = 2
			ТОГДА "02"
		КОГДА МЕСЯЦ(ПоступлениеТоваровУслуг.Дата) = 3
			ТОГДА "и т.д."
		ИНАЧЕ "хх"
	КОНЕЦ КАК МесяцСтрокой,
	ВЫБОР
		КОГДА ГОД(ПоступлениеТоваровУслуг.Дата) = 2012
			ТОГДА "2012"
		КОГДА ГОД(ПоступлениеТоваровУслуг.Дата) = 2013
			ТОГДА "2013"
		КОГДА ГОД(ПоступлениеТоваровУслуг.Дата) = 2014
			ТОГДА "и т.д."
		ИНАЧЕ "хххх"
	КОНЕЦ КАК ГодСтрокой
ПОМЕСТИТЬ ВТ
ИЗ
	Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
ГДЕ
	ПоступлениеТоваровУслуг.Дата >= &Дата
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ.Ссылка,
	ПРЕДСТАВЛЕНИЕ(ВТ.Ссылка),
	ВТ.Номер,
	ВТ.ДеньСтрокой,
	ВТ.МесяцСтрокой,
	ВТ.ГодСтрокой,
	"Документ №" + ВТ.Номер + " от " + ВТ.ДеньСтрокой + "." + ВТ.МесяцСтрокой + "." + ВТ.ГодСтрокой КАК Хотелка
ИЗ
	ВТ КАК ВТ
Показать

только муторно столько писать...
14. Craig 275 14.08.13 16:30 Сейчас в теме
(13)
Спасибо. Если так сделать, то я себя буду чувствовать извращенцем :Д
15. vladir 115 14.08.13 16:40 Сейчас в теме
(14) Craig, Ну а по другому, в смысле без извращений - НИКАК... :)))
2. M.Flint 14.08.13 12:04 Сейчас в теме
По-моему, для этого достаточно ссылки.
4. Craig 275 14.08.13 12:34 Сейчас в теме
(2) и (3)

Ссылка содержит "Поступление товаров и услуг 00000000701 от 14.05.2013 17:10:26" а мне надо "Документ №00000000701 от 14.05.2013", что в 2,5 раза короче длины "Ссылки".

В отчете не красиво смотрится, слишком много место занимает. Хочется укоратить
3. ben_art 13 14.08.13 12:17 Сейчас в теме
а зачем вам и ссылка и дата и номер
у меня все это и так в поле ссылка )
ну или у меня какая то особенная конфигурация
5. Reptile 36 14.08.13 13:27 Сейчас в теме
В языке запросов 1С (текущей версии) невозможно соединять значения колонок, отличающихся от типа строка в одну строку.
Например, можно написать (при условии, что код текстовый):
Таб.Код + "_" + Таб.Наименование КАК Поле1,

Но нельзя написать:
Таб.Дата + Таб.Наименование.

Также не прокатит выражение типа
ВЫРАЗИТЬ(Таб.Дата КАК СТРОКА) + Таб.Наименование


Более того я делал так:
ВЫБРАТЬ Представление(Дата) КАК ДатаСтрокой,
        Наименование КАК Наименование
ПОМЕСТИТЬ ВремТабл
;
ВЫБРАТЬ ДатаСтрокой + Наименование КАК Поле 1
ИЗ ВремТабл

Также не сработало (по крейней мере у меня).

На ИС есть несколько примеров как приводить дату,число к строке, но все они не очень простые и требуют дополнительных запросов.
9. Bukaska 147 14.08.13 14:27 Сейчас в теме
(5) Reptile, А причём тут крутиться внутри СКД?
Сразу же на вкладке набор данных есть колонки Выражение и есть колонка Оформления.. там судя по книге Хрусталевой как - только ни крути))) И в лекциях гилёва есть это
10. Reptile 36 14.08.13 14:41 Сейчас в теме
(9) Bukaska, я про СКД ничего не писал ))
А если используется СКД, то действительно в колонке ВыражениеПредставление можно написать что-то типа этого - все работает:
"Документ" + " №" + Номер + " от " + Формат(Дата,"ДФ=dd.MM.yyyy")
11. Craig 275 14.08.13 14:57 Сейчас в теме
(10) Метод работает. Но интересует не СКД, а запрос.
12. Reptile 36 14.08.13 15:35 Сейчас в теме
(11) Craig,
в запросе, как я и писал ранее, у меня не получилось никак.
А по поводу почему 1С не сделал такую простую вещь в языке запросов,то это вопрос риторический.
К этому же вопросу же можно отнести (из того к чему я привык на MSSQL)
- остутствие кореллированых подзапросов, например таких:
ВЫБРАТЬ Таб.*,
        (ВЫБРАТЬ ПЕРВЫЕ 1 Поле
         ИЗ Таб2
         ГДЕ Таб2.Ссылка = Таб.Ссылка
         УПОРЯДОЧИТЬ ПО Таб2.Дата) КАК ПервоеЗначение
ИЗ Таб

- отутствие возможности добавлять колонку IDENTITY во временную таблицу
- получение текстовой ссылки (ГУИД) на объект
- update, хотя бы для временных таблиц
Это уже не говоря про все расширения языка SQL, поддерживаемые MSSQL, например CROSS APPLY )
6. de0nis 509 14.08.13 13:38 Сейчас в теме
Если СКД, используй вычисляемые поля. Если построитель, то можно макет перед выводом перехватить и в макете исправить.
А так в запросе, "Документ" и номер просто слепить, а вот дату к строке тяжело преобразовать. Можно поизвращаться с Выбором, отдельно для дня, месяца и года.

ВЫБОР КОГДА ДЕНЬ(ПоступлениеТоваровУслуг.Дата)=1 ТОГДА "01"
КОГДА ДЕНЬ(ПоступлениеТоваровУслуг.Дата)=2 ТОГДА "02"
и т.д.
Или с ВЫРАЗИТЬ(... КАК Строка) попробуй поиграть, но скорее всего не получиться, т.к. Выразить преобразование между типами не делает.
7. Craig 275 14.08.13 13:59 Сейчас в теме
Поиграл, не чего интересного не получается. Смог только на этапе получения макета, но интересно как такую простую вещь можно реализовать в "крутом" запросе???
8. kirich 14.08.13 14:05 Сейчас в теме
Можно в цикле перебрать результат или выразить как строка.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот