Консоль отчетов-Операция со значением типа Дата #88696


#0 by SunnyVa
Добрый день! Подскажите, пожалуйста, как правильно мне в тексте запроса вывести значение типа Дата, чтобы она имела краткий формат даты, т. е. например Значение 22.03.2005 14:25:00, а нужно просто 22.03.2005 Боюсь, что встроенные функции мне не помогут решить данную проблему пишу так ВЫРАЗИТЬ(ЗаказПокупателя.Дата КАК СТРОКА) чтобы потом с помощью встроенной функции ПОДСТРОКА взять только первые 10 символов... Но возникает ошибка "Несовместимые типы ВЫРАЗИТЬ"
#1 by PVasili
А закладка представление не помогает?
#2 by SunnyVa
PVasili, извини я сильно большой новичок по работе с 1С... Поэтому не совсем понимаю о чем ты мне пытаешься сказать :(
#3 by SunnyVa
тем более у меня нет прав менять формат даты - мне просто с помощью запросов нужно извлечь необходимые данные... команда ФОРМАТ(ЗаказПокупателя.Дата, "ДДММГГГГ") тоже не срабатывает - пишет синтаксическая ошибка :((
#4 by SunnyVa
ПРЕДСТАВЛЕНИЕ(ЗаказПокупателя.Дата) КАК Поле1 - такое написание вроде как в итоге дает строковое значение ???? Но почему же тогда при изпользовании функции языка запросов ПОДСТРОКА(<Строка>, <НачальнаяПозиция>, <Длина>)
#5 by PVasili
Ха ЗаказПокупателя.Дата у тебя тип ДАТА а ПОДСТРОКА работает для типа данных строка. Тебе нужно использовать: ГОД,КВАРТАЛ,МЕСЯЦ,ДЕНЬГОДА,ДЕНЬ,НЕДЕЛЯ,ДАНЬНЕДЕЛИ,ЧАС,МИНУТА,СЕКУНДА
#6 by SunnyVa
Да в курсе я про это, но ведь так ПРЕДСТАВЛЕНИЕ(ЗаказПокупателя.Дата) КАК Поле1 это уже строка или нет... Значит, ты мне предлагаешь, получить отдельно день, месяц и год с помощью функций работы с датами... Допусти, но это будут числа... Т. е. потом эти числа нужно будет еще перевести в строку, а потом уже эту строку в формат даты, который мне нужен... Но неужели нет более легкого способа по решению данной проблемы?
#7 by SunnyVa
ДЕНЬ(ЗаказПокупателя.Дата)-так это число ПРЕДСТАВЛЕНИЕ(ДЕНЬ(ЗаказПокупателя.Дата))  - так это уже строка ПРЕДСТАВЛЕНИЕ(ДЕНЬ(ЗаказПокупателя.Дата))+"."+ПРЕДСТАВЛЕНИЕ(МЕСЯЦ(ЗаказПокупателя.Дата)) - и снова ошибка :((( "Неверные параметры"
#8 by PVasili
ЗаказПокупателя.Дата - тип ДАТА параметом ПРЕДСТАВЛЕНИЕ может быть только строка. Примерно так, и нужно делать, imho другой возможности пока нет... Можешь попрость 1С написать для тебя хранимую процедуру, чтобы ты её мог использовать для форматирования даты... Ну и что тебу не пофиг, пусть SQL считает :). В SQL сложность запроса не означает увеличение времени его работы...
#9 by PVasili
ВЫРАЗИТЬ(ДЕНЬ(ЗаказПокупателя.Дата) КАК СТРОКА)
#10 by SunnyVa
Понимаешь, я бы так не мучалась с преобразованием формата ДАТЫ, но ситуация в том, что если ЗаказПокупателя был оплачен в рублях, то мне нужно узнать КурсUSD на этот день, чтобы сгенерить ещё столбец Сумма в USD - эта информация хранится здесь РегистрыСведений.КурсыВалют Поэтому и предполагала, что по Дате буду делать связь со ВоженнымЗапросом, где будут только данные Курса доллара на каждый день... Может ты тогда мне посоветуешь как правильно получить данный столбец
#11 by SunnyVa
ВЫРАЗИТЬ(ДЕНЬ(ЗаказПокупателя.Дата) КАК СТРОКА) - ругается "Несовместимые типы "ВЫРАЗИТЬ"" - пробывала я уже так :(((
#12 by PVasili
В чем проблемы, какое отношение твоя проблема имеет к subj. Дальнейшее обсуждение лучше в ICQмыло
#13 by SunnyVa
сейчас письмо тебе напишу - ICQ у меня нет...
#14 by PVasili
Исходные таблицы, поля и типы данных. Что и как хочешь получить...
#15 by SunnyVa
Но хочу сделать 2 столбца по СуммеДокумента: один в рублях, а другой в USD
#16 by МимоШел
Самое простое: ВЫБРАТЬ    ЗаказПоставщику.Ссылка,    ЗаказПоставщику.КурсВзаиморасчетов,    ВЫБОР КОГДА ЗаказПоставщику.ВалютаДокумента = &РУБ ТОГДА ЗаказПоставщику.СуммаДокумента КОГДА ЗаказПоставщику.ВалютаДокумента = &ДОЛ ТОГДА ЗаказПоставщику.СуммаДокумента * ЗаказПоставщику.КурсВзаиморасчетов КОНЕЦ КАК РУБ,    ВЫБОР КОГДА ЗаказПоставщику.ВалютаДокумента = &ДОЛ ТОГДА ЗаказПоставщику.СуммаДокумента * ЗаказПоставщику.КурсВзаиморасчетов КОГДА ЗаказПоставщику.ВалютаДокумента = &РУБ ТОГДА ЗаказПоставщику.СуммаДокумента КОНЕЦ КАК ДОЛ ИЗ    Документ.ЗаказПоставщику КАК ЗаказПоставщику Но лучше объединять с запросом к региструсведений.КурсыВалют и добавить выбор в зависимости от вида валюты и курса на дату.
#17 by НеТудаЗашел
ВЫБОР КОГДА ЗаказПоставщику.ВалютаДокумента = &РУБ
#18 by Пролдд
а писать "коносль отчетов" правильней будет
#19 by SunnyVa
всем спасибо за ответы, но как вычислять сумму в руб и USD я понимаю - моя проблема заключается в том, что я не совсем понимаю как получить курс доллара из РегистрыСведений.КурсыВалют не зависимо от того как оплачен счет в рублях или в USD... решила, что сделаю ещё один справочник "КурсыВалют", где у меня будет Дата и КурсДоллара по дате, т.е. Дата          Курс 22.03.2005     27,00 23.03.2005     27,50  и т.д. все равно мне теперь все эти Отчеты в виде таких вот справочников нужно экспортировать из 1С и обрабатывать на SQL Server-е, где я буду создавать что-то вроде архива с данными из 1С, к которым часто обращаются сотрудники компании... Самое обидное, что при выборе команды Файл-->Файл сохранить копию нет формата dbf Боюсь, что формат xls меня не утроит, т. к. там ограничение - кол-во строк на странице не может превышать 65000 с копейками... А так как со временем кол-во счетов будет все больше за 2005 год, то в скором времени файл xls меня подведет :(( Формат txt остается, но сейчас при извлечении данных из файла txt в SQL с помощью SELECT * FROM OpenDataSource все пока не работает как бы хотелось...
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С