@dforge-core/dforge-mcp 0.2.45 → 0.2.47

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (83) hide show
  1. package/CHANGELOG.md +45 -0
  2. package/README.md +2 -1
  3. package/dist/server.js +71 -3
  4. package/package.json +3 -3
  5. package/resources/docs/dsl-reference.md +1 -1
  6. package/resources/schemas/data-views.schema.json +50 -0
  7. package/scripts/install-skills.mjs +1 -0
  8. package/skills/dforge-1c-import/SKILL.md +375 -0
  9. package/skills/dforge-1c-import/references/environment.md +98 -0
  10. package/skills/dforge-1c-import/references/loading.md +164 -0
  11. package/skills/dforge-1c-import/references/measurements.md +210 -0
  12. package/skills/dforge-1c-import/references/print-forms.md +148 -0
  13. package/skills/dforge-1c-import/scripts/1c.py +178 -0
  14. package/skills/dforge-1c-import/scripts/README.md +164 -0
  15. package/skills/dforge-1c-import/scripts/lib/analyze.py +83 -0
  16. package/skills/dforge-1c-import/scripts/lib/attrs.py +278 -0
  17. package/skills/dforge-1c-import/scripts/lib/autospec.py +964 -0
  18. package/skills/dforge-1c-import/scripts/lib/binding.py +257 -0
  19. package/skills/dforge-1c-import/scripts/lib/bsl.py +811 -0
  20. package/skills/dforge-1c-import/scripts/lib/callgraph.py +717 -0
  21. package/skills/dforge-1c-import/scripts/lib/changes.py +326 -0
  22. package/skills/dforge-1c-import/scripts/lib/cli.py +53 -0
  23. package/skills/dforge-1c-import/scripts/lib/columnmap.py +346 -0
  24. package/skills/dforge-1c-import/scripts/lib/coverage.py +242 -0
  25. package/skills/dforge-1c-import/scripts/lib/custom.py +83 -0
  26. package/skills/dforge-1c-import/scripts/lib/delta.py +770 -0
  27. package/skills/dforge-1c-import/scripts/lib/deps.py +136 -0
  28. package/skills/dforge-1c-import/scripts/lib/docusage.py +106 -0
  29. package/skills/dforge-1c-import/scripts/lib/dump1c.py +408 -0
  30. package/skills/dforge-1c-import/scripts/lib/explore.py +55 -0
  31. package/skills/dforge-1c-import/scripts/lib/external.py +202 -0
  32. package/skills/dforge-1c-import/scripts/lib/extract_code.py +251 -0
  33. package/skills/dforge-1c-import/scripts/lib/forms.py +239 -0
  34. package/skills/dforge-1c-import/scripts/lib/genmodule.py +1432 -0
  35. package/skills/dforge-1c-import/scripts/lib/handlers.py +202 -0
  36. package/skills/dforge-1c-import/scripts/lib/handmap.py +142 -0
  37. package/skills/dforge-1c-import/scripts/lib/i18n_coverage.py +87 -0
  38. package/skills/dforge-1c-import/scripts/lib/idioms.py +273 -0
  39. package/skills/dforge-1c-import/scripts/lib/integrity.py +264 -0
  40. package/skills/dforge-1c-import/scripts/lib/inventory.py +535 -0
  41. package/skills/dforge-1c-import/scripts/lib/layers.py +106 -0
  42. package/skills/dforge-1c-import/scripts/lib/meta.py +325 -0
  43. package/skills/dforge-1c-import/scripts/lib/migrate.py +1318 -0
  44. package/skills/dforge-1c-import/scripts/lib/mxl.py +368 -0
  45. package/skills/dforge-1c-import/scripts/lib/naming.py +251 -0
  46. package/skills/dforge-1c-import/scripts/lib/onecd.py +269 -0
  47. package/skills/dforge-1c-import/scripts/lib/paths.py +111 -0
  48. package/skills/dforge-1c-import/scripts/lib/peek.py +68 -0
  49. package/skills/dforge-1c-import/scripts/lib/posted.py +218 -0
  50. package/skills/dforge-1c-import/scripts/lib/posting.py +655 -0
  51. package/skills/dforge-1c-import/scripts/lib/printgen.py +239 -0
  52. package/skills/dforge-1c-import/scripts/lib/rebuild.py +194 -0
  53. package/skills/dforge-1c-import/scripts/lib/recorded.py +170 -0
  54. package/skills/dforge-1c-import/scripts/lib/recorders.py +91 -0
  55. package/skills/dforge-1c-import/scripts/lib/reftargets.py +95 -0
  56. package/skills/dforge-1c-import/scripts/lib/reportgen.py +157 -0
  57. package/skills/dforge-1c-import/scripts/lib/roles.py +33 -0
  58. package/skills/dforge-1c-import/scripts/lib/seedstate.py +493 -0
  59. package/skills/dforge-1c-import/scripts/lib/sizing.py +184 -0
  60. package/skills/dforge-1c-import/scripts/lib/source_file.py +227 -0
  61. package/skills/dforge-1c-import/scripts/lib/source_mssql.py +158 -0
  62. package/skills/dforge-1c-import/scripts/lib/spec.py +400 -0
  63. package/skills/dforge-1c-import/scripts/lib/statements.py +774 -0
  64. package/skills/dforge-1c-import/scripts/lib/store.py +126 -0
  65. package/skills/dforge-1c-import/scripts/lib/subsystems.py +480 -0
  66. package/skills/dforge-1c-import/scripts/lib/terms.py +451 -0
  67. package/skills/dforge-1c-import/scripts/lib/terms_uk.py +555 -0
  68. package/skills/dforge-1c-import/scripts/lib/totals.py +387 -0
  69. package/skills/dforge-1c-import/scripts/lib/typemap.py +73 -0
  70. package/skills/dforge-1c-import/scripts/lib/unpack.py +136 -0
  71. package/skills/dforge-1c-import/scripts/lib/validate.py +508 -0
  72. package/skills/dforge-1c-import/scripts/project-template/.env.example +24 -0
  73. package/skills/dforge-1c-import/scripts/project-template/contours.py +47 -0
  74. package/skills/dforge-1c-import/scripts/project-template/sources.py +24 -0
  75. package/skills/dforge-mcp-author/SKILL.md +5 -0
  76. package/skills/dforge-mcp-author/references/action-dsl.md +1 -1
  77. package/skills/dforge-mcp-author/references/data-views.md +38 -2
  78. package/skills/dforge-mcp-author/references/formulas.md +32 -1
  79. package/skills/dforge-mcp-author/references/print-templates.md +30 -5
  80. package/skills/dforge-mcp-author/references/queries.md +17 -2
  81. package/skills/dforge-mcp-author/references/registers.md +1 -0
  82. package/skills/dforge-mcp-author/references/reports.md +1 -1
  83. package/skills/dforge-mcp-author/references/validation-checklist.md +1 -0
@@ -0,0 +1,451 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding: utf-8 -*-
3
+ """
4
+ Russian -> English word list, for naming ported entities and columns.
5
+
6
+ 1C names are CamelCase compounds of ordinary business words - `РасходЭнергоресурсов`,
7
+ `КоличествоМест`, `ВесоваяХарактеристика` - so the translation that matters is per word,
8
+ not per name. 925 distinct words appear across the 191 ported objects and their 2,620
9
+ fields; the entries below cover the ones that carry meaning, and `naming.py` falls back to
10
+ transliteration for the rest and reports what it had to fall back on.
11
+
12
+ Inflections are listed separately rather than stemmed. Russian stemming is a library's
13
+ job, the forms here are finite and known, and an explicit entry is a decision someone can
14
+ read and disagree with.
15
+
16
+ `STOP` holds the words that are dropped rather than translated: prepositions and
17
+ conjunctions, which carry nothing once the compound becomes snake_case.
18
+ """
19
+
20
+ # Prepositions and glue. `ПродажиДляОлап` -> sales_olap, not sales_for_olap.
21
+ # `мсб` and `рз` are the integrator's tag: it is stripped from a name by the prefix rule,
22
+ # but it also turns up inside synonyms - "Вид расфасовки (МСБ)" - where it means nothing
23
+ # to a reader of the port.
24
+ STOP = set(u"""
25
+ в во для до за и из или к как которое которого которую который между на не о от по под
26
+ после с со у через это мсб рз ир ит
27
+ """.split())
28
+
29
+ # Attributes 1C marked as dead. `УдалитьВидРасчетовНУ` is a column the vendor kept for
30
+ # compatibility and no longer writes; the port drops them rather than naming them.
31
+ DEAD_PREFIXES = (u"удалить", u"удал")
32
+
33
+ def _overlay():
34
+ u"""A project's own proper nouns, merged over the library's table.
35
+
36
+ The company's abbreviations, its plants and its customers used to sit in the
37
+ table below. They are not language, they are this client, and a library carrying
38
+ them would transliterate another company's names into this one's. A project
39
+ declares its own in `vocabulary.py`; absent, nothing changes.
40
+ """
41
+ try:
42
+ import binding
43
+ return binding.vocabulary()
44
+ except Exception:
45
+ # usable as a plain module with no project pointed at it
46
+ return {}
47
+
48
+
49
+ TERMS = {
50
+ # ---------------------------------------------------------------- goods
51
+ u"номенклатура": "product", u"номенклатуры": "product", u"номенклатуре": "product",
52
+ u"номенклауры": "product", u"номенклатурная": "product", u"номенклатурной": "product",
53
+ u"товар": "goods", u"товары": "goods", u"товара": "goods", u"товаров": "goods",
54
+ u"продукция": "output", u"продукции": "output", u"продукцию": "output",
55
+ u"материал": "material", u"материалы": "material", u"материала": "material",
56
+ u"материалов": "material",
57
+ u"полуфабрикат": "semifinished", u"полуфабрикаты": "semifinished",
58
+ u"полуфабрикате": "semifinished", u"полуфабрикатов": "semifinished",
59
+ u"полуфабрикату": "semifinished",
60
+ u"тара": "packaging", u"тары": "packaging", u"таре": "packaging", u"тару": "packaging",
61
+ u"упаковка": "pack", u"упаковки": "pack", u"пакета": "pack",
62
+ u"расфасовка": "packing", u"расфасовки": "packing", u"фасовка": "packing",
63
+ u"перефасовка": "repacking", u"перефасовки": "repacking",
64
+ u"переупаковки": "repacking", u"выфасовка": "packing_out",
65
+ u"серия": "batch", u"серии": "batch", u"серий": "batch", u"серийный": "serial",
66
+ u"серийные": "serial", u"номера": "numbers",
67
+ u"характеристика": "feature", u"артикул": "article",
68
+ u"ингредиент": "ingredient", u"специя": "spice", u"специй": "spice",
69
+ u"мука": "flour", u"муки": "flour", u"мучным": "flour",
70
+ u"сахар": "sugar", u"сахара": "sugar", u"сахаристым": "sugar",
71
+ u"отходы": "waste", u"лома": "scrap", u"нестандарта": "substandard",
72
+ u"нестандарты": "substandard", u"подарки": "gifts", u"набор": "set",
73
+ u"набора": "set", u"наборов": "set", u"новогодний": "holiday",
74
+ u"новогодних": "holiday", u"комплект": "kit", u"аналог": "substitute",
75
+ u"аналога": "substitute", u"аналоги": "substitute",
76
+
77
+ # ---------------------------------------------------------------- measures
78
+ u"количество": "qty", u"кол": "qty", u"вес": "weight", u"весовой": "by_weight",
79
+ u"весовщик": "weigher", u"нетто": "net", u"натура": "natural",
80
+ u"единица": "uom", u"единицы": "uom", u"единиц": "uom", u"ед": "uom",
81
+ u"измерения": "measure", u"коэффициент": "factor", u"коэф": "factor",
82
+ u"кратность": "multiple", u"емкость": "capacity", u"объем": "volume",
83
+ u"место": "place", u"места": "place", u"мест": "places", u"паллет": "pallet",
84
+ u"паллета": "pallet", u"паллеты": "pallet", u"паллетная": "pallet",
85
+ u"паллетной": "pallet", u"короб": "box", u"ящик": "box", u"неполный": "partial",
86
+ u"длина": "length", u"ширина": "width", u"высота": "height", u"масса": "mass",
87
+ u"граммах": "grams", u"кг": "kg", u"процент": "pct", u"процентах": "pct",
88
+ u"норма": "norm", u"нормы": "norm", u"нормативный": "regulatory",
89
+ u"нормативные": "regulatory", u"выработки": "output_rate",
90
+ u"средний": "average", u"максимальная": "max", u"съем": "yield",
91
+
92
+ # ---------------------------------------------------------------- money
93
+ u"сумма": "amount", u"стоимость": "cost", u"себестоимость": "cost_price",
94
+ u"стоимостной": "value", u"цена": "price", u"цены": "price", u"цен": "price",
95
+ u"продажная": "sales", u"наценка": "markup", u"наценки": "markup",
96
+ u"торговой": "trade", u"торговые": "trade", u"торговли": "trade",
97
+ u"скидки": "discount", u"скидок": "discount", u"дооценка": "revaluation",
98
+ u"дооценки": "revaluation", u"переоценки": "revaluation",
99
+ u"валюта": "currency", u"валюте": "currency", u"курс": "rate",
100
+ u"грн": "uah", u"ндс": "vat", u"ндсв": "vat", u"ставка": "rate",
101
+ u"деньги": "cash", u"денег": "cash", u"денежных": "cash", u"средств": "funds",
102
+ u"монеты": "coins", u"купюры": "notes", u"номинал": "denomination",
103
+ u"касса": "till", u"кассы": "till", u"инкасации": "collection",
104
+ u"эквайринга": "acquiring", u"эквайринги": "acquiring",
105
+ u"оплаты": "payment", u"предоплаты": "prepayment", u"аванс": "advance",
106
+ u"авансу": "advance", u"авансам": "advance", u"задолженности": "debt",
107
+ u"задолженностей": "debt", u"отсрочка": "deferral", u"доходов": "income",
108
+ u"расход": "issue", u"расхода": "issue", u"расходов": "expense",
109
+ u"расходы": "expense", u"расходной": "issue", u"расходных": "issue",
110
+ u"затрат": "cost", u"затраты": "cost", u"валовых": "gross",
111
+ u"дисконтная": "loyalty", u"карта": "card", u"резерва": "reserve",
112
+
113
+ # ---------------------------------------------------------------- documents
114
+ u"документ": "document", u"документа": "document", u"документе": "document",
115
+ u"документу": "document", u"документы": "document", u"документов": "document",
116
+ u"акт": "act", u"акта": "act", u"акты": "act", u"актов": "act",
117
+ u"накладной": "waybill", u"накладных": "waybill", u"ттн": "waybill",
118
+ u"фактуры": "invoice", u"фактур": "invoice", u"сф": "invoice",
119
+ u"заказ": "order", u"заказа": "order", u"заказы": "order", u"заказах": "order",
120
+ u"зака": "order", u"распоряжение": "order", u"распоряжения": "order",
121
+ u"распоряжений": "order", u"договор": "contract", u"договора": "contract",
122
+ u"договору": "contract", u"договорам": "contract", u"соглашение": "agreement",
123
+ u"приложение": "addendum", u"приложения": "addendum", u"сделка": "deal",
124
+ u"номер": "no", u"дата": "date", u"даты": "date", u"датами": "dates",
125
+ u"дату": "date", u"период": "period", u"периода": "period",
126
+ u"периоды": "period", u"периодам": "period", u"периодичность": "periodicity",
127
+ u"начала": "from", u"начало": "from", u"нач": "from", u"конец": "to",
128
+ u"конца": "to", u"окончание": "to", u"окончания": "to",
129
+ u"срок": "term", u"сроков": "term", u"годности": "shelf_life",
130
+ u"действия": "validity", u"действие": "validity", u"действует": "is_valid",
131
+ u"действующая": "current", u"действующие": "current",
132
+ u"проведен": "posted", u"проведенные": "posted", u"сторно": "reversal",
133
+ u"корректировка": "adjustment", u"корректировки": "adjustment",
134
+ u"коректировки": "adjustment", u"корректировок": "adjustment",
135
+ u"корректирущая": "adjusting", u"закрытие": "closing", u"закрытых": "closed",
136
+ u"открытие": "opening", u"установка": "set", u"установку": "set",
137
+ u"установки": "set", u"списание": "writeoff", u"списания": "writeoff",
138
+ u"списаний": "writeoff", u"списанное": "written_off", u"списанная": "written_off",
139
+ u"поступление": "receipt", u"поступлений": "receipt", u"приход": "receipt",
140
+ u"прихода": "receipt", u"оприходования": "receipt", u"передача": "handover",
141
+ u"передачи": "handover", u"передаче": "handover", u"переданные": "handed_over",
142
+ u"отгрузка": "shipment", u"отгрузки": "shipment", u"отгрузку": "shipment",
143
+ u"отгрузок": "shipment", u"отпуск": "issue", u"выписки": "issuance",
144
+ u"выписать": "issue", u"выписано": "issued", u"переброска": "transfer",
145
+ u"переброски": "transfer", u"перебросок": "transfer", u"перевозок": "haulage",
146
+ u"перезоки": "haulage", u"переноса": "carry_over", u"инвентаризаций": "stocktake",
147
+ u"недостача": "shortage", u"потерь": "loss", u"потерями": "loss",
148
+ u"возврата": "return", u"возвратов": "return", u"возвратная": "returnable",
149
+ u"возвратные": "returnable", u"санбрака": "sanitary_reject",
150
+ u"оценки": "appraisal", u"заколотки": "rework", u"заколочено": "reworked",
151
+
152
+ # ---------------------------------------------------------------- production
153
+ u"производство": "production", u"производства": "production",
154
+ u"производстве": "production", u"производственная": "production",
155
+ u"цех": "shop", u"цеха": "shop", u"цехе": "shop", u"цехах": "shop",
156
+ u"линия": "line", u"линии": "line", u"линий": "line", u"линиям": "line",
157
+ u"смена": "shift", u"смены": "shift", u"смен": "shift", u"сменный": "shift",
158
+ u"рабочая": "work", u"рабочей": "work", u"рабочих": "work", u"работа": "work",
159
+ u"работы": "work", u"простои": "downtime", u"простоя": "downtime",
160
+ u"выпуск": "output", u"выпуска": "output", u"выбуск": "output",
161
+ u"рецептура": "recipe", u"рецептуры": "recipe", u"рецептур": "recipe",
162
+ u"рецептуре": "recipe", u"спецификация": "spec", u"спецификации": "spec",
163
+ u"алгоритм": "algorithm", u"алгоритмы": "algorithm", u"алгоритмов": "algorithm",
164
+ u"энергоресурсов": "utilities", u"воды": "water", u"газа": "gas",
165
+ u"электоэнергии": "electricity", u"переработки": "tolling",
166
+ u"переработку": "tolling", u"блюдо": "dish", u"блюда": "dish", u"блюд": "dish",
167
+ u"блюдам": "dish", u"столовой": "canteen", u"приготовления": "cooking",
168
+ u"изготовления": "making", u"кладовая": "pantry", u"кладовые": "pantry",
169
+ u"кладовщик": "storekeeper", u"мастер": "foreman", u"слесарь": "fitter",
170
+ u"старший": "senior", u"контролер": "inspector", u"сутки": "day",
171
+ u"суток": "day", u"сутках": "day", u"часов": "hours", u"день": "day",
172
+ u"дни": "days", u"дней": "days", u"днях": "days", u"месяца": "month",
173
+ u"месяцев": "month", u"года": "year", u"год": "year", u"время": "time",
174
+ u"график": "schedule", u"причина": "reason",
175
+
176
+ # ---------------------------------------------------------------- stock
177
+ u"склад": "warehouse", u"склады": "warehouse", u"складов": "warehouse",
178
+ u"складами": "warehouse", u"хранения": "storage", u"хранилище": "store",
179
+ u"остаток": "balance", u"остатка": "balance", u"остатке": "balance",
180
+ u"остатки": "balance", u"остатков": "balance", u"остатках": "balance",
181
+ u"остатками": "balance", u"остаткам": "balance", u"запас": "stock",
182
+ u"запасы": "stock", u"запасов": "stock", u"движения": "movement",
183
+ u"движений": "movement", u"прироста": "increase", u"убыли": "decrease",
184
+ u"пересчета": "recount", u"магазина": "store", u"магазинах": "store",
185
+ u"рознице": "retail", u"розничная": "retail", u"розничной": "retail",
186
+ u"розничных": "retail", u"продажи": "sales", u"продаж": "sales",
187
+ u"продажах": "sales", u"реализации": "sales", u"олап": "olap",
188
+ u"тцо": "transfer_pricing", u"дилер": "dealer", u"дилера": "dealer",
189
+ u"дилеров": "dealer", u"акция": "promo", u"акции": "promo", u"акций": "promo",
190
+ u"акциям": "promo", u"акционная": "promo", u"фт": "branded_retail",
191
+ u"атт": "outlet", u"ккм": "pos", u"ккматт": "pos_outlet",
192
+
193
+ # ---------------------------------------------------------------- parties
194
+ u"контрагент": "party", u"контрагента": "party", u"контрагенты": "party",
195
+ u"контрагентов": "party", u"контрагентом": "party", u"контрангенты": "party",
196
+ u"котрагентов": "party", u"клиента": "customer", u"покупателя": "customer",
197
+ u"получатель": "recipient", u"грузополучатель": "consignee",
198
+ u"грузоотправитель": "shipper", u"отправитель": "sender",
199
+ u"посредника": "intermediary", u"плательщик": "payer",
200
+ u"представитель": "representative", u"организация": "organization",
201
+ u"организации": "organization", u"организаций": "organization",
202
+ u"подразделение": "org_unit", u"подразделений": "org_unit",
203
+ u"сотрудник": "employee", u"сотрудника": "employee", u"сотрудников": "employee",
204
+ u"пользователь": "user", u"пользователи": "user", u"лица": "persons",
205
+ u"фио": "full_name", u"фамилия": "last_name", u"имя": "first_name",
206
+ u"отчество": "middle_name", u"отчества": "middle_name",
207
+ u"должность": "position", u"ответственный": "responsible",
208
+ u"ответственные": "responsible", u"подписи": "signature",
209
+ u"владелец": "owner", u"член": "member", u"комиссия": "committee",
210
+ u"комиссии": "committee", u"комиссий": "committee",
211
+ u"председатель": "chairman", u"доверенность": "power_of_attorney",
212
+ u"доверенности": "power_of_attorney", u"полномочия": "authority",
213
+ u"водитель": "driver", u"водители": "driver", u"водителя": "driver",
214
+
215
+ # ---------------------------------------------------------------- transport
216
+ u"транспорт": "transport", u"транспорта": "transport",
217
+ u"транспорте": "transport", u"транспортные": "transport",
218
+ u"транспортировки": "transport", u"автотранспорта": "vehicle",
219
+ u"автотранспортное": "carrier", u"автотранспортные": "carrier",
220
+ u"предприятие": "company", u"предприятия": "company",
221
+ u"автомобиль": "vehicle", u"автомобиля": "vehicle", u"атомобиля": "vehicle",
222
+ u"машины": "vehicle", u"прицеп": "trailer", u"вагона": "wagon",
223
+ u"контейнера": "container", u"марка": "make", u"модель": "model",
224
+ u"моделям": "model", u"маршрут": "route", u"маршруты": "route",
225
+ u"следования": "travel", u"расстояние": "distance", u"карте": "map",
226
+ u"погрузки": "loading", u"доставки": "delivery", u"путевого": "waybill",
227
+ u"техпаспорт": "tech_passport", u"тех": "tech", u"гос": "state",
228
+ u"пломб": "seals", u"отправления": "departure", u"точка": "point",
229
+ u"точки": "point", u"базирования": "base", u"чей": "whose",
230
+ u"перевозчикова": "carrier",
231
+
232
+ # ---------------------------------------------------------------- customs
233
+ u"гтд": "customs_decl", u"вэд": "foreign_trade", u"квэд": "cn_code",
234
+ u"экспорт": "export", u"экспортер": "exporter", u"импортеры": "importer",
235
+ u"уполномоченный": "authorized", u"уполномоченные": "authorized",
236
+ u"границы": "border", u"пересечения": "crossing", u"страна": "country",
237
+ u"сертификат": "certificate", u"сертификата": "certificate",
238
+ u"сертификаты": "certificate", u"удостоверение": "certificate",
239
+ u"удостоверения": "certificate", u"удостоверений": "certificate",
240
+ u"качество": "quality", u"качества": "quality", u"качественного": "quality",
241
+ u"качественных": "quality", u"качечтва": "quality", u"паспорт": "passport",
242
+ u"тпп": "chamber_of_commerce", u"усеченного": "short", u"cmr": "cmr",
243
+
244
+ # ---------------------------------------------------------------- accounting
245
+ u"счет": "account", u"счета": "account", u"субконто": "analytics",
246
+ u"бу": "accounting", u"бух": "accounting", u"бухгалтерском": "accounting",
247
+ u"ну": "tax_accounting", u"налоговое": "tax", u"налоговый": "tax",
248
+ u"налоговые": "tax", u"налоговом": "tax", u"нп": "profit_tax",
249
+ u"нн": "tax_invoice", u"назначение": "purpose", u"статья": "item",
250
+ u"статьи": "item", u"учет": "accounting", u"учета": "accounting",
251
+ u"количественный": "quantitative", u"валютный": "currency",
252
+ u"суммовой": "amount", u"запретить": "forbid", u"проводках": "postings",
253
+ u"назначениям": "purposes", u"налоговым": "tax",
254
+ u"учете": "accounting", u"учетом": "accounting", u"управленческом": "management",
255
+ u"упр": "management", u"забалансовый": "off_balance", u"дт": "debit",
256
+ u"кон": "end", u"тек": "current", u"регистра": "register",
257
+ u"регистров": "register", u"регистраторов": "recorder",
258
+ u"накопления": "accumulation", u"взаиморасчетов": "settlement",
259
+ u"взаимоотношений": "relations", u"банковский": "bank", u"вд": "gross_income",
260
+ u"вдвр": "gross_income_expense", u"расчетный": "settlement",
261
+ u"расчета": "calculation", u"расчетов": "settlement", u"расчет": "calculation",
262
+ u"авторасчет": "auto_calc", u"баланса": "balance", u"товарного": "goods",
263
+ u"начислениями": "accruals", u"копеек": "kopecks", u"нулем": "zero",
264
+
265
+ # ---------------------------------------------------------------- planning
266
+ u"план": "plan", u"плана": "plan", u"плане": "plan", u"плану": "plan",
267
+ u"планов": "plan", u"плановая": "planned", u"плановые": "planned",
268
+ u"планирования": "planning", u"факт": "actual", u"фактические": "actual",
269
+ u"фактическая": "actual", u"фактически": "actual", u"переменные": "variables",
270
+ u"рентабельности": "profitability", u"показатель": "metric",
271
+ u"показатели": "metric", u"показателей": "metric", u"состав": "composition",
272
+ u"состава": "composition", u"содержание": "content", u"изделий": "products",
273
+ u"кондитерских": "confectionery", u"конд": "confectionery",
274
+ u"прогноз": "forecast", u"проект": "project",
275
+
276
+ # ---------------------------------------------------------------- generic
277
+ u"вид": "kind", u"виды": "kind", u"видов": "kind", u"видом": "kind",
278
+ u"тип": "type", u"типы": "type", u"группа": "group", u"группы": "group",
279
+ u"групп": "group", u"группам": "group", u"группировка": "grouping",
280
+ u"группировки": "grouping", u"группировок": "grouping",
281
+ u"групповая": "bulk", u"подвиды": "subkind", u"подгуппы": "subgroup",
282
+ u"структура": "structure", u"структуры": "structure", u"структур": "structure",
283
+ u"структуре": "structure", u"структурах": "structure",
284
+ u"объект": "object", u"объекта": "object", u"объекты": "object",
285
+ u"данные": "data", u"данных": "data", u"значение": "value",
286
+ u"значения": "value", u"наименование": "name", u"название": "name",
287
+ u"названия": "name", u"код": "code", u"кода": "code", u"ключ": "key",
288
+ u"уид": "uid", u"реквизит": "attribute", u"реквизита": "attribute",
289
+ u"реквизиту": "attribute", u"комментарий": "comment",
290
+ u"коментарий": "comment", u"коментарии": "comment", u"текст": "text",
291
+ u"текста": "text", u"тексты": "text", u"текстовый": "text",
292
+ u"сообщение": "message", u"строка": "row", u"строки": "row", u"строк": "row",
293
+ u"строкам": "row", u"строках": "text", u"строкой": "text",
294
+ u"сточка": "row", u"таблица": "table", u"таблицы": "table",
295
+ u"таблице": "table", u"табличная": "table", u"часть": "section",
296
+ u"колонки": "column", u"колонок": "column", u"файл": "file",
297
+ u"файла": "file", u"формат": "format", u"xml": "xml", u"ексель": "excel",
298
+ u"макет": "template", u"макета": "template", u"макеты": "template",
299
+ u"макетов": "template", u"печатных": "print", u"печать": "print",
300
+ u"печатать": "print", u"распечатан": "printed", u"форм": "form",
301
+ u"отчет": "report", u"отчета": "report", u"отчетов": "report",
302
+ u"утренних": "morning", u"вариант": "variant", u"варианты": "variant",
303
+ u"настройки": "settings", u"насторойки": "settings", u"настроек": "settings",
304
+ u"оптимизации": "optimization", u"отбора": "filter", u"поиск": "search",
305
+ u"статус": "status", u"статусы": "status", u"статуст": "status",
306
+ u"способ": "method", u"схема": "scheme", u"условие": "condition",
307
+ u"условия": "condition", u"порядок": "order", u"порядку": "order",
308
+ u"порядковый": "ordinal", u"последовательность": "sequence",
309
+ u"приоритет": "priority", u"позиция": "position", u"адрес": "address",
310
+ u"адресу": "address", u"индекс": "postcode",
311
+ # "область" and "регион" are two different catalogs in this infobase, so they
312
+ # cannot share a word: the oblast list is the client's own, the region one is stock.
313
+ u"область": "oblast", u"области": "oblast",
314
+ u"регион": "region", u"регионы": "region",
315
+ u"регионов": "region", u"район": "district",
316
+ u"город": "city", u"города": "city", u"центр": "centre", u"центра": "centre",
317
+ u"центры": "centre", u"центральная": "central", u"логистичекие": "logistics",
318
+ u"логистически": "logistics", u"логистического": "logistics",
319
+ u"телефон": "phone", u"почта": "email", u"компьютер": "computer",
320
+ u"связи": "link", u"соответствий": "mapping", u"проверка": "check",
321
+ u"проверки": "check", u"контроль": "control", u"контроля": "control",
322
+ u"контролировать": "control", u"заполнения": "fill", u"ошибки": "error",
323
+ u"ошибками": "error", u"признак": "flag", u"очистки": "clear",
324
+ u"очистка": "clear", u"удаления": "delete", u"удалять": "delete",
325
+ u"удален": "deleted", u"запрет": "forbid", u"нельзя": "forbidden",
326
+ u"разрешил": "approved_by", u"утвердил": "approved_by",
327
+ u"утвердить": "approve", u"утверждено": "approved",
328
+ u"подтвержденный": "confirmed", u"подтверждающий": "confirming",
329
+ u"произвел": "made_by", u"получил": "received_by", u"выдана": "issued_to",
330
+ u"выдачи": "issue", u"составления": "drawn_up", u"автор": "author",
331
+ u"активные": "active", u"входа": "login", u"завершение": "terminate",
332
+ u"принудительное": "forced", u"показать": "show", u"выводить": "show",
333
+ u"выводимые": "shown", u"вывола": "output", u"заголовок": "header",
334
+ u"цветовое": "colour", u"цвет": "colour", u"фона": "background",
335
+ u"жирный": "bold", u"наклонный": "italic", u"подчеркнутый": "underline",
336
+ u"зачеркнутый": "strikethrough", u"оформление": "styling",
337
+ u"редактирования": "editing", u"использовать": "use",
338
+ u"используется": "in_use", u"используеться": "in_use",
339
+ u"использоватьв": "use_in", u"употребить": "use", u"учитывать": "include",
340
+ u"учитывается": "included", u"включает": "includes",
341
+ u"участвует": "participates", u"отражать": "post_to", u"относить": "charge_to",
342
+ u"формировать": "generate", u"выгружать": "export", u"выгружен": "exported",
343
+ u"выгрузки": "export", u"загрузки": "import", u"загрузок": "import",
344
+ u"обработки": "processing", u"обработок": "processing", u"дока": "doc",
345
+ u"отз": "recall", u"орп": "orp", u"пс": "ps", u"па": "pa", u"бц": "bc",
346
+ u"вц": "vc", u"сус": "sus", u"дрпоу": "edrpou", u"инн": "tax_id",
347
+ u"дос": "dos", u"bas": "bas", u"вbas": "to_bas", u"edin": "edin", u"gln": "gln",
348
+ u"английском": "english", u"англ": "english", u"американский": "us",
349
+ u"русском": "russian", u"украинском": "ukrainian", u"латиницей": "latin",
350
+ u"список": "list", u"допустимых": "allowed", u"допустимые": "allowed",
351
+ u"символов": "chars", u"символы": "chars", u"штрих": "barcode",
352
+ u"простые": "simple", u"предопределенные": "predefined",
353
+ u"бланки": "forms", u"строгого": "strict", u"справки": "certificate",
354
+ u"спец": "special", u"спецобслуживание": "special_service",
355
+ u"спецобслуживания": "special_service", u"дополнение": "supplement",
356
+ u"дополнительные": "additional", u"дополнительных": "additional",
357
+ u"доп": "additional", u"добавочная": "additional", u"основная": "main",
358
+ u"основной": "main", u"основного": "main", u"основном": "main",
359
+ u"общий": "total", u"полный": "full", u"полное": "full", u"вся": "all",
360
+ u"все": "all", u"отдельно": "separately", u"отдельной": "separate",
361
+ u"одной": "single", u"один": "single", u"одних": "single",
362
+ u"первый": "first", u"первой": "first", u"второй": "second",
363
+ u"третий": "third", u"четвертый": "fourth", u"новый": "new", u"новая": "new",
364
+ u"новое": "new", u"новые": "new", u"старая": "old", u"старое": "old",
365
+ u"текущая": "current", u"текущее": "current", u"прошлого": "previous",
366
+ u"реальный": "actual", u"готовое": "finished", u"готовая": "finished",
367
+ u"готовых": "finished", u"базовая": "base", u"база": "base", u"базы": "base",
368
+ u"внутренний": "internal", u"внутренних": "internal",
369
+ u"временная": "temporary", u"временный": "temporary", u"нет": "no",
370
+ u"есть": "yes", u"была": "was", u"было": "was", u"уже": "already",
371
+ u"еще": "still", u"осталось": "remaining", u"вернется": "returns",
372
+ u"только": "only", u"отключить": "disable", u"умолчанию": "default",
373
+ u"какой": "which", u"кому": "to_whom", u"кто": "who", u"поправочниый": "correction",
374
+ u"начальных": "initial", u"прочих": "other", u"прочим": "other",
375
+ u"смешанные": "mixed", u"отрицательными": "negative", u"доступно": "available",
376
+ u"изменения": "change", u"событие": "event", u"регистрация": "registration",
377
+ u"регистрационные": "registration", u"регистрации": "registration",
378
+ u"листа": "sheet", u"оригинале": "original", u"выражения": "terms",
379
+ u"тгрузку": "shipment", u"отрузку": "shipment",
380
+
381
+ # ------------------------------------------- the tail, found by naming.report()
382
+ u"операция": "operation", u"операции": "operation", u"операций": "operation",
383
+ u"услуга": "service", u"услуги": "service", u"услуг": "service",
384
+ u"без": "no", u"вводить": "enter", u"автоматических": "automatic",
385
+ u"автоматической": "automatic", u"фабрики": "factory",
386
+ u"строительства": "construction", u"службы": "service",
387
+ u"обороте": "circulation", u"сдано": "handed_over", u"всус": "to_sus",
388
+ u"суммовой": "value", u"суммового": "value", u"авансовых": "advance",
389
+ u"другому": "other", u"статистики": "statistics", u"префикс": "prefix",
390
+ u"имеет": "has", u"конечная": "final",
391
+ # `cклады` is `Склады` with a Latin C - a typo in the infobase, kept as it is there
392
+ u"cклады": "warehouse", u"а": "a",
393
+
394
+ # ------------------- vocabulary of the vendor catalogs the port only points at,
395
+ # and of the synonyms used for labels, found by running autospec
396
+ u"хозрасчетный": "self_supporting", u"хозрасчетные": "self_supporting",
397
+ u"назначения": "purpose", u"активов": "asset",
398
+ u"подразделения": "org_unit", u"подразделению": "org_unit",
399
+ u"характеристики": "feature", u"номенклатурные": "product",
400
+ u"позиции": "position", u"сотрудники": "employee",
401
+ u"классификатор": "classifier", u"стран": "country", u"мира": "world",
402
+ u"уктвэд": "cn_code", u"регл": "statutory", u"схемы": "scheme",
403
+ u"договоры": "contract", u"договорами": "contract", u"банковские": "bank",
404
+ u"информационные": "info", u"карты": "card", u"карт": "card",
405
+ u"дисконтной": "loyalty", u"дисконтных": "loyalty", u"причины": "reason",
406
+ u"оборудование": "equipment", u"объекта": "object",
407
+ u"возврат": "return", u"возвраты": "return", u"оплата": "payment",
408
+ u"оплат": "payment", u"предоплата": "prepayment", u"платежное": "payment",
409
+ u"поручение": "order", u"долга": "debt", u"задолженность": "debt",
410
+ u"дебета": "debit", u"сумм": "amount", u"сумме": "amount",
411
+ u"количеству": "qty", u"количественных": "qty", u"единицах": "uom",
412
+ u"килограммах": "kg", u"штуках": "pieces", u"монета": "coin",
413
+ u"купюра": "note", u"монопаллеты": "monopallet",
414
+ u"благотворительность": "charity", u"реклама": "advertising",
415
+ u"уходимость": "turnover_rate", u"санбрак": "sanitary_reject",
416
+ u"брак": "reject", u"брака": "reject", u"переработка": "tolling",
417
+ u"переупаковка": "repacking", u"перефасоку": "repacking",
418
+ u"фасованный": "packed", u"оприходование": "receipt", u"ордерам": "order",
419
+ u"ордеру": "order", u"реализация": "sale", u"продажа": "sale",
420
+ u"покупателю": "customer", u"покупателем": "customer",
421
+ u"розницу": "retail", u"розничными": "retail", u"фирменной": "branded",
422
+ u"фирм": "branded", u"пром": "industrial", u"новогодние": "holiday",
423
+ u"наборы": "set", u"замена": "replacement", u"заменять": "replace",
424
+ u"скидка": "discount", u"условий": "condition", u"предложение": "offer",
425
+ u"установк": "set", u"сроки": "term", u"склада": "warehouse",
426
+ u"местах": "place", u"виду": "kind", u"факту": "actual",
427
+ u"фабрике": "factory", u"фабрика": "factory", u"обычный": "regular",
428
+ u"текущий": "current", u"текущего": "current", u"базовый": "base",
429
+ u"базовой": "base", u"вхождению": "inclusion", u"диапазон": "range",
430
+ u"наценке": "markup", u"процентной": "pct", u"основному": "main",
431
+ u"оновная": "main", u"нового": "new", u"новой": "new",
432
+ u"открыта": "open", u"закрыта": "closed", u"создание": "creation",
433
+ u"составляется": "drawn_up", u"учету": "accounting",
434
+ u"управленческому": "management", u"коду": "code",
435
+ u"наименованию": "name", u"кодом": "code", u"имени": "name",
436
+ u"каждого": "each", u"всего": "total", u"общая": "total",
437
+ u"пустая": "empty", u"колонка": "column", u"укрупненная": "aggregated",
438
+ u"ручная": "manual", u"регистрационный": "registration",
439
+ u"плановых": "planned", u"ценах": "price", u"показателях": "metric",
440
+ u"валовые": "gross", u"начисленные": "accrued", u"начисленных": "accrued",
441
+ u"получено": "received", u"таможенного": "customs",
442
+ u"оформления": "clearance", u"сведения": "details",
443
+ u"переносится": "carried_over", u"дальнейшей": "further",
444
+ u"начальная": "initial", u"специи": "spice",
445
+ u"спецослуживание": "special_service", u"персчета": "recount",
446
+ u"диллера": "dealer", u"диллерам": "dealer", u"трудовой": "labour",
447
+ u"украины": "ukraine", u"ук": "uk",
448
+ u"док": "doc", u"б": "b", u"г": "g", u"р": "r", u"п": "p",
449
+ }
450
+
451
+ TERMS.update(dict((k, v) for k, v in _overlay().items()))