mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-13 15:03:20 +03:00
fix(mxl-compile): писать номер колонки и пустые строки как платформа
Две правки эмиссии, обе выведены из корпуса erp_8.3.24 (10924 макета, 15.2 млн ячеек) и проверены на нём же без единого контрпримера. Номер колонки <i> платформа пишет только при разрыве последовательности: подряд идущая ячейка его не несёт, читатель ведёт счётчик сам. Мы писали всегда — из 1.2 млн записанных платформой номеров ни один не избыточен. Подряд идущие одинаковые ПУСТЫЕ строки платформа хранит одним rowsItem с indexTo; непустые не схлопывает, даже когда они совпадают (98153 таких случая в корпусе). Мы не эмитили indexTo вовсе. На пилоте (40 макетов) доля строк документа, совпавших с оригиналом байт в байт, выросла с 0.3% до 16.7%; все 9 диапазонов indexTo оригинала воспроизведены точно. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
3e7e105c43
commit
cd9a800f8b
@@ -1,4 +1,4 @@
|
||||
# mxl-compile v1.26 — Compile 1C spreadsheet from JSON
|
||||
# mxl-compile v1.27 — Compile 1C spreadsheet from JSON
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
param(
|
||||
[Parameter(Mandatory)]
|
||||
@@ -870,6 +870,35 @@ $merges = @()
|
||||
$namedItems = @()
|
||||
$totalRowCount = 0
|
||||
|
||||
# Копилка подряд идущих одинаковых пустых строк — пишется одним rowsItem с indexTo.
|
||||
$pendingGap = $null
|
||||
function Add-GapRow {
|
||||
param([string]$key, [int]$row, [string]$columnSet, [int]$formatIdx)
|
||||
$gap = $script:pendingGap
|
||||
# -ceq: ключ несёт GUID раскладки, а обычное -eq в PowerShell регистр не различает.
|
||||
if ($gap -and $gap.Key -ceq $key -and $gap.End -eq ($row - 1)) {
|
||||
$gap.End = $row
|
||||
return
|
||||
}
|
||||
Flush-Gap
|
||||
$script:pendingGap = @{ Key = $key; Start = $row; End = $row
|
||||
ColumnSet = $columnSet; FormatIdx = $formatIdx }
|
||||
}
|
||||
function Flush-Gap {
|
||||
if (-not $script:pendingGap) { return }
|
||||
$gap = $script:pendingGap
|
||||
$script:pendingGap = $null
|
||||
X "`t<rowsItem>"
|
||||
X "`t`t<index>$($gap.Start)</index>"
|
||||
if ($gap.End -gt $gap.Start) { X "`t`t<indexTo>$($gap.End)</indexTo>" }
|
||||
X "`t`t<row>"
|
||||
if ($gap.ColumnSet) { X "`t`t`t<columnsID>$($gap.ColumnSet)</columnsID>" }
|
||||
if ($gap.FormatIdx -gt 0) { X "`t`t`t<formatIndex>$($gap.FormatIdx)</formatIndex>" }
|
||||
X "`t`t`t<empty>true</empty>"
|
||||
X "`t`t</row>"
|
||||
X "`t</rowsItem>"
|
||||
}
|
||||
|
||||
foreach ($area in $def.areas) {
|
||||
$areaStartRow = $globalRow
|
||||
$areaName = $area.name
|
||||
@@ -904,12 +933,7 @@ foreach ($area in $def.areas) {
|
||||
if ($row.empty) {
|
||||
$count = [int]$row.empty
|
||||
for ($ei = 0; $ei -lt $count; $ei++) {
|
||||
X "`t<rowsItem>"
|
||||
X "`t`t<index>$globalRow</index>"
|
||||
X "`t`t<row>"
|
||||
X "`t`t`t<empty>true</empty>"
|
||||
X "`t`t</row>"
|
||||
X "`t</rowsItem>"
|
||||
Add-GapRow -key '|0' -row $globalRow -columnSet '' -formatIdx 0
|
||||
$globalRow++; $localRow++
|
||||
}
|
||||
continue
|
||||
@@ -1071,7 +1095,19 @@ foreach ($area in $def.areas) {
|
||||
}
|
||||
}
|
||||
|
||||
# Emit rowsItem
|
||||
# Emit rowsItem.
|
||||
# Подряд идущие ОДИНАКОВЫЕ пустые строки платформа хранит одним элементом с indexTo;
|
||||
# непустые не схлопывает, даже когда они совпадают. Поэтому пустую строку не пишем
|
||||
# сразу, а копим в пробеле и сбрасываем, когда он оборвался.
|
||||
if (-not $rowHasContent) {
|
||||
Add-GapRow -key "$areaColumnSet|$rowFormatIdx" -row $globalRow `
|
||||
-columnSet $areaColumnSet -formatIdx $rowFormatIdx
|
||||
$localRow++
|
||||
$globalRow++
|
||||
continue
|
||||
}
|
||||
Flush-Gap
|
||||
|
||||
X "`t<rowsItem>"
|
||||
X "`t`t<index>$globalRow</index>"
|
||||
X "`t`t<row>"
|
||||
@@ -1084,31 +1120,34 @@ foreach ($area in $def.areas) {
|
||||
X "`t`t`t<formatIndex>$rowFormatIdx</formatIndex>"
|
||||
}
|
||||
|
||||
if (-not $rowHasContent) {
|
||||
X "`t`t`t<empty>true</empty>"
|
||||
} else {
|
||||
foreach ($cellInfo in $rowCells) {
|
||||
X "`t`t`t<c>"
|
||||
# Номер колонки платформа пишет только при разрыве: подряд идущая ячейка его не
|
||||
# несёт, читатель ведёт счётчик сам. Начальное значение счётчика -1, то есть у
|
||||
# ячейки в колонке 0 номера тоже нет.
|
||||
$prevCol = -1
|
||||
foreach ($cellInfo in $rowCells) {
|
||||
X "`t`t`t<c>"
|
||||
if ($cellInfo.Col -ne ($prevCol + 1)) {
|
||||
X "`t`t`t`t<i>$($cellInfo.Col)</i>"
|
||||
X "`t`t`t`t<c>"
|
||||
X "`t`t`t`t`t<f>$($cellInfo.FormatIdx)</f>"
|
||||
|
||||
if ($cellInfo.Param) {
|
||||
X "`t`t`t`t`t<parameter>$($cellInfo.Param)</parameter>"
|
||||
if ($cellInfo.Detail) {
|
||||
X "`t`t`t`t`t<detailParameter>$($cellInfo.Detail)</detailParameter>"
|
||||
}
|
||||
}
|
||||
|
||||
# Проверяем НАЛИЧИЕ ключа, а не истинность: пустая строка — это текст, платформа
|
||||
# такие ячейки пишет с пустым <tl>, и по истинности он терялся.
|
||||
if ($null -ne $cellInfo.Text) { Emit-CellText $cellInfo.Text }
|
||||
|
||||
if ($null -ne $cellInfo.Template) { Emit-CellText $cellInfo.Template }
|
||||
|
||||
X "`t`t`t`t</c>"
|
||||
X "`t`t`t</c>"
|
||||
}
|
||||
$prevCol = $cellInfo.Col
|
||||
X "`t`t`t`t<c>"
|
||||
X "`t`t`t`t`t<f>$($cellInfo.FormatIdx)</f>"
|
||||
|
||||
if ($cellInfo.Param) {
|
||||
X "`t`t`t`t`t<parameter>$($cellInfo.Param)</parameter>"
|
||||
if ($cellInfo.Detail) {
|
||||
X "`t`t`t`t`t<detailParameter>$($cellInfo.Detail)</detailParameter>"
|
||||
}
|
||||
}
|
||||
|
||||
# Проверяем НАЛИЧИЕ ключа, а не истинность: пустая строка — это текст, платформа
|
||||
# такие ячейки пишет с пустым <tl>, и по истинности он терялся.
|
||||
if ($null -ne $cellInfo.Text) { Emit-CellText $cellInfo.Text }
|
||||
|
||||
if ($null -ne $cellInfo.Template) { Emit-CellText $cellInfo.Template }
|
||||
|
||||
X "`t`t`t`t</c>"
|
||||
X "`t`t`t</c>"
|
||||
}
|
||||
|
||||
X "`t`t</row>"
|
||||
@@ -1132,6 +1171,7 @@ foreach ($area in $def.areas) {
|
||||
}
|
||||
}
|
||||
}
|
||||
Flush-Gap
|
||||
|
||||
$totalRowCount = $globalRow
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
#!/usr/bin/env python3
|
||||
# mxl-compile v1.26 — Compile 1C spreadsheet from JSON
|
||||
# mxl-compile v1.27 — Compile 1C spreadsheet from JSON
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
import argparse
|
||||
import hashlib
|
||||
@@ -882,6 +882,36 @@ def main():
|
||||
named_items = []
|
||||
active_rowspans = [] # list of {ColStart, ColEnd, StartLocalRow, EndLocalRow}
|
||||
|
||||
# Копилка подряд идущих одинаковых пустых строк — пишется одним rowsItem с indexTo.
|
||||
pending_gap = [None]
|
||||
|
||||
def flush_gap():
|
||||
gap = pending_gap[0]
|
||||
if gap is None:
|
||||
return
|
||||
pending_gap[0] = None
|
||||
lines.append('\t<rowsItem>')
|
||||
lines.append(f'\t\t<index>{gap["Start"]}</index>')
|
||||
if gap['End'] > gap['Start']:
|
||||
lines.append(f'\t\t<indexTo>{gap["End"]}</indexTo>')
|
||||
lines.append('\t\t<row>')
|
||||
if gap['ColumnSet']:
|
||||
lines.append(f'\t\t\t<columnsID>{gap["ColumnSet"]}</columnsID>')
|
||||
if gap['FormatIdx'] > 0:
|
||||
lines.append(f'\t\t\t<formatIndex>{gap["FormatIdx"]}</formatIndex>')
|
||||
lines.append('\t\t\t<empty>true</empty>')
|
||||
lines.append('\t\t</row>')
|
||||
lines.append('\t</rowsItem>')
|
||||
|
||||
def add_gap_row(key, row, column_set, format_idx):
|
||||
gap = pending_gap[0]
|
||||
if gap is not None and gap['Key'] == key and gap['End'] == row - 1:
|
||||
gap['End'] = row
|
||||
return
|
||||
flush_gap()
|
||||
pending_gap[0] = {'Key': key, 'Start': row, 'End': row,
|
||||
'ColumnSet': column_set, 'FormatIdx': format_idx}
|
||||
|
||||
for area in defn['areas']:
|
||||
area_start_row = global_row
|
||||
area_name = area.get('name', '')
|
||||
@@ -914,12 +944,7 @@ def main():
|
||||
if row.get('empty'):
|
||||
count = int(row['empty'])
|
||||
for ei in range(count):
|
||||
lines.append('\t<rowsItem>')
|
||||
lines.append(f'\t\t<index>{global_row}</index>')
|
||||
lines.append('\t\t<row>')
|
||||
lines.append('\t\t\t<empty>true</empty>')
|
||||
lines.append('\t\t</row>')
|
||||
lines.append('\t</rowsItem>')
|
||||
add_gap_row('|0', global_row, '', 0)
|
||||
global_row += 1
|
||||
local_row += 1
|
||||
continue
|
||||
@@ -1052,7 +1077,18 @@ def main():
|
||||
'Template': None,
|
||||
})
|
||||
|
||||
# Emit rowsItem
|
||||
# Emit rowsItem.
|
||||
# Подряд идущие ОДИНАКОВЫЕ пустые строки платформа хранит одним элементом с indexTo;
|
||||
# непустые не схлопывает, даже когда они совпадают. Поэтому пустую строку не пишем
|
||||
# сразу, а копим в пробеле и сбрасываем, когда он оборвался.
|
||||
if not row_has_content:
|
||||
add_gap_row(f'{area_column_set}|{row_format_idx}', global_row,
|
||||
area_column_set, row_format_idx)
|
||||
local_row += 1
|
||||
global_row += 1
|
||||
continue
|
||||
flush_gap()
|
||||
|
||||
lines.append('\t<rowsItem>')
|
||||
lines.append(f'\t\t<index>{global_row}</index>')
|
||||
lines.append('\t\t<row>')
|
||||
@@ -1063,30 +1099,33 @@ def main():
|
||||
if row_format_idx > 0:
|
||||
lines.append(f'\t\t\t<formatIndex>{row_format_idx}</formatIndex>')
|
||||
|
||||
if not row_has_content:
|
||||
lines.append('\t\t\t<empty>true</empty>')
|
||||
else:
|
||||
for cell_info in row_cells:
|
||||
lines.append('\t\t\t<c>')
|
||||
# Номер колонки платформа пишет только при разрыве: подряд идущая ячейка его не
|
||||
# несёт, читатель ведёт счётчик сам. Начальное значение счётчика -1, то есть у
|
||||
# ячейки в колонке 0 номера тоже нет.
|
||||
prev_col = -1
|
||||
for cell_info in row_cells:
|
||||
lines.append('\t\t\t<c>')
|
||||
if cell_info['Col'] != prev_col + 1:
|
||||
lines.append(f'\t\t\t\t<i>{cell_info["Col"]}</i>')
|
||||
lines.append('\t\t\t\t<c>')
|
||||
lines.append(f'\t\t\t\t\t<f>{cell_info["FormatIdx"]}</f>')
|
||||
prev_col = cell_info['Col']
|
||||
lines.append('\t\t\t\t<c>')
|
||||
lines.append(f'\t\t\t\t\t<f>{cell_info["FormatIdx"]}</f>')
|
||||
|
||||
if cell_info['Param']:
|
||||
lines.append(f'\t\t\t\t\t<parameter>{cell_info["Param"]}</parameter>')
|
||||
if cell_info['Detail']:
|
||||
lines.append(f'\t\t\t\t\t<detailParameter>{cell_info["Detail"]}</detailParameter>')
|
||||
if cell_info['Param']:
|
||||
lines.append(f'\t\t\t\t\t<parameter>{cell_info["Param"]}</parameter>')
|
||||
if cell_info['Detail']:
|
||||
lines.append(f'\t\t\t\t\t<detailParameter>{cell_info["Detail"]}</detailParameter>')
|
||||
|
||||
# Проверяем НАЛИЧИЕ ключа, а не истинность: пустая строка — это текст,
|
||||
# платформа такие ячейки пишет с пустым <tl>, и по истинности он терялся.
|
||||
if cell_info['Text'] is not None:
|
||||
emit_cell_text(lines, cell_info['Text'])
|
||||
# Проверяем НАЛИЧИЕ ключа, а не истинность: пустая строка — это текст,
|
||||
# платформа такие ячейки пишет с пустым <tl>, и по истинности он терялся.
|
||||
if cell_info['Text'] is not None:
|
||||
emit_cell_text(lines, cell_info['Text'])
|
||||
|
||||
if cell_info['Template'] is not None:
|
||||
emit_cell_text(lines, cell_info['Template'])
|
||||
if cell_info['Template'] is not None:
|
||||
emit_cell_text(lines, cell_info['Template'])
|
||||
|
||||
lines.append('\t\t\t\t</c>')
|
||||
lines.append('\t\t\t</c>')
|
||||
lines.append('\t\t\t\t</c>')
|
||||
lines.append('\t\t\t</c>')
|
||||
|
||||
lines.append('\t\t</row>')
|
||||
lines.append('\t</rowsItem>')
|
||||
@@ -1107,6 +1146,8 @@ def main():
|
||||
'EndCol': -1,
|
||||
})
|
||||
|
||||
flush_gap()
|
||||
|
||||
total_row_count = global_row
|
||||
|
||||
# 7d-bis. Именованные области, заданные координатами (namedAreas).
|
||||
|
||||
@@ -56,7 +56,6 @@
|
||||
<index>0</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
@@ -68,7 +67,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
@@ -80,7 +78,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
@@ -98,21 +95,18 @@
|
||||
<row>
|
||||
<columnsID>12320174-2b07-3806-9f7f-ec3834007fdb</columnsID>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>4</f>
|
||||
<parameter>Товар</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>4</f>
|
||||
<parameter>Кол</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>4</f>
|
||||
<parameter>Сумма</parameter>
|
||||
|
||||
@@ -52,7 +52,6 @@
|
||||
<index>0</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>5</f>
|
||||
<tl>
|
||||
@@ -64,7 +63,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>5</f>
|
||||
<tl>
|
||||
@@ -76,7 +74,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>5</f>
|
||||
<tl>
|
||||
@@ -88,7 +85,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>3</i>
|
||||
<c>
|
||||
<f>5</f>
|
||||
<tl>
|
||||
@@ -100,7 +96,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>4</i>
|
||||
<c>
|
||||
<f>5</f>
|
||||
<tl>
|
||||
@@ -112,7 +107,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>5</i>
|
||||
<c>
|
||||
<f>5</f>
|
||||
<tl>
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
<index>0</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>2</f>
|
||||
<tl>
|
||||
@@ -31,12 +30,7 @@
|
||||
</rowsItem>
|
||||
<rowsItem>
|
||||
<index>1</index>
|
||||
<row>
|
||||
<empty>true</empty>
|
||||
</row>
|
||||
</rowsItem>
|
||||
<rowsItem>
|
||||
<index>2</index>
|
||||
<indexTo>2</indexTo>
|
||||
<row>
|
||||
<empty>true</empty>
|
||||
</row>
|
||||
@@ -45,21 +39,18 @@
|
||||
<index>3</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>4</f>
|
||||
<parameter>Код</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>4</f>
|
||||
<parameter>Имя</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>4</f>
|
||||
<parameter>Значение</parameter>
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
<index>0</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>2</f>
|
||||
<tl>
|
||||
@@ -28,7 +27,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>3</f>
|
||||
<tl>
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
<index>0</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>2</f>
|
||||
<tl>
|
||||
@@ -28,7 +27,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>2</f>
|
||||
<tl>
|
||||
@@ -40,7 +38,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>2</f>
|
||||
<tl>
|
||||
@@ -52,7 +49,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>3</i>
|
||||
<c>
|
||||
<f>2</f>
|
||||
<tl>
|
||||
@@ -69,28 +65,24 @@
|
||||
<index>1</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>4</f>
|
||||
<parameter>Дата</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>5</f>
|
||||
<parameter>Товар</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>6</f>
|
||||
<parameter>Количество</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>3</i>
|
||||
<c>
|
||||
<f>6</f>
|
||||
<parameter>Цена</parameter>
|
||||
|
||||
-1
@@ -16,7 +16,6 @@
|
||||
<index>0</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
<index>0</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
@@ -28,7 +27,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
@@ -40,7 +38,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
@@ -57,7 +54,6 @@
|
||||
<index>1</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
@@ -69,7 +65,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
@@ -81,7 +76,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
@@ -110,7 +104,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
@@ -127,7 +120,6 @@
|
||||
<index>3</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
<index>0</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
@@ -28,7 +27,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
@@ -40,7 +38,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
<index>0</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>3</f>
|
||||
<tl>
|
||||
@@ -28,7 +27,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>3</f>
|
||||
<tl>
|
||||
@@ -69,7 +67,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>4</f>
|
||||
<tl>
|
||||
@@ -86,28 +83,24 @@
|
||||
<index>2</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>5</f>
|
||||
<parameter>Номер</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>6</f>
|
||||
<parameter>Наименование</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>6</f>
|
||||
<parameter>Артикул</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>3</i>
|
||||
<c>
|
||||
<f>6</f>
|
||||
<parameter>Итого</parameter>
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
<index>0</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
<row>
|
||||
<formatIndex>2</formatIndex>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>3</f>
|
||||
<parameter>ТекстЗаголовка</parameter>
|
||||
@@ -29,7 +28,6 @@
|
||||
<index>1</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>4</f>
|
||||
<tl>
|
||||
@@ -41,7 +39,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>4</f>
|
||||
<tl>
|
||||
@@ -53,7 +50,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>4</f>
|
||||
<tl>
|
||||
@@ -65,7 +61,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>3</i>
|
||||
<c>
|
||||
<f>4</f>
|
||||
<tl>
|
||||
@@ -82,14 +77,12 @@
|
||||
<index>2</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>5</f>
|
||||
<parameter>НомерСтроки</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>5</f>
|
||||
<parameter>Товар</parameter>
|
||||
@@ -97,14 +90,12 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>6</f>
|
||||
<parameter>Количество</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>3</i>
|
||||
<c>
|
||||
<f>6</f>
|
||||
<parameter>Сумма</parameter>
|
||||
@@ -128,7 +119,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>3</i>
|
||||
<c>
|
||||
<f>8</f>
|
||||
<parameter>Всего</parameter>
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
<index>0</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
@@ -28,7 +27,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
@@ -40,7 +38,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
@@ -52,7 +49,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>3</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
@@ -69,28 +65,24 @@
|
||||
<index>1</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>2</f>
|
||||
<parameter>П1</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>2</f>
|
||||
<parameter>П2</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>2</f>
|
||||
<parameter>П3</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>3</i>
|
||||
<c>
|
||||
<f>2</f>
|
||||
<parameter>П4</parameter>
|
||||
|
||||
-1
@@ -16,7 +16,6 @@
|
||||
<index>0</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
|
||||
@@ -46,7 +46,6 @@
|
||||
<index>0</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>3</f>
|
||||
<tl>
|
||||
@@ -58,7 +57,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>3</f>
|
||||
<tl>
|
||||
@@ -70,7 +68,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>3</f>
|
||||
<tl>
|
||||
@@ -82,7 +79,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>3</i>
|
||||
<c>
|
||||
<f>3</f>
|
||||
<tl>
|
||||
@@ -94,7 +90,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>4</i>
|
||||
<c>
|
||||
<f>3</f>
|
||||
<tl>
|
||||
@@ -111,35 +106,30 @@
|
||||
<index>1</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>5</f>
|
||||
<parameter>Номер</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>6</f>
|
||||
<parameter>Описание</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>5</f>
|
||||
<parameter>ЕдИзм</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>3</i>
|
||||
<c>
|
||||
<f>5</f>
|
||||
<parameter>Количество</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>4</i>
|
||||
<c>
|
||||
<f>6</f>
|
||||
<parameter>Сумма</parameter>
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
<index>0</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>2</f>
|
||||
<tl>
|
||||
@@ -28,7 +27,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>3</f>
|
||||
<tl>
|
||||
@@ -45,7 +43,6 @@
|
||||
<index>1</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>2</f>
|
||||
<tl>
|
||||
@@ -57,7 +54,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>3</f>
|
||||
<tl>
|
||||
@@ -74,21 +70,18 @@
|
||||
<index>2</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>5</f>
|
||||
<parameter>Позиция</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>5</f>
|
||||
<parameter>Товар</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>5</f>
|
||||
<parameter>Цена</parameter>
|
||||
|
||||
@@ -77,7 +77,6 @@
|
||||
<row>
|
||||
<formatIndex>2</formatIndex>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>3</f>
|
||||
<parameter>ТекстЗаголовка</parameter>
|
||||
@@ -95,7 +94,6 @@
|
||||
<index>2</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>4</f>
|
||||
<tl>
|
||||
@@ -119,7 +117,6 @@
|
||||
<index>3</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>4</f>
|
||||
<tl>
|
||||
@@ -143,7 +140,6 @@
|
||||
<index>4</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>7</f>
|
||||
<tl>
|
||||
@@ -155,7 +151,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>7</f>
|
||||
<tl>
|
||||
@@ -179,7 +174,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>7</i>
|
||||
<c>
|
||||
<f>7</f>
|
||||
<tl>
|
||||
@@ -191,7 +185,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>8</i>
|
||||
<c>
|
||||
<f>7</f>
|
||||
<tl>
|
||||
@@ -203,7 +196,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>9</i>
|
||||
<c>
|
||||
<f>7</f>
|
||||
<tl>
|
||||
@@ -220,14 +212,12 @@
|
||||
<index>5</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>8</f>
|
||||
<parameter>НомерСтроки</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>9</f>
|
||||
<parameter>Товар</parameter>
|
||||
@@ -242,21 +232,18 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>7</i>
|
||||
<c>
|
||||
<f>10</f>
|
||||
<parameter>Количество</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>8</i>
|
||||
<c>
|
||||
<f>10</f>
|
||||
<parameter>Цена</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>9</i>
|
||||
<c>
|
||||
<f>10</f>
|
||||
<parameter>Сумма</parameter>
|
||||
@@ -314,12 +301,7 @@
|
||||
</rowsItem>
|
||||
<rowsItem>
|
||||
<index>8</index>
|
||||
<row>
|
||||
<empty>true</empty>
|
||||
</row>
|
||||
</rowsItem>
|
||||
<rowsItem>
|
||||
<index>9</index>
|
||||
<indexTo>9</indexTo>
|
||||
<row>
|
||||
<empty>true</empty>
|
||||
</row>
|
||||
@@ -328,7 +310,6 @@
|
||||
<index>10</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>4</f>
|
||||
<tl>
|
||||
@@ -375,7 +356,6 @@
|
||||
<index>13</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>4</f>
|
||||
<tl>
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
<index>0</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
@@ -28,7 +27,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
@@ -69,7 +67,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
@@ -86,28 +83,24 @@
|
||||
<index>2</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>2</f>
|
||||
<parameter>Вид</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>2</f>
|
||||
<parameter>Нач</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>2</f>
|
||||
<parameter>Кон</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>3</i>
|
||||
<c>
|
||||
<f>2</f>
|
||||
<parameter>Итог</parameter>
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
<index>0</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
@@ -28,7 +27,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
@@ -40,7 +38,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
@@ -52,7 +49,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>3</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
@@ -69,14 +65,12 @@
|
||||
<index>1</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>2</f>
|
||||
<parameter>Товар</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>2</f>
|
||||
<parameter>Кол</parameter>
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
<index>0</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
@@ -28,7 +27,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
@@ -40,7 +38,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
|
||||
@@ -17,7 +17,6 @@
|
||||
<row>
|
||||
<formatIndex>2</formatIndex>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>3</f>
|
||||
<tl>
|
||||
@@ -34,7 +33,6 @@
|
||||
<index>1</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>4</f>
|
||||
<tl>
|
||||
@@ -58,7 +56,6 @@
|
||||
<index>2</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>6</f>
|
||||
<tl>
|
||||
@@ -70,7 +67,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>6</f>
|
||||
<tl>
|
||||
@@ -82,7 +78,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>6</f>
|
||||
<tl>
|
||||
@@ -94,7 +89,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>3</i>
|
||||
<c>
|
||||
<f>6</f>
|
||||
<tl>
|
||||
@@ -106,7 +100,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>4</i>
|
||||
<c>
|
||||
<f>6</f>
|
||||
<tl>
|
||||
@@ -123,35 +116,30 @@
|
||||
<index>3</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>8</f>
|
||||
<parameter>НомерСтроки</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>9</f>
|
||||
<parameter>Товар</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>10</f>
|
||||
<parameter>Количество</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>3</i>
|
||||
<c>
|
||||
<f>10</f>
|
||||
<parameter>Цена</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>4</i>
|
||||
<c>
|
||||
<f>10</f>
|
||||
<parameter>Сумма</parameter>
|
||||
@@ -175,7 +163,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>4</i>
|
||||
<c>
|
||||
<f>12</f>
|
||||
<parameter>Всего</parameter>
|
||||
@@ -187,7 +174,6 @@
|
||||
<index>5</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>13</f>
|
||||
<tl>
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
<index>0</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
@@ -32,7 +31,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
<index>0</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
@@ -28,7 +27,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
@@ -44,7 +42,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>2</f>
|
||||
<tl>
|
||||
|
||||
@@ -16,7 +16,6 @@
|
||||
<index>0</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
@@ -28,7 +27,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
@@ -40,7 +38,6 @@
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
@@ -57,7 +54,6 @@
|
||||
<index>1</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>1</f>
|
||||
<tl>
|
||||
@@ -74,21 +70,18 @@
|
||||
<index>2</index>
|
||||
<row>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>2</f>
|
||||
<parameter>П1</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>2</f>
|
||||
<parameter>П2</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>2</f>
|
||||
<parameter>П3</parameter>
|
||||
|
||||
Reference in New Issue
Block a user