Ошибка доступа к файлу сбиспараметры xml

H A D G E H O G s, в момент создания файла сервер а не имеет к нему ни какого отношения

вот код

Процедура ВыгрузитьВКаталог() Экспорт

    

    ВыборкаУзлов = ПланыОбмена.Полный.Выбрать();

    Пока ВыборкаУзлов.Следующий() Цикл

        Если Не ВыборкаУзлов.ВыполнятьОбмен Тогда

            Продолжить;

        КонецЕсли;

        

        Если ВыборкаУзлов.Ссылка = ПланыОбмена.Полный.ЭтотУзел() Тогда

            Продолжить;

        КонецЕсли;

        
        НайденныеФайлы = НайтиФайлы(ВыборкаУзлов.КаталогУзла,»Message_»  + «*.xml»);

        

        
        
        //С помощью объектов ЗаписьXML и ЗаписьСообщения выполняем запись изменений

        //для выбранного узла в xml-файл.

        попытка

            Узел = ВыборкаУзлов.Ссылка;

            ЗаписьXML = Новый ЗаписьXML();

            
            если НайденныеФайлы.Количество()<10 тогда

                

                ИмяФайлаСообщения = Узел.КаталогУзла + «Message_» +

                СокрЛП(ПланыОбмена.Полный.ЭтотУзел().Код) +

                «_» + СокрЛП(Узел.Код) +»(«+»0″+Строка(НайденныеФайлы.Количество()) +»)»+».xml»;

                
            Иначе

                

                ИмяФайлаСообщения = Узел.КаталогУзла + «Message_» +

                СокрЛП(ПланыОбмена.Полный.ЭтотУзел().Код) +

                «_» + СокрЛП(Узел.Код) +»(«+Строка(НайденныеФайлы.Количество()) +»)»+».xml»;

                

            КонецЕсли;

            ЗаписьXML.ОткрытьФайл(ИмяФайлаСообщения);

            ЗаписьСообщения = ПланыОбмена.СоздатьЗаписьСообщения();

            ЗаписьСообщения.НачатьЗапись(ЗаписьXML,Узел);

            ПланыОбмена.ЗаписатьИзменения(ЗаписьСообщения);

            ЗаписьСообщения.ЗакончитьЗапись();

            ЗаписьXML.Закрыть();

            

            //Затем создаем новое письмо, прикрепляем к нему полученный xml-файл и

            //отправляем по адресу, указанному в реквизите ЭлектронныйАдрес узла.    

            

            
            Если Константы.ВыводитьСообщенияОбмена.Получить() Тогда

                Сообщить(«ОБМЕН: Сообщение обмена для узла » + Узел.Наименование +

                » отправлено!», СтатусСообщения.Информация);

            КонецЕсли;

        Исключение

            Сообщить(«Обмен не выполнен.Ошибка : «+ОписаниеОшибки());

            
        КонецПопытки;

        

        
        //УдалитьФайлы(ИмяФайлаСообщения);

    КонецЦикла;

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

В этой статье мы расскажем об ошибке доступа к файлу 1с. Как решить возникшую проблему, что это за баг и еще немного об этом.

Ошибка доступа к файлу 1C 8.3

«1С: Предприятие» — система программ для автоматизации, улучшения и упрощения деятельности различных сфер компании, начиная от бухгалтерии и заканчивая учетом. 1С: возможности при правильной настройке безграничны . Для предпринимателя — нужно найти хороших программистов.

Нет ни одной программы в современном мире, как бы хороша она не была без ошибок и проблем. Такое случается и с нашим приложением. В ряде случаев виноват в этом криворукий программист. Многие проблемы вы не сможете решить без его участия, но некоторые, вам подсилу и самому.

Ошибка доступа к файлу 1C решение

Причины возникновения

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

Способы решения

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

Первостепенное что мы делаем в таком случае — проверяем доступ к файлу. Правая кнопка мыши по файлу -> проверяем стоит ли галочка на «Общий доступ».

Ошибка доступа к файлу 1C решение

Ошибка доступа к файлу 1C решение

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

Ошибка доступа к файлу 1C решение

Когда данные к которым нужно получить доступ (база) находится на удаленном (локальном) персональном компьютере — смотрим закладку «Безопасность». В безопасности вы должны убедиться что у пользователя нет запрета на запись.

Ошибка доступа к файлу 1C решение

Предупреждения о проблемах вылазят когда возмущается брандмауэр. Это касается сетевых объектов. Антивирусные программы препятствуют нормальной работе.

Открываем брандмауэр и антивирус и ищем в списке блокируемых программ 1С. Удаляем из списка.

Ошибка доступа к файлу 1C решение

Почистите кеш, ошибки также возникают из-за кеша.

Большой шанс появления ошибки, когда два синонимичных приложения запускаются вместе. К примеру, ЗУП и Бухгалтерия. Если запустить по очереди, проблема исчезнет

Дополнительный способ

Ничего не помогло — воспользуйтесь следующими методами:

Путь к имени файла должен быть допустимым в каталоге отчетов: щелкните вкладку «Вывод». Перейдите на вкладку «Параметры вывода». В поле Имя файла убедитесь, что путь действителен.

Сколько дискового пространства доступно для файла: Откройте Windows Explorer. Выберите Локальный диск (буква диска:), на котором хранится отчет. Щелкните правой кнопкой мыши на локальном диске (буква диска:) и нажмите Свойства. Откроется окно свойств. Проверьте доступное свободное пространство на этом локальном диске.

Убедитесь, что у пользователя есть разрешения на доступ к папке IO_Data: Откройте проводник Windows. Щелкните правой кнопкой мыши основную папку выберите «Свойства».

Перейдите на вкладку «Безопасность». Убедитесь, что у пользователя есть полные права на эту папку и все подпапки. Если вы не можете проверить права доступа, обратитесь к администратору.

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

При попытке инсталляции, обновления или запуска какого-либо файла пользователь может получить сообщение об отказе в доступе. Наиболее часто это связано со злокачественным действием вирусных программ, а также с действием антивируса и системного брандмауэра, по ряду причин блокирующих доступ к упомянутому файлу. В данном материале я расскажу, в чём суть ошибки «Отказано в доступе к указанному файлу. Возможно у вас нет нужных прав». А также что необходимо предпринять для возобновления доступу к требуемому цифровому содержимому.

  • Причины ошибки «Отказано в доступе к указанному файлу»
  • Как исправить проблему на своем ПК
  • Способ №1. Решаем ошибку отказа в доступе с вирусами
  • Способ №2. Временно отключаем антивирус и брандмауэр
  • Способ №3. Снятие блокировки Windows, если нет нужных прав
  • Способ №4. Получение разрешения для доступа к файлу
  • Способ №5. Убеждаемся, что файл не удалён или не перенесён
  • Способ №6. Проверяем целостность файловых компонентов системы при отказе в доступе
  • Способ №7. Сброс параметров безопасности на ПК
  • Способ №8. Создаём новый профиль пользователя при отсутствии нужных прав
  • Способ №9. Используем сторонние программы для восстановления доступа к файлу
  • Заключение

Причины ошибки «Отказано в доступе к указанному файлу»

Среди причин появления проблемы следует отметить следующие:

  • Доступ заблокировал вирусный зловред;
  • Доступ блокирует антивирусная программа или системный брандмауэр;
  • Доступ потерян вследствие случайного сбоя ПК;
  • Пользователь запускает файл не от имени администратора;
  • Запрашиваемый пользователем файл в данный момент недоступен (в частности, это касается доступа к сетевым «расшареным» файлам и папкам, расположенным на других компьютерах);
  • Нужный файл был удалён или перемещён в другое место;
  • Требуемый файл или его ярлык на рабочем столе повреждены;
  • Виндовс по различным причинам заблокировала доступ к упомянутому файлу.Картинка Virus Detected

Читайте также: Ошибка соединения — Нет маршрута в Teamviewer как исправить?

Как исправить проблему на своем ПК

Чтобы решить возникшую ошибку «Отказано в доступе к указанному файлу. Возможно у вас нет нужных прав» необходимо воспользоваться перечнем способов, о которых я расскажу ниже. Но прежде чем воспользоваться приведёнными советами, попробуйте просто запустить нужный файл от имени администратора (наводим на него курсор, жмём на правую клавишу мыши, и выбираем «Запуск от имени администратора»), это может помочь решить возникшую проблему.

Способ №1. Решаем ошибку отказа в доступе с вирусами

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

Для разрешения ситуации рекомендую скачать (перенести на компьютер) такие антивирусные инструменты как «AdwCleaner» и «Dr.Web CureIt!», и запустить их в безопасном режиме.

Для осуществления этого выполните следующее:

  1. Выберите перезагрузку компьютера;
  2. При включении компьютера жмите на «F8», чтобы получить доступ к меню безопасного режима;
  3. Загрузитесь в безопасном режиме;
  4. Последовательно активируйте упомянутые антивирусные продукты, и проведите с их помощью очистку системы. После удаления всех найденных ими зловредов перезагрузите ваш ПК.

Способ №2. Временно отключаем антивирус и брандмауэр

Второй наиболее часто встречающейся причиной дисфункции является блокировка доступа к нужному файлу со стороны антивируса ибрандмауэра. Обычно они осуществляют блокировку в ситуации, когда содержимое файла вызывает существенные подозрения на присутствие в нём вредоносного ПО. Если вы твёрдо уверены в содержимом этого файла, тогда попросту временно отключите ваш антивирус и брандмауэр, и попытайтесь запустить нужный файл. В некоторых случаях помогло лишь полное удаление антивирусной программы и внешнего брандмауэра (особенно это касается «Comodo firewall»).

Это может быть полезным: Ошибка файловой системы 2147219196 в Windows 10 как исправить.

Способ №3. Снятие блокировки Windows, если нет нужных прав

В некоторых случаях ОС Виндовс может по ряду причин заблокировать запуск данного файла. Для его разблокировки необходимо навести на него курсор, нажать правую клавишу мыши, выбрать «Свойства», а затем нажать на «Разблокировать».

Кнопка Разблокировать

Способ №4. Получение разрешения для доступа к файлу

В ряде случаев для запуска требуемого файла необходимо обладать правами администратора для запуска нужного файла (как мной уже упоминалось выше). Или входить в группу «Администраторы домена» при условии, что ваш ПК входит в данный домен. При наличии данных условий пользователь получает допуск к данному файлу.

Чтобы получить необходимые разрешения выполните следующее:

  1. Наведите курсор на проблемный файл, нажмите на правую клавишу мыши, в возникшем меню выберите «Свойства»;
  2. В открывшемся меню свойств щёлкнете по вкладке «Безопасность»;
  3. В «Группа или пользователи» щёлкните на имя вашей учётки, чтобы отобразить имеющиеся у вас разрешения для работы с данным файлом;
  4. Если необходимых разрешений недостаточно, нажмите на «Изменить», и установить все необходимые галочки для нужных разрешений, и нажмите на «Ок».Разрешения для группы

Способ №5. Убеждаемся, что файл не удалён или не перенесён

Ошибка доступа может быть связана с ситуацией, когда запрашиваемый файл ранее был удалён или перенесён в другое место на жёстком диске. Убедитесь, что запрашиваемый вами файл находится на своём обычном месте. А если вы запускаете его с помощью ярлыка на рабочем столе, то будет лучше пересоздать указанный ярлык.

Способ №6. Проверяем целостность файловых компонентов системы при отказе в доступе

Нужно запустить командную строку на компьютере от имени администратора, и в ней введите:

sfc.exe /scannow

После окончания проверки перезагрузите ваш ПК.

Рекомендуем к прочтению: Ошибка List Index out of bounds(-1,0) как исправить.

Способ №7. Сброс параметров безопасности на ПК

В ряде случаев поможет полный сброс параметров безопасности системы. Запуск командной строки от имени администратора, и в ней наберите:

Введите следующее:

После этого нажмите ввод и перезагрузите вашу систему.

Команда secedit

Сбросьте параметры безопасности

Способ №8. Создаём новый профиль пользователя при отсутствии нужных прав

В ряде случаев возникновение данной ошибки обусловлено повреждённым профилем пользователя. Рекомендуется создать новый профиль пользователя с административными правами, и уже с него запустить проблемный файл, проблема «отказано в доступе» может быть исправлена.

Способ №9. Используем сторонние программы для восстановления доступа к файлу

Если вирус ранее скрыл нужный файл от видимости (и доступа), рекомендуется воспользоваться сторонним софтом, уровня «Data Recovery Wizard» и аналогов, которые проверят и восстановят доступ к скрытым ранее файлам.

Программа EaseUS Data Recovery Wizard

Заключение

В большинстве случаев проблема с доступом возникает в ситуации действия вирусных и антивирусных программ, по определённым причинам блокирующим доступ к нужному нам файлу. Рекомендуется воспользоваться всем перечисленным в данном материале комплексом советов, это поможет решить проблему с «Отказано в доступе к указанному файлу. Возможно у вас нет нужных прав».

Представьте, что вы пытаетесь использовать свое любимое приложение и видите сообщение об ошибке Windows 10. Процесс не может получить доступ к файлу, поскольку он используется другим процессом. Теперь единственным решением, которое придет вам в голову, будет закрытие сообщения об ошибке. К сожалению, этот метод не исправит ошибку на вашем компьютере. Прочтите всю статью, чтобы узнать о способе исправления ошибки на ПК с Windows 10.

Список причин сообщения об ошибке доступа к файлу приведен в этом разделе:

  • Административные привилегии. Вы можете увидеть сообщение об ошибке, если основным папкам для доступа к драйверам не предоставлены административные привилегии.

  • Другой процесс использует порт 80 или порт 443. Если какой-либо другой процесс использует диапазон IP-адресов, порт 80 или порт 443, вы можете столкнуться с этим сообщением об ошибке.

  • Неправильно настроен подраздел реестра ListenOnlyList. Подраздел ListenOnlyList и порт IIS могут быть неправильно настроены в редакторе реестра.

Метод 1: основные методы устранения неполадок

Первый способ исправить процесс не может получить доступ к файлу в Windows 10 — попытаться применить основные методы устранения неполадок, приведенные ниже.

1. Закройте фоновые процессы

Если в фоновом режиме открыто много приложений, вы можете увидеть сообщение об ошибке на своем ПК. Вы можете решить эту проблему, закрыв все приложения, работающие в фоновом режиме, по приведенной здесь ссылке.

2. Запустите приложение от имени администратора

Сообщение об ошибке может появиться, если приложению не предоставлены права администратора; вы можете исправить ошибку, запустив приложение от имени администратора.

1. Нажмите клавишу Windows, введите «Командная строка» и нажмите «Запуск от имени администратора».

Примечание. Приложение командной строки выбрано в пояснительных целях.

2. Нажмите кнопку «Да» в окне запроса контроля учетных записей, чтобы запустить приложение от имени администратора.

Способ 2: изменить диапазон IP-адресов

Процесс не может получить доступ к файлу. Ошибка может возникнуть, если другие процессы используют порт 80 или порт 443. Вы можете попробовать изменить диапазон IP-адресов процесса или установить другой диапазон IP-адресов, чтобы устранить проблему.

1. Запустите командную строку от имени администратора.

2. Введите следующие команды в приложении и нажмите клавишу Enter, чтобы установить другой диапазон IP-адресов для портов TCP.

netsh int ipv4 set dynamicport tcp start=10000 num=1000

3. Введите следующие команды в приложении и нажмите клавишу Enter, чтобы установить другой диапазон IP-адресов для портов UDP.

netsh int ipv4 set dynamicport udp start=10000 num=1000

Способ 3: разрешить конфликт портов IIS

Сообщение об ошибке, в котором процесс не может получить доступ к файлу, поскольку он используется другим процессом, может появиться в случае конфликта с портом IIS и службой HTTP. Вы можете устранить ошибку, изменив подраздел ListenOnlyList в редакторе реестра.

1. Откройте командную строку от имени администратора.

2. Введите команду netstat –ano и нажмите клавишу Enter, чтобы запустить утилиту Netstat.exe и просмотреть список активных подключений.

3. Введите команду net stop http и нажмите клавишу Enter, чтобы остановить службу HTTP на вашем ПК.

Примечание. Служба HTTP будет использовать порт IIS, поэтому перед изменением ключа необходимо остановить эту службу.

4. Введите Y и нажмите клавишу Enter в окне Продолжить эту операцию?

5. Нажмите клавишу Windows, введите «Редактор реестра» и нажмите «Открыть».

6. Перейдите в каталог ListenOnlyList, используя следующий путь расположения в редакторе реестра.

ComputerHKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesHTTPParametersListenOnlyList

7. Щелкните правой кнопкой мыши все IP-адреса по отдельности, отличные от значения по умолчанию 0.0.0.0, и выберите параметр «Удалить», чтобы удалить подраздел.

8. Нажмите кнопку «Да» в окне «Подтвердить удаление значения UAC».

9. Закройте редактор реестра и перезагрузите компьютер.

10. Запустите командную строку, как указано выше, чтобы убедиться, что служба HTTP запущена.

11. Введите команду net start http и нажмите клавишу Enter.

Способ 4: изменить номер порта

Одной из причин, по которой процесс не может получить доступ к файлу в Windows 10, является использование периферийного агента HubCapp. Это стороннее программное обеспечение, которое можно использовать для доступа к драйверам и весам, подключенным к вашему ПК в качестве периферийных устройств. Однако, если номер порта в программном обеспечении конфликтует с другими процессами, вы можете столкнуться с этой ошибкой.

1. Нажмите одновременно клавиши Windows + E, чтобы открыть проводник и перейти к папке периферийного агента HubCapp, используя путь расположения.

C:Program Files (x86)HubCapp Peripheral Agent

Примечание. Перед внесением изменений закройте периферийный агент HubCapp.

2. Дважды щелкните файл setup.xml в списке.

Примечание. Вы также можете создать копию этого файла на рабочем столе и переименовать его в setup.xml_OLD. После изменения файла на рабочем столе вы можете переместить файл в эту папку.

3. Измените значение MinPortNumber с 50000 на 60000 и нажмите клавиши Ctrl+S, чтобы сохранить файл.

4. Откройте периферийный агент HubCapp на своем ПК, чтобы проверить, решена ли проблема.

Часто задаваемые вопросы (FAQ)

Q1. Отвечает ли какое-либо стороннее приложение за сообщение об ошибке доступа к файлу на ПК с Windows 10?

Ответ Периферийный агент HubCapp — это стороннее программное обеспечение, которое может получить доступ к периферийным устройствам, подключенным к вашему ПК. Если номер порта в программном обеспечении настроен неправильно, вы можете увидеть это сообщение об ошибке.

Q2. Почему процесс не может получить доступ к файлу, когда я пытаюсь открыть любое приложение?

Ответ Сообщение об ошибке обычно возникает из-за неправильной настройки номера порта и диапазона IP-адресов. В статье описаны способы изменения номера порта и диапазона IP-адресов для устранения ошибки.

***

В этой статье обсуждаются причины и способы исправления процесса, который не может получить доступ к файлу, поскольку он используется другим процессом. Попробуйте реализовать все методы, описанные в статье, и, пожалуйста, оставьте свои предложения и вопросы в разделе комментариев.

1С Предприятие 11.4.11. В модуле обмена с сайтом делаю XML выгрузку каталога из 1С на диск. Пишет «Ошибка доступа к каталогу обмена //tsclient/C/webdata
Причина не в системных правах и не в фаерволе, а это какой-то безопасный режим включился, но не нахожу где снять эту галочку. Снятие флажка защиты от опасных действий с админа не помогает.
Проблема появилась после установки модуля обмена с сайтом от Битрикса. До этой установки выгрузки на диск работали корректно. Сейчас же не работает ни в родном модуле, ни в битриксовом.
Если загружаюсь с копии информационной базы, где модуль Битрикса не установлен, там все выгружает.
Подскажите путь к настройкам, в которых искать проблему

62cf3e8a9beec505691179.png
62cf3e8030cfc013576978.png
62cf44786fd0f007422308.png


  • Вопрос задан

    14 июл. 2022

  • 220 просмотров

Пригласить эксперта

Пользователь от имени которого запущена 1С имеет доступ к каталогу, указанному в ошибке?

Как и написал Денис, проверить есть ли доступ к каталогу у юзера операционной системы где запущена 1С, если обмен запускается в фоновом задании это юзер службы Агента 1С;
Безопасный режим можно отключить в списке установленных расширений, для расширения выполняющего обмен

из вида пути //tsclient следует, что делается попытка выгрузки на подключенный диск в сессии rds (клиентское подключение). у сервера, который производит выгрузку, указанный сетевой путь отсутствует однозначно, так как процесс сервера не связан с сессией rds . могу порекомендовать создать общий каталог (shared) к которому имеют доступ обе системы.


  • Показать ещё
    Загружается…

30 янв. 2023, в 08:15

20000 руб./за проект

30 янв. 2023, в 08:09

1000 руб./за проект

30 янв. 2023, в 07:48

500 руб./за проект

Минуточку внимания

66268

Анна Викулина

Руководитель Центра
сопровождения 1С

28 февраля 2019

Обслуживание 1С

Актуальность проверена: 26.01.2023

Получить консультацию
Бесплатно

Обслуживание 1С

Обслуживание 1С

Помощь персонального менеджера, оперативность сдачи отчетности, соответствие законодательству РФ

Иногда пользователь программы 1С может столкнуться с сообщениями программы «Ошибка режима доступа к файлу 1С»…

Рис.1 Ошибка режима доступа к файлу 1С

Рис.1 Ошибка режима доступа к файлу 1С

…а также «Ошибка совместного доступа к файлу» 1С 8.3.

Рис.2 Ошибка совместного доступа к файлу

Рис.2 Ошибка совместного доступа к файлу

Само название ошибки уже говорит пользователю о случившемся: в первом случае – о нарушении прав доступа. Такое сможет случиться, когда пользователь скопировал информационную базу, подключил, а при открытии по сети всплыла такого рода ошибка с указанием сетевого пути к объекту. В этом случае, первое, на что сразу надо обратить внимание – на права доступа, щелкнув правой кнопкой на свойства объекта. Нажав кнопку «Общий доступ», проверить настройки.

Рис.3 Нажав кнопку «Общий доступ», проверить настройки

Рис.3 Нажав кнопку «Общий доступ», проверить настройки

Доступ пользователя Windows, который запустил сеанс программы 1С, должен быть не только на чтение, но и на запись.

Рис.4 Доступ пользователя Windows, который запустил сеанс программы 1С, должен быть не только на чтение, но и на запись

Рис.4 Доступ пользователя Windows, который запустил сеанс программы 1С, должен быть не только на чтение, но и на запись

Если база располагается на локальном ПК, необходимо проверить на закладке «Безопасность», что для пользователя установлено разрешение на запись или не стоит запрет на запись.

Рис.5 Разрешение прав

Рис.5 Разрешение прав

Предупреждение о проблемах с совместным доступом с указанием пути к конкретному объекту, кроме сбоя сетевых настроек, может быть следствием предустановок брандмауэра, антивирусных программ, которые стопорят сетевые подключения. Необходимо открыть их настройки и посмотреть, не будет ли 1С в списке заблокированных программ. Если это так, следует удалить ее из списка или добавить файл информационной базы 1С в исключения, предотвратив его блокировку.

Рис.6 Блокированные и разрешенные приложения

Рис.6 Блокированные и разрешенные приложения

Если при возникновении ошибки система указывает на временные файлы, например C:Users…AppDataLocalTemp, то очистка кэш может решить проблему с ошибкой.

Высока вероятность появления такой ошибки – при одновременном запуске двух программ (ЗУП и Бухгалтерии), одна из которых была базовой версией. Когда программы запустили по очереди, ошибка не появлялась.

Для решения проблемы с ошибкой доступа, как видите, потребуется немного времени, главное – понять причину и исключить ее повторение.

Другие статьи по теме

Обновления 1С

Обновления 1С

Как обновить 1С самостоятельно. Рассмотрим пошаговые действия для обновления типовой конфигурации 1С:Предприятия 8 на примере 1С:Бухгалтерии 3.0.

Настройка 1С Бухгалтерия 8.3 с нуля

Настройка 1С Бухгалтерия 8.3 с нуля

Настройка 1С:Бухгалтерия позволят задать программе конкретную функциональность, выбрать варианты ведения учета, ввести ряд конкретных значений и параметров.

Установка 1С

Установка 1С

Начинающие пользователи программ, разработанных на платформе «1С:Предприятие», подойдя к моменту покупки «коробки» или уже приобретя ее, естественно задаются вопросом: «Как установить 1С Предприятие?»…

John_XP

2 / 2 / 0

Регистрация: 13.03.2011

Сообщений: 50

1

22.03.2011, 15:13. Показов 5082. Ответов 10

Метки нет (Все метки)


У меня есть переменная string fpath; //путь к файлу.
Когда я хочу задать доступ к xml — файлу (тест.), то у меня ничего не выходит.

 Комментарий модератора 
Одна тема — один вопрос

Вот, что я делаю:

C#
1
fpath = Application.StartupPath + @"E:Documents and SettingsAdminРабочий столTestsTest.xml";

Однако так и не появляется ничего.
Могу привести полный листинг программы. (Пример из книги «Культин: С# в примерах и задачах»).

C#
1
2
3
4
5
6
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
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
188
189
190
191
192
193
194
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
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
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
317
318
319
320
321
322
323
324
325
326
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;   namespace WindowsFormsApplication1 {     public partial class Form1 : Form     {         string fpath;   //путь файлу к теста         string fname;   //файл теста           //XmlReader обеспечивает чтение данных xml-файла         System.Xml.XmlReader xmlReader;           string qw;  //Вопрос           //Варианты ответа         string[] answ = new string[3];           string pic; //путь к файлу иллюстрации           int right;  //правильный ответ         int otv;    //выбранный ответ         int n;      //количество правильных ответов         int nv;     //общее количетсво вопросов         int mode;   //состоянине программы         //0 - начало работы;         //1 - тестирования;         //2 - завершение работы           //Конструктор формы         //(см. также Program.cs)         public Form1(string[] args)         {             InitializeComponent();               radioButton1.Visible = false;             radioButton2.Visible = false;             radioButton3.Visible = false;               //имя файла теста должно быть указанно             //в качестве параметра команды запуска программы             if (args.Length > 0)             {                 //Указано только имя файла теста                 if (args[0].IndexOf(":") == -1)                 {                     fpath = Application.StartupPath + "";                     fname = args[0];                 }                   else                 {                     //указан путь к файлу теста                     fpath = args[0].Substring(0, args[0].LastIndexOf("") + 1);                     fname = args[0].Substring(args[0].LastIndexOf("") + 1);                 }                 try                 {                     //Прочитать xml-файл                     xmlReader =                         new System.Xml.XmlTextReader(fpath + fname);                     xmlReader.Read();                       mode = 0;                     n = 0;                       //Загрузить и показать заголовок текста                     this.showHead();                       //Загрузить и показать описание текста                     this.showDescription();                 }                 catch (Exception exc)                 {                     label1.Text = "Ошибка доступа к файлу " +                         exc + fpath + fname;                       MessageBox.Show("Ошибка доступа к файлу.n" +                         fpath + fname + "n",                         "Экзаменатор",                         MessageBoxButtons.OK,                         MessageBoxIcon.Error);                       mode = 2;                 }             }             else             {                 label1.Text =                     "Файл теста необходимо указать " +                     "в команде запуска программы.n" +                     "Например: 'exam economics.xml' " +                     "или 'exan c:spb.xml'.";                 mode = 2;             }         }         //Выводит название (заголовок) текста         private void showHead()         {             //ищем узел <head>             do xmlReader.Read();             while (xmlReader.Name != "head");               //считываем заголовок             xmlReader.Read();               //вывести название текста в заголовк окна             this.Text = xmlReader.Value;               //выходим из узла <head>             xmlReader.Read();         }         private void showDescription()         {             //ищем узел <Description>             do                 xmlReader.Read();             while (xmlReader.Name != "description");               //считываем описание теста             xmlReader.Read();               //выводим описание теста             label1.Text = xmlReader.Value;               //выходим из узла <description>               //ищем узел вопросов <qw>             do                 xmlReader.Read();             while (xmlReader.Name != "qw");               //входим внутрь узла             xmlReader.Read();         }         //читает вопрос из файла теста         private Boolean getQw()         {             //считываем тег <q>             xmlReader.Read();               if (xmlReader.Name == "q")             {                 //здесь прочитан тег <q>,                 //атрибут text которого содержит вопрос                 //а атрибут src - имя файла иллюстрации                   //извлекаем значение атрибутов                 qw = xmlReader.GetAttribute("text");                 pic = xmlReader.GetAttribute("src");                   if (!pic.Equals(string.Empty)) pic = fpath + pic;                   //входим внутрь узла                 xmlReader.Read();                 int i = 0;                   //считываем данныем из вопроса <q>                 while (xmlReader.Name != "q")                 {                     xmlReader.Read();                       //вырианты ответа                     if (xmlReader.Name == "a")                     {                         //если есть атрибут right, то это                         //правильный ответ                         if (xmlReader.GetAttribute("right") == "yes")                             right = i;                           //считываем вариант ответа                         xmlReader.Read();                         if (i < 3) answ[i] = xmlReader.Value;                           //выходим из узла <a>                         xmlReader.Read();                           i++;                     }                 }                 //выходим из узла вопроса <q>                 xmlReader.Read();                   return true;             }             //если считанный тег не <q>             else                 return false;         }         private void showQw()         {             //выводим вопрос             label1.Text = qw;               //иллюстрация             if (pic.Length != 0)             {                 try                 {                     pictureBox1.Visible = true;                       radioButton1.Top = pictureBox1.Bottom + 16;                 }                 catch                 {                     if (pictureBox1.Visible)                         pictureBox1.Visible = false;                       label1.Text +=                         "nnnОшибка доступа к файлу " + pic + ".";                       radioButton1.Top = label1.Bottom + 8;                 }             }             else             {                 if (pictureBox1.Visible)                     pictureBox1.Visible = false;                 radioButton1.Top = label1.Bottom;             }             //Показать варианты ответа             radioButton1.Text = answ[0];             radioButton2.Top = radioButton1.Top + 24; ;             radioButton2.Text = answ[1];             radioButton3.Top = radioButton1.Top + 24; ;             radioButton3.Text = answ[2];               radioButton4.Checked = true;             button1.Enabled = false;         }         //Щелчок на кнопке выбора ответа         //функция обрабатывает событие click         //компонентов radioButton1 - radioButton3         private void radioButton1_Click(object sender, EventArgs e)         {             if ((RadioButton)sender == radioButton1) otv = 1;             if ((RadioButton)sender == radioButton2) otv = 2;             if ((RadioButton)sender == radioButton3) otv = 3;               button1.Enabled = true;         }         //Щелчок на кнопке ОК         private void button1_Click(object sender, EventArgs e)         {             switch (mode)             {                 case 0:     //начало работы                     radioButton1.Visible = true;                     radioButton2.Visible = true;                     radioButton3.Visible = true;                       this.getQw();                     this.showQw();                       mode = 1;                       button1.Enabled = false;                     radioButton4.Checked = true;                     break;                 case 1:                     nv++;                       //правильный ли ответ выбран                     if (otv == right) n++;                       if (this.getQw()) this.showQw();                     else                     {                         //больше вопросов нет                         radioButton1.Visible = false;                         radioButton2.Visible = false;                         radioButton3.Visible = false;                           pictureBox1.Visible = false;                                                 //обработка и вывод результата                         this.showLevel();                           //следующий щелчок на кнопке ОК                         //закроет окно программы                         mode = 2;                     }                     break;                 case 2:     //завершение работы программы                     this.Close();   //закрыть окно                     break;             }         }         //выводит оценку         private void showLevel()         {             //ищем узел <levels>             do                 xmlReader.Read();             while             (xmlReader.Name != "levels");               //входим внуть узла             while (xmlReader.Name != "levels")             {                 xmlReader.Read();                   if (xmlReader.Name == "level")                     //n - кол-во правильных ответов,                     //проверяем, попадаем ли в категорию                     if (n >= System.Convert.ToInt32(                         xmlReader.GetAttribute("score")))                         break;               }               //выводим оценку             label1.Text =                 "Тестирования завершенно.n" +                 "Всего вопросов: " + nv.ToString() + ". " +                 "Правильных ответов: " + n.ToString() + ".n" +                 xmlReader.GetAttribute("text");         }     } }

а файл теста находится в:
E:Documents and SettingsAdminРабочий столTestsTest.xml

__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь

0

Programming

Эксперт

94731 / 64177 / 26122

Регистрация: 12.04.2006

Сообщений: 116,782

22.03.2011, 15:13

Ответы с готовыми решениями:

Ограничен доступ к файлу
Вставляю картинки в дата грид ваев.
После чего некоторые необходимо переименовать.
Однако это…

Доступ к занятому файлу
Возникла ещё одна проблема, теперь уже с удалением файла, который мы находим.
Суть идеи такова:…

Закрыть доступ к файлу
Читал про реализацию этого метода, но что-то у меня не выходит) Исправьте пожалуйста. Мне нужно…

Многопоточный доступ к файлу
видел, эта тема обсасывалась не раз на просторах сайберфорума, но никаких продвижений по этому…

10

d3nver

144 / 128 / 27

Регистрация: 20.12.2010

Сообщений: 242

22.03.2011, 15:21

2

Цитата
Сообщение от John_XP
Посмотреть сообщение

Да! Спасибо! Помогло!
Теперь другая проблема.
У меня есть переменная string fpath; //путь к файлу.
Когда я хочу задать доступ к xml — файлу (тест.), то у меня ничего не выходит.
Вот, что я делаю:

C#
1
fpath = Application.StartupPath + @"E:Documents and SettingsAdminРабочий столTestsTest.xml";

Однако так и не появляется ничего.

Application.StartupPath:
Application.StartupPath — свойство
Получает путь для исполняемого файла, запустившего приложение, не включая исполняемое имя.

ты в переменную fpath заносишь и путь к файлу приложения и путь к тесту.
Если у тебя тест расположен по E:Documents and SettingsAdminРабочий столTestsTest.xml
тогда нужно писать так:

C#
1
fpath = @"E:Documents and SettingsAdminРабочий столTestsTest.xml";

И не совсем понял где ты это делаешь. В приведенном коде этой строки нет.

1

John_XP

2 / 2 / 0

Регистрация: 13.03.2011

Сообщений: 50

22.03.2011, 15:46

 [ТС]

3

Когда я указываю полный путь, у меня все равно появляется эта запись:
«Файл теста необходимо указать » +
«в команде запуска программы.n» +
«Например: ‘exam economics.xml’ » +
«или ‘exam c:spb.xml’.»;
О горе мне…
До чего же я запутался…
А когда путь указан как:

C#
1
fpath = Application.StartupPath + "";

В какой папке он находится?

0

d3nver

144 / 128 / 27

Регистрация: 20.12.2010

Сообщений: 242

22.03.2011, 15:54

4

Цитата
Сообщение от John_XP
Посмотреть сообщение

Когда я указываю полный путь, у меня все равно появляется эта запись:
«Файл теста необходимо указать » +
«в команде запуска программы.n» +
«Например: ‘exam economics.xml’ » +
«или ‘exam c:spb.xml’.»;
О горе мне…
До чего же я запутался…
А когда путь указан как:

C#
1
fpath = Application.StartupPath + "";

В какой папке он находится?

в папке твоего проекта, а точнее в :
x:bla-bla-blasuper-puper-mega-projectbinDebug
Если ты указываешь файл с тестами просто по имени, то этот файл должен находиться в этой же папке, что и твой исполняемый файл.

0

2 / 2 / 0

Регистрация: 13.03.2011

Сообщений: 50

22.03.2011, 16:08

 [ТС]

5

В общем таки, и ничего не добился…
xml файл набрал в блокноте, все как и в учебнике, листинг кода тоже без ошибок написан…
А как присабачить туда файлы по выбору, т.е. я добавляю туда кнопку Обзор, кликаю на нее, и открываю xml-файл.
Тогда весь код связанный с открытием я должен перенести туда?

0

d3nver

144 / 128 / 27

Регистрация: 20.12.2010

Сообщений: 242

22.03.2011, 16:16

6

ну а я не понял в чем проблема
не открывается файл?
Попробуй приписать перед открытием:

C#
1
fpath = @"E:Documents and SettingsAdminРабочий столTestsTest.xml";

Если файл не откроется, значит по этому пути нет файл либо ты его неправильно назвал.

0

2 / 2 / 0

Регистрация: 13.03.2011

Сообщений: 50

22.03.2011, 16:28

 [ТС]

7

//имя файла теста должно быть указанно
//в качестве параметра команды запуска программы
Что значат эти строки?

0

144 / 128 / 27

Регистрация: 20.12.2010

Сообщений: 242

22.03.2011, 16:36

8

Цитата
Сообщение от John_XP
Посмотреть сообщение

//имя файла теста должно быть указанно
//в качестве параметра команды запуска программы
Что значат эти строки?

ты у меня спрашиваешь? не я ж задание выписывал

Это значит что имя файла для теста ты вводишь как аргумент командной строки.
Возьми этот файл с тестами, кинь в ту же папку, где у тебя находится твоя программа. Не исходники, а глубже: bindebug
И тогда в качестве аргумента будет выступать просто имя файла.

И самое основное: в студии нужно указать аргументы командной строки. Раз ты запускаешь проект из студии, в настройках проекта нужно указать эти аргументы командной строки.
Студия какая?

0

2 / 2 / 0

Регистрация: 13.03.2011

Сообщений: 50

22.03.2011, 16:49

 [ТС]

9

Microsoft Visual C# Express Edition 2008
Я взял xml-файл и приатачил его в корневую папку
E:Documents and SettingsAdminМои документыVisual Studio 2008ProjectsWindowsFormsApplication4WindowsForm sApplication4binDebug
В всем коде, все свое убрал. Оставил как в оригинале.
А там путь указан как:
fpath = Application.StartupPath + «»;

0

144 / 128 / 27

Регистрация: 20.12.2010

Сообщений: 242

22.03.2011, 18:32

10

если ты хочешь брать имя файла из аргументов командной строки, то тебе нужно в студии задать эти самые аргументы.
К сожалению, я не помню в каком разделе свойств проекта в 2008й студии это выставляется. Если скачаешь и установишь 2010ю студию экспресс, тогда смогу точно сказать.

А там путь указан как:
fpath = Application.StartupPath + «»;

значит аргументом будет просто имя файла с тестом.

0

Fretsaw

5 / 5 / 0

Регистрация: 22.06.2010

Сообщений: 22

16.06.2011, 06:58

11

C#
1 2 3 4 5 6 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 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 
public Form1(string[] args)         {             InitializeComponent();               radioButton1.Visible = false;             radioButton2.Visible = false;             radioButton3.Visible = false;             radioButton5.Visible = false;             // имя файла теста должно быть указано             // в качестве парамета команды запуска программы             //fpath = "spb.xml";             fname = "spb.xml";                try               {               xmlReader = new System.Xml.XmlTextReader(fname);             xmlReader.Read();             mode = 0;             n = 0;             // загрузить заголовок теста             this.showHead();               // загрузить описание теста             this.showDescription();               }                   catch(Exception exc)                   {                       label1.Text = "Ошибка доступа к файлу  " +                           fpath + fname;                         MessageBox.Show("Ошибка доступа к файлу.n" +                           fpath + fname + "n",                           "Экзаменатор",                           MessageBoxButtons.OK,                           MessageBoxIcon.Error);                         mode = 2;                   }     //-------------------------------------------------------------------------------- //Всё, что ниже, в комментарий... //--------------------------------------------------------------------------------            /* if (args.Length > 0)             {                 // указано только имя файла теста                 if (args[0].IndexOf(":") == -1)                 {                     fpath = Application.StartupPath + "";                     fname = args[0];                 }                   else                 {                     // указан путь к файлу теста                     fpath = args[0].Substring(0, args[0].LastIndexOf("") + 1);                     fname = args[0].Substring(args[0].LastIndexOf("") + 1);                 }                   try                 {                     // получаем доступ к xml-документу                     xmlReader = new System.Xml.XmlTextReader(fpath + fname);                     xmlReader.Read();                       mode = 0;                     n = 0;                       // загрузить заголовок теста                     this.showHead();                       // загрузить описание теста                     this.showDescription();                 }                    catch(Exception exc)                   {                       label1.Text = "Ошибка доступа к файлу  " +                           fpath + fname;                         MessageBox.Show("Ошибка доступа к файлу.n" +                           fpath + fname + "n",                           "Экзаменатор",                           MessageBoxButtons.OK,                           MessageBoxIcon.Error);                         mode = 2;                   }               }               else               {                   label1.Text =                       "Файл теста необходимо указать " +                       "в команде запуска программы.n" +                       "Например: 'exam economics.xml' " +                       "или 'exam c:spb.xml'.";                   mode = 2;               }*/

0

При загрузке  файла Выгрузка и загрузка xml выходит сообщение

Ошибка доступа к файлу ‘C:1C_ToolsВыгрузка и загрузка123.xml’

{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.МодульОбъекта(162)}:    ЧтениеXML.ОткрытьФайл(ИмяФайла);

{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.Форма.Форма.Форма(561)}:    РеквизитФормыВЗначение(«Объект»).ВыполнитьЗагрузку(ИмяВременногоФайла);

{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.Форма.Форма.Форма(540)}:        ЗагрузитьДанныеНаСервере(Адрес, Файл.Расширение);

{ВнешняяОбработка.ВыгрузкаЗагрузкаДанныхXML.Форма.Форма.Форма(254)}:        ЗагрузитьДанныеЗавершение(Истина, АдресФайлаВоВременномХранилище, ИмяФайлаЗагрузки, Неопределено);

по причине:

Ошибка доступа к файлу ‘C:1C_ToolsВыгрузка и загрузка123.xml’

что это может быть, если на тестовой базе все нормально выходит

Доброе время суток. Извините, если тема-баян. Новичок.
1С версия 8.3, хотя, наверняка, версия не имеет значения.
Создал новую учетную запись пользователя для доступа к серверу. Создал новую учетную запись для доступа в 1С. При входе в 1С система выдаёт сообщение «Ошибка доступа к файлу С:Documents and SettingDefault UserLocal SettingsApplication Data1C1Cv82c74191c7-dd5d-44e6-bdfc-469105e7385a’. 5(0x00000005): Отказано в доступе»
Вход новым пользователем 1С через ранее существовавшие учетные записи доступа к серверу происходит корректно.
Понятно, что где-то не хватает прав доступа. Где и каких? Для какой учётной записи — входа на сервер или в 1С?
Заранее спасибо.

В 64-битной ОС Windows 10 с выключенным контролем учетных записей (UAC) из 32-битного клиентского приложения, запущенного интерактивно без элевации (не через команду «Запуск от имени администратора»), выполняю попытку записать файл «C:Program Files1cv8conflogcfg.xml» и получаю исключение Ошибка доступа к файлу ‘C:Program Files1cv8conflogcfg.xml’ Моя учетная запись естественно входи в группу Администраторы. Как грамотно (с учетом идеологии контроля учетных записей) записать такой файл? Если даю доступ учетным записям «Все приложения» или «Все ограниченные приложения», то ошибка остается. Если даю доступ всем (учетная запись «Все») на этот файл, то ошибка уходит. Можно ли как то временно запросить у пользователя элевацию на конкретную файловую операцию? Как из кода 1С запустить приложение с элевацией?

Первое, что приходит в голову выполнить bat/shell скрипт. А пользователь пароль админа знает или нет?

«с выключенным контролем учетных записей (UAC)» // Его нельзя выключить. Наверное, имеется в виду самое «нижнее» положение ползунка в настройке уровней УАС?

>>Как грамотно (с учетом идеологии контроля учетных записей) записать такой файл? не отключать UAC не писать в системные директории.

так а если файл настроек системного журнала должен лежать именно в этом каталоге? По вашей теории нельзя автоматизировать этот процесс.

Файл настроек системного журнала? А какое отношение 1с может иметь к системному журналу?

технологического журнала имелось в виду

Технологический журнал, это журнал приложения. А приложение не должно хранить свои журналы, логи и прочие временные файлы в системных директориях. Т.е журналов там не должно быть. В речь идет про файл logcfg.xml — это файл настройки приложения. Он записывается при установке программы. И соответственно должен изменяться, перезаписываться, или удалятья только при установке или удалении данной программы.

Т.е есть базовый принцип — приложение не должно писать в Program Files, и уж тем более не должно там ничего хранить.

Я не разделяю ваше мнение, что файл настроек технологического журнала должен записыватсья при установке/удалении 1с. Это не временный файл, это не лог — это конфигурационный файл приложения (1с) для настройки логирования. Где ему еще лежать? Как минимум я знаю 2 случая, когда этот файл меняетя из 1с. В ЦУП и обработке настройки тех журнала.

Поясню — Если файл изменяется при работе программы, то его нельзя размещать в Program Files. Там можно размещать только файлы изменяемые при установке программы!

я даже затрудняюсь представить где должны лежать конфиги приложения (конфиги для того и есть, что бы их менять по потребности). 1. Конфиг это скорее постоянный файл чем временный. Часто без конфига приложение просто не будет запускатсья, а удаление временных файлов не должно влиять на работоспособность приложения. 2. Разработчики 1с решили, что конфиги должны лежать в папке c установленной платформой. 3. Довольно много программ хранят конфиги в <home directory>/conf , я сейчас много работаю с apache hadoop стеком и там все конфиги лежат именно в этом каталоге.

Все конфиги должны лежать в HomeDir. Это основа. В линуксе немного по другому, но принцип тот же.

Так, а что для платформы является home dir? Разве не папка куда установленая программа?

И самый ключевой момент в том, что разработчки платформы ожидают файл именно в том месте и пользователю остаеться только подстраиваться под ситуацию.

Пользователь знает пароль, но не хочет его вводить. Да.

HomeDir — домашняя директория пользователя, от имени которого запущена программа.

Да пофиг что там ожидают разработчики. Вопрос был в том, как идеологически правильно обеспечить доступ к файлу, я объяснил. А как там думают разработчики — дело третье.

прав не хватает пользователю, под которым сервер запущен, поди

До меня вам точно не удалось донести суть. В папке пользователя лежат настройки относящиеся к конерктному пользователю, в папке с утановленной программой конфиги относящиеся к программе в целом.

Что нехватает прав это понятно. Не хватает прав пользователю, под которым записана программа. Почему не хватает — потому что пользователям нельзя писать в эту директорию.

считай, что у меня телепатический припадок.

По идеологии Windows в Programm Files хранится сама программа и необходнимые для нее библиотеки и данные. Они записываются в момент инсталляции, и используются только на чтение. В нее запрещено писать пользовательским программам.

Т,е хранить в Programm Files можно что угодно, а менять нельзя.

Спасибо. Хоть что то по существу вопроса =) Видимо придется использовать старый добрый hstart, который теперь поддерживает элевацию.

можно ссылку с описанием данной идеалогии? подойдет и на английском.

можно тупо прав накинуть на этот самый сам по себе logcfg.xml еще можно «mklink -j» и заныкать куда-то этот logcfg.xml, куда права есть. или в 1cv88..*inconfconf.cfg прописать ConfLocation, опять же туда, где есть права

Еще бы найти полностью бесплатную утилиту для выполнения команд системы с элевацией.

Того что запись в эту папку запрещена вам недостаточно?

wmic process create google that

Конечно нет. Это лишь подтвержает, что конфигурацие должен заниматься человек с правами админа. Не вижу никих проблем записать файл из скрипта.

чем не устроил вариант из ?

Вот именно — вносить изменения туда может только админ, и система. Но никак не пользователь. А программа запускается от пользователя.

Научи запускать из 1С скрипт PowerShell и ловить выходной поток (сообщения).

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

в коментах так же приводили пример через bat

Опять через runas. Он всегда просит вводить пароль.

Решение найдено. elevate — Command-Line UAC Elevation Utility This utility executes a command with UAC privilege elevation. This is useful for working inside command prompts or with batch files.

Утилита действительно работает и не запрашивает пароль, но показывает окно командного интерпретатора. Поэтому все таки пришлось вернуться к старому доброму hstart.

Тэги:

Комментарии доступны только авторизированным пользователям

  1. Есть обработка по выгрузке некоторых данных в файл xml. Возникает такая ошибка:
    Ошибка при вызове метода контекста (ОткрытьФайл): Ошибка совместного доступа к файлу ‘E:\документ.xml’ Запись.ОткрытьФайл(ИмяФайла,»UTF-8″);

    Запрос.УстановитьПараметр("Родитель", ЭлементыФормы.Группа.Значение);
    Выборка = Запрос.Выполнить().Выбрать();
    
    Если ПустаяСтрока(ИмяФайла) Тогда
    Предупреждение("Укажите файл данных XML для выгрузки!");
    Возврат;
    КонецЕсли;
    Файл = Новый Файл(ИмяФайла);
    Если Файл.Существует() Тогда
    Ответ = Вопрос("Файл " + ИмяФайла + " существует. Заменить?",РежимДиалогаВопрос.ДаНет);
    Если Ответ = КодВозвратаДиалога.Нет Тогда
    Сообщить("Сохранение отменено.");
    Возврат;
    КонецЕсли;
    КонецЕсли;
    
    ТекстФайл = Новый ЗаписьТекста(ИмяФайла, КодировкаТекста.UTF8);
    
    Запись = Новый ЗаписьXML; 
    Запись.ОткрытьФайл(ИмяФайла,"UTF-8"); 
    Запись.ЗаписатьОбъявлениеXML(); 
    Запись.ЗаписатьНачалоЭлемента("_1CV8DtUD", "http://www.1c.ru/V8/1CV8DtUD/"); 
    Запись.ЗаписатьСоответствиеПространстваИмен("V8Exch", "http://www.1c.ru/V8/1CV8DtUD/");
    Запись.ЗаписатьСоответствиеПространстваИмен("xsi", "http://www.w3.org/2001/XMLSchema-instance");
    Запись.ЗаписатьСоответствиеПространстваИмен("v8",  "http://v8.1c.ru/data");
    Запись.ЗаписатьНачалоЭлемента("V8Exch:Data");
    
    Пока Выборка.Следующий() Цикл 
    
    Запись.ЗаписатьНачалоЭлемента("Элемент"); 
    .......
    
    Запись.ЗаписатьКонецЭлемента(); 
    КонецЦикла; 
    
    Запись.ЗаписатьКонецЭлемента(); 
    
    ТекстФайл.Записать(Запись.Закрыть());
    ТекстФайл.Закрыть();
    
    
    Запись.Закрыть();
    
    

    Подскажите, в чем может быть дело?


  2. leemuar

    Offline

    leemuar
    Опытный в 1С

    Регистрация:
    21 окт 2010
    Сообщения:
    310
    Симпатии:
    0
    Баллы:
    26

    Вероятно файл уже отрыт другим сеансом или приложением

  3. нет, не открыт. Я уже и перезагружалась, без толку :angry:


  4. uza

    Offline

    uza
    1С, VBA (EXCEL), VB (.NET + WEB)

    Регистрация:
    10 июл 2007
    Сообщения:
    1.845
    Симпатии:
    1
    Баллы:
    29

    А что приходит в ИмяФайла?
    Если «E:\документ.xml» — то это неправильный путь к файлу. Ибо правильный «E:документ.xml», возможно.

  5. Там всё правильно, я просто не стала сюда весь путь копировать :angry:

  6. Неужели никто не сталкивался с такой ошибкой?


  7. BabySG

    Offline

    BabySG
    Администраторы
    Команда форума
    Администратор

    Регистрация:
    10 июн 2007
    Сообщения:
    11.853
    Симпатии:
    18
    Баллы:
    29

    Ошибка у Вас в коде где-то.

    Откуда получаете имя файла?


  8. uza

    Offline

    uza
    1С, VBA (EXCEL), VB (.NET + WEB)

    Регистрация:
    10 июл 2007
    Сообщения:
    1.845
    Симпатии:
    1
    Баллы:
    29

    А файл вообще доступен для записи?
    А то может у Вас прав нет на запись.

    А ОС какая? Не Vista/7ка ли — а то они «из коробки» любят ограничивать доступ к файлам разным прогам.

  9. ИмяФайла — реквизит обработки, типа Строка. Поле ввода на форме с данными ИмяФайла.


  10. Tiger86

    Offline

    Tiger86
    Модераторы
    Команда форума
    Модератор

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104

    вот нашла такую инфу, сама не пробовала
    обратите внимание. в примере в имени файла наклон разделителей в другую сторону (возможно конечно это не влияет, но все же….)

  11. Проблема решилась. Я убрала

    Запись.ОткрытьФайл(ИмяФайла,"UTF-8");
    

    и вставила

    Запись.УстановитьСтроку("UTF-8");
    
    


1C-pro.ru - форум по 1С:Предприятию 7.7, 8.0, 8.1, 8.2, 8.3

Возможно, вам также будет интересно:

  • Ошибка доступа к файлу проверьте запущенные процессы epic games is mf03 5
  • Ошибка доступа к файлу 1с журнал регистрации
  • Ошибка доступа к файлу при публикации на веб сервере
  • Ошибка доступа к файлу 1cv8log
  • Ошибка доступа к файлу при записи табличного документа 1с

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии