Advertisement
Guest User

123

a guest
Feb 19th, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 29.40 KB | None | 0 0
  1. ДокументКорректировкиДолга = Документы.КорректировкаДолга.СоздатьДокумент();
  2. //ДокументКорректировкиДолга.ВидОперации = Перечисления.ВидыОперацийКорректировкаДолга.РасчетыЧерезПочту;
  3. ДокументКорректировкиДолга.Ответственный = ПараметрыСеанса.ТекущийПользователь;
  4. ДокументКорректировкиДолга.КратностьДокумента = 1;
  5. ДокументКорректировкиДолга.КурсДокумента = 1;
  6. ДокументКорректировкиДолга.ВалютаДокумента = Справочники.Валюты.НайтиПоКоду("643");
  7. ДокументКорректировкиДолга.Дата = ТекущаяДата();
  8.  
  9. Запрос = Новый Запрос;
  10. Запрос.Текст =
  11. "ВЫБРАТЬ
  12. | бит_ДанныеДляКорректировкиДолгаСрезПоследних.Контрагент КАК Контрагент,
  13. | бит_ДанныеДляКорректировкиДолгаСрезПоследних.ДоговорКонтрагента КАК ДоговорКонтрагента,
  14. | бит_ДанныеДляКорректировкиДолгаСрезПоследних.ДокументРасчета КАК ДокументРасчета,
  15. | бит_ДанныеДляКорректировкиДолгаСрезПоследних.Организация КАК Организация,
  16. | бит_ДанныеДляКорректировкиДолгаСрезПоследних.Откуда КАК Откуда,
  17. | бит_ДанныеДляКорректировкиДолгаСрезПоследних.Куда КАК Куда,
  18. | бит_ДанныеДляКорректировкиДолгаСрезПоследних.УчетнаяЗаписьЭП КАК УчетнаяЗаписьЭП,
  19. | бит_ДанныеДляКорректировкиДолгаСрезПоследних.ПолучательЛогаОшибок КАК ПолучательЛогаОшибок
  20. |ИЗ
  21. | РегистрСведений.бит_ДанныеДляКорректировкиДолга.СрезПоследних(&НаДату, ) КАК бит_ДанныеДляКорректировкиДолгаСрезПоследних";
  22. Запрос.УстановитьПараметр("НаДату", ДокументКорректировкиДолга.Дата);
  23.  
  24. РезультатЗапроса = Запрос.Выполнить();
  25. ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
  26. //БИТ Бутин А.В.
  27. //ВыборкаДетальныеЗаписи.Следующий();
  28. //Копим ошибки, потом отправляем файл с ошибками на почту
  29. //убрал попытка исключение конец попытки, так как нужно,
  30. //чтобы файлы, с которыми не было ошибок отрабатывались
  31. Если НЕ ВыборкаДетальныеЗаписи.Следующий() Тогда
  32. Возврат;
  33. КонецЕсли;
  34. КаталогОткудаЧитатьФайлы = ВыборкаДетальныеЗаписи.Откуда;
  35. КаталогКудаЗаписатьАрхив = ВыборкаДетальныеЗаписи.Куда;
  36.  
  37. ИмяКаталогаЛогФайла = (КаталогОткудаЧитатьФайлы + "\" + "Лог ошибок");
  38. ИмяЛогФайла = ИмяКаталогаЛогФайла + "\" + "Ошибки" + ".txt";
  39.  
  40. КаталогЛог = Новый Файл (ИмяКаталогаЛогФайла);
  41. Если НЕ КаталогЛог.Существует() Тогда
  42. СоздатьКаталог(ИмяКаталогаЛогФайла);
  43. КонецЕсли;
  44.  
  45. ЛогФайл = Новый ЗаписьТекста(ИмяЛогФайла);
  46. Ошибки = "";
  47. БылаОшибка = Ложь;
  48. ДокументЗаписан = Ложь;
  49. УчетнаяЗапись = ВыборкаДетальныеЗаписи.УчетнаяЗаписьЭП;
  50.  
  51. ПараметрыПисьма = Новый Структура;
  52. ПараметрыПисьма.Вставить("Кому" , ВыборкаДетальныеЗаписи.ПолучательЛогаОшибок);
  53. ПараметрыПисьма.Вставить("Тема" , "Файл с ошибками в работе обработки ""Создание и заполнение ТЧ корректировки долга""");
  54. //!БИТ Бутин А.В.
  55.  
  56.  
  57. ДокументКорректировкиДолга.Организация = ВыборкаДетальныеЗаписи.Организация;
  58. ДокументКорректировкиДолга.КонтрагентКредитор = ВыборкаДетальныеЗаписи.Контрагент;
  59. ДокументКорректировкиДолга.КПС = Справочники.КлассификационныеПризнакиСчетов.НайтиПоКоду("04100000000000130");
  60. СтрокаТЧКредиторка = ДокументКорректировкиДолга.КредиторскаяЗадолженность.Добавить();
  61. СтрокаТЧКредиторка.ДоговорКонтрагента = ВыборкаДетальныеЗаписи.ДоговорКонтрагента;
  62. //СтрокаТЧКредиторка.Сделка = ВыборкаДетальныеЗаписи.ДокументРасчета;
  63. //СтрокаТЧКредиторка.КурсВзаиморасчетов = 1;
  64. //СтрокаТЧКредиторка.КратностьВзаиморасчетов = 1;
  65.  
  66. НайденныеФайлы = НайтиФайлы(КаталогОткудаЧитатьФайлы, "*.txt");
  67.  
  68. Если НайденныеФайлы.Количество() = 0 Тогда
  69. //БИТ Бутин А.В.
  70. //Сообщить("В каталоге " + КаталогОткудаЧитатьФайлы + " отсутствуют файлы с расширением .txt!");
  71. Ошибки = Строка(ТекущаяДата()) + Символы.Таб + "В каталоге " + КаталогОткудаЧитатьФайлы
  72. + " отсутствуют файлы с расширением .txt!" + Символы.ПС;
  73. ЛогФайл.ЗаписатьСтроку(Ошибки);
  74. ЛогФайл.Закрыть();
  75.  
  76. Вложение = Новый Соответствие;
  77. Вложение.Вставить("Ошибки", Новый ДвоичныеДанные(ИмяЛогФайла));
  78. ПараметрыПисьма.Вставить("Вложения", Вложение);
  79.  
  80. РаботаСПочтовымиСообщениями.ОтправитьПочтовоеСообщение(УчетнаяЗапись, ПараметрыПисьма);
  81. Возврат;
  82. //!БИТ Бутин А.В.
  83. КонецЕсли;
  84.  
  85. ТзДебиторка = Новый ТаблицаЗначений;
  86. ТзДебиторка.Колонки.Добавить("ПутьКФайлу", Новый ОписаниеТипов("Строка"));
  87. ТзДебиторка.Колонки.Добавить("ИмяФайла", Новый ОписаниеТипов("Строка"));
  88. ТзДебиторка.Колонки.Добавить("КонтрагентСтрока", Новый ОписаниеТипов("Строка"));
  89. ТзДебиторка.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число"));
  90. ФайлыСОшибками = ТзДебиторка.Скопировать();
  91.  
  92. Для Каждого НайденныйФайл Из НайденныеФайлы Цикл
  93.  
  94. Текст = Новый ЧтениеТекста(НайденныйФайл.ПолноеИмя, КодировкаТекста.UTF8);
  95.  
  96. СодержимоеФайла = Текст.Прочитать();
  97.  
  98. //первая строка - ID транзакции: <номер>
  99. //вторая строка - Фактическое время платежа: <ГГГГ-ММ-ДДTЧЧ:ММ:СС>
  100. //третья строка - Время платежа: <ГГГГ-ММ-ДДTЧЧ:ММ:СС>
  101. //четвертая строка - Телефонный номер: <8ххххххххх>
  102. //пятая строка - Сумма платежа: <сумма>
  103. ПозицияПервойСтроки = Найти(СодержимоеФайла, "ID транзакции");
  104. ПозицияВторойСтроки = Найти(СодержимоеФайла, "Фактическое время платежа");
  105. ПозицияТретьейСтроки = Найти(СодержимоеФайла, "Время платежа");
  106. ПозицияЧетвертойСтроки = Найти(СодержимоеФайла, "Телефонный номер");
  107. ПозицияПятойСтроки = Найти(СодержимоеФайла, "Сумма платежа");
  108.  
  109. //первая строка - ID транзакции: <номер>
  110. //СтрИД = Текст.ПрочитатьСтроку();
  111. СтрИД = Сред(СодержимоеФайла, ПозицияПервойСтроки, ПозицияВторойСтроки - ПозицияПервойСтроки);
  112.  
  113. //вторая строка - Фактическое время платежа: <ГГГГ-ММ-ДДTЧЧ:ММ:СС>
  114. //СтрФактВремя = Текст.Прочитать().ПрочитатьСтроку();
  115. СтрФактВремя = Сред(СодержимоеФайла, ПозицияВторойСтроки, ПозицияТретьейСтроки - ПозицияВторойСтроки);
  116. СтрФактВремя = СокрЛП(Сред(СтрФактВремя, Найти(СтрФактВремя, ":") + 1));
  117. СтрФактВремя = СтрЗаменить(СтрФактВремя, "-", "");
  118. СтрФактВремя = СтрЗаменить(СтрФактВремя, "T", "");
  119. СтрФактВремя = СтрЗаменить(СтрФактВремя, ":", "");
  120. ФактДатаДокумента = Дата(СтрФактВремя);
  121.  
  122. //третья строка - Время платежа: <ГГГГ-ММ-ДДTЧЧ:ММ:СС>
  123. //СтрВремя = Текст.ПрочитатьСтроку();
  124. СтрВремя = Сред(СодержимоеФайла, ПозицияТретьейСтроки, ПозицияЧетвертойСтроки - ПозицияТретьейСтроки);
  125. СтрВремя = СокрЛП(Сред(СтрВремя, Найти(СтрВремя, ":") + 1));
  126.  
  127. СтрВремяЛишнее = СтрЗаменить(СтрВремя, "0", "");
  128. СтрВремяЛишнее = СтрЗаменить(СтрВремяЛишнее, "1", "");
  129. СтрВремяЛишнее = СтрЗаменить(СтрВремяЛишнее, "2", "");
  130. СтрВремяЛишнее = СтрЗаменить(СтрВремяЛишнее, "3", "");
  131. СтрВремяЛишнее = СтрЗаменить(СтрВремяЛишнее, "4", "");
  132. СтрВремяЛишнее = СтрЗаменить(СтрВремяЛишнее, "5", "");
  133. СтрВремяЛишнее = СтрЗаменить(СтрВремяЛишнее, "6", "");
  134. СтрВремяЛишнее = СтрЗаменить(СтрВремяЛишнее, "7", "");
  135. СтрВремяЛишнее = СтрЗаменить(СтрВремяЛишнее, "8", "");
  136. СтрВремяЛишнее = СтрЗаменить(СтрВремяЛишнее, "9", "");
  137. Для ном = 1 по СтрДлина(СтрВремяЛишнее) Цикл
  138. ЛишнийСимвол = Сред(СтрВремяЛишнее, ном, 1);
  139. СтрВремя = СтрЗаменить(СтрВремя, ЛишнийСимвол, "");
  140. КонецЦикла;
  141.  
  142. //СтрВремя = СтрЗаменить(СтрВремя, "-", "");
  143. //СтрВремя = СтрЗаменить(СтрВремя, "NOVT", "");
  144. //СтрВремя = СтрЗаменить(СтрВремя, ":", "");
  145.  
  146. ДатаДокумента = Дата(СтрВремя);
  147.  
  148. //четвертая строка - Телефонный номер: <8ххххххххх>
  149. //СтрТелефон = Текст.ПрочитатьСтроку();
  150. СтрТелефон = Сред(СодержимоеФайла, ПозицияЧетвертойСтроки, ПозицияПятойСтроки - ПозицияЧетвертойСтроки);
  151. СтрТелефон = СокрЛП(Сред(СтрТелефон, Найти(СтрТелефон, ":") + 1));
  152. СтрТелефон = Сред(СтрТелефон, 2);
  153.  
  154. //пятая строка - Сумма платежа: <сумма>
  155. //СтрСумма = Текст.ПрочитатьСтроку();
  156. СтрСумма = Сред(СодержимоеФайла, ПозицияПятойСтроки);
  157. СтрСумма = СокрЛП(Сред(СтрСумма, Найти(СтрСумма, ":") + 1));
  158.  
  159. //Сообщить("Обработка файла " + НайденныйФайл.ПолноеИмя + ":");
  160. //Сообщить("Дата: " + Строка(ДатаДокумента));
  161. //Сообщить("Телефон: " + Строка(СтрТелефон));
  162. //Сообщить("Сумма: " + Строка(СтрСумма));
  163. //Сообщить("Конец обработки файла.");
  164.  
  165. СтрДебиторка = ТзДебиторка.Добавить();
  166. СтрДебиторка.ПутьКФайлу = НайденныйФайл.Путь;
  167. СтрДебиторка.ИмяФайла = НайденныйФайл.Имя;
  168. СтрДебиторка.КонтрагентСтрока = СтрТелефон;
  169. СтрДебиторка.Сумма = Число(СтрСумма);
  170.  
  171. Текст.Закрыть();
  172.  
  173. КонецЦикла;
  174.  
  175. //ЗапросВМТ = Новый Запрос("ВЫБРАТЬ Т.ПутьКФайлу, Т.ИмяФайла, Т.КонтрагентСтрока, Т.Сумма ПОМЕСТИТЬ ВрмТаблица ИЗ &Таблица КАК Т");
  176. //ЗапросВМТ.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
  177. //ЗапросВМТ.УстановитьПараметр("Таблица", тзДебиторка);
  178. //ЗапросВМТ.Выполнить();
  179. //
  180. //Запрос = Новый Запрос;
  181. //Запрос.Текст =
  182. // "ВЫБРАТЬ
  183. // | ВрмТаблица.ПутьКФайлу КАК ПутьКФайлу,
  184. // | ВрмТаблица.ИмяФайла КАК ИмяФайла,
  185. // | ВрмТаблица.КонтрагентСтрока КАК КонтрагентСтрока,
  186. // | ВрмТаблица.Сумма КАК Сумма,
  187. // | ЕСТЬNULL(Контрагенты.Ссылка, ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)) КАК Контрагент,
  188. // | ЕСТЬNULL(ОсновныеДоговорыКонтрагента.Договор.Ссылка, ЗНАЧЕНИЕ(Справочник.ДоговорыКонтрагентов.ПустаяСсылка)) КАК ОсновнойДоговор
  189. // |ИЗ
  190. // | &ВложеннаяТаблица КАК ВрмТаблица
  191. // | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
  192. // | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ОсновныеДоговорыКонтрагента КАК ОсновныеДоговорыКонтрагента
  193. // | ПО ОсновныеДоговорыКонтрагента.Контрагент.Ссылка = Контрагенты.Ссылка
  194. // | ПО ((ВЫРАЗИТЬ(ВрмТаблица.КонтрагентСтрока КАК СТРОКА(100))) = (ВЫРАЗИТЬ(Контрагенты.Наименование КАК СТРОКА(100))))
  195. // |ГДЕ
  196. // | Контрагенты.ПометкаУдаления = ЛОЖЬ";
  197. //Запрос.УстановитьПараметр("ВложеннаяТаблица", ЗапросВМТ.МенеджерВременныхТаблиц.Таблицы.Найти("ВрмТаблица"));
  198. //Запрос.МенеджерВременныхТаблиц = ЗапросВМТ.МенеджерВременныхТаблиц;
  199. //ЗапросВМТ.МенеджерВременныхТаблиц.Таблицы.Найти("ВрмТаблица")
  200. //РезультатЗапроса = Запрос.Выполнить();
  201. ТзДебиторкаПодробная = ТзДебиторка.Скопировать();//РезультатЗапроса.Выгрузить();
  202. МассивУдаляемыхСтрок = Новый Массив;
  203.  
  204. Для Каждого СтрДебиторкаПодробная ИЗ ТзДебиторкаПодробная Цикл
  205. Контрагент = Справочники.Контрагенты.НайтиПоНаименованию(СтрДебиторкаПодробная.КонтрагентСтрока,Истина);
  206. //БИТ Бутин А.В.
  207. //Если Контрагент = Справочники.Контрагенты.ПустаяСсылка() Тогда
  208. Если Контрагент = Справочники.Контрагенты.ПустаяСсылка() ИЛИ Контрагент = Неопределено Тогда
  209. //Сообщить("Контрагент " + стрДебиторкаПодробная.КонтрагентСтрока + " не найден!");
  210. Ошибки = Строка(ТекущаяДата()) + Символы.Таб + "Контрагент "
  211. + СтрДебиторкаПодробная.КонтрагентСтрока + " не найден!" + Символы.ПС;
  212. ЛогФайл.ЗаписатьСтроку(Ошибки);
  213. ЗаполнитьЗначенияСвойств(ФайлыСОшибками.Добавить(), СтрДебиторкаПодробная);
  214. МассивУдаляемыхСтрок.Добавить(СтрДебиторкаПодробная);
  215. БылаОшибка = Истина;
  216. //!БИТ Бутин А.В.
  217. Продолжить;
  218. КонецЕсли;
  219.  
  220. //БИТ Бутин А.В.
  221. //Если УстановитьДоговорКонтрагента(Контрагент) = Справочники.Договоры.ПустаяСсылка() Тогда
  222. ДоговорКонтрагента = УстановитьДоговорКонтрагента(Контрагент);
  223. Если ДоговорКонтрагента = Справочники.Договоры.ПустаяСсылка() ИЛИ ДоговорКонтрагента = Неопределено Тогда
  224. //Сообщить("Основной договор контрагента " + Строка(стрДебиторкаПодробная.Контрагент) + " не найден!");
  225. Ошибки = Строка(ТекущаяДата()) + Символы.Таб + "Основной договор контрагента "
  226. + Строка(СтрДебиторкаПодробная.КонтрагентСтрока) + " не найден!" + Символы.ПС;
  227. ЛогФайл.ЗаписатьСтроку(Ошибки);
  228. ЗаполнитьЗначенияСвойств(ФайлыСОшибками.Добавить(), СтрДебиторкаПодробная);
  229. МассивУдаляемыхСтрок.Добавить(СтрДебиторкаПодробная);
  230. БылаОшибка = Истина;
  231. //!БИТ Бутин А.В.
  232. Продолжить;
  233. КонецЕсли;
  234.  
  235. СтрокаТЧДебиторка = ДокументКорректировкиДолга.ДебиторскаяЗадолженность.Добавить();
  236. СтрокаТЧДебиторка.Контрагент = Контрагент;
  237. //БИТ Бутин А.В.
  238. //СтрокаТЧДебиторка.ДоговорКонтрагента = УстановитьДоговорКонтрагента(Контрагент);
  239. СтрокаТЧДебиторка.ДоговорКонтрагента = ДоговорКонтрагента;
  240. //!БИТ Бутин А.В.
  241. СтрокаТЧДебиторка.КурсВзаиморасчетов = 1;
  242. СтрокаТЧДебиторка.КратностьВзаиморасчетов = 1;
  243. СтрокаТЧДебиторка.Сумма = стрДебиторкаПодробная.Сумма;
  244. СтрокаТЧДебиторка.СчетУчетаРасчетов = ПланыСчетов.ЕПСБУ.НайтиПоКоду("205.31");
  245.  
  246. КонецЦикла;
  247.  
  248. //БИТ Бутин А.В.
  249. Для Каждого Строка Из МассивУдаляемыхСтрок Цикл
  250. ТзДебиторкаПодробная.Удалить(Строка);
  251. КонецЦикла;
  252. //!БИТ Бутин А.В.
  253.  
  254. Если тзДебиторкаПодробная.Количество() = 0 Тогда
  255. //БИТ Бутин А.В.
  256. //Сообщить("Список контрагентов с основными договорами пуст!");
  257. Ошибки = Строка(ТекущаяДата()) + Символы.Таб + "Список контрагентов с основными договорами пуст!" + Символы.ПС;
  258. ЛогФайл.ЗаписатьСтроку(Ошибки);
  259. ЛогФайл.Закрыть();
  260. БылаОшибка = Истина;
  261. //!БИТ Бутин А.В.
  262. КонецЕсли;
  263.  
  264. СтрокаТЧКредиторка.Сумма = тзДебиторкаПодробная.Итог("Сумма");
  265.  
  266. //БИТ Бутин А.В.
  267. //ДокументКорректировкиДолга.Записать(РежимЗаписиДокумента.Проведение);
  268. Попытка
  269. ДокументКорректировкиДолга.Записать(РежимЗаписиДокумента.Проведение);
  270. ДокументЗаписан = Истина;
  271. Исключение
  272. ЛогФайл.ЗаписатьСтроку(Строка(ТекущаяДата()) + Символы.Таб +
  273. ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()) + Символы.ПС);
  274. БылаОшибка = Истина;
  275. КонецПопытки;
  276. //!БИТ Бутин А.В.
  277.  
  278. стрГод = Формат(Год(ДокументКорректировкиДолга.Дата),"ЧГ=0; ЧРГ=");
  279. стрМесяц = Формат(Месяц(ДокументКорректировкиДолга.Дата),"ЧГ=0; ЧРГ=");
  280. стрДень = Формат(День(ДокументКорректировкиДолга.Дата),"ЧГ=0; ЧРГ=");
  281. ИмяФайлаZIP = стрДень + ".zip";
  282.  
  283. КаталогНаДиске = Новый Файл(КаталогКудаЗаписатьАрхив + "\" + стрГод);
  284. Если НЕ КаталогНаДиске.Существует() Тогда
  285. СоздатьКаталог(КаталогКудаЗаписатьАрхив + "\" + стрГод);
  286. КонецЕсли;
  287.  
  288. КаталогНаДиске = Новый Файл(КаталогКудаЗаписатьАрхив + "\" + стрГод + "\" + стрМесяц);
  289. Если НЕ КаталогНаДиске.Существует() Тогда
  290. СоздатьКаталог(КаталогКудаЗаписатьАрхив + "\" + стрГод + "\" + стрМесяц);
  291. КонецЕсли;
  292.  
  293. //БИТ Бутин А.В.
  294. КаталогНеЗагруженные = Новый Файл (КаталогОткудаЧитатьФайлы + "\" + "Незагруженные");
  295. Если НЕ КаталогНеЗагруженные.Существует() Тогда
  296. СоздатьКаталог(КаталогОткудаЧитатьФайлы + "\" + "НеЗагруженные");
  297. КонецЕсли;
  298. МассивУдаляемыхСтрок = Новый Массив;
  299. Если ДокументЗаписан = Ложь Тогда
  300. Для Каждого СтрФайлыСОшибками Из ТзДебиторкаПодробная Цикл
  301. ПереместитьФайл(СтрФайлыСОшибками.ПутьКФайлу + СтрФайлыСОшибками.ИмяФайла
  302. , КаталогОткудаЧитатьФайлы + "\" + "НеЗагруженные" + "\" + СтрФайлыСОшибками.ИмяФайла);
  303. МассивУдаляемыхСтрок.Добавить(СтрФайлыСОшибками);
  304. КонецЦикла;
  305. Для Каждого Строка Из МассивУдаляемыхСтрок Цикл
  306. ТзДебиторкаПодробная.Удалить(Строка);
  307. КонецЦикла;
  308. Иначе
  309. Для Каждого СтрФайлыСОшибками Из ФайлыСОшибками Цикл
  310. ПереместитьФайл(СтрФайлыСОшибками.ПутьКФайлу + СтрФайлыСОшибками.ИмяФайла
  311. , КаталогОткудаЧитатьФайлы + "\" + "НеЗагруженные" + "\" + СтрФайлыСОшибками.ИмяФайла);
  312. КонецЦикла;
  313. КонецЕсли;
  314. //!БИТ Бутин А.В.
  315.  
  316. ФайлНаДиске = Новый Файл(КаталогКудаЗаписатьАрхив + "\" + стрГод + "\" + стрМесяц + "\" + ИмяФайлаZIP);
  317. Если ФайлНаДиске.Существует() Тогда
  318. КаталогTempНаДиске = Новый Файл(КаталогКудаЗаписатьАрхив + "\" + стрГод + "\" + стрМесяц + "\temp");
  319. Если КаталогTempНаДиске.Существует() Тогда
  320. УдалитьФайлы(КаталогTempНаДиске.ПолноеИмя);
  321. КонецЕсли;
  322. СоздатьКаталог(КаталогКудаЗаписатьАрхив + "\" + стрГод + "\" + стрМесяц + "\temp");
  323. ФайлАрхива = Новый ЧтениеZIPФайла(КаталогКудаЗаписатьАрхив + "\" + стрГод + "\" + стрМесяц + "\" + ИмяФайлаZIP);
  324. ФайлАрхива.ИзвлечьВсе(КаталогКудаЗаписатьАрхив + "\" + стрГод + "\" + стрМесяц + "\temp");
  325. ФайлАрхива.Закрыть();
  326. КонецЕсли;
  327.  
  328. ЗаписьZIP = Новый ЗаписьZipФайла(КаталогКудаЗаписатьАрхив + "\" + стрГод + "\" + стрМесяц + "\" + ИмяФайлаZIP);
  329.  
  330. СтарыеФайлы = НайтиФайлы(КаталогКудаЗаписатьАрхив + "\" + стрГод + "\" + стрМесяц + "\temp", "*.txt");
  331. Для Каждого СтарыйФайл Из СтарыеФайлы Цикл
  332. ЗаписьZIP.Добавить(СтарыйФайл.ПолноеИмя);
  333. КонецЦикла;
  334.  
  335. Для Каждого стрДебиторка Из тзДебиторкаПодробная Цикл
  336. //БИТ Бутин А.В.
  337. //ЗаписьZIP.Добавить(стрДебиторка.ПутьКФайлу + стрДебиторка.ИмяФайла);
  338. Попытка
  339. ЗаписьZIP.Добавить(стрДебиторка.ПутьКФайлу + стрДебиторка.ИмяФайла);
  340. Исключение
  341. ЛогФайл.ЗаписатьСтроку(Строка(ТекущаяДата()) + Символы.Таб +
  342. ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()) + Символы.ПС);
  343. БылаОшибка = Истина;
  344. КонецПопытки;
  345. //!БИТ Бутин А.В.
  346. КонецЦикла;
  347.  
  348. ЗаписьZIP.Записать();
  349.  
  350. УдалитьФайлы(КаталогКудаЗаписатьАрхив + "\" + стрГод + "\" + стрМесяц + "\temp");
  351. Для Каждого стрДебиторка Из тзДебиторкаПодробная Цикл
  352. //БИТ Бутин А.В.
  353. //УдалитьФайлы(стрДебиторка.ПутьКФайлу + стрДебиторка.ИмяФайла);
  354. Попытка
  355. УдалитьФайлы(стрДебиторка.ПутьКФайлу + стрДебиторка.ИмяФайла);
  356. Исключение
  357. ЛогФайл.ЗаписатьСтроку(Строка(ТекущаяДата()) + Символы.Таб +
  358. ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()) + Символы.ПС);
  359. БылаОшибка = Истина;
  360. КонецПопытки;
  361. //!БИТ Бутин А.В.
  362. КонецЦикла;
  363.  
  364. //БИТ Бутин А.В.
  365. ЛогФайл.Закрыть();
  366.  
  367. Если БылаОшибка Тогда
  368. Вложение = Новый Соответствие;
  369. Вложение.Вставить(Ошибки, Новый ДвоичныеДанные(ИмяЛогФайла));
  370. ПараметрыПисьма.Вставить("Вложения", Вложение);
  371.  
  372. РаботаСПочтовымиСообщениями.ОтправитьПочтовоеСообщение(УчетнаяЗапись, ПараметрыПисьма);
  373. КонецЕсли;
  374. //!БИТ Бутин А.В.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement