Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
12 дек 2024, 10:45

Запись в текстовый фаил для работы с другой программой.

Автор maxbor, 21 мая 2018, 17:50

0 Пользователей и 1 гость просматривают эту тему.

maxbor

Уважаемые форумчане. Подскажите где затуп.
Есть модуль в Реализации который пишет номера в файле(txt) для вывода номеров на экран, при помощи Java.
Проблема в том что java блокирует изменения файла. И 1с не может записать туда номер. (хотя руками все дописываться).
Помогите советом)
ЦитироватьФункция ЗафиксироватьИзменениеДокумента(Действие = 1)
   ПутьКФайлу = "\\ADMIN\test\";
   ИмяФайла = СтрЗаменить(ДатаДок,".","")+".txt";
   ДанныеДокумента = СокрЛП(НомерДок) + ";";
   ПолноеИмяФайла = ПутьКФайлу + ИмяФайла;
   
   
   Данные = СоздатьОбъект("Текст");
   Данные.КодоваяСтраница(0);// принудительная установка 
   ФайлДанныхНайден =  ФС.СуществуетФайл(ПолноеИмяФайла);
   Если ФайлДанныхНайден = 1 Тогда
      Попытка
         Данные.Открыть(ПолноеИмяФайла);
      Исключение
         Сообщить("Невозможно открыть файл " + ПолноеИмяФайла + " " + ОписаниеОшибки());
         Возврат 0;
      КонецПопытки;   
      Если Данные.КоличествоСтрок() = 0 Тогда
         ДанныеФайла = "";
      Иначе   
           ДанныеФайла = Данные.ПолучитьСтроку(1);
        КонецЕсли;   
   Иначе//нет файла на дату документа, значит и данных нет   
      ДанныеФайла = "";
   КонецЕсли;   
   
   Если Действие = 1 Тогда//проведение документа
      Если Найти(ДанныеФайла,ДанныеДокумента) = 1 Тогда//добавляем только если таких данных не найдено
         ДанныеФайла = ДанныеФайла + ДанныеДокумента;
      КонецЕсли;   
   Иначе//отмена проведения документа   
      Если ФайлДанныхНайден =  1 Тогда//обрабатывает только в случае если файл найден, если файла нет, то и удалять нечего
          ДанныеФайла = СтрЗаменить(ДанныеФайла,ДанныеДокумента,"");
      КонецЕсли; 
   КонецЕсли;
   Данные.Очистить();//очищаем данные
   Данные.ВставитьСтроку(1, ДанныеФайла);//данные всегда записываем в первую строку
   Попытка
      Данные.Записать(ПолноеИмяФайла);
      Исключение
      Сообщить("Невозможно записать файл " + ПолноеИмяФайла + " " + ОписаниеОшибки());
      Возврат 1;
   КонецПопытки;   
   Данные = "";
   Возврат 1;//удачное завершение функции
КонецФункции   


Процедура ОбработкаУдаленияПроведения()
   Если ЗафиксироватьИзменениеДокумента(0) = 0 Тогда
       глНеПроводить(Контекст,"Документ """+ глНазваниеДокументаВЖурнале(Контекст)+""" ошибка фиксации
      |номера в файле. Попробуйте повторить действие позже!");
      Если Константа.НеПродолжатьБезФиксацииНомера = 1 Тогда
         Возврат;   
      КонецЕсли;
   КонецЕсли;
КонецПроцедуры

Теги:

Похожие темы (4)

Рейтинг@Mail.ru

Поиск