mirror of
https://github.com/Nikolay-Shirokov/cc-1c-skills.git
synced 2026-08-13 15:03:20 +03:00
fix(mxl-compile): не эмитить fillType=Text, UUID для идентификатора раскладки
Две правки по корпусу и по 1С-сертификации. fillType=Text платформа практически не пишет: на выборке корпуса 344 981 текстовая ячейка из 348 023 (99,1%) ссылается на формат БЕЗ fillType — наличие <tl> и так означает текст. Parameter и Template платформа пишет, их оставляем. Правило то же, что и везде: эмитим то, что эмитит платформа, а не то, что верно в рантайме. Идентификатор колоночной раскладки платформа хранит как UUID и другой не принимает — макет с <id>узкая</id> она отвергала целиком. Имя, похожее на UUID (то есть пришедшее декомпиляцией), проходит насквозь, иначе поехал бы раундтрип; читаемое имя автора превращается в UUID ДЕТЕРМИНИРОВАННО, из хэша имени, чтобы повторная компиляция давала тот же файл. Оба порта дают одинаковый хэш. Дефект с идентификатором нашла 1С-сертификация: ни юнит-кейсы, ни раундтрип по корпусу его не видели — там идентификаторы приходят из исходных макетов и уже являются UUID. Дрейф 33 снэпшотов разобран построчно, посторонних строк нет: 116 сменившихся индексов формата, 49 удалённых fillType, 43 перестановки свойств внутри палитры, 16 границ <format> (палитра стала короче). Проверено: тесты 53/53 на обоих рантаймах, verify-snapshots 23/23. Замечание на будущее: на корпусе эта правка снимает лишь 170 расхождений из 64 865 в категории формата ячейки. Основная причина другая — платформа даёт неоформленной ячейке ссылку на формат по умолчанию, а компилятор заводит ей собственный формат с <font>. Это отдельный заход, он сдвинет снэпшоты повторно. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
8302b17814
commit
cbe7abdcbb
@@ -1,4 +1,4 @@
|
||||
# mxl-compile v1.20 — Compile 1C spreadsheet from JSON (+write_xml_file/write_utf8_bom: общий эталон записи)
|
||||
# mxl-compile v1.21 — Compile 1C spreadsheet from JSON (+write_xml_file/write_utf8_bom: общий эталон записи)
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
param(
|
||||
[Parameter(Mandatory)]
|
||||
@@ -391,14 +391,29 @@ $colWidthMap = Build-ColWidthMap $def.columnWidths
|
||||
# columnSets, ключ — идентификатор, на него ссылается область ключом columnSet.
|
||||
# Склейки по содержимому нет: в корпусе полно раскладок с одинаковым содержимым и разными
|
||||
# идентификаторами, поэтому опознаёт раскладку только идентификатор.
|
||||
# Платформа хранит идентификатор раскладки как UUID и другой не принимает. Имя из
|
||||
# columnSets, полученное декомпиляцией, уже UUID — оставляем как есть, иначе раундтрип
|
||||
# перестал бы совпадать. Читаемое имя, написанное автором, превращаем в UUID ДЕТЕРМИНИРОВАННО
|
||||
# (из хэша имени), чтобы повторная компиляция давала тот же файл.
|
||||
function ConvertTo-LayoutId {
|
||||
param([string]$name)
|
||||
if ($name -match '^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$') {
|
||||
return $name
|
||||
}
|
||||
$md5 = [System.Security.Cryptography.MD5]::Create()
|
||||
$h = ($md5.ComputeHash([System.Text.Encoding]::UTF8.GetBytes($name)) | ForEach-Object { $_.ToString('x2') }) -join ''
|
||||
return "$($h.Substring(0,8))-$($h.Substring(8,4))-$($h.Substring(12,4))-$($h.Substring(16,4))-$($h.Substring(20,12))"
|
||||
}
|
||||
|
||||
$columnLayouts = @()
|
||||
$columnLayouts += @{ Id = $null; Size = $totalColumns; Widths = $colWidthMap }
|
||||
$columnLayouts += @{ Id = $null; Name = $null; Size = $totalColumns; Widths = $colWidthMap }
|
||||
if ($def.columnSets) {
|
||||
foreach ($prop in $def.columnSets.PSObject.Properties) {
|
||||
$cs = $prop.Value
|
||||
$size = if ($cs.columns) { [int]$cs.columns } else { $totalColumns }
|
||||
$columnLayouts += @{
|
||||
Id = $prop.Name
|
||||
Id = ConvertTo-LayoutId $prop.Name
|
||||
Name = $prop.Name
|
||||
Size = $size
|
||||
Widths = Build-ColWidthMap $cs.columnWidths
|
||||
}
|
||||
@@ -539,11 +554,13 @@ function Esc-XmlText {
|
||||
}
|
||||
|
||||
# Helper: determine fillType from cell content
|
||||
# Text НЕ эмитим: платформа его практически не пишет — на выборке корпуса 344 981 текстовая
|
||||
# ячейка из 348 023 (99,1%) ссылается на формат БЕЗ fillType. Наличие <tl> и так означает
|
||||
# текст, поэтому тег избыточен. Parameter и Template платформа пишет — их оставляем.
|
||||
function Get-FillType {
|
||||
param($cell)
|
||||
if ($cell.param) { return "Parameter" }
|
||||
if ($cell.template) { return "Template" }
|
||||
if ($cell.text) { return "Text" }
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -679,7 +696,7 @@ foreach ($area in $def.areas) {
|
||||
# Ширина сетки берётся из раскладки области: у каждой она своя.
|
||||
$areaMaxCols = $totalColumns
|
||||
if ($area.PSObject.Properties['columnSet'] -and "$($area.columnSet)" -ne '') {
|
||||
$lay = @($columnLayouts | Where-Object { $_.Id -eq "$($area.columnSet)" })[0]
|
||||
$lay = @($columnLayouts | Where-Object { $_.Name -eq "$($area.columnSet)" })[0]
|
||||
if ($lay) { $areaMaxCols = [int]$lay.Size }
|
||||
}
|
||||
$openByCol = @{}
|
||||
@@ -797,14 +814,16 @@ foreach ($area in $def.areas) {
|
||||
[Console]::Error.WriteLine("'columnSet' must be a name declared in columnSets, got an object: area `"$($area.name)`"")
|
||||
exit 1
|
||||
}
|
||||
$areaColumnSet = if ($area.PSObject.Properties['columnSet']) { "$($area.columnSet)" } else { '' }
|
||||
$areaColumnSetName = if ($area.PSObject.Properties['columnSet']) { "$($area.columnSet)" } else { '' }
|
||||
$areaColumnSet = ''
|
||||
$areaLayout = $columnLayouts[0]
|
||||
if ($areaColumnSet) {
|
||||
$areaLayout = @($columnLayouts | Where-Object { $_.Id -eq $areaColumnSet })[0]
|
||||
if ($areaColumnSetName) {
|
||||
$areaLayout = @($columnLayouts | Where-Object { $_.Name -eq $areaColumnSetName })[0]
|
||||
if (-not $areaLayout) {
|
||||
[Console]::Error.WriteLine("Unknown 'columnSet': `"$areaColumnSet`" is not declared in columnSets")
|
||||
[Console]::Error.WriteLine("Unknown 'columnSet': `"$areaColumnSetName`" is not declared in columnSets")
|
||||
exit 1
|
||||
}
|
||||
$areaColumnSet = $areaLayout.Id
|
||||
}
|
||||
# Ширина сетки — у КАЖДОЙ раскладки своя, поэтому позиции колонок сверяем с ней,
|
||||
# а не с документным columns (у макетов с раскладками умолчание бывает и пустым).
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
#!/usr/bin/env python3
|
||||
# mxl-compile v1.20 — Compile 1C spreadsheet from JSON (+write_xml_file/write_utf8_bom: общий эталон записи)
|
||||
# mxl-compile v1.21 — Compile 1C spreadsheet from JSON (+write_xml_file/write_utf8_bom: общий эталон записи)
|
||||
# Source: https://github.com/Nikolay-Shirokov/cc-1c-skills
|
||||
import argparse
|
||||
import hashlib
|
||||
import json
|
||||
import math
|
||||
import os
|
||||
@@ -495,11 +496,23 @@ def main():
|
||||
# columnSets, ключ — идентификатор, на него ссылается область ключом columnSet.
|
||||
# Склейки по содержимому нет: в корпусе полно раскладок с одинаковым содержимым и разными
|
||||
# идентификаторами, поэтому опознаёт раскладку только идентификатор.
|
||||
column_layouts = [{'Id': None, 'Size': total_columns, 'Widths': col_width_map}]
|
||||
for set_id, cs in (defn.get('columnSets') or {}).items():
|
||||
def to_layout_id(name):
|
||||
"""Платформа хранит идентификатор раскладки как UUID и другой не принимает. Имя,
|
||||
полученное декомпиляцией, уже UUID — оставляем как есть, иначе раундтрип перестал бы
|
||||
совпадать. Читаемое имя автора превращаем в UUID ДЕТЕРМИНИРОВАННО (из хэша имени),
|
||||
чтобы повторная компиляция давала тот же файл."""
|
||||
if re.match(r'^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-'
|
||||
r'[0-9a-fA-F]{4}-[0-9a-fA-F]{12}$', name):
|
||||
return name
|
||||
h = hashlib.md5(name.encode('utf-8')).hexdigest()
|
||||
return f'{h[0:8]}-{h[8:12]}-{h[12:16]}-{h[16:20]}-{h[20:32]}'
|
||||
|
||||
column_layouts = [{'Id': None, 'Name': None, 'Size': total_columns, 'Widths': col_width_map}]
|
||||
for set_name, cs in (defn.get('columnSets') or {}).items():
|
||||
size = int(cs['columns']) if cs.get('columns') is not None else total_columns
|
||||
column_layouts.append({
|
||||
'Id': set_id,
|
||||
'Id': to_layout_id(set_name),
|
||||
'Name': set_name,
|
||||
'Size': size,
|
||||
'Widths': build_col_width_map(cs.get('columnWidths')),
|
||||
})
|
||||
@@ -589,12 +602,13 @@ def main():
|
||||
|
||||
# 6c. Helper: determine fillType from cell content
|
||||
def get_fill_type(cell):
|
||||
"""Text НЕ эмитим: платформа его практически не пишет — на выборке корпуса 344 981
|
||||
текстовая ячейка из 348 023 (99,1%) ссылается на формат БЕЗ fillType. Наличие <tl>
|
||||
и так означает текст. Parameter и Template платформа пишет — их оставляем."""
|
||||
if cell.get('param'):
|
||||
return 'Parameter'
|
||||
if cell.get('template'):
|
||||
return 'Template'
|
||||
if cell.get('text'):
|
||||
return 'Text'
|
||||
return ''
|
||||
|
||||
# Helper: register a cell format and return its index
|
||||
@@ -715,7 +729,7 @@ def main():
|
||||
# Ширина сетки берётся из раскладки области: у каждой она своя.
|
||||
area_max_cols = total_columns
|
||||
if area.get('columnSet'):
|
||||
lay = next((x for x in column_layouts if x['Id'] == str(area['columnSet'])), None)
|
||||
lay = next((x for x in column_layouts if x['Name'] == str(area['columnSet'])), None)
|
||||
if lay:
|
||||
area_max_cols = int(lay['Size'])
|
||||
open_by_col = {}
|
||||
@@ -821,14 +835,16 @@ def main():
|
||||
print(f'\'columnSet\' must be a name declared in columnSets, got an object:'
|
||||
f' area "{area.get("name", "")}"', file=sys.stderr)
|
||||
sys.exit(1)
|
||||
area_column_set = str(area.get('columnSet') or '')
|
||||
area_column_set_name = str(area.get('columnSet') or '')
|
||||
area_column_set = ''
|
||||
area_layout = column_layouts[0]
|
||||
if area_column_set:
|
||||
area_layout = next((x for x in column_layouts if x['Id'] == area_column_set), None)
|
||||
if area_column_set_name:
|
||||
area_layout = next((x for x in column_layouts if x['Name'] == area_column_set_name), None)
|
||||
if area_layout is None:
|
||||
print(f'Unknown \'columnSet\': "{area_column_set}" is not declared in columnSets',
|
||||
print(f'Unknown \'columnSet\': "{area_column_set_name}" is not declared in columnSets',
|
||||
file=sys.stderr)
|
||||
sys.exit(1)
|
||||
area_column_set = area_layout['Id']
|
||||
# Ширина сетки — у КАЖДОЙ раскладки своя, поэтому позиции колонок сверяем с ней,
|
||||
# а не с документным columns (у макетов с раскладками умолчание бывает и пустым).
|
||||
area_columns = int(area_layout['Size'])
|
||||
|
||||
@@ -19,7 +19,10 @@
|
||||
"files": ["Template.xml"],
|
||||
"fileContains": {
|
||||
"file": "Template.xml",
|
||||
"text": ["<id>узкая</id>", "<columnsID>узкая</columnsID>"]
|
||||
"text": [
|
||||
"<id>12320174-2b07-7806-1f7f-ec3834007fdb</id>",
|
||||
"<columnsID>12320174-2b07-7806-1f7f-ec3834007fdb</columnsID>"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
</columnsItem>
|
||||
</columns>
|
||||
<columns>
|
||||
<id>узкая</id>
|
||||
<id>12320174-2b07-7806-1f7f-ec3834007fdb</id>
|
||||
<size>3</size>
|
||||
<columnsItem>
|
||||
<index>0</index>
|
||||
@@ -96,7 +96,7 @@
|
||||
<rowsItem>
|
||||
<index>1</index>
|
||||
<row>
|
||||
<columnsID>узкая</columnsID>
|
||||
<columnsID>12320174-2b07-7806-1f7f-ec3834007fdb</columnsID>
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
@@ -156,7 +156,6 @@
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
|
||||
@@ -54,7 +54,7 @@
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>6</f>
|
||||
<f>5</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -66,7 +66,7 @@
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>6</f>
|
||||
<f>5</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -78,7 +78,7 @@
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>6</f>
|
||||
<f>5</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -90,7 +90,7 @@
|
||||
<c>
|
||||
<i>3</i>
|
||||
<c>
|
||||
<f>6</f>
|
||||
<f>5</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -102,7 +102,7 @@
|
||||
<c>
|
||||
<i>4</i>
|
||||
<c>
|
||||
<f>6</f>
|
||||
<f>5</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -114,7 +114,7 @@
|
||||
<c>
|
||||
<i>5</i>
|
||||
<c>
|
||||
<f>6</f>
|
||||
<f>5</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -162,12 +162,4 @@
|
||||
<rightBorder>0</rightBorder>
|
||||
<bottomBorder>0</bottomBorder>
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
<leftBorder>0</leftBorder>
|
||||
<topBorder>0</topBorder>
|
||||
<rightBorder>0</rightBorder>
|
||||
<bottomBorder>0</bottomBorder>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
</document>
|
||||
@@ -107,7 +107,6 @@
|
||||
<format>
|
||||
<font>1</font>
|
||||
<horizontalAlignment>Center</horizontalAlignment>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
|
||||
@@ -63,10 +63,8 @@
|
||||
</format>
|
||||
<format>
|
||||
<font>2</font>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
<format>
|
||||
<font>1</font>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
</document>
|
||||
@@ -18,7 +18,7 @@
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>3</f>
|
||||
<f>2</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -30,7 +30,7 @@
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>3</f>
|
||||
<f>2</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -42,7 +42,7 @@
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>3</f>
|
||||
<f>2</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -54,7 +54,7 @@
|
||||
<c>
|
||||
<i>3</i>
|
||||
<c>
|
||||
<f>3</f>
|
||||
<f>2</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -71,28 +71,28 @@
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>5</f>
|
||||
<f>4</f>
|
||||
<parameter>Дата</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>6</f>
|
||||
<f>5</f>
|
||||
<parameter>Товар</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>7</f>
|
||||
<f>6</f>
|
||||
<parameter>Количество</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>3</i>
|
||||
<c>
|
||||
<f>7</f>
|
||||
<f>6</f>
|
||||
<parameter>Цена</parameter>
|
||||
</c>
|
||||
</c>
|
||||
@@ -137,15 +137,6 @@
|
||||
<bottomBorder>0</bottomBorder>
|
||||
<horizontalAlignment>Center</horizontalAlignment>
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
<leftBorder>0</leftBorder>
|
||||
<topBorder>0</topBorder>
|
||||
<rightBorder>0</rightBorder>
|
||||
<bottomBorder>0</bottomBorder>
|
||||
<horizontalAlignment>Center</horizontalAlignment>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
<leftBorder>0</leftBorder>
|
||||
|
||||
-1
@@ -49,6 +49,5 @@
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
</document>
|
||||
@@ -183,6 +183,5 @@
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
</document>
|
||||
@@ -73,6 +73,5 @@
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
</document>
|
||||
@@ -178,7 +178,6 @@
|
||||
<rightBorder>0</rightBorder>
|
||||
<bottomBorder>0</bottomBorder>
|
||||
<horizontalAlignment>Center</horizontalAlignment>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
@@ -187,7 +186,6 @@
|
||||
<rightBorder>0</rightBorder>
|
||||
<bottomBorder>0</bottomBorder>
|
||||
<horizontalAlignment>Center</horizontalAlignment>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
|
||||
@@ -49,6 +49,5 @@
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
</document>
|
||||
@@ -31,7 +31,7 @@
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>5</f>
|
||||
<f>4</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -43,7 +43,7 @@
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>5</f>
|
||||
<f>4</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -55,7 +55,7 @@
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>5</f>
|
||||
<f>4</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -67,7 +67,7 @@
|
||||
<c>
|
||||
<i>3</i>
|
||||
<c>
|
||||
<f>5</f>
|
||||
<f>4</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -84,14 +84,14 @@
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>6</f>
|
||||
<f>5</f>
|
||||
<parameter>НомерСтроки</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>6</f>
|
||||
<f>5</f>
|
||||
<parameter>Товар</parameter>
|
||||
<detailParameter>Номенклатура</detailParameter>
|
||||
</c>
|
||||
@@ -99,14 +99,14 @@
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>7</f>
|
||||
<f>6</f>
|
||||
<parameter>Количество</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>3</i>
|
||||
<c>
|
||||
<f>7</f>
|
||||
<f>6</f>
|
||||
<parameter>Сумма</parameter>
|
||||
</c>
|
||||
</c>
|
||||
@@ -118,7 +118,7 @@
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>8</f>
|
||||
<f>7</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -130,7 +130,7 @@
|
||||
<c>
|
||||
<i>3</i>
|
||||
<c>
|
||||
<f>9</f>
|
||||
<f>8</f>
|
||||
<parameter>Всего</parameter>
|
||||
</c>
|
||||
</c>
|
||||
@@ -209,14 +209,6 @@
|
||||
<rightBorder>0</rightBorder>
|
||||
<bottomBorder>0</bottomBorder>
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
<leftBorder>0</leftBorder>
|
||||
<topBorder>0</topBorder>
|
||||
<rightBorder>0</rightBorder>
|
||||
<bottomBorder>0</bottomBorder>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
<leftBorder>0</leftBorder>
|
||||
@@ -238,7 +230,6 @@
|
||||
<font>1</font>
|
||||
<topBorder>0</topBorder>
|
||||
<horizontalAlignment>Right</horizontalAlignment>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
<format>
|
||||
<font>1</font>
|
||||
|
||||
@@ -148,7 +148,6 @@
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
|
||||
-1
@@ -49,6 +49,5 @@
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
</document>
|
||||
@@ -48,7 +48,7 @@
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>4</f>
|
||||
<f>3</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -60,7 +60,7 @@
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>4</f>
|
||||
<f>3</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -72,7 +72,7 @@
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>4</f>
|
||||
<f>3</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -84,7 +84,7 @@
|
||||
<c>
|
||||
<i>3</i>
|
||||
<c>
|
||||
<f>4</f>
|
||||
<f>3</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -96,7 +96,7 @@
|
||||
<c>
|
||||
<i>4</i>
|
||||
<c>
|
||||
<f>4</f>
|
||||
<f>3</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -113,35 +113,35 @@
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>6</f>
|
||||
<f>5</f>
|
||||
<parameter>Номер</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>7</f>
|
||||
<f>6</f>
|
||||
<parameter>Описание</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>6</f>
|
||||
<f>5</f>
|
||||
<parameter>ЕдИзм</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>3</i>
|
||||
<c>
|
||||
<f>6</f>
|
||||
<f>5</f>
|
||||
<parameter>Количество</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>4</i>
|
||||
<c>
|
||||
<f>7</f>
|
||||
<f>6</f>
|
||||
<parameter>Сумма</parameter>
|
||||
</c>
|
||||
</c>
|
||||
@@ -190,15 +190,6 @@
|
||||
<bottomBorder>0</bottomBorder>
|
||||
<horizontalAlignment>Center</horizontalAlignment>
|
||||
</format>
|
||||
<format>
|
||||
<font>1</font>
|
||||
<leftBorder>0</leftBorder>
|
||||
<topBorder>0</topBorder>
|
||||
<rightBorder>0</rightBorder>
|
||||
<bottomBorder>0</bottomBorder>
|
||||
<horizontalAlignment>Center</horizontalAlignment>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
<leftBorder>0</leftBorder>
|
||||
|
||||
@@ -140,7 +140,6 @@
|
||||
</format>
|
||||
<format>
|
||||
<font>1</font>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
|
||||
@@ -561,7 +561,6 @@
|
||||
</format>
|
||||
<format>
|
||||
<font>1</font>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
@@ -581,7 +580,6 @@
|
||||
<rightBorder>0</rightBorder>
|
||||
<bottomBorder>0</bottomBorder>
|
||||
<horizontalAlignment>Center</horizontalAlignment>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
@@ -612,7 +610,6 @@
|
||||
<format>
|
||||
<font>1</font>
|
||||
<horizontalAlignment>Right</horizontalAlignment>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
<format>
|
||||
<font>1</font>
|
||||
@@ -628,6 +625,5 @@
|
||||
<format>
|
||||
<font>3</font>
|
||||
<horizontalAlignment>Center</horizontalAlignment>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
</document>
|
||||
@@ -152,7 +152,6 @@
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
|
||||
@@ -119,7 +119,6 @@
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
@@ -132,6 +131,5 @@
|
||||
<rightBorder>0</rightBorder>
|
||||
<bottomBorder>0</bottomBorder>
|
||||
<horizontalAlignment>Center</horizontalAlignment>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
</document>
|
||||
@@ -73,6 +73,5 @@
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
</document>
|
||||
@@ -60,7 +60,7 @@
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>7</f>
|
||||
<f>6</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -72,7 +72,7 @@
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>7</f>
|
||||
<f>6</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -84,7 +84,7 @@
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>7</f>
|
||||
<f>6</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -96,7 +96,7 @@
|
||||
<c>
|
||||
<i>3</i>
|
||||
<c>
|
||||
<f>7</f>
|
||||
<f>6</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -108,7 +108,7 @@
|
||||
<c>
|
||||
<i>4</i>
|
||||
<c>
|
||||
<f>7</f>
|
||||
<f>6</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -125,35 +125,35 @@
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>9</f>
|
||||
<f>8</f>
|
||||
<parameter>НомерСтроки</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>10</f>
|
||||
<f>9</f>
|
||||
<parameter>Товар</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>11</f>
|
||||
<f>10</f>
|
||||
<parameter>Количество</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>3</i>
|
||||
<c>
|
||||
<f>11</f>
|
||||
<f>10</f>
|
||||
<parameter>Цена</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>4</i>
|
||||
<c>
|
||||
<f>11</f>
|
||||
<f>10</f>
|
||||
<parameter>Сумма</parameter>
|
||||
</c>
|
||||
</c>
|
||||
@@ -165,7 +165,7 @@
|
||||
<c>
|
||||
<i>3</i>
|
||||
<c>
|
||||
<f>12</f>
|
||||
<f>11</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -177,7 +177,7 @@
|
||||
<c>
|
||||
<i>4</i>
|
||||
<c>
|
||||
<f>13</f>
|
||||
<f>12</f>
|
||||
<parameter>Всего</parameter>
|
||||
</c>
|
||||
</c>
|
||||
@@ -189,7 +189,7 @@
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>14</f>
|
||||
<f>13</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -305,12 +305,10 @@
|
||||
<format>
|
||||
<font>3</font>
|
||||
<horizontalAlignment>Center</horizontalAlignment>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
<format>
|
||||
<font>1</font>
|
||||
<bottomBorder>0</bottomBorder>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
<format>
|
||||
<font>5</font>
|
||||
@@ -323,14 +321,6 @@
|
||||
<rightBorder>1</rightBorder>
|
||||
<bottomBorder>1</bottomBorder>
|
||||
</format>
|
||||
<format>
|
||||
<font>1</font>
|
||||
<leftBorder>1</leftBorder>
|
||||
<topBorder>1</topBorder>
|
||||
<rightBorder>1</rightBorder>
|
||||
<bottomBorder>1</bottomBorder>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
<leftBorder>0</leftBorder>
|
||||
@@ -369,7 +359,6 @@
|
||||
<font>0</font>
|
||||
<topBorder>0</topBorder>
|
||||
<bottomBorder>0</bottomBorder>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
@@ -380,6 +369,5 @@
|
||||
<format>
|
||||
<font>4</font>
|
||||
<horizontalAlignment>Center</horizontalAlignment>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
</document>
|
||||
@@ -131,7 +131,6 @@
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
|
||||
@@ -61,6 +61,5 @@
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
</document>
|
||||
@@ -47,7 +47,7 @@
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>4</f>
|
||||
<f>2</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -59,7 +59,7 @@
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>4</f>
|
||||
<f>2</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -117,14 +117,5 @@
|
||||
<rightBorder>0</rightBorder>
|
||||
<bottomBorder>0</bottomBorder>
|
||||
<horizontalAlignment>Center</horizontalAlignment>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
<leftBorder>0</leftBorder>
|
||||
<topBorder>0</topBorder>
|
||||
<rightBorder>0</rightBorder>
|
||||
<bottomBorder>0</bottomBorder>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
</document>
|
||||
@@ -164,7 +164,6 @@
|
||||
<font>1</font>
|
||||
<topBorder>0</topBorder>
|
||||
<horizontalAlignment>Right</horizontalAlignment>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
<format>
|
||||
<font>1</font>
|
||||
|
||||
@@ -83,12 +83,10 @@
|
||||
<rightBorder>0</rightBorder>
|
||||
<bottomBorder>0</bottomBorder>
|
||||
<horizontalAlignment>Center</horizontalAlignment>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
<format>
|
||||
<font>2</font>
|
||||
<horizontalAlignment>Right</horizontalAlignment>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
@@ -96,6 +94,5 @@
|
||||
<topBorder>0</topBorder>
|
||||
<rightBorder>0</rightBorder>
|
||||
<bottomBorder>0</bottomBorder>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
</document>
|
||||
@@ -61,7 +61,6 @@
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
|
||||
@@ -73,6 +73,5 @@
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
</document>
|
||||
@@ -187,7 +187,6 @@
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
@@ -217,7 +216,6 @@
|
||||
<font>1</font>
|
||||
<topBorder>0</topBorder>
|
||||
<horizontalAlignment>Right</horizontalAlignment>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
<format>
|
||||
<font>1</font>
|
||||
|
||||
@@ -73,6 +73,5 @@
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
</document>
|
||||
@@ -153,7 +153,6 @@
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>4</f>
|
||||
<f>3</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -42,7 +42,7 @@
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>4</f>
|
||||
<f>3</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -54,7 +54,7 @@
|
||||
<c>
|
||||
<i>3</i>
|
||||
<c>
|
||||
<f>4</f>
|
||||
<f>3</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -71,7 +71,7 @@
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>6</f>
|
||||
<f>4</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -83,7 +83,7 @@
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>6</f>
|
||||
<f>4</f>
|
||||
<tl>
|
||||
<v8:item>
|
||||
<v8:lang>ru</v8:lang>
|
||||
@@ -100,28 +100,28 @@
|
||||
<c>
|
||||
<i>0</i>
|
||||
<c>
|
||||
<f>7</f>
|
||||
<f>5</f>
|
||||
<parameter>Номер</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>1</i>
|
||||
<c>
|
||||
<f>7</f>
|
||||
<f>5</f>
|
||||
<parameter>Имя</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>2</i>
|
||||
<c>
|
||||
<f>7</f>
|
||||
<f>5</f>
|
||||
<parameter>Код</parameter>
|
||||
</c>
|
||||
</c>
|
||||
<c>
|
||||
<i>3</i>
|
||||
<c>
|
||||
<f>7</f>
|
||||
<f>5</f>
|
||||
<parameter>Сумма</parameter>
|
||||
</c>
|
||||
</c>
|
||||
@@ -208,15 +208,6 @@
|
||||
<bottomBorder>0</bottomBorder>
|
||||
<horizontalAlignment>Center</horizontalAlignment>
|
||||
</format>
|
||||
<format>
|
||||
<font>1</font>
|
||||
<leftBorder>0</leftBorder>
|
||||
<topBorder>0</topBorder>
|
||||
<rightBorder>0</rightBorder>
|
||||
<bottomBorder>0</bottomBorder>
|
||||
<horizontalAlignment>Center</horizontalAlignment>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
<leftBorder>0</leftBorder>
|
||||
@@ -224,14 +215,6 @@
|
||||
<rightBorder>0</rightBorder>
|
||||
<bottomBorder>0</bottomBorder>
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
<leftBorder>0</leftBorder>
|
||||
<topBorder>0</topBorder>
|
||||
<rightBorder>0</rightBorder>
|
||||
<bottomBorder>0</bottomBorder>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
<leftBorder>0</leftBorder>
|
||||
|
||||
@@ -206,7 +206,6 @@
|
||||
<font>1</font>
|
||||
<topBorder>0</topBorder>
|
||||
<horizontalAlignment>Right</horizontalAlignment>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
<format>
|
||||
<font>1</font>
|
||||
|
||||
@@ -73,6 +73,5 @@
|
||||
</format>
|
||||
<format>
|
||||
<font>0</font>
|
||||
<fillType>Text</fillType>
|
||||
</format>
|
||||
</document>
|
||||
Reference in New Issue
Block a user