v7: Формат строки в таблице #719197


#0 by lavalit
Добрый день всем! Вопрос вот какой- недалее как сегодня "курочил" отчет по ОС в УПП. Надо было всего то добавить столбик с датой приобретения. По сути делов на пару минут.. НО в результате вместо даты в отчет выводит какое то неимоверное число типа 23,567,543-00 либо просто 00-00.... Так вот как выяснилось суслик сидел в ячейке таблицы. Ячейка как и положено была "выражением", в качестве параметра там лежит переменная ДатаПриобретения. Которая естесственным образом благополучно равна дате приоброетения. Но если к переменной добавить "#С"  то тогда выводит как надо, а если без этого самого формата "#С", тогда вывод неверный. Кто нибудь знает что это за "#С"? в справке ничего на эту тему нет
#1 by Godofsin
эээ... это 8.2?
#2 by lavalit
нет 7.7
#3 by lavalit
Вдогонку... в этом отчете все переменные, которые не число выводится вот с этим самым форматом "#С". "Заголовок", "Номенклатура" и т.д.
#4 by lavalit
Видимо никто не знает???? не верю!!!!)))))
#5 by Ёпрст
"#С" - это преобразование к строке
#6 by Ёпрст
открой СП наконец
#7 by Ёпрст
и прчти описалово метода Формат
#8 by lavalit
Ну наконец то ЁПРСТ отозвался))) конечно же читал в справке.. но .. там описано всего то форматов "Ч" для чисел, "Д" для даты и "Сп" для строки....Это все.. про "С" ни словечка... может конечно у меня справка какая то не такая как у всех... Но все равно не понятно зачем для выражения типа "Номенклатура.Наименование+"  "+Единцаноменклатуры.Наименование" .. нужно в конце дописать еще и форматную строку "#C"?... когда и так понятно , что это "строка".... но при всем если формат не добавлять все благополучно превращается в "00-00".... вроде как число в формате "Ч-00.00".
#9 by lavalit
В том то и дело, что к строке не #С а #Сп
#10 by lavalit
интаксис: Формат(<Параметр>,<Форматная_строка>) Назначение: Возвращает строку с результатом форматирования выражения по заданной форматной строке. Параметры: <Параметр> - форматируемое выражение, <Форматная_строка> - форматная строка. Форматная строка имеет вид: для чисел - 'Nm.n<разделитель дробной><разделитель триад>' (в русском регистре вместо N - Ч); для денежных величин - 'NSMH' (в русском регистре - 'ЧПДС'); для строк - 'Sn' (в русском регистре - 'Сn'); для дат - 'DПодстрокаФормата' (в русском регистре вместо D - Д), где ПодстрокаФормата может быть вида: DDMMYYYY (ДДММГГГГ), дата в виде - ДД.ММ.ГГГГ; DDMMMMYYYY (ДДММММГГГГ), дата в виде - ДД месяц прописью ГГГГ; DDMMMMYYYY (ДДММММГГГГ) этот формат представляет собой вариант предыдущего формата с тем отличием, что число месяца всегда выводится двумя цифрами, т.е. для чисел меньших 10 спереди будет добавлен 0. Например: Формат('01.01.1999', ''Д ДДММММГГГГ'') = 01 Января 1999 г. MMMMYYYY (ММММГГГГ), дата в виде - месяц прописью ГГГГ; MMMMYY (ММММГГ), дата в виде - месяц прописью ГГ; QQQQYYYY (ККККГГГГ), дата в виде - N квартал ГГГГ; QQQQYY (ККККГГ), дата в виде - N квартал ГГ; YYYYMMDD (ГГГГММДД), дата в виде ГГГГММДД, то есть дата '10.11.1998' будет представлена как строка ''19981110''; WWWW (НННН), выводит наименование дня недели, соответсвующее указанной дате. Наименования дней недели берутся из файла прописи. Замечание: Для чисел: наличие ''0'' перед длиной поля подавляет отображение нулевых значений (выводится пустая строка). Пример: ''Ч015.2''; Символ ''-'' перед длиной поля означает, что нулевые значения при выводе будут отображаться прочерком. Пример: ''Ч-17.2''.; Если форматная строка заканчивается символами >X, происходит сдвиг отображаемых разрядов на X позиций. Если в форматной строке указано '''', то данная последовательность символов  должна быть первой в формате и предшествовать всем прочим спецификациям. При задании такой спецификации все позиции в поле вывода числа, соответствующие незадействованным старшим разрядам, будут заполнены символами ''0''. Например: Формат(123.15, ''Ч 10.2'') = 0000123.15; Подробнее см. в документации, глава 'Системные процедуры и функции'
#11 by lavalit
А ну да еще для денег формат есть....
#12 by Галахад
n - это чего форматируем.
#13 by Ёпрст
:)))) Сn - Это Строка + n символов в строке, #C - это просто приведение к строке чего либо #С3 - приведение к строке из 3-х символов
#14 by Ёпрст
фирштейн ? :)
#15 by Chum
даже моя собака уже утвердительно кивнула, читая твои объяснения.
#16 by lavalit
угу.. тогда зачем скажи мне плиз форматировать изначально строковое выражение в строку же.... а если не форматировать , то она в любом случае превращается в формат "число".... и главное, где оно происходит то превращение.... в отладчике вижу, сто переменная "строковая" так как надо, но после  "ВывестиСекцию("Стр")" и сразу же могу там же в отладчике содержание ячейки в табле "Т.Область(стр,кол).текст=" Чему она соббственно стала равна....
#17 by lavalit
Блин нет у меня собаки такой)))))) только кот... но он не кивает собака такой страшный)))
#18 by lavalit
Может собаку завести .....
#19 by Ёпрст
это вопрос к тому, кто этот отчет писал
#20 by lavalit
отчет типовой.... никто не переписывал его...
#21 by lavalit
так и называется "отчет по ОС"
#22 by Ёпрст
а в мокселе, всё всегда в виде строки будет (исключение - расшифровка ячейки)..ибо моксель только текст хранит, всегда. Формат используют, для лучшего представления, например даты или чисел, ну или строку "обрезать" через Cn, как вариант
#23 by lavalit
Честно я такого не видел ни разу.. хотя отчетов насмотрелся до отвращения много))))
#24 by Ёпрст
ну и выкинть форматирование оттуда, а для даты пользуй #ДДДММГГГГ , например
#25 by Ёпрст
еще, может, у тебя формат устанавливается на всю таблицу целиком в коде где
#26 by Ёпрст
через ИспользоватьФормат(<СтрокаФормата>)
#27 by lavalit
угу выкидывал форматирование... но что бы не лежало в выражении в ячейке таблицы неизменно получу "00-00" а еслитам не строка а дата то какое то невообразимое "23,345,876-00"
#28 by Ёпрст
тоже, в типовых встречается и сбивает с толку, чего свой формат в ячейке "не работает"
#29 by lavalit
да вот я тоже подумал, что формат становится на всю таблицу..... только вот не нашел где оно становится то...
#30 by Ёпрст
У тебя не рвд случаем ? Там можно через Формат в коде назначить форматирование области
#31 by Ёпрст
ну или в обычной таблице, мот тоже есть чего в коде
#32 by lavalit
конечно наверно если это так, то учитывая, что весь отчет это сплошные цифры, то отформатировать только заголовок и колонку наименования ОС..  дешевле, чем форматировать все оставшиеся ячейки..
#33 by lavalit
РВД.. это что за зверь?
#34 by lavalit
конфига управление производством
#35 by lavalit
ААаа.... ЁПРСТ спасибы тебе. как всегда навел на мысли..... нашлась таки строчка форматирования всей таблицы в число..... База знаний обновлена успешно.
#36 by lavalit
Т.ИспользоватьФормат("Ч15.2-"); Причем не сразу ее и видно то.. запрятана на самом видном месте))))
#37 by lavalit
нет, что бы поставить формат например сразу после "СоздатьОбъект" или после "ИсходнаяТаблица".... нееет надо было извратиться и поставить формат после "ВывестиСекцию("Шапка")........ ИЗВРАЩЕНЦЫ!!!!!))))ЕЩЕ бы в конце всей песни формат поставили бы....
Тэги: 1С 7.7 и ранее
Ответить:
Комментарии доступны только авторизированным пользователям

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