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);