Резюме:
- По вертикали: 1 ед = в точности 0,3528 мм, стандартный типографский пункт Adobe
- По горизонтали: 1 ед = в точности 5,25 пт или 1,8522 мм. Совпадает со средней шириной строчных букв шрифта Times New Roman, 10 pt
Известно, что 1С измеряет размеры ячеек табличного документа в неких "попугаях", размер которых ни в справке, ни в ИТС не документирован. Синтакс-помощник говорит следующее:
ОбластьЯчеекТабличногоДокумента.ВысотаСтроки:
Содержит высоту строк в области (в пунктах).
ОбластьЯчеекТабличногоДокумента.ШиринаКолонки:
Содержит ширину колонок в области (в так называемых средних символах шрифта).
При этом, согласно результатам исследования в статье Расчет размера ячейки Высота и Ширина в (мм) в редакторе шаблонов (и по результатам собственной проверки), размер горизонтальной единицы от используемого в ячейке шрифта не зависит — т.е. имеется в виду не конкретный используемый шрифт, а некий "эталонный". 1С, вероятно, взяли за основу какой-то конкретный шрифт, когда вводили эти единицы.
Измеряем значения с хорошей точностью
Создаем (Ctrl-N в конфигураторе) табличный документ, задаем первой ячейке рамку и подбираем ей размеры побольше, но чуть меньше листа А4, чтобы влезло с учетом полей (у кого есть крупноформатный принтер и более длинная стандартизированная/поверенная линейка, может измерить с большей точностью). Печатаем без масштабирования и с минимальными полями, измеряем размеры линейкой, у которой доподлинно известна точность.
Для подбора размеров ячейки я взял приблизительные значения единиц измерения из поста MrUnnamed и задал размеры ШхВ 151х567.
Длина измерялась деревянной линейкой 30 см по ГОСТ 17435-72(ссылка на "Гарант"; версии, найденные в свободном доступе, содержат изменения отдельно от основного текста, так что их легко упустить из виду), тип "ЛП" в терминах ГОСТа. Согласно этому ГОСТу, погрешность ее шкалы ±0,26 мм. Считывание показаний дает еще ≈±0,25 мм (без специальной подготовки на глаз можно считать с точностью до половины деления). Т.е. погрешность измерения можно считать равной ±0,5 мм. При этом, т.к. мы измеряем методом рядов, погрешность измерения единицы будет меньше во столько раз, сколько у нас отложено единиц. Предполагая по опыту, что граница между ячейками ТД в 1С рисуется именно по границе, а не внутри одной из ячеек, при прикладывании линейки и считывании показаний ориентируемся на середину напечатанных линий.
Результаты:
- По горизонтали: (279,5 ± 0,5) мм / 151 = (1,851 ± 0,003) мм
- по вертикали: (200 ± 0,5) мм / 567 = (0,3527 ± 0,0008) мм
Ищем источник для вертикальной единицы
СП говорит, что это "пункт", что, скорее всего, подразумевает типографский пункт. Согласно статье Википедии по ссылке, они бывают:
- пункт Дидо 0,376 мм — в европейской и российской полиграфической традиции, стандарт Таможенного союза
- пункт Хоукса 0,3514 мм — в американской и английской полиграфической традиции
- пункт Adobe 0,3528 мм — определен в стандарте Adobe PostScript (первая редакция — 1982 год), стандарт де-факто для систем компьютерной верстки
- исторические пункт Фурнье 0,3473 мм, советский метрический пункт 0,375 мм.
Как видно, измеренное значение из всех соответствует только пункту Adobe. Учитывая также, что 1С работает в смежной отрасли (также является компьютерной системой, выполняющей среди прочего подготовку печатных материалов), можно с хорошей уверенностью считать, что это он.
С учетом этого, используя узнанное точное значение пункта, получаем, что
- измеренное значение горизонтальной единицы равно (1,851 ± 0,003) мм / 0,3528 = (5,247 ± 0,009) пт
Ищем источник для горизонтальной единицы
СП сообщает, что это "средний символ шрифта", что может означать что угодно.
Так что для начала ознакомимся с существующими в полиграфии практиками определения ширины шрифта:
- ширина буквы m или n (устаревшая западная традиция)
- ширина длинного (—) или короткого (–) тире (устаревшая российская традиция)
- ширина шпации:
- круглая шпация (ширина равна высоте, т.е. высоте шрифта)
- полукруглая шпация (половина высоты шрифта)
- тонкая шпация (1/5 или 1/6 высоты шрифта)
- прочие шпации (целое число типографских пунктов)
Я измерил эти значения для шрифтов Arial (используется в 1С по умолчанию) и Times New Roman (был стандартным в MS Word в 90-е, когда создавалась 1С), и затем пересчитал для разных размеров: т.к. это пропорциональные шрифты (конкретно в случае TrueType, очертания глифов задаются кривыми второго порядка), ширина при изменении размера меняется во столько же раз, во сколько и высота.
(Если быть совсем точным, сначала я посчитал их для Arial, 8 (шрифт 1С для ТД по умолчанию) и, не обнаружив совпадений, расширил область поиска.)
(Последние 2 на самом деле не измерял, т.к. и так ясно, что совпадения не будет: 5,25 -- это не целое число пунктов и не равно ни 1/5, ни 1/6 от размеров шрифтов, используемых по умолчанию.)
Как видно из таблицы результатов, ни одного совпадения.
Попробуем предположить, что же еще может подразумеваться под "средним символом шрифта".
- Цель определения единицы таким образом, скорее всего — выразить приблизительно, сколько "средних" символов влезет в ячейку
- Длинный текст — информация, для которой ширина ячейки, как правило, и актуальна — содержит, в основном, строчные буквы
- из которых для 1С актуальны, главным образом, буквы русского алфавита (особенно в момент, когда она создавалась)
- но таблицы в 1С содержат, в основном, числа (возможно, дробные)
Так что приходят на ум следующие определения:
- средняя ширина строчной (русской) буквы в шрифте
- средневзвешенная ширина строчной буквы в шрифте с учетом частоты их появления в русскоязычном тексте
- средняя ширина цифры в шрифте
- средняя ширина цифры в шрифте с учетом точки/запятой
- Не измерялась. Это плохое определение, т.к. точка всегда одна на число, т.е. ее вклад в среднюю ширину непостоянен
- средняя ширина цифры в шрифте с учетом добавления разделителей групп цифр по умолчанию (через каждые 3);
- 1С использует символ неразрывного пробела как разделитель групп
- т.е. это можно вычислить как (средняя ширина цифры*3+ширина nbsp)/4
Всё это было измерено, также способом рядов, и вычислено. Для средневзвешенного значения все буквы алфавита печатал по 10 шт. шрифтом 48 pt, другие случаи печатал цепочкой по многу раз шрифтом 12 pt; где не влезало на строку, считал, сколько влезло (с помощью копипасты в Notepad++) и измерял влезшее.
(Средневзвешенную ширину также корректировал с учетом того, что при измерении длин отдельных букв алфавита я не включал межбуквенный интервал после последней буквы. Корректировал это, добавляя 1/10 измеренной длины межбуквенного интервала. Не совпало ни так, ни так.
Ширину цифр с учетом nbsp для Times New Roman не проверял, т.к. и без nbsp уже получилось слишком мало.)
Из всех ~50 исследованных случаев (30 представленных в таблице + отброшенные) -- только одно совпадение! Средняя ширина строчной буквы для Times New Roman, 10 pt! Измеренное значение: (1,852 ± 0,006) мм . Может, старожилы подскажут, использовала ли 1С этот шрифт когда-нибудь по умолчанию.
Учитывая, что это значение выражается "красивым" числом пунктов 5,25 пт, а размер пункта уже зашит в системе -- для расчетов 1С, скорее всего, использует именно этот коэффициент, а не "сырое" значение в мм.