1с проверить существует ли каталог


Файловая система (ФС)

Обращение к файловой системе

Для работы с файловой системой предназначен объект «ФС». В принципе его не требуется создавать с помощью функции СоздатьОбъект. Можно считать, что он уже создан. Но 1С позволяет создать сколько угодно таких объектов при помощи функции СоздатьОбъект;

  ГдеМыНаходимся = ФС. ТекКаталог();
ФС. СоздатьКаталог("");
НовФС = СоздатьОбъект("");
  

Объект «ФС» имеет следующие методы:

   
ВыбратьФайл(<ИмяФайла>)


Открывает окно диалога выбора/сохранения файла. Возвращает: 0 — если в окне диалога нажата кнопка ‘Отмена’, 1 — если нажата кнопка ‘ОК’.

Синтаксис: ВыбратьФайл (<ТипДиалога>, <ИмяФайла>, <ИмяНачКаталога>, <ЗаголовокОкна>, <Фильтр>, <Расширение>, <Таймаут>)

ВыбратьФайлКартинки


Открывает окно диалога выбора/сохранения файла картинки.


Возвращает: 0 — если в окне диалога нажата кнопка ‘Отмена’, 1 — если нажата кнопка ‘ОК’.


Синтаксис: ВыбратьФайлКартинки (<ТипДиалога>, <ИмяФайла>, <ИмяНачКаталога>, <ЗаголовокОкна>, <Расширение>, <Таймаут>)

ВыбратьКаталог


Открывает окно диалога выбора каталога.


Возвращает: 0 — если в окне диалога нажата кнопка ‘Отмена’; 1 — если в окне диалога нажата кнопка ‘ОК’, при этом в переменную <ИмяНачКаталога> возвращается имя выбранного каталога; -1 (минус единица) — закончилось время <Таймаут> ожидания отклика пользователя.


Синтаксис: ВыбратьКаталог(<ИмяКаталога>,<ЗаголовокОкна>,<Таймаут>)

СуществуетФайл


Проверяет существование файла.


Возвращает: 1 — файл существует; 0 — не существует.


Синтаксис: СуществуетФайл(<ИмяФайла>)

Копирует файл.


Синтаксис: КопироватьФайл(<ИмяФайлаИсточника>,<ИмяФайлаПриемника>,<ФлагПерезаписи>)

Параметры:


<ИмяФайлаИсточника> — строка с именем файла источника;


<ИмяФайлаПриемника> — строка с именем файла приемника;


<ФлагПерезаписи> -:


0 — существующий файл приемника перезаписать;


1 — существующий файл приемника не перезаписывать.

Удаляет файл.


Синтаксис: УдалитьФайл(<ИмяФайла>)

Переименовать/переместить файл.


Синтаксис: ПереименоватьФайл(<ИмяФайлаИсточника>, <ИмяФайлаПриемника>, <ФлагПерезаписи>)

Параметры:


<ИмяФайлаИсточника> — строка с именем файла источника;


<ИмяФайлаПриемника> — строка с новым именем файла;


<ФлагПерезаписи> -:


0 — запрещает перемещение файла между дисками и существующий файл приемника не перезаписывается;


1 — разрешает перемещение файла между дисками (только для файлов) и существующий файл приемника перезаписывается.

Открывает выборку файлов по заданной маске и находит первый файл.


Возвращает строку с именем найденного файла.


Синтаксис: НайтиПервыйФайл(<МаскаИмени>)

Находит следующий файл по открытой выборке файлов.


Возвращает строку с именем найденного файла.


Синтаксис: НайтиСледующийФайл()

Возвращает атрибуты файла (в параметрах).

Синтаксис:


АтрибутыФайла (<ИмяФайла>, <РазмерФайла>, <АтрибутыФайла>, <ВремяСоздания>, <ВремяПоследнегоДоступа>, <ВремяПоследнейЗаписи>, <РасширенноеИмяФайла>)

Атрибуты файла закодированы, об этом см. Синтакс-Помощник или описание встроенного языка

Создать новый каталог (папку).


Синтаксис:СоздатьКаталог(<ИмяКаталога>)

Удаляет каталог файлов.


Синтаксис: УдалитьКаталог(<ИмяФайла>)

Устанавливает текущий каталог файлов.


Синтаксис: УстТекКаталог(<ИмяФайла>)

ТекКаталог


Возвращает строку с именем текущего каталога файлов.

WindowsКаталог


Возвращает строку с именем Windows директории.

СвободноеМестоНаДиске


Возвращает размер свободного дискового пространства в байтах.


Синтаксис: СвободноеМестоНаДиске(<ИмяДиска>)

Также часто применяются системные функции:

КаталогИБ
   Возвращает имя каталога базы данных.


КаталогПользователя
   Возвращает имя каталога пользователя.


КаталогПрограммы
   Возвращает имя каталога с исполняемыми файлами системы 1С:Предприятие.


КаталогВременныхФайлов
   Возвращает имя каталога временных файлов.


ИмяКомпьютера
   Возвращает сетевое имя компьютера, работающего в данный момент с программой.

Примеры

Пример 1


//переместить все текстовые файлы (*.txt) из каталога информационной базы в каталог TXT.

  ФС. УстТекКаталог(КаталогИБ());
ИмяФайла = "";
ИмяФайла = ФС. НайтиПервыйФайл("");
Если ИмяФайла <> "" Тогда
 ФС. СоздатьКаталог("");
 ФС. КопироватьФайл(ИмяФайла,ФС. ТекКаталог() + "" + ИмяФайла);
 ФС. УдалитьФайл(ИмяФайла);

Пока = Цикл

 ИмяФайла = "       
";
 ИмяФайла = ФС. НайтиСледующийФайл()
 Если ИмяФайла <> "" Тогда
 ФС. КопироватьФайл(ИмяФайла,ФС. ТекКаталог() + "" + ИмяФайла);
 ФС. УдалитьФайл(ИмяФайла);
 Иначе
 Прервать;
 КонецЕсли;

КонецЦикла;
  

Пример 2


//выбрать файл с фотографией сотрудника

  ИмяФайла = "";
ИмяКаталога = КаталогИБ();

Если ФС. ВыбратьФайлКартинки(,ИмяФайла,ИмяКаталога,"    Укажите файл с фотографией:    
",,)= Тогда

 ВремКартинка = СоздатьОбъект("");
 ВремКартинка. Загрузить(ИмяКаталога + ИмяФайла);
 КартинкаНаФорме. УстановитьКартинку(ВремКартинка);

КонецЕсли;
  

Привет всем! Как можно проверить существование заданого каталога в 1С?

пример из СП:

Функция ПроверитьСуществованиеКаталога(ИмяКаталога) Экспорт

   КаталогНаДиске = Новый Файл(ИмяКаталога);

   Если КаталогНаДиске. Существует() Тогда

       Возврат Истина;

   Иначе

       Ответ = Вопрос(«Каталог не существует. Создать?»,

                       РежимДиалогаВопрос. ОКОтмена);

       Если Ответ = КодВозвратаДиалога. ОК Тогда

           СоздатьКаталог(ИмяКаталога);

           Возврат Истина;

       Иначе

           Возврат Ложь;

       КонецЕсли;

   КонецЕсли;

КонецФункции

да, для 7-ки актуально )))

( 3
) я вижу что то-то нето)))), а как для 7-ки переделать?

СуществуетФайл(<?>)

Синтаксис:

СуществуетФайл(<ИмяФайла>)

Назначение:

Проверяет существование файла.

Возвращает: 1 — файл существует; 0 — не существует.

Параметры:

<ИмяФайла> — Строковое выражение с именем файла.

Подробнее см. в документации, глава ‘Работа с Файлами’

там хитрее


сходи в поиск


по памяти


1. попробовать установить текущийкаталог и сравнить теккаталог ДО и ПОСЛЕ


2. Ф С. СуществуетФАйл(Мойкаталог+»\.») или как-то так — точно не помню

Если ФС. СуществуетФайл( Каталог ) = 0 Тогда


                   ФС. СоздатьКаталог( Каталог );


               КонецЕсли;

АтрибутыФайла(<?>,,,,,,);

Синтаксис:

АтрибутыФайла(<ИмяФайла>,<РазмерФайла>,<АтрибутыФайла>,<ВремяСоздания>,<ВремяПоследнегоДоступа>,<ВремяПоследнейЗаписи>,<РасширенноеИмяФайла>)

Назначение:

Возвращает атрибуты файла (в параметрах).

Параметры:

— строка с именем файла;

— переменная, принимающая размер файла в байтах;

— переменная, принимающая атрибуты файла;

Возвращаемое строковое значение длиной 9 символов, в котором закодированы атрибуты файла. Символы могут принимать значения »0» или »1»:

первый символ: если »1» — файл только для чтения;

второй символ: если »1» — скрытый файл;

третий символ: если »1» — системный файл;

четвертый символ: если »1» — каталог;

пятый символ: если »1» — архивный файл;

шестой символ: если »1» — обычный файл (все другие атрибуты не установлены);

седьмой символ: если »1» — временный файл;

восьмой символ: если »1» — файл, сжатый каким-либо архиватором;

девятый символ: если »1» — нет доступа к файлу.

— переменная, принимающая строку с датой и временем создания файла;

— переменная, принимающая строку с датой и временем последнего доступа к файлу;

— переменная, принимающая строку с датой и временем последней записи файла;

— переменная, принимающая строку с полным именем файла.

Подробнее см. в книгу »1С:Предприятие 7.7. Описание встроенного языка. Часть 2», глава 37 »Работа с Файлами».

СуществуетДиректория(,);


Синтаксис:


СуществуетДиректория(,)


Назначение:


Проверить наличие заданного каталога и, при необходимости, его создать.


Возвращает: 0 — в случае отсутствия каталога, 1 — заданный путь есть на диске, 2 — каталог отсутствовал и был успешно создан, (-1) — произошла ошибка при выполнении команды.

Читайте также:  Оссн личный кабинет

Параметры:


— строка, имя проверяемого пути.


— число, необязательный параметр, 1 — создавать каталог в случае его остутствия, 0 — не создавать. Значение по умолчанию — 0.

( 11
) Это ты где нарыл?

( 11
) откуда метод?

всем спасибо, понял, буду пробовать!

( 13
), ( 14
) Как обычно, RiK_SQL 🙂

( 16
)Ага, ну да, обязательно надо вынести во внешнюю компоненту то, что можно и штатно сделать:)

( 17
) Вот так он работает:


       Temp:=GetNParam(paParams,0);


       try


         if DirectoryExists(Temp) then


           //есть такая директория


           pvarRetValue:=1


         else


           if GetNParam(paParams,1)=0 then


             //не надо создавать директорию


             pvarRetValue:=0


           else


             //надо создать директорию


             if CreateDir(Temp) then


               //создали директорию


               pvarRetValue:=2


             else


               pvarRetValue:=0;


       except


         pvarRetValue:=-1;


       end;


Отличие от 1С-кого — можно сетевые пути указывать.


( 18
) Р-р-р-р!! 🙂

( 19
) Попробуй, сделай.

+( 22
) особенно «каталог отсутствовал и был успешно создан» 🙂

«Проверить наличие заданного каталога и, при необходимости, его создать.

Возвращает: 0 — в случае отсутствия каталога, 1 — заданный путь есть на диске, 2 — каталог отсутствовал и был успешно создан, (-1) — произошла ошибка при выполнении команды. »

Не сделать при помощи методов 1С? Да не смешите мои валенки. Можно еще проверить, каталог или файл существует с таким именем, и какие атрибуты у файла стоят.

Мне щас гораздо интереснее это:

Хранилище. УстановитьТекущийКаталог(ИмяТекущегоКаталога);

       Если флВложения=1 Тогда

       СписокКаталогов=Хранилище. ПолучитьСписокКаталогов();

       Для С=1 По СписокКаталогов. РазмерСписка() Цикл

           ИмяПодКаталога=»»;

           КороткоеИмя=СписокКаталогов. ПолучитьЗначение(С,ИмяПодКаталога);

           Если КороткоеИмя=».» Тогда

               Продолжить;

           КонецЕсли;

           Ошибок=Ошибок+ВыполнитьТестыВКаталоге(ИмяПодКаталога);

       КонецЦикла;

   КонецЕсли;

       //В подкаталогах поменяли имя тек. каталога

   Хранилище. УстановитьТекущийКаталог(ИмяТекущегоКаталога);

       _Тестов=_Тестов+Хранилище. КоличествоТестов();

   Для Т=1 По Хранилище. КоличествоТестов() Цикл

       лНомерТеста = _Тестов — Хранилище. КоличествоТестов() + Т;

       Состояние(«»+ лНомерТеста +»/» + _Тестов + «. » + Хранилище. ПолучитьТекущийКаталог() + «/» + Т);

       ТекТест. Инит(Хранилище. ПолучитьТекущийКаталог(),Т);

       РезультатТеста=ТекТест. Тестировать(_ТаблицаПечатнойФормы);

       Если РезультатТеста<>»» Тогда

           _Текст=ДобавитьТекст(_Текст,РезультатТеста);

           Ошибок=Ошибок+1;

       КонецЕсли;

   КонецЦикла;

до кучи определения отсутсвия доступа

// взвращает -1 — нет доступа, 1 — каталог, 0 — файл


Функция ЭтоКаталог(Каталог, ИмяФайла)  

   перем раз, атр;                        

   Если (ИмяФайла = «.») или (ИмяФайла = «.») Тогда


       Возврат -3;


   КонецЕсли;

   
   ФС. АтрибутыФайла(Каталог + ИмяФайла, раз, атр);

   
   Если (Сред(атр,9,1) = «1») и (Сред(атр,4,1) = «1»)  Тогда


       Возврат -1;


   ИначеЕсли (Сред(атр,4,1) = «1»)  Тогда


       Возврат 1;


   ИначеЕсли (СокрЛП(атр) = «0»)  Тогда


       Возврат -2;


   Иначе


       Возврат 0;


   КонецЕсли;

Странно, почему штатное от 1С у меня в сети работает .))


Примерно так:

ИмяФ = СокрЛП(ИмяФайла);


ИмяФ = ?(Прав(ИмяФ, 1) = «\», ИмяФ, ИмяФ + «\»);


Флаг = ФС. СуществуетФайл(ИмяФ+»*.*»);


Сообщить(«Существует каталог: «+Флаг);

Если уж совсем нет доверия к штатным от 1С методам —


то наверное можно FSO использовать — по крайней мере это «почти штатно».

( 25
) на поллитру ?

( 30
), ( 32
) Я щас уже не вспомню, какой релиз 1С-ки был. Столкнулся с проблемой. И было гораздо проще дописать несколько строк к ВК, чем «штатными» методами изголяться 🙂

действительно 1с с сетевыми путями работает далеко не всегда, проблемма здесь в использовании старых библиотек, по этому оди и то-же код может по разному работать на разных компах.

для примера попробуйте через скрытую шару «$» поработать штатными процедурами, или через IP.

Тем не менее все можно настроить и будет работать 🙂

Вступайте в мою группу помощник программиста
.

В ней мы обсуждаем программирование в 1С.

  &НаСервере
 ЧтениеИЗаписьФайловНаСервере
 
        /// Как записать произвольное значение в файл в 1с 8.3, 8.2    

 
    // любое сериализуемое (то есть превращаемое    

    // в строку и обратно) значение можно сохранять    

    // в файл, например, массивы, списки значений, строки    

    // структуры и т.д.      

 Числа Массив
 ЧислаДобавить
 ЧислаДобавить
 ЗначениеВФайл Числа
    // эта функция работает только на сервере    

  
            /// Как восстановить произвольное значение из файла в 1с 8.3, 8.2    

  
 ЧислаИзФайла ЗначениеИзФайла
 СообщитьЧислаИзФайла 
 СообщитьЧислаИзФайла 
  
            /// Как записать текстовый файл в 1с 8.3, 8.2    

  
    // работает как на сервере, так и на клиенте    

 Текст ЗаписьТекста
 
 КодировкаТекста 
 СимволыПС    // разделитель строк (необ.)    

    // перезаписывать файл, а не дописывать в конец (необ.)    

 
 ТекстЗаписатьСтроку
 ТекстЗаписатьСтроку    "Посторонним вход воспрещен."    

 ТекстЗакрыть
  
            /// Как прочитать текстовый файл в 1с 8.3, 8.2    

  
    // работает как на сервере, так и на клиенте    

 Текст ЧтениеТекста
 
 КодировкаТекста 
 СимволыПС    // разделитель строк (необ.)    

 
    // монопольный режим (необ.)    

 
  
    // читаем пока есть что читать    

 
 Строка ТекстПрочитатьСтроку
 Строка 
 
 
 СообщитьСтрока
 
 
  

  
& НаКлиенте
 ОперацииНадФайламиКоманда
  
    // для тестов создадим пустой файл    

  
 Текст ЗаписьТекста
 ТекстЗакрыть
  
            /// Как проверить существование файла в 1С 8.3, 8.2    

  
 ФайлНаДиске Файл
 ФайлНаДискеСуществует 
 Сообщить
 
  
            /// Как скопировать файл в 1с 8.3, 8.2    

  
 КопироватьФайл
    // что копируем    

    // куда копируем    

    // перезапишет, если уже есть такой файл    

  
            /// Как переместить файл в 1с 8.3, 8.2    

  
 ПереместитьФайл
 
 
    // перезапишет, если уже есть такой файл    

  
            /// Как найти файлы в каталоге в 1с 8.3, 8.2    

  
    // возвращает массив значений типа Файл    

 МассивНайденныхФайлов НайтиФайлы
    // где искать    

    // маска поиска    

    // если Истина, то будет искать и в подкаталогах    

 
  
 Файл МассивНайденныхФайлов 
 Сообщить ФайлПолноеИмя
 
  
            /// Как удалить файл в 1с 8.3, 8.2    

  
    // если файл readonly - будет ошибка    

 УдалитьФайлы
 
 
  
            /// Как удалить файлы в каталоге по маске в 1с 8.3, 8.2    

  
    // поиск в каталоге нерекурсивный    

 УдалитьФайлы
    // заведомо не существующий каталог    

    // маска для поиска удаляемых файлов    

    // если опустить маску, то удалятся все файлы и каталог    

  
            /// Как получить имя временного файла в 1с 8.3, 8.2    

  
 Сообщить
 ПолучитьИмяВременногоФайла
    // например, c:\Temp\v8_11AE_4.tmp    

  
 Сообщить
 ПолучитьИмяВременногоФайла
    // например, c:\Temp\v8_11AE_5.txt    

  
            /// Как прочитать атрибуты файла в 1с 8.3, 8.2    

  
 Ф Файл
  
    // время последнего изменения файла    

 СообщитьФПолучитьВремяИзменения
  
    // проверяем атрибут только чтение    

 СообщитьФПолучитьТолькоЧтение
  
    // проверяем атрибут hidden (скрытность, невидимость)    

 СообщитьФПолучитьНевидимость
  
            /// Как установить атрибуты файла в 1с 8.3, 8.2    

  
    // меняем время последнего изменения файла    

 ФУстановитьВремяИзмененияТекущаяДата
  
    // меняем атрибут только чтение    

 ФУстановитьТолькоЧтение
  
    // меняем атрибут невидимости    

 ФУстановитьНевидимость
  
            /// Как узнать размер файла в 1с 8.3, 8.2    

  
 СообщитьФРазмер    // в байтах    

  
    // Как узнать по пути файл это или каталог в 1с 8.3, 8.2    

 ФЭтоКаталог 
 Сообщить
 ФЭтоФайл 
 Сообщить
 
  
            /// Как вытащить расширение файла из его пути в 1с 8.3, 8.2    

  
 СообщитьФРасширение 
  
            /// Как вытащить имя файла без расширения в 1с 8.3, 8.2    

  
 СообщитьФИмяБезРасширения 
  

  
& НаКлиенте
 ОперацииНадКаталогамиКоманда
  
            /// Как создать каталог в 1с 8.3, 8.2    

  
    // каталог может уже существовать    

 СоздатьКаталог
  
    // создадутся все подкаталоги    

 СоздатьКаталог
  
            /// Как проверить существование каталога в 1с 8.3, 8.2    

  
 КаталогНаДиске Файл
 КаталогНаДискеСуществует 
 Сообщить    "Папка c:\new_dir существует"    

 
  
            /// Как удалить каталог вместе с содержимым в 1с 8.3, 8.2    

  
 УдалитьФайлы
    // мы опустили маску, поэтому удалятся все файлы    

    // внутри каталога, а также сам каталог    

  
            /// Как получить каталог временных файлов в 1с 8.3, 8.2    

  
 Сообщить
 КаталогВременныхФайлов
    // например, c:\temp    

  

  
& НаКлиенте
 РаботаСВременнымХранилищемКоманда
  
    // временное хранилище - объект, в который мы можем помещать    

    // и считывать данные произвольного типа,    

    // доступ к которому есть и на сервере и на клиенте    

    // это позволяет передавать между сервером и клиентом    

    // данные, которые иначе не передать    

  
            /// Как сохранить произвольное значение во временное    

            /// хранилище в 1с 8.3, 8.2    

  
 Список СписокЗначений
 СписокДобавить
 СписокДобавить
 СписокДобавить
  
 АдресВХранилище ПоместитьВоВременноеХранилище
 Список    // произвольные данные    

 
  
            /// Как прочитать произвольное значение из временного    

            /// хранилища в 1с 8.3, 8.2    

  
 СписокИзХранилища ПолучитьИзВременногоХранилищаАдресВХранилище
 СписокИзХранилища 
 Сообщить    "Значение по этому адресу уже удалено из хранилища."    

 
 СообщитьСписокИзХранилища 
 
  
            /// Как перезаписать уже сохраненное значение во временном    

            /// хранилище в 1с 8.3, 8.2    

  
 Массив Массив
 МассивДобавить
 МассивДобавить
  
 ПоместитьВоВременноеХранилище
 Массив
 АдресВХранилище
 
  
            /// Сколько времени хранится значение, сохраненное во    

            /// временном хранилище в 1с 8.3, 8.2    

  
    // всё зависит от второго параметра функции ПоместитьВоВременноеХранилище    

  
    // #1 если туда в качестве адреса был передан уникальный идентификатор формы    

    // или уже существующий адрес в хранилище, то значение будет автоматически    

    // удалено после закрытия формы    

  
    // #2 если туда в качестве адреса передан уникальный идентификатор, не    

    // являющийся уникальным идентификатором формы, то значение будет    

    // автоматически удалено только после завершения сеанса пользвоателя    

  
    // #3 если адрес не указан, помещенное значение будет удалено после    

    // очередного запроса сервера    

  
    // см; примеры ниже    

 
        /// Как сохранить значение во временное хранилище на всё    

        /// время жизни формы в 1с 8.3, 8.2    

 
 ПоместитьВоВременноеХранилище
 Массив
 ЭтаФормаУникальныйИдентификатор
 
 
        /// Как сохранить значение во временное хранилище на всё    

        /// время сеанса пользователя в 1с 8.3, 8.2    

 
 АдресВХранилище ПоместитьВоВременноеХранилище
 Массив
 УникальныйИдентификатор
 
 
        /// Как удалить значение из временного хранилища в 1с 8.3, 8.2    

 
 УдалитьИзВременногоХранилищаАдресВХранилище
 
        /// Как узнать является ли строка адресом во временном хранилище    

        /// в 1с 8.3, 8.2    

 
 ЭтоАдресВременногоХранилищаАдресВХранилище 
 Сообщить    "Да, это адрес во временном хранилище."    

 
 

 
    /// Как передать файл с клиента на сервер в 1с 8.3, 8.2    

 
&НаКлиенте
 ПередачаФайлаСКлиентаНаСерверКоманда
 
    // создадим тестовый файл для передачи    

 Текст ЗаписьТекста
 ТекстЗаписатьСтроку
 ТекстЗаписатьСтроку
 ТекстЗакрыть
 
 ОповещениеОЗавершении ОписаниеОповещения
 ЭтотОбъект
 
 
 НачатьПомещениеФайла
 ОповещениеОЗавершении
    // адрес в хранилище    

    // имя файла    

 
 ЭтаФормаУникальныйИдентификатор
 
    // если опустить последний параметр, то помещенный файл    

    // будет удален после очередного запроса сервера    

    // а если указать - то только после удаления объекта формы    

 
    // если нужно предоставить пользователю возможность    

    // выбрать файл самому четвёртый параметр (интерактивно)    

    // нужно установить в Истина    

 

 
&НаКлиенте
 ВыполнитьПослеПомещенияФайлаРезультат Адрес
 ВыбранноеИмяФайла ДополнительныеПараметры 
 
 Результат 
 
    // сохраним полученный адрес в реквизит формы    

 АдресФайлаВХранилище Адрес
 
 Сообщить
    "Наконец-то! Файл "    
 
 ВыбранноеИмяФайла    " передан на сервер и сохранён во "    
 
    "временном хранилище по адресу "    
 Адрес
 
 
 
 Сообщить    "Не удалось передать файл на сервер."    

 
 
 

 
    /// Как прочитать файл на сервере из временного хранилища    

    /// в 1с 8.3, 8.2    

 
&НаСервере
 ПрочитатьФайлНаСервереИзХранилищаНаСервере
 
 АдресФайлаВХранилище 
 Сообщить    "Сначала нужно передать файл с клиента на сервер."    

 
 
 
 ДвоичныеДанные 
 ПолучитьИзВременногоХранилищаАдресФайлаВХранилище
 
 ДвоичныеДанные 
 Сообщить    "Похоже файл уже был удалён из хранилища."    

 
 
 
 ДвоичныеДанныеЗаписать
 
 Текст ЧтениеТекста
 
 Строка ТекстПрочитатьСтроку
 Строка 
 
 
 СообщитьСтрока
 
 
 

 
    /// Как передать файл с сервера на клиент в 1с 8.3, 8.2    

 
&НаКлиенте
 ПередатьФайлССервераНаКлиентКоманда
 
 АдресФайлаВХранилище 
 Сообщить    "Сначала нужно сохранить файл на сервере."    

 Сообщить
 
 
 
 ОповещениеОЗавершении ОписаниеОповещения
 ЭтотОбъект
 
 
 ПолучаемыеФайлы Массив
 ПолучаемыеФайлыДобавить
 ОписаниеПередаваемогоФайла
    // куда сохранять на клиента    

 АдресФайлаВХранилище    // адрес в хранилище на сервере    

 
 
 
 НачатьПолучениеФайлов
 ОповещениеОЗавершении
 ПолучаемыеФайлы
 
 
 
 

 
&НаКлиенте
 ВыполнитьПослеПолученияФайловПолученныеФайлы
 ДополнительныеПараметры 
 
 Файл ПолученныеФайлы 
 Сообщить ФайлИмя    " из "    
 ФайлХранение
 
 

 
  

Есть самописная конфа, которая архивирует по расписанию все остальные БД.


До недавнего времени все работало на ура.


До тех пор пока не обновил платформу.


Сразу же перестали работать 2 момента


1 — перестал отрабатывать метод Существует() для файла.


Вот такой вот код выдает ошибку, что каталог уже существует:

Читайте также:  Фсс электронный больничный лист личный кабинет как

  КаталогНаДиске = Новый Файл(БазаДанных. КаталогДляАрхива);
	Если Не КаталогНаДиске. Существует() Тогда
		СоздатьКаталог(БазаДанных. КаталогДляАрхива);
	КонецЕсли;  

2 — Перестали архивироваться базы при запуске из командной строки:

  ЗапуститьПриложение(Команда,,Истина,КодВозврата);  

Где Команда = «C:\Program Files (x86)\1cv8\8.3.9.1818\bin\1cv8.exe» config /S Сервер\ИмяБазы /NПользователь /PПароль /DumpIB «ПолноеИмяФайла.dt»


Если эту командную строку выполнить в CMDшке, то архивка создается, а если 1С выполняет эту команду, то запускается конфигуратор с нужной базой, чего то там происходит секунд 10-30, потом завершается работа конфигуратора. В журнале открываемой 1С просто видно что пользователь зашел и вышел.


Пользователю, под которым стартует 1С, даны полные права на каталог с архивками.

Подскажите в какую сторону копать, почему могут быть такие траблы после смены платформы. То что работало годами и на релизах 8.2 и на 8.3, перестало работать на новом релизе 8.3.9.1818

1C и Google Maps


21

была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш


1Cv8.1CD — Файл данных достиг максимального размера!


8

1С выдает предупреждение » Файл данных достиг максимального размера» .
Подскажите из — за чего это и как можно решить ?
Превышен размер файла, обычно это сообщение возникает, когда размер файла 1Cv8.1CD приближается к 10 гигабайтам или размер ка


Excel файл как Внешний источник данных


16

Подключимся и загрузим из файла Excel данные в таблицу значений 1С. Сделать теперь это очень просто.
1. В конфигурации добавляет новый объект метаданных типа » Внешние источники данных» и назовем его просто » Excel» .
https://helpf.pro/uploads/img

Читайте также:  Настройка и подключение СЭДО ФСС (бывший пенсионный фонд) для сдачи отчетности

QR код в 1С


21

Столкнулся с интересной задачей реализации генерации QR-кода в 1С 8.2 ( QR-код — матричный код (двухмерный штрихкод) ) Для генерации было использовано api от google (http://chart.apis.google.com/chart). Вот сайт , который работает с ним. После тог


ZIP-архив Разделить и Объединить Файл


0

При работе с большими объемами данных могут возникнуть проблемы при пересылке архивных файлов. Типичной такой ситуацией является ограничение некоторых почтовых серверов на размер сообщения — если письмо превышает некий заранее установленный размер, о



Посмотреть все результаты поиска похожих

2.

collider

Сейчас в теме

( 1
) Этот кусок на клиенте или на сервере выполняется?


«Не хочет работать» — это какую конкретно ошибку выдаёт?

4.

inf012

Сейчас в теме

( 2
) НаСервере


Выдает, что нет каталога.

3.

sssss_aaaaa_2011

Сейчас в теме

Потому, что на сервере действительно нет этого каталога. В клиент-серверной базе надо ВСЕГДА учитывать ГДЕ исполняется код — на сервере или на клиенте.

5.

inf012

Сейчас в теме

( 3
) А какие пути видно НаСервере СУБД?


Она на том же ПК (терминальном сервере) развернута, или она, там на неизвестно каком разделе развернута и не видит стандартный путь c:\ (или видит, но он другой для нее)?

Так то я понял, что надо по другому делать.

6.

collider

Сейчас в теме

( 5
) Если на сервере, то проверяется, есть ли каталог на компьютере с сервером 1С и из-под пользователя, от которого запущена служба сервера 1С.

7.

inf012

Сейчас в теме

( 6
) Ну, скорее всего, тут на этом терминальном сервере службу запустил Сис. админ и он также просто пользоваетель этого терминального Windows.


Т.е. должен те же пути видеть, что и под просто пользователем, под которым я пытаюсь проверить существование каталога.

Но надо будет проверить, просто папку на диске c, например.

8.

sssss_aaaaa_2011

Сейчас в теме

А какие пути видно НаСервере СУБД?

Вообще никакие. Ибо 1с к серверу СУБД вообще не имеет ни малейшего отношения. Речь о файловой системе с сервером 1с. И той части, которая видна юзеру, под которым этот самый сервер 1с запущен. Права ваши, сисадминские и прочие тут никаким боком и рядом не лежат.

9.

inf012

Сейчас в теме

( 8
) Ну да, ясно, что не про СУБД речь.


Имел ввиду что видно «при выполнении кода НаСервере»


Как это назвать правильно, сервер 1С, серверная часть 1С?

10.

sssss_aaaaa_2011

Сейчас в теме

Оцените статью
ФСС Help
Добавить комментарий