Имя: Пароль:
1C
1C 7.7
v7: Формат строки в таблице
0 lavalit
 
05.09.14
13:45
Добрый день всем!
Вопрос вот какой- недалее как сегодня "курочил" отчет по ОС в УПП. Надо было всего то добавить столбик с датой приобретения. По сути делов на пару минут.. НО в результате вместо даты в отчет выводит какое то неимоверное число типа 23,567,543-00 либо просто 00-00.... Так вот как выяснилось суслик сидел в ячейке таблицы. Ячейка как и положено была "выражением", в качестве параметра там лежит переменная ДатаПриобретения. Которая естесственным образом благополучно равна дате приоброетения. Но если к переменной добавить "#С"  то тогда выводит как надо, а если без этого самого формата "#С", тогда вывод неверный.
Кто нибудь знает что это за "#С"? в справке ничего на эту тему нет
1 Godofsin
 
05.09.14
13:49
эээ... это 8.2?
2 lavalit
 
05.09.14
14:00
нет 7.7
3 lavalit
 
05.09.14
14:03
Вдогонку... в этом отчете все переменные, которые не число выводится вот с этим самым форматом "#С". "Заголовок", "Номенклатура" и т.д.
4 lavalit
 
09.09.14
12:05
Видимо никто не знает???? не верю!!!!)))))
5 Ёпрст
 
09.09.14
12:06
"#С" - это преобразование к строке
6 Ёпрст
 
09.09.14
12:07
открой СП наконец
7 Ёпрст
 
09.09.14
12:08
и прчти описалово метода Формат()
8 lavalit
 
09.09.14
12:30
Ну наконец то ЁПРСТ отозвался))) конечно же читал в справке.. но .. там описано всего то форматов "Ч" для чисел, "Д" для даты и "Сп" для строки....Это все.. про "С" ни словечка... может конечно у меня справка какая то не такая как у всех...
Но все равно не понятно зачем для выражения типа "Номенклатура.Наименование+"  "+Единцаноменклатуры.Наименование" .. нужно в конце дописать еще и форматную строку "#C"?... когда и так понятно , что это "строка".... но при всем если формат не добавлять все благополучно превращается в "00-00".... вроде как число в формате "Ч-00.00".
9 lavalit
 
09.09.14
12:31
В том то и дело, что к строке не #С а #Сп
10 lavalit
 
09.09.14
12:34
интаксис:
Формат(<Параметр>,<Форматная_строка>)
Назначение:
Возвращает строку с результатом форматирования выражения по заданной форматной строке.
Параметры:
<Параметр> - форматируемое выражение,
<Форматная_строка> - форматная строка.
Форматная строка имеет вид:
для чисел - 'Nm.n<разделитель дробной><разделитель триад>' (в русском регистре вместо N - Ч);
для денежных величин - 'NSMH' (в русском регистре - 'ЧПДС');
для строк - 'Sn' (в русском регистре - 'Сn');
для дат - 'DПодстрокаФормата' (в русском регистре вместо D - Д), где
ПодстрокаФормата может быть вида:
DDMMYY (ДДММГГ), дата в виде - ДД.ММ.ГГ;
DDMMYYYY (ДДММГГГГ), дата в виде - ДД.ММ.ГГГГ;
DDMMMMYYYY (ДДММММГГГГ), дата в виде - ДД месяц прописью ГГГГ;
(0)DDMMMMYYYY ((0)ДДММММГГГГ) этот формат представляет собой вариант предыдущего формата с тем отличием, что число месяца всегда выводится двумя цифрами, т.е. для чисел меньших 10 спереди будет добавлен 0. Например: Формат('01.01.1999', ''Д (0)ДДММММГГГГ'') = 01 Января 1999 г.
MMMMYYYY (ММММГГГГ), дата в виде - месяц прописью ГГГГ;
MMMMYY (ММММГГ), дата в виде - месяц прописью ГГ;
QQQQYYYY (ККККГГГГ), дата в виде - N квартал ГГГГ;
QQQQYY (ККККГГ), дата в виде - N квартал ГГ;
YYYYMMDD (ГГГГММДД), дата в виде ГГГГММДД, то есть дата '10.11.1998' будет представлена как строка ''19981110'';
WWWW (НННН), выводит наименование дня недели, соответсвующее указанной дате. Наименования дней недели берутся из файла прописи.
Замечание:
Для чисел: наличие ''0'' перед длиной поля подавляет отображение нулевых значений (выводится пустая строка). Пример: ''Ч015.2'';
Символ ''-'' перед длиной поля означает, что нулевые значения при выводе будут отображаться прочерком. Пример: ''Ч-17.2''.;
Если форматная строка заканчивается символами >X, происходит сдвиг отображаемых разрядов на X позиций.
Если в форматной строке указано ''(0)'', то данная последовательность символов  должна быть первой в формате и предшествовать всем прочим спецификациям. При задании такой спецификации все позиции в поле вывода числа, соответствующие незадействованным старшим разрядам, будут заполнены символами ''0''. Например: Формат(123.15, ''Ч (0)10.2'') = 0000123.15;
Подробнее см. в документации, глава 'Системные процедуры и функции'
11 lavalit
 
09.09.14
12:35
А ну да еще для денег формат есть....
12 Галахад
 
гуру
09.09.14
12:37
n - это чего форматируем.
13 Ёпрст
 
09.09.14
12:39
(8) :))))

Сn - Это Строка + n символов в строке,
#C - это просто приведение к строке чего либо
#С3 - приведение к строке из 3-х символов
14 Ёпрст
 
09.09.14
12:40
фирштейн ?
:)
15 Chum
 
09.09.14
12:44
(14) даже моя собака уже утвердительно кивнула, читая твои объяснения.
16 lavalit
 
09.09.14
12:46
угу.. тогда зачем скажи мне плиз форматировать изначально строковое выражение в строку же.... а если не форматировать , то она в любом случае превращается в формат "число".... и главное, где оно происходит то превращение.... в отладчике вижу, сто переменная "строковая" так как надо, но после  "ВывестиСекцию("Стр")" и сразу же могу там же в отладчике содержание ячейки в табле "Т.Область(стр,кол).текст=" Чему она соббственно стала равна....
17 lavalit
 
09.09.14
12:46
Блин нет у меня собаки такой)))))) только кот... но он не кивает собака такой страшный)))
18 lavalit
 
09.09.14
12:46
Может собаку завести .....
19 Ёпрст
 
09.09.14
12:47
(16) это вопрос к тому, кто этот отчет писал
20 lavalit
 
09.09.14
12:48
отчет типовой.... никто не переписывал его...
21 lavalit
 
09.09.14
12:48
так и называется "отчет по ОС"
22 Ёпрст
 
09.09.14
12:49
а в мокселе, всё всегда в виде строки будет (исключение - расшифровка ячейки)..ибо моксель только текст хранит, всегда.

Формат используют, для лучшего представления, например даты или чисел, ну или строку "обрезать" через Cn, как вариант
23 lavalit
 
09.09.14
12:49
Честно я такого не видел ни разу.. хотя отчетов насмотрелся до отвращения много))))
24 Ёпрст
 
09.09.14
12:50
ну и выкинть форматирование оттуда, а для даты пользуй #ДДДММГГГГ , например
25 Ёпрст
 
09.09.14
12:51
еще, может, у тебя формат устанавливается на всю таблицу целиком в коде где
26 Ёпрст
 
09.09.14
12:51
через
ИспользоватьФормат(<СтрокаФормата>)
27 lavalit
 
09.09.14
12:52
угу выкидывал форматирование... но что бы не лежало в выражении в ячейке таблицы неизменно получу "00-00" а еслитам не строка а дата то какое то невообразимое "23,345,876-00"
28 Ёпрст
 
09.09.14
12:52
тоже, в типовых встречается и сбивает с толку, чего свой формат в ячейке "не работает"
29 lavalit
 
09.09.14
12:52
да вот я тоже подумал, что формат становится на всю таблицу..... только вот не нашел где оно становится то...
30 Ёпрст
 
09.09.14
12:53
У тебя не рвд случаем ?
Там можно через Формат в коде назначить форматирование области
31 Ёпрст
 
09.09.14
12:54
ну или в обычной таблице, мот тоже есть чего в коде
32 lavalit
 
09.09.14
12:55
конечно наверно если это так, то учитывая, что весь отчет это сплошные цифры, то отформатировать только заголовок и колонку наименования ОС..  дешевле, чем форматировать все оставшиеся ячейки..
33 lavalit
 
09.09.14
12:55
РВД.. это что за зверь?
34 lavalit
 
09.09.14
12:55
конфига управление производством
35 lavalit
 
09.09.14
12:59
ААаа.... ЁПРСТ спасибы тебе. как всегда навел на мысли.....
нашлась таки строчка форматирования всей таблицы в число.....
База знаний обновлена успешно.
36 lavalit
 
09.09.14
13:01
Т.ИспользоватьФормат("Ч15.2-");
Причем не сразу ее и видно то.. запрятана на самом видном месте))))
37 lavalit
 
09.09.14
13:05
нет, что бы поставить формат например сразу после "СоздатьОбъект" или после "ИсходнаяТаблица".... нееет надо было извратиться и поставить формат после "ВывестиСекцию("Шапка")........ ИЗВРАЩЕНЦЫ!!!!!))))ЕЩЕ бы в конце всей песни формат поставили бы....