Добрый день.

Помогите разобраться с такой ситуацией, я уже голову сломал.

Собственная обработка на УТ 10.3 запускается через регламентное задание. В ходе работы формирует десяток Excel файлов, сохраняет в некоторую папку№1, потом файлы из Папки№1 копирует в Папку№2, потом из Папки№1 отправляет на ftp-сервер. В результате в Папке№1 часть файлов чистая, есть только первая и последняя служебные строки. в Папке№2 все файлы заполнены как положено. Как такое может быть, в чем может быть причина затирания файлов?

Код такой:

```1c
    Процедура ВыгрузитьТаблицу(Таблица,ИмяФайла,ВестиЛог=Ложь)

    ТЗ=Таблица.Выгрузить();

    ТабДок = Новый ТабличныйДокумент;

    Построитель = Новый ПостроительОтчета();

    Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТЗ);
    Построитель.ВыводитьЗаголовокОтчета = Ложь;
    Построитель.Вывести(ТабДок );

    ПолноеИмяФайла = КаталогВыгрузки+"\"+ИмяФайла+"_"+Формат(ДатаОкончания,"ДФ=yyyyMMddhhmmss")+".xls";

    ТабДок.Записать(ПолноеИмяФайла,ТипФайлаТабличногоДокумента.XLS97);

    КопироватьФайл(ПолноеИмяФайла,КаталогВыгрузки2+"\"+ИмяФайла+"_"+Формат(ДатаОкончания,"ДФ=yyyyMMddhhmmss")+".xls");

    КонецПроцедуры

    Процедура ВыполнитьРассылкуFTP() Экспорт

    Попытка
    ssl1 = Новый ЗащищенноеСоединениеOpenSSL(
    Новый СертификатКлиентаWindows(),
    Новый СертификатыУдостоверяющихЦентровWindows());

    Соединение = Новый FTPСоединение(FTP_Сервер,FTP_Порт, FTP_Логин, FTP_Пароль,,Истина,,ssl1,);
    Исключение
    Сообщить(ОписаниеОшибки());
    Возврат ;
    КонецПопытки;

    МассивФайлов=НайтиФайлы(КаталогВыгрузки,"*.xls");
    Для Каждого Файл ИЗ МассивФайлов Цикл
    Соединение.Записать(Файл.ПолноеИмя,Файл.Имя);
    КонецЦикла;

    КонецПроцедуры
```
---
Скорей всего, этот код выполняется несколько раз.
В копии, очень похоже, что выполняется из копии базы.
---
Бинго! Нашел копию, сделанную админами в тайне от меня, там не отключили рег.задания. Всем спасибо, корень зла найден.
---
давайте упростим для отладки, оставим только папку1 и выгрузку из нее на ftp, по коду - выгрузка на фтп ни как не может портить исходящие файлы, если только вы при выгрузке не пишите их сами в себя, но это даже я не представляю как сделать...
И из рег задания перенесем все это в обработку внешнюю для простоты отладки.
Напишите результат
---
Изначально и была только папка№1, проблема там уже была. Папку№2 завел в попытках разобраться в проблеме.
При запуске обработки вручную, без рег. задания проблем нет.
---
Раз скопированные файлы в папке 2 норм, значит после копирования в папку 1 выгружаются файлы еще раз.
Или есть какое-то задание/код, которые после отправки очищают файлы, например, чтобы повторно их не отправить.
---
Задание ровно одно, время файлов совпадает с временем запуска задания.
---
ну вот, предварительный вывод, рег задание настроено по расписанию криво, само себя перекрывает, и херит свои ранее созданные файлы. покажите картинку расписания рег задания
---
Задание запускается раз в сутки, это видно в консоли заданий. А так как в именах файлов содержится дата, то файлы не перезаписываются никогда.
---
А так как в именах файлов содержится дата, то файлы не перезаписываются никогда.
Имя файла вообще не аргумент утверждению, что файлы не перезаписываются.
Посмотри время изменения файла в папках, например.
---
Проверил, время последнего изменения совпадает с временем создания. Еще добавил запись в журнал регистрации перед командой записи файлов с указанием количества строк табличного документа. Запись в ЖР одна в сутки для каждого файла, количество строк в табличном документе перед записью ненулевое.
---
Ну раз при записи данные в файле есть, а потом они пропадают, значит файл записывается еще раз. Ну очевидно же.
Надо найти, где, когда и откуда вызывается код, который перезаписывает файлы без данных.
---
очевидно, но кто и когда это делает? как это найти? в 1с и системе я следов не вижу
---
Включить отладку на сервере, настроить подключение к фоновым заданиям, включить замер производительности.
Запустить регламентное задание.
Выключить замер производительности.
Смотреть в замере, какой код выполняется.
---
Еще могу предположить, что есть копия базы УТ, в которой выполняется это задание, и выгружает в эту же папку.
Только в копии нет данных за этот день, поэтому файлы без данных. Ну и в копии нет копирования файлов в папку 2, поэтому в ней остаются файлы с данными.

Поменяйте папку №1 выгрузки на другую - создайте в ней подпапку, как вариант.

Или измените формирование имени - добавьте префикс какой-нибудь "ЫЫЫ"+Имя файла.
И сразу будет видно, где файлы из этой базы, а где нет.
---
Организуйте отправку после формирования файлов, одним заданием.
---
Нужен код, вызывающий указанные процедуры.
Скорей всего, они вызываются несколько раз для одного имени файла.
На диске перезаписывается существующий файл, а на ftp отказ, записать можно только один раз.
---
вот код регламентного задания
<
 Обработка=Обработки.ИТС_ОбменСЧикаго.Создать();
 Обработка.ДатаНачала=ТекущаяДата()-29*86400;
 Обработка.ДатаОкончания=ТекущаяДата();
 Обработка.Организация=Справочники.Организации.НайтиПоКоду("000000002");
 Обработка.КаталогВыгрузки="тут был реальный текст";

 Стр=Обработка.ОтборСклады.Добавить();
 Стр.Склад=Справочники.Склады.НайтиПоКоду("Т00000014");

 Стр=Обработка.ОтборСклады.Добавить();
 Стр.Склад=Справочники.Склады.НайтиПоКоду("Т00000036");

 Стр=Обработка.ОтборСклады.Добавить();
 Стр.Склад=Справочники.Склады.НайтиПоКоду("Т00000018");

 Стр=Обработка.ОтборСклады.Добавить();
 Стр.Склад=Справочники.Склады.НайтиПоКоду("Т00000092");

 Обработка.FTP_Сервер="тут был реальный текст";
 Обработка.FTP_Порт=990;
 Обработка.FTP_Логин="тут был реальный текст";
 Обработка.FTP_Пароль="тут был реальный текст";

 Обработка.ЗаполнитьТаблицы();
 Обработка.ВыгрузитьФайлы();
 Обработка.ВыполнитьРассылкуFTP();
/>
---
Обработка.ЗаполнитьТаблицы();
Обработка.ВыгрузитьФайлы();
Это что за процедуры?
---
Надо код всех процедур, или обработку приложите.
---
Скорей всего, этот код выполняется несколько раз.
Или ошибка в алгоритме формирования имен файлов.
(7) Задание запускается раз в сутки, это видно в консоли заданий. А так как в именах файлов содержится дата, то файлы не перезаписываются никогда.
(14) Обработка.ДатаНачала=ТекущаяДата()-29*86400;
Обработка.ДатаОкончания=ТекущаяДата();
Если эти параметры влияют на имена файлов, могут появляться дубли.
---
Скорей всего, этот код выполняется несколько раз.
В копии, очень похоже, что выполняется из копии базы.
---
Бинго! Нашел копию, сделанную админами в тайне от меня, там не отключили рег.задания. Всем спасибо, корень зла найден.