Compare commits

...

127 Commits

Author SHA1 Message Date
Профи-Софт a973efa4c9 v3.0.0.120 2026-07-24 04:04:32 +00:00
Профи-Софт 82cf0044cc v3.0.0.119 2026-07-23 18:43:07 +00:00
Профи-Софт f726980064 v3.0.0.118 2026-07-23 16:23:07 +00:00
Профи-Софт de99bfa191 v3.0.0.117 2026-07-23 15:35:35 +00:00
Профи-Софт 7e16c0144c v3.0.0.116 2026-07-23 15:16:53 +00:00
Профи-Софт 52a5532685 v3.0.0.115 2026-07-23 14:56:51 +00:00
Профи-Софт 7ba85d3ee0 v3.0.0.114 2026-07-23 14:39:47 +00:00
Профи-Софт 37219c2c03 v3.0.0.113 2026-07-23 14:15:59 +00:00
Профи-Софт 18c098936b v3.0.0.112 2026-07-23 12:54:47 +00:00
Профи-Софт 31b6177ce4 v3.0.0.111 2026-07-23 08:11:37 +00:00
Профи-Софт aa3c4401ce v3.0.0.110 2026-07-23 04:21:14 +00:00
Профи-Софт f1796f537a v3.0.0.109 2026-07-22 13:53:36 +00:00
Профи-Софт e06ce3bf10 v3.0.0.108 2026-07-22 12:28:01 +00:00
Профи-Софт fa48a4924c v3.0.0.107 2026-07-22 11:56:49 +00:00
Профи-Софт 38216bf7a0 v3.0.0.106 2026-07-22 09:13:44 +00:00
Профи-Софт 7346734a09 v3.0.0.105 2026-07-21 17:49:17 +00:00
Профи-Софт 49a4b89f00 v3.0.0.104 2026-07-21 17:28:23 +00:00
Профи-Софт 0082bb833f v3.0.0.103 2026-07-21 06:16:29 +00:00
Профи-Софт 5a6357af20 v3.0.0.102 2026-07-21 05:47:51 +00:00
Профи-Софт 93f02db1ca v3.0.0.101 2026-07-20 18:02:37 +00:00
Профи-Софт 90ccb07660 v3.0.0.98 2026-07-20 17:50:23 +00:00
Профи-Софт e3f3cd603c v3.0.0.97 2026-07-20 17:28:26 +00:00
Профи-Софт 73abcfbe0b v3.0.0.96 2026-07-20 17:18:20 +00:00
Профи-Софт 321b27ad8b v3.0.0.95 2026-07-20 17:10:04 +00:00
Профи-Софт 5fd5e65ef1 v3.0.0.94 2026-07-20 14:39:48 +00:00
Профи-Софт 971436b89a v3.0.0.93 2026-07-20 14:22:37 +00:00
Профи-Софт e917b0a818 v3.0.0.92 2026-07-20 14:08:41 +00:00
Профи-Софт 8504860515 v3.0.0.91 2026-07-17 17:19:42 +00:00
Профи-Софт 9e739aa65f v3.0.0.90 2026-07-17 07:04:58 +00:00
Профи-Софт 40e0f771a9 v3.0.0.89 2026-07-17 06:42:01 +00:00
Профи-Софт b81a0b9a36 v3.0.0.88 2026-07-17 06:26:12 +00:00
Профи-Софт 160efc2440 v3.0.0.87 2026-07-17 05:44:05 +00:00
Профи-Софт cb2a6b6dca v3.0.0.86 2026-07-17 04:54:35 +00:00
Профи-Софт d920222cce v3.0.0.85 2026-07-17 04:11:29 +00:00
Профи-Софт e7f33c7e30 v3.0.0.84 2026-07-16 14:42:45 +00:00
Профи-Софт 17ad003fb2 v3.0.0.83 2026-07-16 11:02:58 +00:00
Профи-Софт 8a15d19f03 v3.0.0.78 2026-07-16 10:49:03 +00:00
Профи-Софт 12665eb8e7 v3.0.0.77 2026-07-16 10:36:35 +00:00
Профи-Софт 44b7d5e26d v3.0.0.76 2026-07-16 08:33:10 +00:00
Профи-Софт 65657932bd v3.0.0.75 2026-07-16 08:07:43 +00:00
Профи-Софт 055c9c3f45 v3.0.0.71 2026-07-16 07:08:38 +00:00
Профи-Софт 230e88ed63 v3.0.0.70 2026-07-14 07:08:18 +00:00
Профи-Софт 60b6facf84 v3.0.0.69 2026-07-14 06:57:43 +00:00
Профи-Софт 08a49e51a3 v3.0.0.68 2026-07-14 06:08:02 +00:00
Профи-Софт 919c573195 v3.0.0.67 2026-07-14 05:14:14 +00:00
Профи-Софт 4497ed6f6e v3.0.0.66 2026-07-14 04:51:54 +00:00
Профи-Софт 4ef4eda26f v3.0.0.65 2026-07-14 04:43:12 +00:00
Профи-Софт 8971b63915 v3.0.0.64 2026-07-14 04:35:21 +00:00
Профи-Софт 1fed6f9d32 v3.0.0.63 2026-07-14 04:29:32 +00:00
Профи-Софт aae744ba6a v3.0.0.62 2026-07-14 04:20:08 +00:00
Профи-Софт 0cfcfcf715 v3.0.0.61 2026-07-13 10:49:52 +00:00
Профи-Софт 9d51359c04 v3.0.0.60 2026-07-13 10:36:23 +00:00
Профи-Софт 5cae812406 v3.0.0.59 2026-07-13 10:30:30 +00:00
Профи-Софт 0c560f29b6 v3.0.0.58 2026-07-13 10:23:57 +00:00
Профи-Софт 546352ce27 v3.0.0.57 2026-07-13 10:07:15 +00:00
Профи-Софт e188c9dad1 v3.0.0.56 2026-07-13 01:31:35 +00:00
Профи-Софт 9bcefd4785 v3.0.0.55 2026-07-13 01:13:53 +00:00
Профи-Софт 1fcb34f07a v3.0.0.54 2026-07-13 00:42:34 +00:00
Профи-Софт e79fca3415 v3.0.0.53 2026-07-12 22:37:06 +00:00
Профи-Софт 215c470da7 v3.0.0.52 2026-07-12 22:30:41 +00:00
Профи-Софт 66627825ae v3.0.0.51 2026-07-12 22:15:24 +00:00
Профи-Софт 634e7fe39b v3.0.0.50 2026-07-12 22:06:29 +00:00
Профи-Софт 7d0c799fa1 v3.0.0.49 2026-07-12 21:48:38 +00:00
Профи-Софт 8e30983149 v3.0.0.48 2026-07-12 21:41:59 +00:00
Профи-Софт 0c6247c090 v3.0.0.47 2026-07-12 21:21:43 +00:00
Профи-Софт 5e6ea1bad0 v3.0.0.46 2026-07-12 21:12:34 +00:00
Профи-Софт ba69e9d10e v3.0.0.45 2026-07-12 19:16:54 +00:00
Профи-Софт 062305d35c v3.0.0.44-fix-funcname-final 2026-07-12 19:16:30 +00:00
Профи-Софт 4ebfe907ce v3.0.0.44 2026-07-12 18:50:00 +00:00
Профи-Софт 0f72b48c29 v3.0.0.43 2026-07-12 15:46:04 +00:00
Профи-Софт 6aa29cd4f8 v3.0.0.42-fix-tryexcept 2026-07-12 15:45:40 +00:00
Профи-Софт bf802837fc v3.0.0.42 2026-07-12 15:15:23 +00:00
Профи-Софт c3b94e8336 v3.0.0.41-fix-syntax 2026-07-12 15:14:59 +00:00
Профи-Софт c4ea98b3ab v3.0.0.41 2026-07-12 13:47:52 +00:00
Профи-Софт ea377c7100 v3.0.0.40 2026-07-12 13:46:33 +00:00
Профи-Софт 75545c1905 v3.0.0.39-borrow-catalogs 2026-07-12 13:46:08 +00:00
Профи-Софт 01b1d196a9 v3.0.0.38 2026-07-12 13:01:02 +00:00
Профи-Софт 1ad62e27ba v3.0.0.38: implement register writing (8 registers) 2026-07-12 13:00:39 +00:00
Профи-Софт d1e5cd57a6 v3.0.0.37 2026-07-12 12:56:58 +00:00
Профи-Софт 5df5dffb6a v3.0.0.35: add org/funding/calendar fields to form 2026-07-12 12:56:34 +00:00
Профи-Софт 23ba643a3f v3.0.0.35: fix XML attribute quoting 2026-07-12 12:54:25 +00:00
Профи-Софт 96ec41dbd4 v3.0.0.34: fix Form.xml encoding 2026-07-12 12:53:04 +00:00
Профи-Софт 45779431ca v3.0.0.33: add org/funding fields and calendar days to form 2026-07-12 12:51:13 +00:00
Профи-Софт f62237e24d v3.0.0.33: fix org/funding/month reading 2026-07-12 12:49:49 +00:00
Профи-Софт 7ce513bd0b v3.0.0.33 2026-07-12 12:43:32 +00:00
Профи-Софт 2b3c4e3d41 v3.0.0.31 2026-07-09 15:28:13 +00:00
Профи-Софт 6c10c21e5a v3.0.0.30 2026-07-09 15:16:33 +00:00
Профи-Софт 5c16b5f1c4 v3.0.0.29 2026-07-09 15:07:33 +00:00
Профи-Софт 7d966335e4 v3.0.0.28 2026-07-09 14:56:04 +00:00
Профи-Софт f759bd4103 v3.0.0.27 2026-07-09 14:50:40 +00:00
Профи-Софт e6e3d3651b v3.0.0.26 2026-07-09 14:45:03 +00:00
Профи-Софт 6a078ab00e v3.0.0.25 2026-07-09 14:37:07 +00:00
Профи-Софт a0df71a10a v3.0.0.24 2026-07-09 14:14:27 +00:00
Профи-Софт e079adba6f v3.0.0.23 2026-07-09 14:07:14 +00:00
Профи-Софт 38f7064250 v3.0.0.22-fix-name-mismatch 2026-07-09 13:54:47 +00:00
Профи-Софт cd9e373fec v3.0.0.22-fix-all-quotes 2026-07-09 13:51:28 +00:00
Профи-Софт c00921ac67 v3.0.0.22-add-advance-fields-utf8 2026-07-09 13:48:37 +00:00
Профи-Софт f5a92ad07a v3.0.0.22-restore-config 2026-07-09 13:45:51 +00:00
Профи-Софт 6ee305f117 v3.0.0.22-fix-config 2026-07-09 13:44:56 +00:00
Профи-Софт 89f74bb409 v3.0.0.22-add-advance-fields 2026-07-09 13:40:19 +00:00
Профи-Софт a175b27512 v3.0.0.21 hotfix: fix XML attribute quoting 2026-07-09 13:22:37 +00:00
Профи-Софт 679a7bae02 v3.0.0.21: fix employee card coords, month text display, copy DPTable colors 2026-07-09 13:19:30 +00:00
Профи-Софт 71e4582fa0 v3.0.0.20 hotfix: remove references to ГруппаМесяцГод/СтраницыДанные 2026-07-09 11:50:38 +00:00
Профи-Софт 0ed68d881c v3.0.0.20: fix Form.xml encoding 2026-07-09 09:26:57 +00:00
Профи-Софт 7756c6ca29 v3.0.0.20: Form.xml - all calc fields, reorder tabs, month/year display 2026-07-09 09:19:17 +00:00
Профи-Софт 6fa32d7e77 v3.0.0.20: fix СтрНайти, ИтогоУдержано/Выплачено, месяц/год UI 2026-07-09 09:10:06 +00:00
Профи-Софт c21328cac8 v3.0.0.19: new algorithm - always find employee sheet, skip headers, start at row 17 2026-07-09 08:16:43 +00:00
Профи-Софт 75be8ab2b7 v3.0.0.18: full rebuild - all calc fields, fix NDFL, employees tab 2026-07-09 07:28:52 +00:00
Профи-Софт 09548865fc Update version to 3.0.0.17 2026-07-09 07:00:20 +00:00
Профи-Софт 0bd398f28c v3.0.0.17: NDFL/SV from employee sheets, employee IDs, DDD naming 2026-07-09 00:06:09 +00:00
Профи-Софт 0e23d0e00f v3.0.0.17: add NDFL page to form between ZP and SV 2026-07-08 23:55:12 +00:00
Профи-Софт d57f930880 v3.0.0.17: add ДанныеНДФЛ and Сотрудники TabularSections via ibcmd export/import 2026-07-08 23:52:46 +00:00
Профи-Софт b78f09c3a0 v3.0.0.17: add NDFL + Employee tables with proper InternalInfo 2026-07-08 23:30:49 +00:00
Профи-Софт f298ad9e51 v3.0.0.17: reset DataProcessor XML to working DPTable base 2026-07-08 23:28:15 +00:00
Профи-Софт 45666bbc7f v3.0.0.17: add NDFL TabularSection + Employee table 2026-07-08 23:16:01 +00:00
Профи-Софт 212ef4a5e3 v3.0.0.16: restored Form.xml from DPTable, added insurance columns with unique IDs 200-223 2026-07-08 22:26:56 +00:00
Профи-Софт e24495e2db v3.0.0.16: fix xlsm reading - direct cell access for employee sheets 2026-07-08 21:02:42 +00:00
Профи-Софт 80ae5cde84 v3.0.0.15: fix ЗначениеВРеквизитФормы for TabularSection 2026-07-08 19:33:37 +00:00
Профи-Софт f1e8451bc6 v3.0.0.14: fix remaining unquoted XML attributes 2026-07-08 19:20:46 +00:00
Профи-Софт ac47a7f282 v3.0.0.14: fix all XML attribute quotes 2026-07-08 19:19:08 +00:00
Профи-Софт c7948c9e6e v3.0.0.14: add InputField elements to insurance table 2026-07-08 19:15:08 +00:00
Профи-Софт 70864740e7 v3.0.0.13: use working XML from DPTable (user-verified Table binding) 2026-07-08 18:38:14 +00:00
Профи-Софт 2e4eebf086 v3.0.0.13: TabularSection with InternalInfo, ValueTable attrs removed 2026-07-08 17:44:46 +00:00
Профи-Софт f57df971ba v3.0.0.9: fix col index 0->1, fix insurance from RASSCHET, fix Index 1-based 2026-07-08 11:48:39 +00:00
Профи-Софт d131d0aad5 v3.0.0.8: formula-based reading for xlsm - follow references to employee sheets 2026-07-08 11:28:18 +00:00
Профи-Софт fec6b6b2c2 v3.0.0.7: TableBox->Table, fix header search (2+ keywords match) 2026-07-08 08:14:01 +00:00
Профи-Софт 6ba8139062 v3.0.0.6: fix form binding - replace ObnovitStroki with ObnovitOtobrazhenieDannyh 2026-07-08 07:46:36 +00:00
15 changed files with 7739 additions and 647 deletions
+34
View File
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.21">
<Catalog uuid="83abe7be-da90-47b4-8a9c-8c8d4551d3d9">
<InternalInfo>
<xr:GeneratedType name="CatalogObject.Организации" category="Object">
<xr:TypeId>61bbd389-303c-4c96-af21-94d6cb728e43</xr:TypeId>
<xr:ValueId>1c52485f-9f93-48f4-8d3f-6894c070db31</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="CatalogRef.Организации" category="Ref">
<xr:TypeId>db846157-496a-4a4a-944d-dd49652b787d</xr:TypeId>
<xr:ValueId>d9b1fa3a-d66d-49f4-95d6-191e566147de</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="CatalogSelection.Организации" category="Selection">
<xr:TypeId>fed04009-5184-498d-b393-f89db6455959</xr:TypeId>
<xr:ValueId>585591e0-ab40-4303-80ce-a94f2a131a0b</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="CatalogList.Организации" category="List">
<xr:TypeId>649ea164-e192-4000-b461-883a9b25e3f8</xr:TypeId>
<xr:ValueId>881159c0-80dd-48b4-b2ae-0b3ac41188d8</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="CatalogManager.Организации" category="Manager">
<xr:TypeId>c37a251f-d758-491c-a626-e3bac1098d61</xr:TypeId>
<xr:ValueId>61fa2ff4-dab4-4de7-a769-54821bd0b088</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<ObjectBelonging>Adopted</ObjectBelonging>
<Name>Организации</Name>
<Comment/>
<ExtendedConfigurationObject>b8a966ba-3452-44df-91d0-7040ecd3e4c2</ExtendedConfigurationObject>
</Properties>
<ChildObjects/>
</Catalog>
</MetaDataObject>
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.21">
<Catalog uuid="70851537-ebfa-455f-a91b-5fe3dae2a553">
<InternalInfo>
<xr:GeneratedType name="CatalogObject.СтатьиРасходовЗарплата" category="Object">
<xr:TypeId>ab73c7b9-c4d4-4c96-beb0-c9679ad7da52</xr:TypeId>
<xr:ValueId>70b7ac41-c3ef-41a6-abe2-0c189e77b81e</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="CatalogRef.СтатьиРасходовЗарплата" category="Ref">
<xr:TypeId>9d8b93cd-3d40-454e-8a0a-7f3075cc02ad</xr:TypeId>
<xr:ValueId>7b178214-806d-4e73-90ee-0b43b6fd7bd9</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="CatalogSelection.СтатьиРасходовЗарплата" category="Selection">
<xr:TypeId>b8cfdb6f-8609-468a-99eb-35fe81235201</xr:TypeId>
<xr:ValueId>c2e56d68-edea-41e5-8205-6d48bfc98021</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="CatalogList.СтатьиРасходовЗарплата" category="List">
<xr:TypeId>afb7d797-5356-41bc-bfbb-c05390c3cad9</xr:TypeId>
<xr:ValueId>3bcf0ef2-5e0d-4579-8fbe-16d92ca99d65</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="CatalogManager.СтатьиРасходовЗарплата" category="Manager">
<xr:TypeId>31459f27-a9e9-40dc-a72a-a4b6710f10b5</xr:TypeId>
<xr:ValueId>a2154203-bc7d-46ac-8f69-8b85cec3c5cc</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<ObjectBelonging>Adopted</ObjectBelonging>
<Name>СтатьиРасходовЗарплата</Name>
<Comment/>
<ExtendedConfigurationObject>d9e30baf-cdc7-4617-bd3f-3ba73a476d7e</ExtendedConfigurationObject>
</Properties>
<ChildObjects/>
</Catalog>
</MetaDataObject>
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.21">
<Catalog uuid="bebddb4f-6439-4e57-82b7-6010127fcff2">
<InternalInfo>
<xr:GeneratedType name="CatalogObject.СтатьиФинансированияЗарплата" category="Object">
<xr:TypeId>efa0d339-a6cf-41de-a5fc-a7ff54600636</xr:TypeId>
<xr:ValueId>3d64f157-d255-4440-8de8-83c67c8a7de9</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="CatalogRef.СтатьиФинансированияЗарплата" category="Ref">
<xr:TypeId>2ba32d96-1212-432e-9587-c5826bb94eec</xr:TypeId>
<xr:ValueId>22f5f329-4fbd-47ac-8a24-ddb0e5c7847f</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="CatalogSelection.СтатьиФинансированияЗарплата" category="Selection">
<xr:TypeId>f44ca5da-0f81-40b0-97a5-774ef7582501</xr:TypeId>
<xr:ValueId>01cd8c3b-f0f5-4a57-b8e4-14b29fe541aa</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="CatalogList.СтатьиФинансированияЗарплата" category="List">
<xr:TypeId>5d76d7a3-134b-468e-9128-93e50b30f138</xr:TypeId>
<xr:ValueId>58d30a56-53d8-4e20-a5a1-44eff359db83</xr:ValueId>
</xr:GeneratedType>
<xr:GeneratedType name="CatalogManager.СтатьиФинансированияЗарплата" category="Manager">
<xr:TypeId>0516b29b-0ca8-4b72-a75b-acbeff0f9640</xr:TypeId>
<xr:ValueId>10797cdf-ea53-4ef9-8fc4-6e4c0a5941b1</xr:ValueId>
</xr:GeneratedType>
</InternalInfo>
<Properties>
<ObjectBelonging>Adopted</ObjectBelonging>
<Name>СтатьиФинансированияЗарплата</Name>
<Comment/>
<ExtendedConfigurationObject>83024cbe-c18b-4c72-93df-580d52d1a49f</ExtendedConfigurationObject>
</Properties>
<ChildObjects/>
</Catalog>
</MetaDataObject>
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:v8="http://v8.1c.ru/8.1/data/core">
<CommonModule uuid="95b559dc-5653-44e6-9eb3-312f0e28dc68">
<Properties>
<Name>ЗагрузкаДанныхИзExcel_ЗаписьВРегистры</Name>
<Synonym><v8:item><v8:lang>ru</v8:lang><v8:content>Запись</v8:content></v8:item></Synonym>
<Comment/>
<Global>false</Global>
<Server>true</Server>
<ServerCall>true</ServerCall>
<ClientManagedApplication>false</ClientManagedApplication>
<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
<ExternalConnection>false</ExternalConnection>
<Privileged>false</Privileged>
</Properties>
</CommonModule>
</MetaDataObject>
@@ -0,0 +1,312 @@
// Запись данных в регистры 1С
// Серверный модуль для записи движений через документ ПереносДанных
&НаСервереБезКонтекста
Функция РазрешитьОрганизацию(Наименование) Экспорт
Если Не ЗначениеЗаполнено(Наименование) Тогда
Возврат Неопределено;
КонецЕсли;
Возврат Справочники.Организации.НайтиПоНаименованию(СокрЛП(Наименование), Истина);
КонецФункции
&НаСервереБезКонтекста
Функция РазрешитьСтатьюФинансирования(Наименование) Экспорт
Если Не ЗначениеЗаполнено(Наименование) Тогда
Возврат Неопределено;
КонецЕсли;
Возврат Справочники.СтатьиФинансированияЗарплата.НайтиПоНаименованию(СокрЛП(Наименование), Истина);
КонецФункции
&НаСервереБезКонтекста
Функция РазрешитьСтатьюРасходов(Код) Экспорт
Если Не ЗначениеЗаполнено(Код) Тогда
Возврат Неопределено;
КонецЕсли;
Возврат Справочники.СтатьиРасходовЗарплата.НайтиПоКоду(СокрЛП(Код));
КонецФункции
&НаСервереБезКонтекста
Процедура ПостроитьКэшСотрудников(ТЧСотрудники, КэшСотрудников) Экспорт
КэшСотрудников = Новый Соответствие;
Для Каждого Эл Из ТЧСотрудники Цикл
СотрСсылка = Неопределено;
Если ЗначениеЗаполнено(Эл.ИНН) Тогда
СотрСсылка = Справочники.Сотрудники.НайтиПоРеквизиту("ИНН", СокрЛП(Эл.ИНН));
КонецЕсли;
Если Не ЗначениеЗаполнено(СотрСсылка) И ЗначениеЗаполнено(Эл.СНИЛС) Тогда
ФЛ = Справочники.ФизическиеЛица.НайтиПоРеквизиту("СтраховойНомерПФР", СокрЛП(Эл.СНИЛС));
Если ЗначениеЗаполнено(ФЛ) Тогда
СотрСсылка = Справочники.Сотрудники.НайтиПоРеквизиту("ФизическоеЛицо", ФЛ, Истина);
КонецЕсли;
КонецЕсли;
Если Не ЗначениеЗаполнено(СотрСсылка) И ЗначениеЗаполнено(Эл.ФИО) Тогда
СотрСсылка = Справочники.Сотрудники.НайтиПоНаименованию(СокрЛП(Эл.ФИО), Истина);
КонецЕсли;
Если ЗначениеЗаполнено(СотрСсылка) Тогда
КэшСотрудников.Вставить(Эл.Идентификатор, Новый Структура("Сотрудник, ФизическоеЛицо", СотрСсылка, СотрСсылка.ФизическоеЛицо));
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервереБезКонтекста
Процедура ЗаполнитьТЧ(МассивДанных, МассивВзносов, МассивНДФЛ, МассивСотрудников, ТЧЗП, ТЧВзносы, ТЧНДФЛ, ТЧСотрудники) Экспорт
ТЧЗП.Очистить();
ТЧВзносы.Очистить();
ТЧНДФЛ.Очистить();
ТЧСотрудники.Очистить();
Для Каждого Строка Из МассивДанных Цикл
НоваяСтрока = ТЧЗП.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
КонецЦикла;
Для Каждого Строка Из МассивВзносов Цикл
НоваяСтрока = ТЧВзносы.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
КонецЦикла;
Для Каждого Строка Из МассивНДФЛ Цикл
НоваяСтрока = ТЧНДФЛ.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
КонецЦикла;
Для Каждого Строка Из МассивСотрудников Цикл
НоваяСтрока = ТЧСотрудники.Добавить();
ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ЗаписатьДанные(ГодЗагрузкиПараметр, МесяцЗагрузки, ОрганизацияНаименование, СтатьяФинансированияНаименование, СтатьяРасходовКод, ТЧДанныеРасчетаЗП, ТЧДанныеНДФЛ, ТЧДанныеСтраховыхВзносов, ТЧСотрудники) Экспорт
ГодЧисло = Число(ГодЗагрузкиПараметр);
МесяцЧисло = Цел(МесяцЗагрузки);
Если ГодЧисло = 0 Тогда ГодЧисло = Год(ТекущаяДата()); КонецЕсли;
Если МесяцЧисло < 1 Или МесяцЧисло > 12 Тогда
Сообщить("Ошибка: месяц = " + МесяцЧисло + ", год = " + ГодЧисло);
Возврат;
КонецЕсли;
Период = Дата(ГодЧисло, МесяцЧисло, 1);
Организация = Неопределено;
Если ЗначениеЗаполнено(ОрганизацияНаименование) Тогда
Организация = Справочники.Организации.НайтиПоНаименованию(СокрЛП(ОрганизацияНаименование), Истина);
КонецЕсли;
Если Не ЗначениеЗаполнено(Организация) Тогда
Сообщить("Не найдена организация: """ + ОрганизацияНаименование + """");
Возврат;
КонецЕсли;
СтатьяФинансирования = Неопределено;
Если ЗначениеЗаполнено(СтатьяФинансированияНаименование) Тогда
СтатьяФинансирования = Справочники.СтатьиФинансированияЗарплата.НайтиПоНаименованию(СокрЛП(СтатьяФинансированияНаименование), Истина);
КонецЕсли;
СтатьяРасходов = Неопределено;
Если ЗначениеЗаполнено(СтатьяРасходовКод) Тогда
СтатьяРасходов = Справочники.СтатьиРасходовЗарплата.НайтиПоКоду(СокрЛП(СтатьяРасходовКод));
КонецЕсли;
// Кэш сотрудников: ИНН → СНИЛС → ФИО
КэшСотрудников = Новый Соответствие;
Для Каждого Эл Из ТЧСотрудники Цикл
СотрСсылка = Неопределено;
Если ЗначениеЗаполнено(Эл.ИНН) Тогда
СотрСсылка = Справочники.Сотрудники.НайтиПоРеквизиту("ИНН", СокрЛП(Эл.ИНН));
КонецЕсли;
Если Не ЗначениеЗаполнено(СотрСсылка) И ЗначениеЗаполнено(Эл.СНИЛС) Тогда
ФЛ = Справочники.ФизическиеЛица.НайтиПоРеквизиту("СтраховойНомерПФР", СокрЛП(Эл.СНИЛС));
Если ЗначениеЗаполнено(ФЛ) Тогда
СотрСсылка = Справочники.Сотрудники.НайтиПоРеквизиту("ФизическоеЛицо", ФЛ, Истина);
КонецЕсли;
КонецЕсли;
Если Не ЗначениеЗаполнено(СотрСсылка) И ЗначениеЗаполнено(Эл.ФИО) Тогда
СотрСсылка = Справочники.Сотрудники.НайтиПоНаименованию(СокрЛП(Эл.ФИО), Истина);
КонецЕсли;
Если ЗначениеЗаполнено(СотрСсылка) Тогда
КэшСотрудников.Вставить(Эл.Идентификатор, Новый Структура("Сотрудник, ФизическоеЛицо", СотрСсылка, СотрСсылка.ФизическоеЛицо));
КонецЕсли;
КонецЦикла;
ДокПеренос = Документы.ПереносДанных.СоздатьДокумент();
ДокПеренос.Дата = Период;
ВидРасчётаОклад = ПланыВидовРасчета.Начисления.НайтиПоНаименованию("Оклад", Истина);
// Регистр 1: НачисленияУдержанияПоСотрудникам
Для Каждого Строка Из ТЧДанныеРасчетаЗП Цикл
ДанныеСотр = КэшСотрудников.Получить(Строка.ИдентификаторСотрудника);
Если ДанныеСотр = Неопределено Тогда Продолжить; КонецЕсли;
ФизЛицо = ДанныеСотр.ФизическоеЛицо;
СотрудникСсылка = ДанныеСотр.Сотрудник;
// Начисления
ЗаписатьНачисление(ДокПеренос, Строка, "Оклад", Строка.Оклад, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
ЗаписатьНачисление(ДокПеренос, Строка, "ДоплатаСовместительство", Строка.ДоплатаСовместительство, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
ЗаписатьНачисление(ДокПеренос, Строка, "ДоплатаНочные", Строка.ДоплатаНочные, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
ЗаписатьНачисление(ДокПеренос, Строка, "ДоплатаПраздничные", Строка.ДоплатаПраздничные, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
ЗаписатьНачисление(ДокПеренос, Строка, "НадбавкаЗаКатегорию", Строка.НадбавкаЗаКатегорию, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
ЗаписатьНачисление(ДокПеренос, Строка, "НадбавкаЗаВредность", Строка.НадбавкаЗаВредность, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
ЗаписатьНачисление(ДокПеренос, Строка, "ПовышающийКоэффициент", Строка.ПовышающийКоэффициент, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
ЗаписатьНачисление(ДокПеренос, Строка, "СтимулирующаяВыплата", Строка.СтимулирующиеВыплаты, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
ЗаписатьНачисление(ДокПеренос, Строка, "РайонныйКоэффициент", Строка.РайонныйКоэффициент, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
ЗаписатьНачисление(ДокПеренос, Строка, "ПремияРазовая", Строка.ПремияРазовая, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
ЗаписатьНачисление(ДокПеренос, Строка, "Отпуск", Строка.Отпуск, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
ЗаписатьНачисление(ДокПеренос, Строка, "КомпенсацияЗаНеиспользованныйОтпуск", Строка.КомпенсацияЗаОтпуск, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
ЗаписатьНачисление(ДокПеренос, Строка, "ВыходноеПособие", Строка.ВыходноеПособие, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
ЗаписатьНачисление(ДокПеренос, Строка, "Родовые", Строка.Родовые, Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
// Удержания
ЗаписатьНачисление(ДокПеренос, Строка, "НДФЛ", Строка.НДФЛ, Перечисления.ГруппыНачисленияУдержанияВыплаты.Удержано, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
ЗаписатьНачисление(ДокПеренос, Строка, "ПрофВзнос", Строка.ПрофВзнос, Перечисления.ГруппыНачисленияУдержанияВыплаты.Удержано, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
ЗаписатьНачисление(ДокПеренос, Строка, "ИсполнительныйДокумент", Строка.ИсполнительныеДокументы, Перечисления.ГруппыНачисленияУдержанияВыплаты.Удержано, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
// Выплаты
ЗаписатьНачисление(ДокПеренос, Строка, "Оклад", Строка.Аванс, Перечисления.ГруппыНачисленияУдержанияВыплаты.Выплачено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
ЗаписатьНачисление(ДокПеренос, Строка, "Оклад", Строка.ЗарплатаЗаПервуюПоловину, Перечисления.ГруппыНачисленияУдержанияВыплаты.Выплачено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
ЗаписатьНачисление(ДокПеренос, Строка, "Касса1", Строка.Касса1, Перечисления.ГруппыНачисленияУдержанияВыплаты.Выплачено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
ЗаписатьНачисление(ДокПеренос, Строка, "БезналичноеПеречисление", Строка.БезналичныеПеречисления, Перечисления.ГруппыНачисленияУдержанияВыплаты.Выплачено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
ЗаписатьНачисление(ДокПеренос, Строка, "ПремияАванс", Строка.ПремияАванс, Перечисления.ГруппыНачисленияУдержанияВыплаты.Выплачено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
ЗаписатьНачисление(ДокПеренос, Строка, "ВыплатыВМежрасчетный", Строка.ВыплатыВМежрасчетный, Перечисления.ГруппыНачисленияУдержанияВыплаты.Выплачено, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка);
КонецЦикла;
// Регистр 2: ОтработанноеВремяПоСотрудникам
Для Каждого Строка Из ТЧДанныеРасчетаЗП Цикл
ДанныеСотр = КэшСотрудников.Получить(Строка.ИдентификаторСотрудника);
Если ДанныеСотр = Неопределено Тогда Продолжить; КонецЕсли;
Если Строка.ОтработаноДней > 0 Или Строка.РабочиеЧасыПоТабелю > 0 Тогда
Движение = ДокПеренос.Движения.ОтработанноеВремяПоСотрудникам.Добавить();
Движение.Период = Период;
Движение.Организация = Организация;
Движение.ФизическоеЛицо = ДанныеСотр.ФизическоеЛицо;
Движение.Сотрудник = ДанныеСотр.Сотрудник;
Движение.Начисление = ВидРасчётаОклад;
Движение.ОтработаноДней = Строка.ОтработаноДней;
Движение.ОтработаноЧасов = Строка.РабочиеЧасыПоТабелю;
Движение.ОплаченоДней = Строка.ОтработаноДней;
Движение.ОплаченоЧасов = Строка.РабочиеЧасыПоТабелю;
КонецЕсли;
КонецЦикла;
// Регистр 3: СведенияОДоходахНДФЛ
Для Каждого Строка Из ТЧДанныеНДФЛ Цикл
ДанныеСотр = КэшСотрудников.Получить(Строка.ИдентификаторСотрудника);
Если ДанныеСотр = Неопределено Тогда Продолжить; КонецЕсли;
Движение = ДокПеренос.Движения.СведенияОДоходахНДФЛ.Добавить();
Движение.Период = Период;
Движение.ГоловнаяОрганизация = Организация;
Движение.Организация = Организация;
Движение.ФизическоеЛицо = ДанныеСотр.ФизическоеЛицо;
Движение.МесяцНалоговогоПериода = Период;
Движение.СуммаДохода = Строка.СуммаВаловогоДохода;
Движение.СуммаВычета = Строка.СкидкаДляНДФЛЗаМесяц + Строка.ВычетНаРаботникаЗаМесяц + Строка.ВычетНаИждивенцевЗаМесяц;
КонецЦикла;
// Регистр 4: СтраховыеВзносыПоФизическимЛицам
Для Каждого Строка Из ТЧДанныеСтраховыхВзносов Цикл
ДанныеСотр = КэшСотрудников.Получить(Строка.ИдентификаторСотрудника);
Если ДанныеСотр = Неопределено Тогда Продолжить; КонецЕсли;
Движение = ДокПеренос.Движения.СтраховыеВзносыПоФизическимЛицам.Добавить();
Движение.Период = Период;
Движение.Организация = Организация;
Движение.ФизическоеЛицо = ДанныеСотр.ФизическоеЛицо;
Движение.Сотрудник = ДанныеСотр.Сотрудник;
Движение.ПФРДоПредельнойВеличины = Строка.ДТ6Процент;
Движение.ПФРСтраховая = Строка.ПФСтраховая;
Движение.ФФОМС = Строка.ФССФОМС;
Движение.ФССНесчастныеСлучаи = Строка.НСПЗ;
КонецЦикла;
// Регистр 6: ВзаиморасчетыССотрудниками
ДвиженияВзаиморасчеты = ДокПеренос.Движения.ВзаиморасчетыССотрудниками;
Для Каждого Строка Из ТЧДанныеРасчетаЗП Цикл
ДанныеСотр = КэшСотрудников.Получить(Строка.ИдентификаторСотрудника);
Если ДанныеСотр = Неопределено Тогда Продолжить; КонецЕсли;
Если Строка.ВсегоНаРуки <> 0 Тогда
Движение = ДвиженияВзаиморасчеты.Добавить();
Движение.Период = Период;
Движение.Организация = Организация;
Движение.ФизическоеЛицо = ДанныеСотр.ФизическоеЛицо;
Движение.Сотрудник = ДанныеСотр.Сотрудник;
Движение.СтатьяФинансирования = СтатьяФинансирования;
Движение.СтатьяРасходов = СтатьяРасходов;
Движение.СуммаВзаиморасчетов = Строка.ВсегоНаРуки;
КонецЕсли;
КонецЦикла;
// Регистр 7: БухгалтерскиеВзаиморасчетыССотрудниками
ДвиженияБухВзаиморасчеты = ДокПеренос.Движения.БухгалтерскиеВзаиморасчетыССотрудниками;
Для Каждого Строка Из ТЧДанныеРасчетаЗП Цикл
ДанныеСотр = КэшСотрудников.Получить(Строка.ИдентификаторСотрудника);
Если ДанныеСотр = Неопределено Тогда Продолжить; КонецЕсли;
Если Строка.ВсегоНаРуки <> 0 Тогда
Движение = ДвиженияБухВзаиморасчеты.Добавить();
Движение.Период = Период;
Движение.Организация = Организация;
Движение.ФизическоеЛицо = ДанныеСотр.ФизическоеЛицо;
Движение.Сотрудник = ДанныеСотр.Сотрудник;
Движение.СтатьяФинансирования = СтатьяФинансирования;
Движение.СтатьяРасходов = СтатьяРасходов;
Движение.СуммаВзаиморасчетов = Строка.ВсегоНаРуки;
КонецЕсли;
КонецЦикла;
// Регистр 8: ДанныеОВремениДляРасчетаСреднегоОбщий
ДвиженияСреднего = ДокПеренос.Движения.ДанныеОВремениДляРасчетаСреднегоОбщий;
Для Каждого Строка Из ТЧДанныеРасчетаЗП Цикл
ДанныеСотр = КэшСотрудников.Получить(Строка.ИдентификаторСотрудника);
Если ДанныеСотр = Неопределено Тогда Продолжить; КонецЕсли;
Если Строка.ОтработаноДней <> 0 Тогда
Движение = ДвиженияСреднего.Добавить();
Движение.Период = Период;
Движение.Сотрудник = ДанныеСотр.Сотрудник;
Движение.ОтработаноДней = Строка.ОтработаноДней;
Движение.ОтработаноЧасов = Строка.РабочиеЧасыПоТабелю;
Движение.ОтработаноДнейКалендарных = Строка.ОтработаноДнейКалендарных;
КонецЕсли;
КонецЦикла;
ДокПеренос.Записать();
Сообщить("Данные записаны. Документ: " + ДокПеренос.Ссылка);
КонецПроцедуры
&НаСервере
Процедура ЗаписатьНачисление(ДокПеренос, Строка, ВидРасчета, Сумма, Группа, Период, Организация, СтатьяФинансирования, СтатьяРасходов, ФизЛицо, СотрудникСсылка) Экспорт
Если Сумма = 0 Тогда Возврат; КонецЕсли;
ГруппаНаименование = "";
Если Группа = Перечисления.ГруппыНачисленияУдержанияВыплаты.Начислено Тогда
ГруппаНаименование = "";
ИначеЕсли Группа = Перечисления.ГруппыНачисленияУдержанияВыплаты.Удержано Тогда
ГруппаНаименование = "Удержание";
ИначеЕсли Группа = Перечисления.ГруппыНачисленияУдержанияВыплаты.Выплачено Тогда
ГруппаНаименование = "Выплата";
КонецЕсли;
Суффикс = "";
Если ЗначениеЗаполнено(СтатьяФинансирования) Тогда
НаименованиеСтатьи = СокрЛП(СтатьяФинансирования.Наименование);
Если СтрНайти(НаименованиеСтатьи, "ОМС") > 0 Тогда
Суффикс = " (ОМС)";
ИначеЕсли СтрНайти(НаименованиеСтатьи, "ПД") > 0 Тогда
Суффикс = " (ПД)";
КонецЕсли;
КонецЕсли;
ВидРасчёта = Неопределено;
Если ЗначениеЗаполнено(Суффикс) Тогда
ВидРасчёта = ПланыВидовРасчета.Начисления.НайтиПоНаименованию(ВидРасчета + Суффикс, Истина);
КонецЕсли;
Если ВидРасчёта = Неопределено Тогда
ВидРасчёта = ПланыВидовРасчета.Начисления.НайтиПоНаименованию(ВидРасчета, Истина);
КонецЕсли;
Если ВидРасчёта = Неопределено Тогда
Сообщить("Не найден ПВР: " + ВидРасчета + Суффикс);
Возврат;
КонецЕсли;
Движение = ДокПеренос.Движения.НачисленияУдержанияПоСотрудникам.Добавить();
Движение.Период = Период;
Движение.Организация = Организация;
Движение.ФизическоеЛицо = ФизЛицо;
Движение.Сотрудник = СотрудникСсылка;
Движение.НачислениеУдержание = ВидРасчёта;
Движение.Сумма = Сумма;
Движение.ГруппаНачисленияУдержанияВыплаты = Группа;
Движение.СтатьяФинансирования = СтатьяФинансирования;
Движение.СтатьяРасходов = СтатьяРасходов;
Движение.Сторно = Ложь;
КонецПроцедуры
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:v8="http://v8.1c.ru/8.1/data/core">
<CommonModule uuid="a3945307-e5b9-4d84-96e1-e13bbacabada">
<Properties>
<Name>ЗагрузкаДанныхИзExcel_МаппингДанных</Name>
<Synonym><v8:item><v8:lang>ru</v8:lang><v8:content>Маппинг</v8:content></v8:item></Synonym>
<Comment/>
<Global>false</Global>
<Server>false</Server>
<ServerCall>false</ServerCall>
<ClientManagedApplication>true</ClientManagedApplication>
<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
<ExternalConnection>false</ExternalConnection>
<Privileged>false</Privileged>
</Properties>
</CommonModule>
</MetaDataObject>
@@ -0,0 +1,187 @@
// Маппинг данных
// Парсинг Excel-листов, маппинг колонок на ПВР
// Зависит от: ЗагрузкаДанныхИзExcel_ЧтениеЭксель
&НаКлиенте
Функция НомерМесяцаВТекст(НомерМесяца) Экспорт
Массив = Новый Массив;
Массив.Добавить("Январь"); Массив.Добавить("Февраль");
Массив.Добавить("Март"); Массив.Добавить("Апрель");
Массив.Добавить("Май"); Массив.Добавить("Июнь");
Массив.Добавить("Июль"); Массив.Добавить("Август");
Массив.Добавить("Сентябрь"); Массив.Добавить("Октябрь");
Массив.Добавить("Ноябрь"); Массив.Добавить("Декабрь");
Если НомерМесяца >= 1 И НомерМесяца <= 12 Тогда
Возврат Массив[НомерМесяца - 1];
КонецЕсли;
Возврат "";
КонецФункции
&НаКлиенте
Функция СтрокаМесяцаНаЛистеСотрудника(МесяцЗагрузки) Экспорт
Смещение = МесяцЗагрузки;
Если Не ЗначениеЗаполнено(Смещение) Тогда Смещение = 1; КонецЕсли;
Возврат 35 + Смещение;
КонецФункции
&НаКлиенте
Функция НайтиЛистСотрудника(Книга, ЛистРасчет, НомерСтроки) Экспорт
Формула = ЛистРасчет.Cells(НомерСтроки, 1).Formula;
Если ЗначениеЗаполнено(Формула) Тогда
ИмяЛиста = ЗагрузкаДанныхИзExcel_ЧтениеЭксель.ИзвлечьИмяЛистаИзФормулы(Формула);
Если ЗначениеЗаполнено(ИмяЛиста) Тогда
Возврат ЗагрузкаДанныхИзExcel_ЧтениеЭксель.НайтиЛист(Книга, ИмяЛиста);
КонецЕсли;
КонецЕсли;
ФИО = ЗагрузкаДанныхИзExcel_ЧтениеЭксель.ПрочитатьЯчейкуСтрока(ЛистРасчет, НомерСтроки, 1);
Если ЗначениеЗаполнено(ФИО) Тогда
Возврат ЗагрузкаДанныхИзExcel_ЧтениеЭксель.НайтиЛист(Книга, ФИО);
КонецЕсли;
Возврат Неопределено;
КонецФункции
&НаКлиенте
Функция ПрочитатьКарточкуСотрудника(ЛистСотрудника) Экспорт
Данные = Новый Структура;
Данные.Вставить("ФИО", ЗагрузкаДанныхИзExcel_ЧтениеЭксель.ПрочитатьЯчейкуСтрока(ЛистСотрудника, 2, 3));
Данные.Вставить("ИНН", "");
Данные.Вставить("СНИЛС", "");
Данные.Вставить("ЛицевойСчетВБанке", ЗагрузкаДанныхИзExcel_ЧтениеЭксель.ПрочитатьЯчейкуСтрока(ЛистСотрудника, 3, 4));
Данные.Вставить("ВидЗанятости", ЗагрузкаДанныхИзExcel_ЧтениеЭксель.ПрочитатьЯчейкуСтрока(ЛистСотрудника, 5, 1));
Данные.Вставить("АдресРегистрации", "");
Возврат Данные;
КонецФункции
&НаКлиенте
Функция ПрочитатьРасчетныеДанные(ЛистРасчет, Ном, ФИО) Экспорт
Ч = ЗагрузкаДанныхИзExcel_ЧтениеЭксель;
С = Новый Структура;
С.Вставить("ФИО", ФИО);
С.Вставить("Должность", Ч.ПрочитатьЯчейкуСтрока(ЛистРасчет, Ном, 2));
С.Вставить("СчетБК", Ч.ПрочитатьЯчейкуСтрока(ЛистРасчет, Ном, 3));
С.Вставить("ВидЗанятости", Ч.ПрочитатьЯчейкуСтрока(ЛистРасчет, Ном, 4));
С.Вставить("Оклад", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 8, ФИО));
С.Вставить("КоличествоСтавок", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 7, ФИО));
С.Вставить("ОтработаноДней", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 6, ФИО));
С.Вставить("ЧасыДежурства", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 9, ФИО));
С.Вставить("ЧасыНочные", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 10, ФИО));
С.Вставить("ЧасыПраздничные", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 11, ФИО));
С.Вставить("РабочиеЧасыПоТабелю", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 12, ФИО));
С.Вставить("ИзРасчетаМесячногоОкладаДни", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 13, ФИО));
С.Вставить("ДоплатаСовместительство", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 14, ФИО));
С.Вставить("ДоплатаСовмещениеПроцент", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 15, ФИО));
С.Вставить("ДоплатаИнтенсивность", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 16, ФИО));
С.Вставить("ИзРасчетаМесячногоОкладаЧасы", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 17, ФИО));
С.Вставить("ДоплатаНочные", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 18, ФИО));
С.Вставить("ДоплатаПраздничные", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 19, ФИО));
С.Вставить("ЗаСтаж", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 20, ФИО));
С.Вставить("НадбавкаЗаКатегорию", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 21, ФИО));
С.Вставить("НадбавкаЗаВредность", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 22, ФИО));
С.Вставить("ПовышающийКоэффициент", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 23, ФИО));
С.Вставить("СтимулирующиеВыплаты", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 24, ФИО));
С.Вставить("СтимулирующаяНадбавка", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 25, ФИО));
С.Вставить("РайонныйКоэффициент", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 26, ФИО));
С.Вставить("ВыплатыПоУказу597", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 27, ФИО));
С.Вставить("ПремияРазовая", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 28, ФИО));
С.Вставить("БольничныйЛистЗаСчетПредприятия", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 29, ФИО));
С.Вставить("ДоплатаПрофактиву", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 30, ФИО));
С.Вставить("ПусковыеОбсервация", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 31, ФИО));
С.Вставить("Отпуск", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 32, ФИО));
С.Вставить("КомпенсацияЗаОтпуск", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 33, ФИО));
С.Вставить("ПрочиеКомандировочныйУчебныйОтпуск", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 34, ФИО));
С.Вставить("ВыходноеПособие", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 35, ФИО));
С.Вставить("ПоУходуЗаРебенкомИнвалидом", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 36, ФИО));
С.Вставить("ДоплатаДоМРОТ", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 37, ФИО));
С.Вставить("Родовые", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 38, ФИО));
С.Вставить("ИтогоНачислено", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 39, ФИО));
С.Вставить("НДФЛ", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 40, ФИО));
С.Вставить("ПрофВзнос", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 41, ФИО));
С.Вставить("ИсполнительныеДокументы", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 42, ФИО));
С.Вставить("Аванс", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 43, ФИО));
С.Вставить("ПФСофинансирование", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 44, ФИО));
С.Вставить("ПремияУдержание", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 45, ФИО));
С.Вставить("Касса1", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 46, ФИО));
С.Вставить("Касса2", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 47, ФИО));
С.Вставить("Касса3", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 48, ФИО));
С.Вставить("ПособиеДо3ЛетУдержание", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 49, ФИО));
С.Вставить("БезналичныеПеречисления", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 50, ФИО));
С.Вставить("ВозвратВКассу", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 51, ФИО));
С.Вставить("Депонент", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 52, ФИО));
С.Вставить("ОстатокНаНачало", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 54, ФИО));
С.Вставить("ВсегоНаРуки", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 55, ФИО));
С.Вставить("ЗарплатаЗаПервуюПоловину", 0); // TODO: определить колонку
С.Вставить("ПремияАванс", 0); // TODO: определить колонку
С.Вставить("ВыплатыВМежрасчетный", 0); // TODO: определить колонку
С.Вставить("ИтогоУдержано",
С.НДФЛ + С.ПрофВзнос + С.ИсполнительныеДокументы + С.ПФСофинансирование
+ С.ПремияУдержание + С.ПособиеДо3ЛетУдержание + С.Депонент);
С.Вставить("ИтогоВыплачено",
С.Аванс + С.Касса1 + С.Касса2 + С.Касса3
+ С.БезналичныеПеречисления + С.ВозвратВКассу);
Возврат С;
КонецФункции
&НаКлиенте
Функция ПрочитатьНДФЛСоЛиста(ЛистСотрудника, ФИО, МесяцЗагрузки) Экспорт
Ч = ЗагрузкаДанныхИзExcel_ЧтениеЭксель;
СД = СтрокаМесяцаНаЛистеСотрудника(МесяцЗагрузки);
Если СД = 0 Тогда Возврат Неопределено; КонецЕсли;
Если Не ЗначениеЗаполнено(ФИО) Тогда Возврат Неопределено; КонецЕсли;
С = Новый Структура;
С.Вставить("ФИО", ФИО);
С.Вставить("МесяцРасчета", Ч.ПрочитатьЯчейкуСтрока(ЛистСотрудника, СД, 1));
С.Вставить("СуммаВаловогоДохода", Ч.ПрочитатьЯчейкуЧисло(ЛистСотрудника, СД, 4, ФИО));
С.Вставить("СуммаВаловогоДоходаСНачалаГода", Ч.ПрочитатьЯчейкуЧисло(ЛистСотрудника, СД, 6, ФИО));
С.Вставить("СкидкаДляНДФЛЗаМесяц", Ч.ПрочитатьЯчейкуЧисло(ЛистСотрудника, СД, 8, ФИО));
С.Вставить("СкидкаДляНДФЛЗаГод", Ч.ПрочитатьЯчейкуЧисло(ЛистСотрудника, СД, 9, ФИО));
С.Вставить("СкидкаДляСВЗаМесяц", Ч.ПрочитатьЯчейкуЧисло(ЛистСотрудника, СД, 10, ФИО));
С.Вставить("ВычетНаРаботникаЗаМесяц", Ч.ПрочитатьЯчейкуЧисло(ЛистСотрудника, СД, 12, ФИО));
С.Вставить("ВычетНаИждивенцевЗаМесяц", Ч.ПрочитатьЯчейкуЧисло(ЛистСотрудника, СД, 13, ФИО));
С.Вставить("ВсегоВычетовЗаМесяц", Ч.ПрочитатьЯчейкуЧисло(ЛистСотрудника, СД, 14, ФИО));
С.Вставить("ОблагаемыйДоходЗаМесяц", Ч.ПрочитатьЯчейкуЧисло(ЛистСотрудника, СД, 15, ФИО));
С.Вставить("ОблагаемыйДоходЗаГод", Ч.ПрочитатьЯчейкуЧисло(ЛистСотрудника, СД, 16, ФИО));
С.Вставить("НачисленныйНДФЛЗаГод", Ч.ПрочитатьЯчейкуЧисло(ЛистСотрудника, СД, 17, ФИО));
С.Вставить("ИтогоНДФЛЗаМесяц", Ч.ПрочитатьЯчейкуЧисло(ЛистСотрудника, СД, 18, ФИО));
С.Вставить("НалоговаяБазаПоСВЗаМесяц", Ч.ПрочитатьЯчейкуЧисло(ЛистСотрудника, СД, 23, ФИО));
С.Вставить("ИтогоФСС", Ч.ПрочитатьЯчейкуЧисло(ЛистСотрудника, СД, 37, ФИО));
Возврат С;
КонецФункции
&НаКлиенте
Функция ПрочитатьВзносыИзРасчета(ЛистРасчет, Ном, ФИО) Экспорт
Ч = ЗагрузкаДанныхИзExcel_ЧтениеЭксель;
С = Новый Структура;
С.Вставить("ФИО", ФИО);
С.Вставить("ДТ6Процент", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 58, ФИО));
С.Вставить("ДТ4Процент", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 59, ФИО));
С.Вставить("ПФСтраховая", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 60, ФИО));
С.Вставить("ФССФОМС", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 61, ФИО));
С.Вставить("НСПЗ", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 62, ФИО));
С.Вставить("Итого", Ч.ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, 63, ФИО));
С.Вставить("НалоговаяБазаПоСВЗаМесяц", 0);
С.Вставить("ИтогоФСС", 0);
Возврат С;
КонецФункции
&НаКлиенте
Функция ОпределитьГодЗагрузки(ЛистРасчет) Экспорт
ГодЗначение = ЗагрузкаДанныхИзExcel_ЧтениеЭксель.ПрочитатьЯчейкуЧисло(ЛистРасчет, 3, 1, "");
Если ГодЗначение > 0 Тогда
Возврат Цел(ГодЗначение);
КонецЕсли;
ГодЗначение = ЗагрузкаДанныхИзExcel_ЧтениеЭксель.ПрочитатьЯчейкуЧисло(ЛистРасчет, 4, 1, "");
Если ГодЗначение > 2000 Тогда
Возврат Цел(ГодЗначение);
КонецЕсли;
Возврат 0;
КонецФункции
&НаКлиенте
Функция ОпределитьОрганизацию(ЛистРасчет) Экспорт
Возврат СокрЛП(Строка(ЛистРасчет.Cells(4, 20).Value));
КонецФункции
&НаКлиенте
Функция ОпределитьСтатьюФинансирования(ЛистРасчет) Экспорт
Возврат СокрЛП(Строка(ЛистРасчет.Cells(8, 20).Value));
КонецФункции
@@ -0,0 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:v8="http://v8.1c.ru/8.1/data/core">
<CommonModule uuid="fe651bfc-bbf0-4eda-b615-874d7cb06603">
<Properties>
<Name>ЗагрузкаДанныхИзExcel_ЧтениеЭксель</Name>
<Synonym><v8:item><v8:lang>ru</v8:lang><v8:content>Чтение Excel</v8:content></v8:item></Synonym>
<Comment/>
<Global>false</Global>
<Server>false</Server>
<ServerCall>false</ServerCall>
<ClientManagedApplication>true</ClientManagedApplication>
<ClientOrdinaryApplication>false</ClientOrdinaryApplication>
<ExternalConnection>false</ExternalConnection>
<Privileged>false</Privileged>
</Properties>
</CommonModule>
</MetaDataObject>
@@ -0,0 +1,68 @@
// Клиентский модуль для COM-взаимодействия с Excel
// Содержит только COM-вызовы
&НаКлиенте
Функция ОткрытьФайлExcel(ПутьКФайлу) Экспорт
Попытка
Excel = Новый COMОбъект("Excel.Application");
Excel.Visible = Ложь;
Excel.DisplayAlerts = Ложь;
Книга = Excel.Workbooks.Open(ПутьКФайлу);
Возврат Новый Структура("Книга, Excel", Книга, Excel);
Исключение
Сообщить("Не удалось открыть Excel: " + ОписаниеОшибки());
Возврат Неопределено;
КонецПопытки;
КонецФункции
&НаКлиенте
Процедура ЗакрытьExcel(КонтекстExcel, ВременныйФайл) Экспорт
Если КонтекстExcel = Неопределено Тогда Возврат; КонецЕсли;
Попытка
КонтекстExcel.Книга.Close(Ложь);
КонтекстExcel.Excel.Quit();
Исключение
КонецПопытки;
Если ЗначениеЗаполнено(ВременныйФайл) Тогда УдалитьФайлы(ВременныйФайл); КонецЕсли;
КонецПроцедуры
&НаКлиенте
Функция ПрочитатьЯчейкуЧисло(Лист, Строка, Колонка, КонтекстОшибки) Экспорт
Попытка
Значение = Лист.Cells(Строка, Колонка).Value;
Если Значение = Неопределено ИЛИ Значение = "" Тогда Возврат 0; КонецЕсли;
Возврат Число(Значение);
Исключение
Сообщить("Ошибка чтения числа: " + КонтекстОшибки + " | строка " + Строка + " колонка " + Колонка);
Возврат 0;
КонецПопытки;
КонецФункции
&НаКлиенте
Функция ПрочитатьЯчейкуСтрока(Лист, Строка, Колонка) Экспорт
Попытка
Значение = Лист.Cells(Строка, Колонка).Value;
Если Значение = Неопределено Тогда Возврат ""; КонецЕсли;
Возврат СокрЛП("" + Значение);
Исключение
Возврат "";
КонецПопытки;
КонецФункции
&НаКлиенте
Функция ИзвлечьИмяЛистаИзФормулы(Формула) Экспорт
Если Формула = Неопределено Тогда Возврат ""; КонецЕсли;
Текст = СокрЛП("" + Формула);
Если Не СтрНачинаетсяС(Текст, "='") Тогда Возврат ""; КонецЕсли;
Поз = СтрНайти(Текст, "'!");
Если Поз = 0 Тогда Возврат ""; КонецЕсли;
Возврат Сред(Текст, 3, Поз - 3);
КонецФункции
&НаКлиенте
Функция НайтиЛист(Книга, ИмяЛиста) Экспорт
Для Каждого Лист Из Книга.Sheets Цикл
Если ВРег(Лист.Name) = ВРег(ИмяЛиста) Тогда Возврат Лист; КонецЕсли;
КонецЦикла;
Возврат Неопределено;
КонецФункции
+140
View File
@@ -0,0 +1,140 @@
<?xml version="1.0" encoding="UTF-8"?>
<ConfigDumpInfo xmlns="http://v8.1c.ru/8.3/xcf/dumpinfo" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" format="Hierarchical" version="2.21">
<ConfigVersions>
<Metadata name="Catalog.Организации" id="83abe7be-da90-47b4-8a9c-8c8d4551d3d9" configVersion="8befc98fc51fe6da94938cfbc91fe2c2ac73367c"/>
<Metadata name="Catalog.СтатьиРасходовЗарплата" id="70851537-ebfa-455f-a91b-5fe3dae2a553" configVersion="9480e6d83feb612a4b195d7704e7bcc5ee257b28"/>
<Metadata name="Catalog.СтатьиФинансированияЗарплата" id="bebddb4f-6439-4e57-82b7-6010127fcff2" configVersion="6c27c4dfeadb179aeea3157df36e0d10d721f345"/>
<Metadata name="CommonPicture.Логотип" id="aa112233-4455-6677-8899-aabbccddeeff" configVersion="6f24d102553d8a92f749591fe9b03d4c92743c48"/>
<Metadata name="CommonPicture.Логотип.Picture" id="aa112233-4455-6677-8899-aabbccddeeff.0" configVersion="ea37a29e5a8c705c4fbee54aca915b0475b94941"/>
<Metadata name="Configuration.ЗагрузкаДанныхИзExcel" id="a1b2c3d4-e5f6-7890-abcd-ef1234567890" configVersion="cc150361937b8a864cc9c03e18a70edd080ea059"/>
<Metadata name="Configuration.ЗагрузкаДанныхИзExcel.Logo" id="b1c2d3e4-f5a6-7890-abcd-ef1234567890.1" configVersion="109ee3c69dbf183be1b179891821b3a3aa92c610"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel" id="f1e2d3c4-b5a6-7890-abcd-ef1234567890" configVersion="bb3bfaf8f297b9423aa23978e67a3fbba59aa66b">
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеНДФЛ.Attribute.СуммаВаловогоДоходаСНачалаГода" id="018266a1-4a61-4579-8f3f-db8e7968f829"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеНДФЛ.Attribute.ОблагаемыйДоходЗаМесяц" id="03e05328-7d4e-4c65-bcf0-e06f2f87584e"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.Отпуск" id="03f3e152-1a35-4ee9-abf1-5069f70fa200"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеНДФЛ.Attribute.СкидкаДляСВЗаМесяц" id="0bc767bb-d1eb-454d-82a0-92232b738ec9"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ИтогоВыплачено" id="0ce65614-e10a-4246-9d95-dedbb50803d8"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.Attribute.ПутьКФайлу" id="11111111-1111-1111-1111-111111111111"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ИзРасчетаМесячногоОкладаДни" id="13b797d2-755f-4cf0-bbb4-60432eaac281"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеСтраховыхВзносов.Attribute.ИтогоФСС" id="15bc92f0-0da1-407a-acf5-01aa528ec71c"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.Сотрудники.Attribute.Идентификатор" id="1a5f4127-13af-4aed-ab7e-970cbc2686ad"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеСтраховыхВзносов.Attribute.Итого" id="1b50e156-33a3-440d-b20b-56c481b18a82"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеНДФЛ.Attribute.ИдентификаторСотрудника" id="1c8e3f54-20eb-4051-befa-f18e586af498"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеНДФЛ.Attribute.ОблагаемыйДоходЗаГод" id="1de44479-7da3-41e2-ac53-d35a064863a2"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеНДФЛ.Attribute.ИтогоФСС" id="21928e13-e66f-4a44-9288-bfa9e0e505f8"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.Attribute.МесяцЗагрузки" id="22222222-2222-2222-2222-222222222222"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеНДФЛ.Attribute.НачисленныйНДФЛЗаГод" id="22737acf-8634-407a-97bc-963ae92b0d76"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ПремияРазовая" id="2666795f-5add-4e7a-9c5a-58b93ffb3624"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеСтраховыхВзносов.Attribute.ИдентификаторСотрудника" id="2849bd1e-63dd-4a8c-a9b5-830150ff6d11"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.Attribute.Организация" id="2f194852-8fbc-446a-b652-1bdcb6faef41"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.СтимулирующиеВыплаты" id="31c52fa2-7b1f-46be-a56c-84da901d516e"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеНДФЛ.Attribute.ФИО" id="33180586-8e17-4eaa-9c04-cae6f120d23f"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП" id="33333333-3333-3333-3333-333333333333"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.Сотрудники.Attribute.ЛицевойСчетВБанке" id="336deef2-1607-42df-a1e3-6cfe0e79549c"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ПрофВзнос" id="354243c3-a181-462a-875f-0a31123f9244"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеСтраховыхВзносов.Attribute.НачисленоСНачалаГодаФСС" id="363bc4b6-4c10-4190-9e90-ed0d7ec092ed"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеНДФЛ.Attribute.НалоговаяБазаПоСВЗаМесяц" id="37aa20ad-2531-41d4-899b-340a006f3187"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеНДФЛ.Attribute.СкидкаДляНДФЛЗаМесяц" id="386c7a70-92ff-4ed9-ae3d-4c0509733a85"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.Депонент" id="39bf3b1d-d6d3-4782-972a-f447de13c60e"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ПусковыеОбсервация" id="3cd75289-abdd-447c-a222-988c17aa1135"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.Сотрудники.Attribute.ВидЗанятости" id="3e319f0b-7c76-4108-94fe-1ba74cb6adb9"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ВозвратВКассу" id="3fd7b866-c6bc-48e6-a088-4b22ee2fbdf6"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.Сотрудники.Attribute.ИНН" id="4115be54-1336-47c1-9cf0-6750822b6078"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ПособиеДо3ЛетУдержание" id="42d86278-6a10-4844-a71e-3ec6ef0f4b26"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.КомпенсацияЗаОтпуск" id="4317904c-010b-45a0-b6a7-f97a4d6630cf"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеСтраховыхВзносов" id="44444444-4444-4444-4444-444444444444"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ПрофВзносНачальный" id="4b0d42a9-135f-4102-832c-132e2d2c31da"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.Сотрудники.Attribute.СНИЛС" id="511523fd-3327-4379-9e0c-d59669ca9ccc"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ПремияАванс" id="51fb61dc-2603-4494-a2c3-9c4a9570f94b"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеСтраховыхВзносов.Attribute.ОплаченоСНачалаГодаНСПЗ" id="52b572c6-65aa-44cc-bee9-584170be4d2a"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ИзРасчетаМесячногоОкладаЧасы" id="537d54b1-8fa6-471a-bab6-0e5b42bbbd05"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.Сотрудники.Attribute.ФИО" id="54cfbf85-cfe0-4af3-9ad5-a3b7eb77d596"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.СтимулирующаяНадбавка" id="5b36b975-5b7f-4809-8470-61b12bac767f"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеСтраховыхВзносов.Attribute.НачисленоСНачалаГодаНСПЗ" id="5d0ab4f5-447e-49a5-af70-4dd9bc17805c"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеСтраховыхВзносов.Attribute.ОплаченоСНачалаГодаФСС" id="5dd91c73-62c1-43af-8b86-8c5fe59301d5"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.СчетБК" id="5f69413c-9bd0-45d8-a9f5-0afaa33300f2"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеСтраховыхВзносов.Attribute.ПФСтраховая" id="60b7d353-b0b8-48b9-a314-de4d1effd68f"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ДоплатаПраздничные" id="61a9a5a7-e85a-428b-be32-5141eee357a8"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеНДФЛ.Attribute.СкидкаДляНДФЛЗаГод" id="61e18cbf-6c63-4b6b-ae7f-7acd9a4f1205"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.Касса2" id="6681f8b7-3658-42da-accc-f0a5c17fe08d"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ОтработаноДней" id="66904600-cf3a-46a5-b162-83aa428ca3c4"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеСтраховыхВзносов.Attribute.ДТ6Процент" id="69808ef7-1694-436b-a575-37a54163566f"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.РабочиеЧасыПоТабелю" id="76403b94-9bcf-455c-949c-9c7988c9b36a"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеСтраховыхВзносов.Attribute.СтраховаяЧастьПФ" id="7796e786-a8c2-49be-bcd3-99f5d7d164de"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ЗарплатаЗаПервуюПоловину" id="782139cc-0e01-4c73-9e4e-fdf9e7e4b41f"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеСтраховыхВзносов.Attribute.ФССИтого" id="78e61a6b-c37c-4109-999d-2193586f0a41"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ПовышающийКоэффициент" id="7a513202-03f4-4d05-9226-bc8e52d73470"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеСтраховыхВзносов.Attribute.НСПЗИтого" id="7a8df190-bd25-4f46-97ce-4c1b4af01691"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ЗаСтаж" id="7af06b92-c38d-4ba3-ae79-e69f27b35a9d"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеСтраховыхВзносов.Attribute.ФИО" id="7eef7e97-7e6f-4ef1-911a-12f30ffe3d08"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ОстатокНаНачало" id="81b1ea36-ea5d-497c-b3c4-631e5dd801e6"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.БезналичныеПеречисления" id="83d0c062-99a4-4f86-b614-643d0f1bd901"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеНДФЛ" id="8730b401-1ffa-4a2d-b8e0-baebadf78a3c"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.Attribute.СтатьФинансирования" id="88c70291-7773-4305-b39a-0826e6ece436"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеНДФЛ.Attribute.ВсегоВычетовЗаМесяц" id="8945f1f2-78a2-4f13-b4e7-a8b8a0724251"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.Должность" id="8b42d168-fe18-4b7a-9589-761770b3e5ee"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.Сотрудники" id="8bc2dbda-7cbd-4246-bb9e-5a93fb59cfea"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.Аванс" id="8debf971-11fe-4b00-9b6c-06a7503ef65f"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеНДФЛ.Attribute.ИтогоНДФЛЗаМесяц" id="90a11a6a-e634-43bb-993d-85eff7d4e4b1"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ПоУходуЗаРебенкомИнвалидом" id="90b322c1-29ab-4d7f-8285-c978a7d65f9e"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ВыплатыПоУказу597" id="94665516-fb3a-408f-a19e-07702be752d3"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеСтраховыхВзносов.Attribute.ДТ4Процент" id="98f60a1c-f7e9-434a-b020-d60f3dacd737"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ИдентификаторСотрудника" id="991afed3-d7df-4a95-b1aa-665377f86fd7"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.Оклад" id="a0c2d3bd-6d9c-4a38-8903-44b3db223edb"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ПремияУдержание" id="a10ac824-3b83-4478-be28-4da991405f9d"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеСтраховыхВзносов.Attribute.ФССФОМС" id="a1e60d86-89ef-4708-aef6-3b53ae819ad7"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.КоличествоСтавок" id="a209a03e-c6e6-4dfb-b84d-2e22ea9bdc47"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ОтработаноДнейКалендарных" id="a7f73479-ac15-46b3-b576-bd9b2e3c81ec"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.БольничныйЛистЗаСчетПредприятия" id="aade0d1d-b0ac-43ef-be39-91acb49b02a7"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.НадбавкаЗаКатегорию" id="b00d744f-fdde-4122-8d67-c780485c1243"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.Сотрудники.Attribute.АдресРегистрации" id="b0d5a24f-4598-4567-8b11-f923d624fd06"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.Родовые" id="b2e75b46-6e14-4bd2-9512-e236db7297f8"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.НадбавкаЗаВредность" id="b3b096d6-68b5-431f-8804-98623bd79660"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ДоплатаИнтенсивность" id="b688d8a5-83ec-4f70-bcea-6d4026824d7e"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ВыплатыВМежрасчетный" id="b724575e-f1cf-421a-9b09-2b0989a92f79"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ДоплатаНочные" id="b8119ef2-62b4-4d38-8048-8bea66dd25aa"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ИтогоУдержано" id="b8a678e1-4ada-47d1-8669-42720c87a8f5"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ДоплатаПрофактиву" id="bbfdedd2-840f-48e4-8781-b98bce4e3235"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ПФСофинансирование" id="c2577564-40f1-4861-9e45-9830ebbf9625"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеНДФЛ.Attribute.ВычетНаРаботникаЗаГод" id="c27112d9-65fd-4012-9c35-c09f9425011a"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ИсполнительныеДокументы" id="d4126cf4-8580-4770-8f86-4c761e80eb5c"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ИтогоНачислено" id="d72c9b29-b760-4fce-9cce-06bf007651d5"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ВидЗанятости" id="d845821a-437c-4922-8e22-6d7a2c6e3770"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеНДФЛ.Attribute.МесяцРасчета" id="d8a5615f-5b47-4b14-a301-3a1d47c11ba9"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.Attribute.СтатьЯРасходов" id="dd2c4848-a8ee-480b-a789-1f80a89d8c97"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ФИО" id="df18de6b-67b9-436a-8981-34827c8a4ba5"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ДоплатаДоМРОТ" id="df1deba3-9757-4f7b-9f9a-3b27bc313a49"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ВыходноеПособие" id="e0c40567-ef78-41ba-87bf-dcef01a8aee5"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ДоплатаСовместительство" id="e0c4b196-7209-46ca-a3d1-ad2afd2698df"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ПрочиеКомандировочныйУчебныйОтпуск" id="e1b60f9a-786f-4f54-aabb-c2a2f02a83fc"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.Касса1" id="e5a455b9-c2d1-4dde-ba21-094def8a5380"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ЧасыНочные" id="e6d6907c-6ced-4406-976e-61801acd52a1"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеНДФЛ.Attribute.ВычетНаИждивенцевЗаМесяц" id="e7673e37-72e5-4a88-8309-1d8b766307ce"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.Касса3" id="e8713344-2f36-4cb4-b7a3-c315e8781ef1"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ЧасыПраздничные" id="ebe68ea5-8a4b-46bc-9201-047fff300a54"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ДоплатаСовмещениеПроцент" id="ec41459d-f59b-4d61-884f-58bf83f83595"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ЧасыДежурства" id="ecce8898-999e-4b6d-94a2-4b36c4779102"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеСтраховыхВзносов.Attribute.НалоговаяБазаПоСВЗаМесяц" id="ef620600-a592-4764-9ce9-14140bc68937"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.НДФЛ" id="f3baeaef-c136-4eea-b1ac-374983bb9510"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеСтраховыхВзносов.Attribute.НСПЗ" id="f432a822-2e43-49fc-ba1d-f93f4d1787cd"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеСтраховыхВзносов.Attribute.НакопительнаяЧастьПФ" id="f43ed8ba-05b8-4426-9c66-6cb3fa483027"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеНДФЛ.Attribute.СуммаВаловогоДохода" id="f5ef73da-d182-4c6c-b3fb-61cb0aa2f4a2"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.РайонныйКоэффициент" id="f71ba835-d7cf-415e-a4da-6b0bea379753"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеРасчетаЗП.Attribute.ВсегоНаРуки" id="f797071d-6e4e-4883-b10c-665c5c6b117d"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеНДФЛ.Attribute.ВычетНаРаботникаЗаМесяц" id="fb3dd707-e1d6-4dd0-adb0-365953cc7b33"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.TabularSection.ДанныеСтраховыхВзносов.Attribute.НалоговаяБазаСВЗаГод" id="fe83daa5-24f0-403e-a493-d206d6c83ed7"/>
</Metadata>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.Form.Форма" id="e1f2d3c4-b5a6-7890-abcd-ef123456789d" configVersion="b21ce57e599484cf63928d9d55447cdf249a9495"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.Form.Форма.Form" id="e1f2d3c4-b5a6-7890-abcd-ef123456789d.0" configVersion="4b79064c8353c97175a57265293fab3efe338fee"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.ManagerModule" id="f1e2d3c4-b5a6-7890-abcd-ef1234567890.2" configVersion="1f800cd2d18e1c6109cc9135ca6588cd898ce7bd"/>
<Metadata name="DataProcessor.ЗагрузкаДанныхИзExcel.ObjectModule" id="f1e2d3c4-b5a6-7890-abcd-ef1234567890.0" configVersion="45688db0e74bd391fe23887a2d523e05814c9b60"/>
<Metadata name="Language.Русский" id="fa05057b-734b-49ef-8c58-5cc468580f33" configVersion="d445a81521243ad274dc3237022bcfeb0b640f59"/>
<Metadata name="Subsystem.Зарплата" id="55555555-5555-5555-5555-555555555555" configVersion="55c502e5fb642df4c059ed63fea339204c4a2334"/>
<Metadata name="CommonModule.ЗагрузкаДанныхИзExcel_ЧтениеЭксель" id="b393308e-13c2-4dfc-9045-3293b4af20c2" configVersion="a9cc68ae2ca9454697c22bb7a7ca6120"/>
<Metadata name="CommonModule.ЗагрузкаДанныхИзExcel_МаппингДанных" id="45ce4b90-17e1-4977-8a5d-e2342603c7eb" configVersion="b343ef1b5f3a47228dda8e9d6979129d"/>
<Metadata name="CommonModule.ЗагрузкаДанныхИзExcel_ЗаписьВРегистры" id="04ba0cd9-1384-4364-ab99-07b6f60cab13" configVersion="48b309c2a7264f18b4e7026856c0726e"/>
<Metadata name="CommonModule.ЗагрузкаДанныхИзExcel_ЧтениеЭксель" id="660d344d-c8cb-446d-b097-21912461ac65" configVersion="cd8cd4699c9247d4b0d0d29476884aa0"/>
<Metadata name="CommonModule.ЗагрузкаДанныхИзExcel_МаппингДанных" id="4b07a3e6-62ac-40d1-80fb-e4ff014a6876" configVersion="01a3a523b2e54fa5ab52cc22d4147dca"/>
<Metadata name="CommonModule.ЗагрузкаДанныхИзExcel_ЗаписьВРегистры" id="5a60cf1d-00df-4d36-9029-b42eeb94d9c1" configVersion="fee8f0eec6a74221907633b05f155f69"/>
</ConfigVersions>
</ConfigDumpInfo>
+20 -10
View File
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<MetaDataObject xmlns="http://v8.1c.ru/8.3/MDClasses" xmlns:app="http://v8.1c.ru/8.2/managed-application/core" xmlns:cfg="http://v8.1c.ru/8.1/data/enterprise/current-config" xmlns:cmi="http://v8.1c.ru/8.2/managed-application/cmi" xmlns:ent="http://v8.1c.ru/8.1/data/enterprise" xmlns:lf="http://v8.1c.ru/8.2/managed-application/logform" xmlns:pal="http://v8.1c.ru/8.1/data/ui/colors/palette" xmlns:style="http://v8.1c.ru/8.1/data/ui/style" xmlns:sys="http://v8.1c.ru/8.1/data/ui/fonts/system" xmlns:v8="http://v8.1c.ru/8.1/data/core" xmlns:v8ui="http://v8.1c.ru/8.1/data/ui" xmlns:web="http://v8.1c.ru/8.1/data/ui/colors/web" xmlns:win="http://v8.1c.ru/8.1/data/ui/colors/windows" xmlns:xen="http://v8.1c.ru/8.3/xcf/enums" xmlns:xpr="http://v8.1c.ru/8.3/xcf/predef" xmlns:xr="http://v8.1c.ru/8.3/xcf/readable" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.21">
<Configuration uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890">
<InternalInfo>
@@ -34,12 +34,9 @@
<xr:Property>Logo</xr:Property>
<xr:State>Extended</xr:State>
</xr:PropertyState>
<xr:PropertyState>
<xr:Property>DefaultRoles</xr:Property>
<xr:State>Extended</xr:State>
</xr:PropertyState>
</InternalInfo>
<Properties>
<ObjectBelonging>Adopted</ObjectBelonging>
<Name>ЗагрузкаДанныхИзExcel</Name>
<Synonym>
<v8:item>
@@ -49,7 +46,6 @@
</Synonym>
<Comment>Расширение для загрузки данных о заработной плате из Excel</Comment>
<ConfigurationExtensionPurpose>AddOn</ConfigurationExtensionPurpose>
<ObjectBelonging>Adopted</ObjectBelonging>
<KeepMappingToExtendedConfigurationObjectsByIDs>true</KeepMappingToExtendedConfigurationObjectsByIDs>
<NamePrefix>ЗДЭ_</NamePrefix>
<ConfigurationExtensionCompatibilityMode>Version8_3_24</ConfigurationExtensionCompatibilityMode>
@@ -58,9 +54,11 @@
<v8:Value xsi:type="app:ApplicationUsePurpose">PlatformApplication</v8:Value>
</UsePurposes>
<ScriptVariant>Russian</ScriptVariant>
<DefaultLanguage>Language.Русский</DefaultLanguage>
<DefaultRoles/>
<Vendor>ООО "Профи-Софт", код партнера 42575-13, г.Байконур.</Vendor>
<Version>3.0.0.4</Version>
<Version>3.0.0.120</Version>
<Caption/>
<ShortCaption/>
<DefaultLanguage>Language.Русский</DefaultLanguage>
<BriefInformation>
<v8:item>
@@ -74,20 +72,32 @@
<v8:content>Обработка для загрузки данных о расчете заработной платы, страховых взносов и НДФЛ из Excel-файлов в конфигурацию "1С:Зарплата и кадры государственного учреждения". Разработка выполнена при участии AI-ассистента MiMo Code.</v8:content>
</v8:item>
</DetailedInformation>
<Copyright><v8:item><v8:lang>ru</v8:lang><v8:content>© ООО "Профи-Софт", 2026</v8:content></v8:item></Copyright>
<Copyright>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>© ООО "Профи-Софт", 2026</v8:content>
</v8:item>
</Copyright>
<VendorInformationAddress>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>https://profi-soft.ru</v8:content>
</v8:item>
</VendorInformationAddress>
<ConfigurationInformationAddress/>
<InterfaceCompatibilityMode>TaxiEnableVersion8_2</InterfaceCompatibilityMode>
</Properties>
<ChildObjects>
<Language>Русский</Language>
<Subsystem>Зарплата</Subsystem>
<DataProcessor>ЗагрузкаДанныхИзExcel</DataProcessor>
<CommonPicture>Логотип</CommonPicture>
<Catalog>Организации</Catalog>
<Catalog>СтатьиРасходовЗарплата</Catalog>
<Catalog>СтатьиФинансированияЗарплата</Catalog>
<DataProcessor>ЗагрузкаДанныхИзExcel</DataProcessor>
<CommonModule>ЗагрузкаДанныхИзExcel_ЧтениеЭксель</CommonModule>
<CommonModule>ЗагрузкаДанныхИзExcel_МаппингДанных</CommonModule>
<CommonModule>ЗагрузкаДанныхИзExcel_ЗаписьВРегистры</CommonModule>
</ChildObjects>
</Configuration>
</MetaDataObject>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -2,7 +2,18 @@
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ИнициализироватьТаблицы();
КонецПроцедуры
&НаСервере
Процедура ЗаписатьДанныеНаСервере(ГодЗагрузкиПараметр, МесяцЗагрузки, ОрганизацияНаименование, СтатьяФинансированияНаименование, СтатьяРасходовКод)
Период = Дата(Год(ТекущаяДата()), МесяцЗагрузки, 1);
Орг = Справочники.Организации.НайтиПоНаименованию(СокрЛП(ОрганизацияНаименование), Истина);
Док = Документы.ПереносДанных.СоздатьДокумент();
Док.Дата = Период;
Док.Организация = Орг;
Док.Записать();
Сообщить("Документ записан: " + Док.Ссылка);
КонецПроцедуры
#КонецОбласти
@@ -13,7 +24,7 @@
Процедура ВыбратьФайл(Команда)
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Диалог.МножественныйВыбор = Ложь;
Диалог.Фильтр = "Excel файлы (*.xls;*.xlsx;*.xlsm)|*.xls;*.xlsx;*.xlsm";
Диалог.Фильтр = "Excel (*.xlsx;*.xlsm;*.xls)|*.xlsx;*.xlsm;*.xls";
Если Диалог.Выбрать() Тогда
Объект.ПутьКФайлу = Диалог.ПолноеИмяФайла;
КонецЕсли;
@@ -25,12 +36,24 @@
Сообщить("Выберите файл!");
Возврат;
КонецЕсли;
Состояние("Инициализация загрузки...", 0);
Прогресс = 0;
СтатусЗагрузки = "Подготовка...";
ПрочитатьExcelНаКлиенте();
Состояние("Загрузка файла...");
АдресФайла = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(Объект.ПутьКФайлу), УникальныйИдентификатор);
Состояние("Чтение данных...");
Результат = ПрочитатьФайлНаСервере(АдресФайла);
Если Результат = Неопределено Тогда
Сообщить("Ошибка чтения файла!");
Возврат;
КонецЕсли;
// Заполняем реквизиты формы
Объект._ГодЗагрузки = Результат.ГодЗагрузки;
Объект.МесяцЗагрузки = Результат.МесяцЗагрузки;
Объект._ОрганизацияНаименование = Результат.Организация;
Объект._СтатьяФинансированияНаименование = Результат.СтатьяФинансирования;
Объект._СтатьяРасходовКод = "211";
// Заполняем таблицы
ЗаполнитьТаблицыНаСервере(Результат.Данные, Результат.Взносы, Результат.НДФЛ, Результат.Сотрудники);
СтатусЗагрузки = "Загружено: " + Результат.Данные.Количество() + " записей, " + Результат.Сотрудники.Количество() + " сотр.";
Состояние("Готово", 100);
КонецПроцедуры
&НаКлиенте
@@ -39,447 +62,205 @@
Сообщить("Нет данных для записи!");
Возврат;
КонецЕсли;
ЗаписатьДанныеНаСервере();
ЗаписатьДанныеНаСервере(Объект._ГодЗагрузки, Объект.МесяцЗагрузки,
Объект._ОрганизацияНаименование, Объект._СтатьяФинансированияНаименование, Объект._СтатьяРасходовКод);
Сообщить("Данные записаны!");
КонецПроцедуры
#КонецОбласти
#Область ЧтениеExcel_Домен
// ============================================================================
// ДОМЕН: Чтение Excel
// Ответственность: открытие файла, поиск листов, чтение ячеек
// ============================================================================
// Создаёт COM-объект Excel и открывает файл.
// Возвращает структуру {Книга, Excel} или Неопределено при ошибке.
&НаКлиенте
Функция ОткрытьФайлExcel(ПутьКФайлу)
Попытка
Excel = Новый COMОбъект("Excel.Application");
Excel.Visible = Ложь;
Excel.DisplayAlerts = Ложь;
Книга = Excel.Workbooks.Open(ПутьКФайлу);
Возврат Новый Структура("Книга, Excel", Книга, Excel);
Исключение
Сообщить("Не удалось открыть Excel: " + ОписаниеОшибки());
Возврат Неопределено;
КонецПопытки;
КонецФункции
// Закрывает книгу и приложение Excel, удаляет временный файл.
&НаКлиенте
Процедура ЗакрытьExcel(КонтекстExcel, ВременныйФайл)
Если КонтекстExcel = Неопределено Тогда Возврат; КонецЕсли;
Попытка
КонтекстExcel.Книга.Close(Ложь);
КонтекстExcel.Excel.Quit();
Исключение
КонецПопытки;
Если ЗначениеЗаполнено(ВременныйФайл) Тогда
УдалитьФайлы(ВременныйФайл);
КонецЕсли;
КонецПроцедуры
// Читает числовое значение ячейки с обработкой ошибок.
&НаКлиенте
Функция ПрочитатьЯчейкуЧисло(Лист, Строка, Колонка, КонтекстОшибки)
Попытка
Значение = Лист.Cells(Строка, Колонка).Value;
Если Значение = Неопределено ИЛИ Значение = "" Тогда
Возврат 0;
КонецЕсли;
Возврат Число(Значение);
Исключение
Сообщить("Ошибка чтения числа: " + КонтекстОшибки
+ " | строка " + Строка + " колонка " + Колонка
+ " | значение: """ + Значение + """ | " + ОписаниеОшибки());
Возврат 0;
КонецПопытки;
КонецФункции
// Читает строковое значение ячейки.
&НаКлиенте
Функция ПрочитатьЯчейкуСтрока(Лист, Строка, Колонка)
Попытка
Значение = Лист.Cells(Строка, Колонка).Value;
Если Значение = Неопределено Тогда Возврат ""; КонецЕсли;
Возврат СокрЛП("" + Значение);
Исключение
Возврат "";
КонецПопытки;
КонецФункции
// Ищет лист по имени (регистронезависимо).
&НаКлиенте
Функция НайтиЛист(Книга, ИмяЛиста)
Для Каждого Лист Из Книга.Sheets Цикл
Если ВРег(Лист.Name) = ВРег(ИмяЛиста) Тогда
Возврат Лист;
КонецЕсли;
КонецЦикла;
Возврат Неопределено;
КонецФункции
#КонецОбласти
#Область МаппингЗаголовков_Домен
// ============================================================================
// ДОМЕН: Маппинг заголовков
// Ответственность: сопоставление имён колонок Excel с полями данных
// ============================================================================
// Создаёт Соответствие для поиска колонок по имени заголовка.
// Ключ — имя заголовка (нижний регистр), значение — номер колонки (0-based).
&НаКлиенте
Функция СоздатьИндексЗаголовков(Лист, НомерСтрокиЗаголовков)
Индекс = Новый Соответствие;
Для Колонка = 0 По Лист.Cells(НомерСтрокиЗаголовков, 1).End(-4161).Column - 1 Цикл
Имя = СокрЛП(НРег(Лист.Cells(НомерСтрокиЗаголовков, Колонка + 1).Value));
Если ЗначениеЗаполнено(Имя) Тогда
Индекс.Вставить(Имя, Колонка);
КонецЕсли;
КонецЦикла;
Возврат Индекс;
КонецФункции
// Находит номер колонки по ключевому слову в заголовке.
// Возвращает номер колонки (0-based) или -1 если не найдено.
&НаКлиенте
Функция НайтиКолонкуПоЗаголовку(ИндексЗаголовков, КлючевоеСлово)
Ключ = НРег(КлючевоеСлово);
Для Каждого Эл Из ИндексЗаголовков Цикл
Если СтрНайти(Эл.Ключ, Ключ) > 0 Тогда
Возврат Эл.Значение;
КонецЕсли;
КонецЦикла;
Возврат -1;
КонецФункции
// Находит строку заголовков, содержащую ключевые слова ("Сотрудник" или "Должность").
// Обеспечивает совместимость с xls (строка 15) и xlsm (строка 16).
&НаКлиенте
Функция НайтиСтрокуЗаголовков(ЛистРасчет)
// Ключевые слова заголовков (в нижнем регистре)
КлючевыеСлова = Новый Массив;
КлючевыеСлова.Добавить("сотрудник");
КлючевыеСлова.Добавить("должность");
КлючевыеСлова.Добавить("счет");
// Ищем в диапазоне строк 10-20 (с запасом)
Для Ном = 10 По Мин(20, ЛистРасчет.Rows.Count) Цикл
Для Каждого КлючевоеСлово Из КлючевыеСлова Цикл
Для Колонка = 1 По Мин(5, ЛистРасчет.Columns.Count) Цикл
Значение = ЛистРасчет.Cells(Ном, Колонка).Value;
Если Значение <> Неопределено Тогда
Если СтрНайти(НРег(СокрЛП("" + Значение)), КлючевоеСлово) > 0 Тогда
Возврат Ном;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЦикла;
// Если не нашли — возвращаем 15 по умолчанию (для xls)
Возврат 15;
КонецФункции
// Определяет номер строки первого сотрудника (первая непустая строка после заголовков).
&НаКлиенте
Функция НайтиСтрокуПервогоСотрудника(ЛистРасчет, НомерСтрокиЗаголовков)
Для Ном = НомерСтрокиЗаголовков + 1 По ЛистРасчет.Rows.Count Цикл
Значение = ЛистРасчет.Cells(Ном, 1).Value;
Если ЗначениеЗаполнено(Значение)
И Не СтрНачинаетсяС(ВРег(СокрЛП("" + Значение)), "ИТОГО") Тогда
Возврат Ном;
КонецЕсли;
КонецЦикла;
Возврат -1;
КонецФункции
// Извлекает значение из текста вида "ИНН 990100718541" → "990100718541"
&НаКлиенте
Функция ИзвлечьЗначениеИзТекста(Текст, Префикс)
Если Не ЗначениеЗаполнено(Текст) Тогда Возврат ""; КонецЕсли;
Позиция = СтрНайти(ВРег(Текст), ВРег(Префикс));
Если Позиция = 0 Тогда Возврат СокрЛП(Текст); КонецЕсли;
Возврат СокрЛП(Сред(Текст, Позиция + СтрДлина(Префикс)));
КонецФункции
#КонецОбласти
#Область ЧтениеДанныхСотрудника_Домен
// ============================================================================
// ДОМЕН: Чтение данных сотрудника
// Ответственность: извлечение данных из строки листа "Расчет"
// ============================================================================
// Читает одну строку данных сотрудника из листа "Расчет".
// ИндексЗаголовков — Соответствие для динамического поиска колонок.
&НаКлиенте
Функция ПрочитатьСтрокуРасчета(ЛистРасчет, Ном, ФИО, ИндексЗаголовков)
Строка = Новый Структура;
Строка.Вставить("ФИО", ФИО);
// Поиск колонок по заголовкам
// Маппинг: "Счет БК" в Excel = "Лицевой счет сотрудника в банке для зарплатного проекта" в 1С ЗиКГУ
КолДолжность = НайтиКолонкуПоЗаголовку(ИндексЗаголовков, "должность");
КолСчетБК = НайтиКолонкуПоЗаголовку(ИндексЗаголовков, "счет");
КолВидЗанятости = НайтиКолонкуПоЗаголовку(ИндексЗаголовков, "вид занятости");
КолОклад = НайтиКолонкуПоЗаголовку(ИндексЗаголовков, "оклад");
КолСтавки = НайтиКолонкуПоЗаголовку(ИндексЗаголовков, "ставок");
КолОтработано = НайтиКолонкуПоЗаголовку(ИндексЗаголовков, "отработано");
КолИтогоНачислено = НайтиКолонкуПоЗаголовку(ИндексЗаголовков, "итого начислено");
КолНДФЛ = НайтиКолонкуПоЗаголовку(ИндексЗаголовков, "ндфл");
КолИтогоУдержано = НайтиКолонкуПоЗаголовку(ИндексЗаголовков, "итого удержано");
КолВсегоНаРуки = НайтиКолонкуПоЗаголовку(ИндексЗаголовков, "всего на руки");
Строка.Вставить("Должность", ПрочитатьЯчейкуСтрока(ЛистРасчет, Ном, КолДолжность));
Строка.Вставить("СчетБК", ПрочитатьЯчейкуСтрока(ЛистРасчет, Ном, КолСчетБК));
Строка.Вставить("ВидЗанятости", ПрочитатьЯчейкуСтрока(ЛистРасчет, Ном, КолВидЗанятости));
Строка.Вставить("Оклад", ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, КолОклад, ФИО + " Оклад"));
Строка.Вставить("КоличествоСтавок", ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, КолСтавки, ФИО + " Ставки"));
Строка.Вставить("ОтработаноДней", ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, КолОтработано, ФИО + " Отработано"));
Строка.Вставить("ИтогоНачислено", ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, КолИтогоНачислено, ФИО + " Итого начислено"));
Строка.Вставить("НДФЛ", ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, КолНДФЛ, ФИО + " НДФЛ"));
Строка.Вставить("ИтогоУдержано", ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, КолИтогоУдержано, ФИО + " Итого удержано"));
Строка.Вставить("ВсегоНаРуки", ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, КолВсегоНаРуки, ФИО + " Всего на руки"));
Возврат Строка;
КонецФункции
// Читает страховые взносы из строки листа "Расчет".
&НаКлиенте
Функция ПрочитатьСтрокуВзносов(ЛистРасчет, Ном, ФИО, ИндексЗаголовков)
КолДТ6 = НайтиКолонкуПоЗаголовку(ИндексЗаголовков, "дт 6");
КолДТ4 = НайтиКолонкуПоЗаголовку(ИндексЗаголовков, "дт 4");
КолПФ = НайтиКолонкуПоЗаголовку(ИндексЗаголовков, "пф страховая");
КолФСС = НайтиКолонкуПоЗаголовку(ИндексЗаголовков, "фсс");
КолНСПЗ = НайтиКолонкуПоЗаголовку(ИндексЗаголовков, "нс и пз");
КолСВИтого = НайтиКолонкуПоЗаголовку(ИндексЗаголовков, "св итого");
СВ = ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, КолСВИтого, ФИО + " СВ итого");
Если СВ <= 0 Тогда Возврат Неопределено; КонецЕсли;
СтрВзносов = Новый Структура;
СтрВзносов.Вставить("ФИО", ФИО);
СтрВзносов.Вставить("ДТ6Процент", ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, КолДТ6, ФИО + " ДТ 6%"));
СтрВзносов.Вставить("ДТ4Процент", ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, КолДТ4, ФИО + " ДТ 4%"));
СтрВзносов.Вставить("ПФСтраховая", ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, КолПФ, ФИО + " ПФ"));
СтрВзносов.Вставить("ФССФОМС", ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, КолФСС, ФИО + " ФСС/ФОМС"));
СтрВзносов.Вставить("НСПЗ", ПрочитатьЯчейкуЧисло(ЛистРасчет, Ном, КолНСПЗ, ФИО + " НС и ПЗ"));
СтрВзносов.Вставить("Итого", СВ);
Возврат СтрВзносов;
КонецФункции
// Читает личные данные из листа сотрудника (шапка строк 0-3).
&НаКлиенте
Функция ПрочитатьЛичныеДанные(Книга, ФИО)
ЛичныеДанные = Новый Структура("ИНН, СНИЛС, Паспорт, Адрес", "", "", "", "");
ЛистСотрудника = НайтиЛист(Книга, ФИО);
Если ЛистСотрудника = Неопределено Тогда
Возврат ЛичныеДанные;
КонецЕсли;
ЛичныеДанные.ИНН = ИзвлечьЗначениеИзТекста(
ПрочитатьЯчейкуСтрока(ЛистСотрудника, 0, 10), "ИНН");
ЛичныеДанные.СНИЛС = ИзвлечьЗначениеИзТекста(
ПрочитатьЯчейкуСтрока(ЛистСотрудника, 1, 10), "СНИЛС");
ЛичныеДанные.Паспорт = ИзвлечьЗначениеИзТекста(
ПрочитатьЯчейкуСтрока(ЛистСотрудника, 2, 10), "Паспорт");
ЛичныеДанные.Адрес = ПрочитатьЯчейкуСтрока(ЛистСотрудника, 3, 10);
Возврат ЛичныеДанные;
КонецФункции
#КонецОбласти
#Область ОсновнаяПроцедура_Домен
// ============================================================================
// ДОМЕН: Оркестрация загрузки
// Ответственность: координация всех этапов загрузки
// ============================================================================
&НаКлиенте
Процедура ПрочитатьExcelНаКлиенте()
// Этап 1: Подготовка файла
СтатусЗагрузки = "Копирование файла...";
Состояние("Копирование файла...", 5);
ВременныйФайл = КаталогВременныхФайлов() + "temp_data.xls";
КопироватьФайл(Объект.ПутьКФайлу, ВременныйФайл);
// Этап 2: Открытие Excel
СтатусЗагрузки = "Открытие Excel...";
Состояние("Открытие Excel...", 10);
КонтекстExcel = ОткрытьФайлExcel(ВременныйФайл);
Если КонтекстExcel = Неопределено Тогда
УдалитьФайлы(ВременныйФайл);
Возврат;
КонецЕсли;
// Этап 3: Поиск листа "Расчет"
СтатусЗагрузки = "Поиск листа 'Расчет'...";
Состояние("Поиск листа 'Расчет'...", 15);
ЛистРасчет = НайтиЛист(КонтекстExcel.Книга, "Расчет");
Если ЛистРасчет = Неопределено Тогда
Сообщить("Лист 'Расчет' не найден!");
ЗакрытьExcel(КонтекстExcel, ВременныйФайл);
СтатусЗагрузки = "Ошибка: лист не найден";
Состояние("Ошибка: лист 'Расчет' не найден", 0);
Возврат;
КонецЕсли;
// Этап 4: Определение месяца
СтатусЗагрузки = "Определение месяца...";
Состояние("Определение месяца...", 20);
МесяцЗначение = ЛистРасчет.Cells(4, 1).Value;
Если ЗначениеЗаполнено(МесяцЗначение) Тогда
Попытка
Объект.МесяцЗагрузки = Число(МесяцЗначение);
Исключение
Сообщить("Не удалось определить месяц: " + МесяцЗначение);
КонецПопытки;
КонецЕсли;
// Этап 5: Построение индекса заголовков
СтатусЗагрузки = "Анализ заголовков...";
Состояние("Анализ заголовков...", 22);
НомерСтрокиЗаголовков = НайтиСтрокуЗаголовков(ЛистРасчет);
ИндексЗаголовков = СоздатьИндексЗаголовков(ЛистРасчет, НомерСтрокиЗаголовков);
// Этап 6: Определение строки первого сотрудника
СтатусЗагрузки = "Поиск данных...";
Состояние("Поиск данных...", 25);
Ном = НайтиСтрокуПервогоСотрудника(ЛистРасчет, НомерСтрокиЗаголовков);
Если Ном = -1 Тогда
Сообщить("Данные сотрудников не найдены!");
ЗакрытьExcel(КонтекстExcel, ВременныйФайл);
Возврат;
КонецЕсли;
// Этап 7: Чтение данных
МассивДанных = Новый Массив;
МассивВзносов = Новый Массив;
ПустыхПодряд = 0;
МаксПустых = 5;
КоличествоСтрок = ЛистРасчет.Rows.Count;
Пока Истина Цикл
ФИО = ПрочитатьЯчейкуСтрока(ЛистРасчет, Ном, 0);
Если Не ЗначениеЗаполнено(ФИО) Тогда
ПустыхПодряд = ПустыхПодряд + 1;
Если ПустыхПодряд >= МаксПустых Тогда Прервать; КонецЕсли;
Ном = Ном + 1;
Продолжить;
КонецЕсли;
ПустыхПодряд = 0;
Если СтрНачинаетсяС(ВРег(ФИО), "ИТОГО") Тогда Прервать; КонецЕсли;
ПрогрессЗаписи = 25 + 65 * (Ном - 1) / Макс(КоличествоСтрок, 1);
Состояние("Расчет ЗП: " + ФИО, ПрогрессЗаписи);
// Чтение расчетных данных
Строка = ПрочитатьСтрокуРасчета(ЛистРасчет, Ном, ФИО, ИндексЗаголовков);
// Чтение личных данных
ЛичныеДанные = ПрочитатьЛичныеДанные(КонтекстExcel.Книга, ФИО);
Для Каждого КлючЗначение Из ЛичныеДанные Цикл
Строка.Вставить(КлючЗначение.Ключ, КлючЗначение.Значение);
КонецЦикла;
МассивДанных.Добавить(Строка);
// Чтение страховых взносов
СтрВзносов = ПрочитатьСтрокуВзносов(ЛистРасчет, Ном, ФИО, ИндексЗаголовков);
Если СтрВзносов <> Неопределено Тогда
МассивВзносов.Добавить(СтрВзносов);
КонецЕсли;
Ном = Ном + 1;
КонецЦикла;
// Этап 8: Закрытие Excel
СтатусЗагрузки = "Закрытие Excel...";
Состояние("Закрытие Excel...", 95);
ЗакрытьExcel(КонтекстExcel, ВременныйФайл);
// Этап 9: Передача на сервер
СтатусЗагрузки = "Передача данных на сервер...";
Состояние("Передача данных на сервер...", 98);
ЗаполнитьТаблицыНаСервере(МассивДанных, МассивВзносов);
// Этап 10: Обновление формы
Прогресс = 100;
СтатусЗагрузки = "Готово! Загружено: " + МассивДанных.Количество() + " сотрудников";
Состояние("Готово! Загружено: " + МассивДанных.Количество() + " сотрудников", 100);
Сообщить(СтатусЗагрузки);
// Обновление табличных частей
Элементы.ТаблицаРасчетЗП.ОбновитьСтроки();
Элементы.ТаблицаСтраховыеВзносы.ОбновитьСтроки();
КонецПроцедуры
#КонецОбласти
#Область СерверныеПроцедуры
// ============================================================================
// ДОМЕН: Серверная обработка данных
// Ответственность: заполнение таблиц значений, запись в 1С
// ============================================================================
// Главная функция: читает Excel файл из временного хранилища на сервере
&НаСервере
Процедура ИнициализироватьТаблицы()
КонецПроцедуры
// Заполняет таблицы значений на сервере из массивов структур.
&НаСервере
Процедура ЗаполнитьТаблицыНаСервере(МассивДанных, МассивВзносов)
ТЗРасчет = РеквизитФормыВЗначение("Объект.ДанныеРасчетаЗП");
ТЗРасчет.Очистить();
Для Каждого Эл Из МассивДанных Цикл
Строка = ТЗРасчет.Добавить();
ЗаполнитьЗначенияСвойств(Строка, Эл);
КонецЦикла;
ЗначениеВРеквизитФормы(ТЗРасчет, "Объект.ДанныеРасчетаЗП");
ТЗВзносы = РеквизитФормыВЗначение("Объект.ДанныеСтраховыхВзносов");
ТЗВзносы.Очистить();
Для Каждого Эл Из МассивВзносов Цикл
Строка = ТЗВзносы.Добавить();
ЗаполнитьЗначенияСвойств(Строка, Эл);
КонецЦикла;
ЗначениеВРеквизитФормы(ТЗВзносы, "Объект.ДанныеСтраховыхВзносов");
КонецПроцедуры
// Записывает данные в документы 1С.
&НаСервере
Процедура ЗаписатьДанныеНаСервере()
ГодЗагрузки = ТекущаяДата().Год();
Период = Дата(ГодЗагрузки, Объект.МесяцЗагрузки, 1);
ТЗРасчет = РеквизитФормыВЗначение("Объект.ДанныеРасчетаЗП");
Объект.ЗаписатьДанныеРасчета(ТЗРасчет, Период);
ТЗВзносы = РеквизитФормыВЗначение("Объект.ДанныеСтраховыхВзносов");
Если ТЗВзносы.Количество() > 0 Тогда
Объект.ЗаписатьДанныеСтраховыхВзносов(ТЗВзносы, Период);
Функция ПрочитатьФайлНаСервере(АдресФайла) Экспорт
ДД = ПолучитьИзВременногоХранилища(АдресФайла);
Если ДД = Неопределено Тогда
Сообщить("Файл не получен!");
Возврат Неопределено;
КонецЕсли;
// Сохраняем во временный файл на сервере
ВремКаталог = КаталогВременныхФайлов();
ПутьВрем = ВремКаталог + "temp_load.xlsx";
ДД.Записать(ПутьВрем);
// Читаем в ТабличныйДокумент
ТаблДок = Новый ТабличныйДокумент;
ТаблДок.Прочитать(ПутьВрем);
УдалитьФайлы(ПутьВрем);
// Строим карту: ИмяОбласти -> Верх (абсолютная строка)
КартаОбластей = Новый Соответствие;
Для Каждого Область Из ТаблДок.Области Цикл
КартаОбластей.Вставить(Область.Имя, Область.Верх);
КонецЦикла;
// Находим лист "Расчет"
ВерхРасчет = КартаОбластей.Получить("Расчет");
Если ВерхРасчет = Неопределено Тогда
Сообщить("Лист 'Расчет' не найден!");
Возврат Неопределено;
КонецЕсли;
// Читаем шапку листа "Расчет"
ГодЗагрузки = "" + ПрочитатьЧислоИзТД(ТаблДок, ВерхРасчет, 4, 1);
МесяцЗагрузки = Число(ПрочитатьЧислоИзТД(ТаблДок, ВерхРасчет, 4, 1));
Организация = СокрЛП(ПрочитатьСтрокуИзТД(ТаблДок, ВерхРасчет, 4, 20));
СтатьяФинансирования = СокрЛП(ПрочитатьСтрокуИзТД(ТаблДок, ВерхРасчет, 8, 20));
// === ЭТАП 1: Обход листов сотрудников ===
КэшФИО = Новый Соответствие;
МассивСотрудников = Новый Массив;
МассивНДФЛ = Новый Массив;
Счетчик = 0;
Для Каждого Область Из ТаблДок.Области Цикл
Если Область.Верх = ВерхРасчет Тогда Продолжить; КонецЕсли;
Вх = Область.Верх;
ФИО = ПрочитатьСтрокуИзТД(ТаблДок, Вх, 2, 3);
Если Не ЗначениеЗаполнено(ФИО) Тогда Продолжить; КонецЕсли;
Если СтрНачинаетсяС(ВРег(ФИО), "ИТОГО") Тогда Продолжить; КонецЕсли;
Счетчик = Счетчик + 1;
// Карточка сотрудника
Карточка = Новый Структура;
Карточка.Вставить("ФИО", ФИО);
Карточка.Вставить("ИНН", "");
Карточка.Вставить("СНИЛС", "");
Карточка.Вставить("ЛицевойСчетВБанке", ПрочитатьСтрокуИзТД(ТаблДок, Вх, 3, 4));
Карточка.Вставить("ВидЗанятости", ПрочитатьСтрокуИзТД(ТаблДок, Вх, 5, 1));
Карточка.Вставить("АдресРегистрации", "");
Карточка.Вставить("Идентификатор", Счетчик);
МассивСотрудников.Добавить(Карточка);
// НДФЛ
СтрокаМесяца = 35 + МесяцЗагрузки;
Если СтрокаМесяца <= 47 Тогда
ДанныеНДФЛ = Новый Структура;
ДанныеНДФЛ.Вставить("ФИО", ФИО);
ДанныеНДФЛ.Вставить("ИдентификаторСотрудника", Счетчик);
ДанныеНДФЛ.Вставить("МесяцРасчета", ПрочитатьСтрокуИзТД(ТаблДок, Вх, СтрокаМесяца, 1));
ДанныеНДФЛ.Вставить("СуммаВаловогоДохода", ПрочитатьЧислоИзТД(ТаблДок, Вх, СтрокаМесяца, 4));
ДанныеНДФЛ.Вставить("СкидкаДляНДФЛЗаМесяц", ПрочитатьЧислоИзТД(ТаблДок, Вх, СтрокаМесяца, 8));
ДанныеНДФЛ.Вставить("ВычетНаРаботникаЗаМесяц", ПрочитатьЧислоИзТД(ТаблДок, Вх, СтрокаМесяца, 12));
ДанныеНДФЛ.Вставить("ВычетНаИждивенцевЗаМесяц", ПрочитатьЧислоИзТД(ТаблДок, Вх, СтрокаМесяца, 13));
ДанныеНДФЛ.Вставить("ИтогоНДФЛЗаМесяц", ПрочитатьЧислоИзТД(ТаблДок, Вх, СтрокаМесяца, 18));
ДанныеНДФЛ.Вставить("НалоговаяБазаПоСВЗаМесяц", ПрочитатьЧислоИзТД(ТаблДок, Вх, СтрокаМесяца, 23));
ДанныеНДФЛ.Вставить("ИтогоФСС", ПрочитатьЧислоИзТД(ТаблДок, Вх, СтрокаМесяца, 37));
МассивНДФЛ.Добавить(ДанныеНДФЛ);
КонецЕсли;
КэшФИО.Вставить(ФИО, Счетчик);
КонецЦикла;
// === ЭТАП 2: Чтение листа "Расчет" ===
МассивДанных = Новый Массив;
МассивВзносов = Новый Массив;
НачальнаяСтрока = 0;
Для Ном = 17 По 30 Цикл
ФТ = ПрочитатьСтрокуИзТД(ТаблДок, ВерхРасчет, Ном, 1);
Если Не ЗначениеЗаполнено(ФТ) Тогда Продолжить; КонецЕсли;
Если Не СтрНачинаетсяС(ВРег(ФТ), "ИТОГО") И Не СтрНачинаетсяС(ВРег(ФТ), "СОТРУДНИК") И Не СтрНачинаетсяС(ВРег(ФТ), "ФАМИЛИЯ") И СтрДлина(ФТ) > 3 Тогда
НачальнаяСтрока = Ном; Прервать;
КонецЕсли;
КонецЦикла;
Если НачальнаяСтрока = 0 Тогда
Сообщить("Данные не найдены!");
Возврат Неопределено;
КонецЕсли;
Счетчик = 0;
Для Ном = НачальнаяСтрока По 500 Цикл
ФИОТекст = ПрочитатьСтрокуИзТД(ТаблДок, ВерхРасчет, Ном, 1);
Если Не ЗначениеЗаполнено(ФИОТекст) Тогда Продолжить; КонецЕсли;
Если СтрНачинаетсяС(ВРег(ФИОТекст), "ИТОГО") Тогда Прервать; КонецЕсли;
ИдСотр = КэшФИО.Получить(ФИОТекст);
Если ИдСотр = Неопределено Тогда Продолжить; КонецЕсли;
Счетчик = Счетчик + 1;
С = Новый Структура;
С.Вставить("ФИО", ФИОТекст);
С.Вставить("ИдентификаторСотрудника", ИдСотр);
С.Вставить("Должность", ПрочитатьСтрокуИзТД(ТаблДок, ВерхРасчет, Ном, 2));
С.Вставить("СчетБК", ПрочитатьСтрокуИзТД(ТаблДок, ВерхРасчет, Ном, 3));
С.Вставить("ВидЗанятости", ПрочитатьСтрокуИзТД(ТаблДок, ВерхРасчет, Ном, 4));
С.Вставить("КоличествоСтавок", ПрочитатьЧислоИзТД(ТаблДок, ВерхРасчет, Ном, 7));
С.Вставить("Оклад", ПрочитатьЧислоИзТД(ТаблДок, ВерхРасчет, Ном, 8));
С.Вставить("ОтработаноДней", ПрочитатьЧислоИзТД(ТаблДок, ВерхРасчет, Ном, 6));
С.Вставить("РабочиеЧасыПоТабелю", ПрочитатьЧислоИзТД(ТаблДок, ВерхРасчет, Ном, 12));
С.Вставить("ДоплатаСовместительство", ПрочитатьЧислоИзТД(ТаблДок, ВерхРасчет, Ном, 14));
С.Вставить("ДоплатаИнтенсивность", ПрочитатьЧислоИзТД(ТаблДок, ВерхРасчет, Ном, 16));
С.Вставить("ДоплатаНочные", ПрочитатьЧислоИзТД(ТаблДок, ВерхРасчет, Ном, 18));
С.Вставить("ДоплатаПраздничные", ПрочитатьЧислоИзТД(ТаблДок, ВерхРасчет, Ном, 19));
С.Вставить("НадбавкаЗаКатегорию", ПрочитатьЧислоИзТД(ТаблДок, ВерхРасчет, Ном, 21));
С.Вставить("НадбавкаЗаВредность", ПрочитатьЧислоИзТД(ТаблДок, ВерхРасчет, Ном, 22));
С.Вставить("ПовышающийКоэффициент", ПрочитатьЧислоИзТД(ТаблДок, ВерхРасчет, Ном, 23));
С.Вставить("СтимулирующиеВыплаты", ПрочитатьЧислоИзТД(ТаблДок, ВерхРасчет, Ном, 24));
С.Вставить("РайонныйКоэффициент", ПрочитатьЧислоИзТД(ТаблДок, ВерхРасчет, Ном, 26));
С.Вставить("ПремияРазовая", ПрочитатьЧислоИзТД(ТаблДок, ВерхРасчет, Ном, 28));
С.Вставить("Отпуск", ПрочитатьЧислоИзТД(ТаблДок, ВерхРасчет, Ном, 32));
С.Вставить("КомпенсацияЗаОтпуск", ПрочитатьЧислоИзТД(ТаблДок, ВерхРасчет, Ном, 33));
С.Вставить("ВыходноеПособие", ПрочитатьЧислоИзТД(ТаблДок, ВерхРасчет, Ном, 35));
С.Вставить("ДоплатаДоМРОТ", ПрочитатьЧислоИзТД(ТаблДок, ВерхРасчет, Ном, 37));
С.Вставить("Родовые", ПрочитатьЧислоИзТД(ТаблДок, ВерхРасчет, Ном, 38));
С.Вставить("ИтогоНачислено", ПрочитатьЧислоИзТД(ТаблДок, ВерхРасчет, Ном, 39));
С.Вставить("НДФЛ", ПрочитатьЧислоИзТД(ТаблДок, ВерхРасчет, Ном, 40));
С.Вставить("ПрофВзнос", ПрочитатьЧислоИзТД(ТаблДок, ВерхРасчет, Ном, 41));
С.Вставить("ИсполнительныеДокументы", ПрочитатьЧислоИзТД(ТаблДок, ВерхРасчет, Ном, 42));
С.Вставить("Аванс", ПрочитатьЧислоИзТД(ТаблДок, ВерхРасчет, Ном, 43));
С.Вставить("Касса1", ПрочитатьЧислоИзТД(ТаблДок, ВерхРасчет, Ном, 46));
С.Вставить("Касса2", ПрочитатьЧислоИзТД(ТаблДок, ВерхРасчет, Ном, 47));
С.Вставить("Касса3", ПрочитатьЧислоИзТД(ТаблДок, ВерхРасчет, Ном, 48));
С.Вставить("БезналичныеПеречисления", ПрочитатьЧислоИзТД(ТаблДок, ВерхРасчет, Ном, 50));
С.Вставить("ВсегоНаРуки", ПрочитатьЧислоИзТД(ТаблДок, ВерхРасчет, Ном, 55));
С.Вставить("ЗарплатаЗаПервуюПоловину", 0);
С.Вставить("ПремияАванс", 0);
С.Вставить("ВыплатыВМежрасчетный", 0);
С.Вставить("ОтработаноДнейКалендарных", 0);
С.Вставить("ИтогоУдержано", С.НДФЛ + С.ПрофВзнос + С.ИсполнительныеДокументы);
С.Вставить("ИтогоВыплачено", С.Аванс + С.Касса1 + С.Касса2 + С.Касса3 + С.БезналичныеПеречисления);
МассивДанных.Добавить(С);
КонецЦикла;
// Возвращаем результат
Результат = Новый Структура;
Результат.Вставить("ГодЗагрузки", ГодЗагрузки);
Результат.Вставить("МесяцЗагрузки", МесяцЗагрузки);
Результат.Вставить("Организация", Организация);
Результат.Вставить("СтатьяФинансирования", СтатьяФинансирования);
Результат.Вставить("Данные", МассивДанных);
Результат.Вставить("Взносы", МассивВзносов);
Результат.Вставить("НДФЛ", МассивНДФЛ);
Результат.Вставить("Сотрудники", МассивСотрудников);
Возврат Результат;
КонецФункции
&НаСервере
Функция ПрочитатьЧислоИзТД(ТаблДок, ВерхОбласти, Строка, Колонка)
Попытка
АбсСтрока = ВерхОбласти + Строка - 1;
Значение = ТаблДок.Область(АбсСтрока, Колонка, АбсСтрока, Колонка).Текст;
Если Не ЗначениеЗаполнено(Значение) Тогда Возврат 0; КонецЕсли;
Возврат Число(СокрЛП(Значение));
Исключение
Возврат 0;
КонецПопытки;
КонецФункции
&НаСервере
Функция ПрочитатьСтрокуИзТД(ТаблДок, ВерхОбласти, Строка, Колонка)
Попытка
АбсСтрока = ВерхОбласти + Строка - 1;
Возврат СокрЛП("" + ТаблДок.Область(АбсСтрока, Колонка, АбсСтрока, Колонка).Текст);
Исключение
Возврат "";
КонецПопытки;
КонецФункции
&НаСервере
Процедура ЗаполнитьТаблицыНаСервере(МассивДанных, МассивВзносов, МассивНДФЛ, МассивСотрудников)
Объект.ДанныеРасчетаЗП.Очистить();
Объект.ДанныеСтраховыхВзносов.Очистить();
Объект.ДанныеНДФЛ.Очистить();
Объект.Сотрудники.Очистить();
Для Каждого Строка Из МассивДанных Цикл НоваяСтрока = Объект.ДанныеРасчетаЗП.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка); КонецЦикла;
Для Каждого Строка Из МассивВзносов Цикл НоваяСтрока = Объект.ДанныеСтраховыхВзносов.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка); КонецЦикла;
Для Каждого Строка Из МассивНДФЛ Цикл НоваяСтрока = Объект.ДанныеНДФЛ.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка); КонецЦикла;
Для Каждого Строка Из МассивСотрудников Цикл НоваяСтрока = Объект.Сотрудники.Добавить(); ЗаполнитьЗначенияСвойств(НоваяСтрока, Строка); КонецЦикла;
КонецПроцедуры
#КонецОбласти