diff --git a/CHANGELOG.md b/CHANGELOG.md
index 4b86fa8..6136a9a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,16 @@
---
+## 1.3.1.115 (2026-09-03)
+
+### РК_ЗагрузкаОстатков — автовыгрузка CSV таблиц (#29)
+
+- Реквизит `ВыгружатьДанныеТаблиц` (сохраняется): при включении после загрузки / сопоставления / свёртки / создания документов пишет CSV в каталог выгрузки.
+- Фиксированные имена: `crm-dev_to_crm3-26_own.csv`, `crm-dev_to_crm3-26_comm.csv` (перезапись).
+- «Свернуть комиссионные остатки» — перезапись только `*_comm.csv`.
+- Ручная «Выгрузить таблицы в CSV» по-прежнему с уникальными timestamp-именами.
+- Клиент/сервер — как у ручной выгрузки; без пути при включённом флаге — предупреждение.
+
## 1.3.1.114 (2026-09-03)
### РК_ЗагрузкаОстатков — раскладка вкладки Настройки (#29)
diff --git a/VERSION b/VERSION
index bdf78f1..b2c44af 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.3.1.114
+1.3.1.115
diff --git a/src/ConfigDumpInfo.xml b/src/ConfigDumpInfo.xml
index be2c67b..3620676 100644
--- a/src/ConfigDumpInfo.xml
+++ b/src/ConfigDumpInfo.xml
@@ -50,14 +50,14 @@
-
+
-
+
@@ -178,6 +178,7 @@
+
@@ -203,8 +204,8 @@
-
-
+
+
diff --git a/src/Configuration.xml b/src/Configuration.xml
index a465ec6..8344948 100644
--- a/src/Configuration.xml
+++ b/src/Configuration.xml
@@ -62,7 +62,7 @@
Role.РК_ОсновнаяРоль
- 1.3.1.114
+ 1.3.1.115
Language.Русский
diff --git a/src/DataProcessors/РК_ЗагрузкаОстатков.xml b/src/DataProcessors/РК_ЗагрузкаОстатков.xml
index 1744c01..1fcaf5c 100644
--- a/src/DataProcessors/РК_ЗагрузкаОстатков.xml
+++ b/src/DataProcessors/РК_ЗагрузкаОстатков.xml
@@ -314,6 +314,40 @@
Auto
+
+
+ ВыгружатьДанныеТаблиц
+
+
+ ru
+ Выгружать данные таблиц
+
+
+ АвтоCSV own/comm в каталог выгрузки (#29)
+
+ xs:boolean
+
+ false
+
+
+
+ false
+
+ false
+ false
+
+
+ DontCheck
+ Items
+
+
+ Auto
+ Auto
+
+
+ Auto
+
+
diff --git a/src/DataProcessors/РК_ЗагрузкаОстатков/Forms/Форма/Ext/Form.xml b/src/DataProcessors/РК_ЗагрузкаОстатков/Forms/Форма/Ext/Form.xml
index 2a3e051..80199c3 100644
--- a/src/DataProcessors/РК_ЗагрузкаОстатков/Forms/Форма/Ext/Form.xml
+++ b/src/DataProcessors/РК_ЗагрузкаОстатков/Forms/Форма/Ext/Form.xml
@@ -136,6 +136,19 @@
+
+ Объект.ВыгружатьДанныеТаблиц
+
+
+ ru
+ После загрузки/сопоставления/свёртки/создания документов автоматически писать CSV own и comm в каталог выгрузки (фиксированные имена; при свёртке комиссии — перезапись comm)
+
+
+ ShowRight
+ Auto
+
+
+
Объект.ПутьКФайламВыгрузкиТаблиц
@@ -1357,6 +1370,7 @@
Объект.ПодключениеКСтороннейБазе
Объект.ПутьКФайламВыгрузкиТаблиц
Объект.РежимЗаписиФайловВыгрузки
+ Объект.ВыгружатьДанныеТаблиц
diff --git a/src/DataProcessors/РК_ЗагрузкаОстатков/Forms/Форма/Ext/Form/Module.bsl b/src/DataProcessors/РК_ЗагрузкаОстатков/Forms/Форма/Ext/Form/Module.bsl
index 9028245..e31e1cd 100644
--- a/src/DataProcessors/РК_ЗагрузкаОстатков/Forms/Форма/Ext/Form/Module.bsl
+++ b/src/DataProcessors/РК_ЗагрузкаОстатков/Forms/Форма/Ext/Form/Module.bsl
@@ -147,6 +147,7 @@
"Собственные: " + Формат(Количество.Собственные, "ЧН=0; ЧГ=0")
+ "; комиссия 2.5: " + Формат(Количество.Комиссия, "ЧН=0; ЧГ=0")
+ "; виды (политика): " + Формат(Количество.Политика, "ЧН=0; ЧГ=0"));
+ АвтоВыгрузитьТаблицыПриНеобходимости(Ложь);
КонецПроцедуры
@@ -183,6 +184,7 @@
Возврат;
КонецПопытки;
ПоказатьОповещениеПользователя("Сопоставление", , Текст);
+ АвтоВыгрузитьТаблицыПриНеобходимости(Ложь);
КонецПроцедуры
@@ -207,6 +209,7 @@
+ " (пар −/+: " + Формат(Рез.УдаленоПар, "ЧН=0; ЧГ=0")
+ ", net≈0: " + Формат(Рез.УдаленоГруппNetZero, "ЧН=0; ЧГ=0") + ")"
+ "; осталось: " + Формат(Рез.СталоСтрок, "ЧН=0; ЧГ=0"));
+ АвтоВыгрузитьТаблицыПриНеобходимости(Истина);
КонецПроцедуры
@@ -250,6 +253,7 @@
Если ПисатьЛогиВПапку Тогда
ЗаписатьЛогПрогона(ТекстЛога, "create_docs");
КонецЕсли;
+ АвтоВыгрузитьТаблицыПриНеобходимости(Ложь);
КонецПроцедуры
@@ -317,6 +321,45 @@
КонецФункции
+&НаКлиенте
+Процедура АвтоВыгрузитьТаблицыПриНеобходимости(ТолькоКомиссия)
+
+ Если Не Объект.ВыгружатьДанныеТаблиц Тогда
+ Возврат;
+ КонецЕсли;
+
+ Каталог = СокрЛП(Объект.ПутьКФайламВыгрузкиТаблиц);
+ Если ПустаяСтрока(Каталог) Тогда
+ ПоказатьПредупреждение(, "Включено «Выгружать данные таблиц», но путь к каталогу не задан");
+ Возврат;
+ КонецЕсли;
+
+ Попытка
+ Если ЗаписьФайловНаСервере() Тогда
+ РезультатЗаписи = ВыгрузитьИЗаписатьТаблицыCSVНаСервере(Истина, ТолькоКомиссия);
+ Текст = ?(ТолькоКомиссия, "Comm: " + РезультатЗаписи.Comm,
+ "Own: " + РезультатЗаписи.Own + Символы.ПС + "Comm: " + РезультатЗаписи.Comm);
+ Иначе
+ Данные = ВыгрузитьТаблицыВCSVНаСервере();
+ Разделитель = ПолучитьРазделительПути();
+ Кат = НормализоватьКаталогКлиент(Каталог, Разделитель);
+ ИмяOwn = "";
+ ИмяComm = Кат + "crm-dev_to_crm3-26_comm.csv";
+ Если Не ТолькоКомиссия Тогда
+ ИмяOwn = Кат + "crm-dev_to_crm3-26_own.csv";
+ ЗаписатьТекстUTF8BOM(ИмяOwn, Данные.Own);
+ КонецЕсли;
+ ЗаписатьТекстUTF8BOM(ИмяComm, Данные.Comm);
+ Текст = ?(ТолькоКомиссия, "Comm: " + ИмяComm,
+ "Own: " + ИмяOwn + Символы.ПС + "Comm: " + ИмяComm);
+ КонецЕсли;
+ ПоказатьОповещениеПользователя("Автовыгрузка CSV (" + РежимЗаписиФайловДляСообщения() + ")", , Текст);
+ Исключение
+ ПоказатьПредупреждение(, "Автовыгрузка таблиц: " + КраткоеПредставлениеОшибки(ИнформацияОбОшибке()));
+ КонецПопытки;
+
+КонецПроцедуры
+
&НаКлиенте
Функция РежимЗаписиФайловДляСообщения()
@@ -707,7 +750,7 @@
КонецФункции
&НаСервере
-Функция ВыгрузитьИЗаписатьТаблицыCSVНаСервере()
+Функция ВыгрузитьИЗаписатьТаблицыCSVНаСервере(ФиксированныеИмена = Ложь, ТолькоКомиссия = Ложь)
Каталог = СокрЛП(Объект.ПутьКФайламВыгрузкиТаблиц);
Если ПустаяСтрока(Каталог) Тогда
@@ -717,10 +760,26 @@
ПроверитьКаталогВыгрузкиНаСервере(Каталог);
Данные = ВыгрузитьТаблицыВCSVНаСервере();
- ИмяOwn = УникальноеИмяФайлаВКаталогеНаСервере(Каталог, "crm-dev_to_crm3-26_own", "csv");
- ИмяComm = УникальноеИмяФайлаВКаталогеНаСервере(Каталог, "crm-dev_to_crm3-26_comm", "csv");
- ЗаписатьТекстUTF8BOMНаСервере(ИмяOwn, Данные.Own);
- ЗаписатьТекстUTF8BOMНаСервере(ИмяComm, Данные.Comm);
+ Разделитель = ПолучитьРазделительПути();
+ Кат = Каталог;
+ Если Не СтрЗаканчиваетсяНа(Кат, Разделитель) И Не СтрЗаканчиваетсяНа(Кат, "/") И Не СтрЗаканчиваетсяНа(Кат, "\") Тогда
+ Кат = Кат + Разделитель;
+ КонецЕсли;
+
+ ИмяOwn = "";
+ Если ФиксированныеИмена Тогда
+ ИмяComm = Кат + "crm-dev_to_crm3-26_comm.csv";
+ Если Не ТолькоКомиссия Тогда
+ ИмяOwn = Кат + "crm-dev_to_crm3-26_own.csv";
+ ЗаписатьТекстUTF8BOMНаСервере(ИмяOwn, Данные.Own);
+ КонецЕсли;
+ ЗаписатьТекстUTF8BOMНаСервере(ИмяComm, Данные.Comm);
+ Иначе
+ ИмяOwn = УникальноеИмяФайлаВКаталогеНаСервере(Каталог, "crm-dev_to_crm3-26_own", "csv");
+ ИмяComm = УникальноеИмяФайлаВКаталогеНаСервере(Каталог, "crm-dev_to_crm3-26_comm", "csv");
+ ЗаписатьТекстUTF8BOMНаСервере(ИмяOwn, Данные.Own);
+ ЗаписатьТекстUTF8BOMНаСервере(ИмяComm, Данные.Comm);
+ КонецЕсли;
Возврат Новый Структура("Own, Comm", ИмяOwn, ИмяComm);