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

Ошибка при вызове метода контекста (Прочитать)

Ошибка при выполнении файловой операции при чтении xls файла методом прочитать объекта ТабличныйДокумент. 

Скрин сообщения

oshibka-pri-vypolnenii-fajlovoj-operatsii

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

В чем плюсы такой методики чтения

  • Всё производится встроенными средствами;
  • достаточно быстро;
  • код в 2 строки
  • данные не требуется преобразовывать, обычно всё считывается достаточно корректно, их можно проверить средствами 1С.
  • возможно считывать значения ячеек как текст (без авто-преобразования),
  • доступно на сервере, где excel вообще нельзя установить (linux, OSx).

Причина ошибки

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

Если же документ открыт, то выходит ошибка при выполнении файловой операции чтения.

COM-Объекта Excel.Application в данном ситуации просто открывает еще один экземпляр, а также  в нём можно скрыть отображение сообшения о режиме «чтения».

Другой причиной может быть: отсутствие прав на чтение этого файла

Решение:

Закрыть открытую в Excel (или другой программе) книгу, проверить права на файл (возможность открытия в его в Excel, косвенный признак его наличия)

Реклама — средство заставить людей нуждаться в том, о чем они раньше не слыхали.

Поместить файл во временное хранилище и прочитать его

Я

  

ac13

03.04.19 — 13:32

[1c]Процедура ИмяФайлаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

            

    СтандартнаяОбработка = Ложь;

    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);

    Диалог.Заголовок = «Выбор файла»;

    Диалог.МножественныйВыбор = Ложь;

    Если Диалог.Выбрать() Тогда

        ПутьКФайлу = Диалог.ПолноеИмяФайла;

    КонецЕсли;

    

    Текст = Новый ТекстовыйДокумент();

    Текст.Прочитать(ПутьКФайлу);

    
КонецПроцедуры[/1c]

Выдает ошибку, что не может получить доступ к файлу.

Нужно получать файл через помещение его во временное хранилище.

Как это сделать?

[1c]АдресКФайлу = ПутьКФайлу;

ИмяФайла = ПолучитьИмяВременногоФайла(«.csv»);

ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресКФайлу);

ДвоичныеДанные.Записать(ИмяФайла);[/1c]

Где что не так?

  

Cyberhawk

1 — 03.04.19 — 13:48

С таким подходом к описанию ошибок далеко не уедешь

  

ac13

2 — 03.04.19 — 13:53

(1)

&НаКлиенте
Процедура ИмяФайлаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    Диалог.Заголовок = "Выбор файла";
    Диалог.МножественныйВыбор = Ложь; 
    Если Диалог.Выбрать() Тогда
        ПутьКФайлу = Диалог.ПолноеИмяФайла;
    КонецЕсли;

    ПрочитатьФайлнаСервере(ПутьКФайлу);
    
КонецПроцедуры

&НаСервере
Процедура ПрочитатьФайлнаСервере(ПутьКФайлу)
    
    Текст = Новый ТекстовыйДокумент;
    Текст.Прочитать(ПутьКФайлу);
    
КонецПроцедуры

{ВнешняяОбработка.ОткрытиеИЧтениеФайла.Форма.Форма.Форма(179)}: Ошибка при вызове метода контекста (Прочитать)

    Текст.Прочитать(ПутьКФайлу);

по причине:

Ошибка доступа к файлу ‘здесь_путь_к_файлу.csv’

  

ac13

3 — 03.04.19 — 13:54

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

  

sqr4

4 — 03.04.19 — 13:55

Начатьпомещениефайла

  

Cyberhawk

5 — 03.04.19 — 13:56

Ну нету у серверного контекста доступа на чтение к твоему файлу

  

Cyberhawk

6 — 03.04.19 — 13:58

Если это сетевая шара, судя по пути, то дай к ней доступ всем локальным пользователям хоста.

А если сервер — это другой хост, нежели сама шара, то надо еще и кое-что сделать.

  

Cyberhawk

7 — 03.04.19 — 13:58

Для проверки заведи шару локально на том же хосте, что сервер приложений

  

Cyberhawk

8 — 03.04.19 — 13:59

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

А пользователь службы агента (он же чаще всего совпадает с пользователем рабочего процесса) как правило локальный.

  

Cyberhawk

9 — 03.04.19 — 14:00

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

  

ac13

10 — 03.04.19 — 14:01

(6) доступ ни к чему давать не могу, не имею права

  

Cyberhawk

11 — 03.04.19 — 14:02

Ну тогда локальный файл копируй (передавай) на сервер, а не с сервера его пытайся читать

  

ac13

12 — 03.04.19 — 14:03

Сделал так

&НаКлиенте
Процедура ИмяФайлаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    Диалог.Заголовок = "Выбор файла";
    Диалог.МножественныйВыбор = Ложь; 
    Если Диалог.Выбрать() Тогда
        ПутьКФайлу = Диалог.ПолноеИмяФайла;
    КонецЕсли;

    ДвоичныеДанные = Новый ДвоичныеДанные(ПутьКФайлу);
    Адрес = ПоместитьВоВременноеХранилище(ДвоичДанные, УникальныйИдентификатор);
    
    ДвоичныеДанные = ПолучитьИзВременногоХранилища(Адрес);
    ИмяВременногоФайла = ПолучитьИмяВременногоФайла("csv"); 
    ДвоичныеДанные.Записать(ИмяВременногоФайла);
    ПрочитатьФайлнаСервере(ИмяВременногоФайла);
     
КонецПроцедуры

&НаСервере
Процедура ПрочитатьФайлнаСервере(ПутьКФайлу)
    
    Текст = Новый ТекстовыйДокумент;
    Текст.Прочитать(ПутьКФайлу);
    
КонецПроцедуры

Теперь пишет, что «Каталог не обнаружен `C:UsersUser567AppDataLocalTempимя_временного_файла.csv`

  

Cyberhawk

13 — 03.04.19 — 14:06

Переставай работать с одним и тем же файлом и на клиенте, и на сервере

  

sqr4

14 — 03.04.19 — 14:08

(12) ахахах это только начало)

ДвоичныеДанные = ПолучитьИзВременногоХранилища(Адрес);

    ИмяВременногоФайла = ПолучитьИмяВременногоФайла(«csv»);

    ДвоичныеДанные.Записать(ИмяВременногоФайла);

Это все на сервер, передавай туда адрес, который не передастся ахахахаха

  

Cyberhawk

15 — 03.04.19 — 14:13

(12) Зачем же ты файл из сетевой шары скопировал в локальный каталог клиентского хоста и пытаешься до него достучаться с хоста сервера? Херово, когда нет плана.

  

ac13

16 — 03.04.19 — 14:22

Спасибо, получилось

&НаКлиенте
Процедура ИмяФайлаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    Диалог.Заголовок = "Выбор файла";
    Диалог.МножественныйВыбор = Ложь; 
    Если Диалог.Выбрать() Тогда
        ПутьКФайлу = Диалог.ПолноеИмяФайла;
    КонецЕсли;
    
    ТД = ПрочитатьФайлнаСервере();
    ТД.Прочитать(ПутьКФайлу);
    
КонецПроцедуры

&НаСервере
Функция ПрочитатьФайлнаСервере()
    
    Текст = Новый ТекстовыйДокумент;    
    Возврат Текст;
    
КонецФункции

  

Cyberhawk

17 — 03.04.19 — 14:26

)))

  

sqr4

18 — 03.04.19 — 14:26

(16) работает не трожь)

Ошибка работы 1С 8 с Excel: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft Office Excel): Нет доступа к файлу

Описание ошибки:
Проявила себя в клиент-серверной базе. Релиз платформы 1С: Предприятие 8.3.13.1644.

Найденные решения:

Полная формулировка ошибки:

{Доработки Документ.УстановкаЦенНоменклатуры.Форма.Доп_ФормаИмпортXLS.Форма(83)}: Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация (Microsoft Office Excel): Нет доступа к файлу ‘C:1C_ArhivТест загрузка прайсов[имя_файла].xlsx’. Это может быть вызвано одной из следующих причин.

• Имени файла или пути не существует.
• Файл используется другой программой.
• Имя книги, которую вы пытаетесь сохранить, совпадает с именем открытой в данный момент книги.

1C 8 Произошла исключительная ситуация (Microsoft Office Excel): Нет доступа к файлу .xlsx

1С 8 работа с Excel Ошибка при вызове метода контекста (Open)

При доработке в расширении для конфигурации 1С: Комплексная автоматизация 8, ред. 2, которая должна загружать данные из файлов Excel и при попытке выполнения в коде РабочаяКнига = ExcelПриложение.WorkBooks.Open(ФормаИмпортXLS.ИмяФайла);. Что удивительно, но в более ранней редакции Комплексной, 1.1, эта проблема не возникала в этом же коде, хотя обе базы на одном сервере.

Проблема оказалась нова для автора этого текста только в 2020 году, хотя самой проблеме достаточно много времени (более 5 лет на момент написания). В обсуждении данной ошибки на сайте infostart.ru «Ошибка открытия файла Excel на сервере» обсуждается несколько предложений по решению проблемы, среди которых наиболее популярный вариант решения. Так же там много попутных предложений по настройке прав на стороне сервера, если вдруг популярный вариант окажется не актуальным.

1C 8

Популярность этого варианта подтверждается исчерпывающим обсуждением и вот на этом ресурсе: «v8.x: [РЕШЕНО] Ошибка при вызове метода контекста (Open) при работе с Excel»

1C 8.2 8.3 Произошла исключительная ситуация (Microsoft Office Excel): Нет доступа к файлу

Проблема была рещена данным простым решением, но обращу внимание на то, что данное действие должно быть выполнено на сервере, а не на локальном рабочем месте.

1C 8 Ошибка при вызове метода контекста (Open): Произошла исключительная ситуация

Оцените, помогло ли Вам предоставленное описание решения ошибки?




© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.

23-09-2020

Журавлев А.С.
(Сайт azhur-c.ru)

Сvотри что бы тег не содержал запрещенных символов (не должен начинаться с цифры и т.д.)

Установившаяся Практика Именования

Делайте имена описательными. Имена с символом подчеркивания выглядят аккуратно: <first_name>, <last_name>.

Имена должны быть короткими и простыми, например: <book_title> а не: <the_title_of_the_book>.

Избегайте символов «-«. Если вы называете xml-элемент, используя дефис («first-name,») некоторые компьютерные программы могут решить, что вы хотите вычесть значение name из значения first.

Избегайте символов «.». Если вы называете что-нибудь например так: «first.name,» некоторые программы могут решить, что «name» является свойством объекта «first.»

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

XML документы часто имеют соответствующую базу данных. Обычно используют правила именования этой базы данных для элементов XML документов.

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

Добавлено через 1 минуту
Правила Именования в XML
Элементы XML должны следовать следующим правилам именования:

Имена могут состоять из букв, чисел, и других символов
Имена не могут начинаться с числа или знака препинания
Имена не могут начинаться с букв xml (или XML, или Xml, и т.п.)
Имена не могут содержать пробелы
Любое имя может использоваться, зарезервированных слов нет.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ошибка в 1С 8.3 Нарушение прав доступа появляется при попытках обращения пользователя к объекту, прав на который у него нет. Очень часто это происходит при вводе нового пользователя в 1С, доработке программного кода и обновлении программы.

Прочитав эту статью, вы:

  • узнаете, на что обращать внимание при возникновении ошибки;
  • получите рекомендации по ее устранению;
  • ознакомитесь с ответами экспертов БухЭксперт8 на вопросы, связанные с возникновением ошибки.

Содержание

  • Причины ошибки
    • Ошибка обновления
    • Нарушение прав доступа при чтении данных
    • Нарушение прав доступа при записи данных
    • Работа с внешними отчетами и обработками
    • Добавление нового пользователя
  • Ответы на вопросы
    • Ошибка при проведении документа Реализация (акт, накладная)
    • Ошибка при попытке открыть карточку контрагента под определенным пользователем
    • Ошибка при открытии внешнего отчета

Нарушение прав доступа 1С 8.3 внешняя обработка СКАЧАТЬ >>

Причины ошибки

С ошибкой Нарушение прав доступа сталкиваются многие пользователи 1С после доработки программного кода и обновления программы. Возможные причины появления ошибки:

  • обновление программы на новый релиз;
  • попытка чтения или записи данных справочника, документа или регистра пользователем, не имеющим прав на объект;
  • использование внешних обработок и отчетов без установки пользователю специальной роли;
  • ошибка задания прав новому пользователю 1C.

Ошибка обновления

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

При появлении ошибки Нарушение прав доступа после обновления программы нужно выполнить следующие действия:

  1. Проверьте, содержится ли ошибка в реестре: Публикация ошибок 1С.
    Перейдите по ссылке, в форме поиска ошибок укажите конфигурацию программы и текст ошибки.После нажатия кнопки Найти будет произведен поиск по заданным параметрам.
  2. Для зарегистрированной ошибки обратитe внимание на дату регистрации и релиз исправления ошибки.
  3. Если заполнена информация в разделе Способ обхода — внимательно ее изучите: это позволит сразу решить проблему, не дожидаясь релиза с исправлениями.
  4. Обратитесь на горячую линию 1С, если ошибка в реестре еще не зарегистрирована:
    • телефон hotlane 1С: (495) 956-11-81;
    • E-mail:v8@1c.ru.

Восстановите программу из копии и ждите исправления ошибки в следующем релизе обновления.

БухЭксперт8 советует всегда делать перед обновлением архивные копии базы данных. Это поможет восстановить базу при неудачном обновлении.

Нарушение прав доступа при чтении данных

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

Каждая Роль включает набор свойств для работы с объектами 1С. Они задают права на чтение, просмотр, изменение, редактирование и т. д. данных в справочниках, документах и регистрах программы.

У роли Чтение контрагентов установлено свойство Чтения на:

Пользователь, которому назначили роль Чтение контрагентов, может считывать данные справочника Контрагенты, но при обращении к справочнику Банки получит ошибку Нарушение прав доступа.

Нарушение прав доступа при записи данных

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

У роли Добавление и изменение сотрудников установлено свойство Изменение на:

Пользователь, которому назначена роль Добавление и изменение сотрудников, может редактировать данные справочника Сотрудники, но при попытке изменения данных банка получит ошибку Нарушение прав доступа.

Работа с внешними отчетами и обработками

Для работы с внешними отчетами и обработками пользователю нужно назначить одну из ролей:

  • Полные права;
  • Интерактивное открытие внешних отчетов и обработок.

Как добавить роль Интерактивное открытие внешних отчетов и обработок, описано в статье Как добавить пользователю с правами Бухгалтер права запускать внешние отчеты и обработки?

Пользователь Бухгалтер при открытии файла внешней обработки: кнопка Главное меню — Файл — Открыть — файл Нарушение прав доступа получает ошибку:

  • Нарушение прав доступа.

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

Добавление нового пользователя

При добавлении новых пользователей БухЭксперт8 рекомендует использовать типовые Профили группы доступа в 1С: раздел Администрирование — Настройки программы — Настройки пользователей и прав.

В 1С заложена автоматическая проверка прав того набора объектов 1С, который определяется профилем групп доступа:

  • Администратор;
  • Главный бухгалтер;
  • Бухгалтер;
  • Только чтение;
  • и т. д.

Программа скроет все объекты, на которые у пользователя нет прав:

Чтобы ограничить возможность изменения документов определенным пользователям, можно даже не устанавливать специально Дату запрета изменения. Программа сама не даст сохранить изменения пользователям с ограниченными правами:

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

Ответы на вопросы

Ошибка при проведении документа Реализация (акт, накладная)

Создали новую роль в Конфигураторе — только для документа Реализация (акт, накладная). При записи документа программа отрабатывает правильно, а при проведении — выдает ошибку Нарушение прав доступа.

В чем может быть причина?

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

Если вы указали в новой роли право только на документ Реализация (акт, накладная), этого недостаточно. По кнопке Дт/Кт уточните, какие регистры используются при проведении документа и добавьте их в новую роль с активными свойствами:

  • Чтение;
  • Изменение;
  • Просмотр;
  • Редактирование.

Ошибка при попытке открыть карточку контрагента под определенным пользователем

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

  • «Справочник.Контрагенты.Форма.БП_ФормаЭлемента.Форма: Ошибка при вызове метода контекста НаборЗаписей.Прочитать() по причине: Нарушение прав доступа».

Что делать?

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

Если в подробном описании ошибки программа не указывает регистр, при записи данных в который происходит ошибка, вам придется выяснить это самостоятельно. Для недоработанной типовой конфигурации Бухгалтерия 3.0 при открытии справочника Контрагенты могут использоваться:

  • регистр бухгалтерии Хозрасчетный;
  • регистр бухгалтерии Курсы валют;
  • регистр бухгалтерии Наличие дублей у контрагентов;
  • и т. д.

Эти регистры включены в программный модуль справочника Контрагенты.

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

Эта работа требует особой подготовки и квалификации.

Ошибка при открытии внешнего отчета

При попытке открыть внешний отчет 1С появляется ошибка Нарушение прав доступа. Все остальные отчеты внутри программы открываются нормально. В чем может быть причина?

Для открытия внешних отчетов и обработок 1С необходимо добавить пользователю роль Интерактивное открытие внешних отчетов и обработок. После этого он сможет работать с внешним отчетом без ошибок.

Подробнее Как добавить роль Интерактивное открытие внешних отчетов и обработок

См. также:

  • У пользователя недостаточно прав на исполнение операции
  • Конфигурация узла распределенной ИБ не соответствует ожидаемой
  • 1C Отчетность: не удалось расшифровать файл
  • Этот хост неизвестен 1С: как исправить
  • Ошибка при выполнении операции с информационной базой 1С 8.3

Если Вы еще не являетесь подписчиком системы БухЭксперт8:

Активировать демо-доступ бесплатно →

или

Оформить подписку на Рубрикатор →

После оформления подписки вам станут доступны все материалы по 1С Бухгалтерия, записи поддерживающих эфиров и вы сможете задавать любые вопросы по 1С.

Подписывайтесь на наши YouTube и Telegram чтобы не пропустить
важные изменения 1С и законодательства

Помогла статья?

Получите еще секретный бонус и полный доступ к справочной системе БухЭксперт8 на 14 дней бесплатно

Поместить файл во временное хранилище и прочитать его

Я
   ac13

03.04.19 — 13:32

[1c]Процедура ИмяФайлаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

            
    СтандартнаяОбработка = Ложь;

    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);

    Диалог.Заголовок = «Выбор файла»;

    Диалог.МножественныйВыбор = Ложь;

    Если Диалог.Выбрать() Тогда

        ПутьКФайлу = Диалог.ПолноеИмяФайла;

    КонецЕсли;

    
    Текст = Новый ТекстовыйДокумент();

    Текст.Прочитать(ПутьКФайлу);

    
КонецПроцедуры[/1c]

Выдает ошибку, что не может получить доступ к файлу.

Нужно получать файл через помещение его во временное хранилище.

Как это сделать?

[1c]АдресКФайлу = ПутьКФайлу;

ИмяФайла = ПолучитьИмяВременногоФайла(«.csv»);

ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресКФайлу);

ДвоичныеДанные.Записать(ИмяФайла);[/1c]

Где что не так?

   Cyberhawk

1 — 03.04.19 — 13:48

С таким подходом к описанию ошибок далеко не уедешь

   ac13

2 — 03.04.19 — 13:53

(1)

&НаКлиенте
Процедура ИмяФайлаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    Диалог.Заголовок = "Выбор файла";
    Диалог.МножественныйВыбор = Ложь; 
    Если Диалог.Выбрать() Тогда
        ПутьКФайлу = Диалог.ПолноеИмяФайла;
    КонецЕсли;

    ПрочитатьФайлнаСервере(ПутьКФайлу);
    
КонецПроцедуры

&НаСервере
Процедура ПрочитатьФайлнаСервере(ПутьКФайлу)
    
    Текст = Новый ТекстовыйДокумент;
    Текст.Прочитать(ПутьКФайлу);
    
КонецПроцедуры

{ВнешняяОбработка.ОткрытиеИЧтениеФайла.Форма.Форма.Форма(179)}: Ошибка при вызове метода контекста (Прочитать)

    Текст.Прочитать(ПутьКФайлу);

по причине:

Ошибка доступа к файлу ‘\здесь_путь_к_файлу.csv’

   ac13

3 — 03.04.19 — 13:54

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

   sqr4

4 — 03.04.19 — 13:55

Начатьпомещениефайла

   Cyberhawk

5 — 03.04.19 — 13:56

Ну нету у серверного контекста доступа на чтение к твоему файлу

   Cyberhawk

6 — 03.04.19 — 13:58

Если это сетевая шара, судя по пути, то дай к ней доступ всем локальным пользователям хоста.

А если сервер — это другой хост, нежели сама шара, то надо еще и кое-что сделать.

   Cyberhawk

7 — 03.04.19 — 13:58

Для проверки заведи шару локально на том же хосте, что сервер приложений

   Cyberhawk

8 — 03.04.19 — 13:59

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

А пользователь службы агента (он же чаще всего совпадает с пользователем рабочего процесса) как правило локальный.

   Cyberhawk

9 — 03.04.19 — 14:00

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

   ac13

10 — 03.04.19 — 14:01

(6) доступ ни к чему давать не могу, не имею права

   Cyberhawk

11 — 03.04.19 — 14:02

Ну тогда локальный файл копируй (передавай) на сервер, а не с сервера его пытайся читать

   ac13

12 — 03.04.19 — 14:03

Сделал так

&НаКлиенте
Процедура ИмяФайлаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    Диалог.Заголовок = "Выбор файла";
    Диалог.МножественныйВыбор = Ложь; 
    Если Диалог.Выбрать() Тогда
        ПутьКФайлу = Диалог.ПолноеИмяФайла;
    КонецЕсли;

    ДвоичныеДанные = Новый ДвоичныеДанные(ПутьКФайлу);
    Адрес = ПоместитьВоВременноеХранилище(ДвоичДанные, УникальныйИдентификатор);
    
    ДвоичныеДанные = ПолучитьИзВременногоХранилища(Адрес);
    ИмяВременногоФайла = ПолучитьИмяВременногоФайла("csv"); 
    ДвоичныеДанные.Записать(ИмяВременногоФайла);
    ПрочитатьФайлнаСервере(ИмяВременногоФайла);
     
КонецПроцедуры

&НаСервере
Процедура ПрочитатьФайлнаСервере(ПутьКФайлу)
    
    Текст = Новый ТекстовыйДокумент;
    Текст.Прочитать(ПутьКФайлу);
    
КонецПроцедуры

Теперь пишет, что «Каталог не обнаружен `C:UsersUser567AppDataLocalTempимя_временного_файла.csv`

   Cyberhawk

13 — 03.04.19 — 14:06

Переставай работать с одним и тем же файлом и на клиенте, и на сервере

   sqr4

14 — 03.04.19 — 14:08

(12) ахахах это только начало)

ДвоичныеДанные = ПолучитьИзВременногоХранилища(Адрес);

    ИмяВременногоФайла = ПолучитьИмяВременногоФайла(«csv»);

    ДвоичныеДанные.Записать(ИмяВременногоФайла);

Это все на сервер, передавай туда адрес, который не передастся ахахахаха

   Cyberhawk

15 — 03.04.19 — 14:13

(12) Зачем же ты файл из сетевой шары скопировал в локальный каталог клиентского хоста и пытаешься до него достучаться с хоста сервера? Херово, когда нет плана.

   ac13

16 — 03.04.19 — 14:22

Спасибо, получилось

&НаКлиенте
Процедура ИмяФайлаНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)

    СтандартнаяОбработка = Ложь;
    Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    Диалог.Заголовок = "Выбор файла";
    Диалог.МножественныйВыбор = Ложь; 
    Если Диалог.Выбрать() Тогда
        ПутьКФайлу = Диалог.ПолноеИмяФайла;
    КонецЕсли;
    
    ТД = ПрочитатьФайлнаСервере();
    ТД.Прочитать(ПутьКФайлу);
    
КонецПроцедуры

&НаСервере
Функция ПрочитатьФайлнаСервере()
    
    Текст = Новый ТекстовыйДокумент;    
    Возврат Текст;
    
КонецФункции
   Cyberhawk

17 — 03.04.19 — 14:26

)))

  

sqr4

18 — 03.04.19 — 14:26

(16) работает не трожь)

Ошибка при вызове метода контекста (Прочитать)

Ошибка при выполнении файловой операции при чтении xls файла методом прочитать объекта ТабличныйДокумент. 

Скрин сообщения

oshibka-pri-vypolnenii-fajlovoj-operatsii

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

В чем плюсы такой методики чтения

  • Всё производится встроенными средствами;
  • достаточно быстро;
  • код в 2 строки
  • данные не требуется преобразовывать, обычно всё считывается достаточно корректно, их можно проверить средствами 1С.
  • возможно считывать значения ячеек как текст (без авто-преобразования),
  • доступно на сервере, где excel вообще нельзя установить (linux, OSx).

Причина ошибки

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

Если же документ открыт, то выходит ошибка при выполнении файловой операции чтения.

COM-Объекта Excel.Application в данном ситуации просто открывает еще один экземпляр, а также  в нём можно скрыть отображение сообшения о режиме «чтения».

Другой причиной может быть: отсутствие прав на чтение этого файла

Решение:

Закрыть открытую в Excel (или другой программе) книгу, проверить права на файл (возможность открытия в его в Excel, косвенный признак его наличия)

Восторженное отношение жены к работе мужа — лучшая реклама его деятельности.

Ошибка при вызове метода контекста (Прочитать)

Ошибка при выполнении файловой операции при чтении xls файла методом прочитать объекта ТабличныйДокумент. 

Скрин сообщения

oshibka-pri-vypolnenii-fajlovoj-operatsii

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

В чем плюсы такой методики чтения

  • Всё производится встроенными средствами;
  • достаточно быстро;
  • код в 2 строки
  • данные не требуется преобразовывать, обычно всё считывается достаточно корректно, их можно проверить средствами 1С.
  • возможно считывать значения ячеек как текст (без авто-преобразования),
  • доступно на сервере, где excel вообще нельзя установить (linux, OSx).

Причина ошибки

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

Если же документ открыт, то выходит ошибка при выполнении файловой операции чтения.

COM-Объекта Excel.Application в данном ситуации просто открывает еще один экземпляр, а также  в нём можно скрыть отображение сообшения о режиме «чтения».

Другой причиной может быть: отсутствие прав на чтение этого файла

Решение:

Закрыть открытую в Excel (или другой программе) книгу, проверить права на файл (возможность открытия в его в Excel, косвенный признак его наличия)

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

Содержание:

1.       Неверно указанный путь к папке или файлу

2.       У пользователя недостаточно прав доступа

Ошибка «Каталог не обнаружен» в 1С

Ошибка «Каталог не обнаружен» в 1С  

1.    Неверно указанный путь к папке или файлу

1С:Предприятие 8.3 – это довольно сложная система, поддерживающая множество инструментов и механизмов. Одним из этих механизмов является работа с каталогами (папками).

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

Наиболее частая причина возникновения этой ошибки программы 1С – неверно указанный путь к папке или файлу.  

2.    У пользователя недостаточно прав доступа

Чуть реже ошибка доступа к каталогу встречается, когда у пользователя недостаточно прав доступа к тому или иному каталогу.

Представим ситуацию: пользователь подключился при помощи RDP к удаленной базе, и решил сохранить документ сразу на свой компьютер.

Если при интернет подключении к удаленному рабочему столу пользователь не расшарил (не дал доступ) свои локальные ресурсы, то на сервере они будут не доступны, и возможности сохранить данные на них не будет. Соответственно при попытке указать путь к локальному каталогу, система будет выдавать ошибку «Каталог не обнаружен».

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

Подключение локального диска к удаленному рабочему столу

Подключение локального диска к удаленному рабочему столу

А если каталог доступен, но данная ошибка все равно появляется, стоит проверить права доступа к каталогу. Если для текущего пользователя отсутствуют права на чтение или запись, то необходимо их добавить.

Проверка прав доступа к каталогу

Проверка прав доступа к каталогу

Специалист компании «Кодерлайн»

Айдар Фархутдинов

Я
   pvase

07.08.19 — 08:37

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

&НаСервере

Процедура ИмяФайлаНачалоВыбораИзСпискаНаСервере(ИмяФайла)

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

    ТабличнйДок.Прочитать(СокрЛП(ИмяФайла));

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

На серверной версии не работает, выдает ошибку: «Каталог не обнаружен». Причем если база в файловом варианте — то ошибок нет. Сервер 1С стартует под моей учеткой. В чем может быть проблема?

Такая же обработка с тем же кодом но в обычной форме работает без проблем.

   piter3

1 — 07.08.19 — 08:38

В том,что ты не понимаешь особенностей

   piter3

2 — 07.08.19 — 08:38

Примеров и таких тем полно

   catena

3 — 07.08.19 — 08:39

Видимо нет такого каталога на сервере

   pvase

4 — 07.08.19 — 09:18

(3) Все бы хорошо, но это локальный компьютер, сервер локальный, запущенный под моей учеткой, учетка имеет доступ на каталог и папку, учетка входит в группу Админов на компьютере.

   piter3

5 — 07.08.19 — 09:18

(4) Не о том .на сервере нет C:

так понятнее?

   Индиго

6 — 07.08.19 — 09:20

(4)Поставь точку останова на строке с ошибкой  и посмотри в табло значение «ИмяКомпьютера()»

Может прольется свет:-)

   sqr4

7 — 07.08.19 — 09:31

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

   pvase

8 — 07.08.19 — 09:37

(7) Вот что пишет, я даже не могу понять как такое может быть:

ИмяКомпьютера()    «AGPTESTENV»    Строка

СтрокаСоединенияИнформационнойБазы()    «Srvr=»AGP-VPE:2241″;Ref=»test_forms»;»    Строка

   pvase

9 — 07.08.19 — 09:39

Реально база создана на AGP-VPE:2241

а ИмяКомпьютера() = «AGPTESTENV» Как такое может быть? На сервере AGPTESTENV нет базы «test_forms» она есть только на AGP-VPE.

   Cyberhawk

10 — 07.08.19 — 09:39

рпхост может быть на другом хосте, нежели менеджер кластера

   Индиго

11 — 07.08.19 — 09:39

(9)Значит сервер приложений там

   Cyberhawk

12 — 07.08.19 — 09:40

Автор кончай уже бакланить — передавай файл на сервер и там насилуй как хочешь, либо делай все это на клиенте

   pvase

13 — 07.08.19 — 10:06

Все вспомнил. Это когда-то я тестировал работу двух отдельных серверов с одного кластера 1С. Все было хорошо и в один прекрасный день 1С-ка решила запускать rphost на другом дополнительном сервере. Вот такие дела, всем спасибо за помощь.

   pvase

14 — 07.08.19 — 10:08

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

  

pvase

15 — 07.08.19 — 10:12

Вот что я сделал и забыл об этом: https://ibb.co/c1SbmxJ

TurboConf — расширение возможностей Конфигуратора 1С

Содержание:

1.       Неверно указанный путь к папке или файлу

2.       У пользователя недостаточно прав доступа

Ошибка «Каталог не обнаружен» в 1С

Ошибка «Каталог не обнаружен» в 1С  

1.    Неверно указанный путь к папке или файлу

1С:Предприятие 8.3 – это довольно сложная система, поддерживающая множество инструментов и механизмов. Одним из этих механизмов является работа с каталогами (папками).

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

Наиболее частая причина возникновения этой ошибки программы 1С – неверно указанный путь к папке или файлу.  

2.    У пользователя недостаточно прав доступа

Чуть реже ошибка доступа к каталогу встречается, когда у пользователя недостаточно прав доступа к тому или иному каталогу.

Представим ситуацию: пользователь подключился при помощи RDP к удаленной базе, и решил сохранить документ сразу на свой компьютер.

Если при интернет подключении к удаленному рабочему столу пользователь не расшарил (не дал доступ) свои локальные ресурсы, то на сервере они будут не доступны, и возможности сохранить данные на них не будет. Соответственно при попытке указать путь к локальному каталогу, система будет выдавать ошибку «Каталог не обнаружен».

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

Подключение локального диска к удаленному рабочему столу

Подключение локального диска к удаленному рабочему столу

А если каталог доступен, но данная ошибка все равно появляется, стоит проверить права доступа к каталогу. Если для текущего пользователя отсутствуют права на чтение или запись, то необходимо их добавить.

Проверка прав доступа к каталогу

Проверка прав доступа к каталогу

Специалист компании «Кодерлайн»

Айдар Фархутдинов

Я
   pvase

07.08.19 — 08:37

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

&НаСервере

Процедура ИмяФайлаНачалоВыбораИзСпискаНаСервере(ИмяФайла)

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

    ТабличнйДок.Прочитать(СокрЛП(ИмяФайла));

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

На серверной версии не работает, выдает ошибку: «Каталог не обнаружен». Причем если база в файловом варианте — то ошибок нет. Сервер 1С стартует под моей учеткой. В чем может быть проблема?

Такая же обработка с тем же кодом но в обычной форме работает без проблем.

   piter3

1 — 07.08.19 — 08:38

В том,что ты не понимаешь особенностей

   piter3

2 — 07.08.19 — 08:38

Примеров и таких тем полно

   catena

3 — 07.08.19 — 08:39

Видимо нет такого каталога на сервере

   pvase

4 — 07.08.19 — 09:18

(3) Все бы хорошо, но это локальный компьютер, сервер локальный, запущенный под моей учеткой, учетка имеет доступ на каталог и папку, учетка входит в группу Админов на компьютере.

   piter3

5 — 07.08.19 — 09:18

(4) Не о том .на сервере нет C:

так понятнее?

   Индиго

6 — 07.08.19 — 09:20

(4)Поставь точку останова на строке с ошибкой  и посмотри в табло значение «ИмяКомпьютера()»

Может прольется свет:-)

   sqr4

7 — 07.08.19 — 09:31

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

   pvase

8 — 07.08.19 — 09:37

(7) Вот что пишет, я даже не могу понять как такое может быть:

ИмяКомпьютера()    «AGPTESTENV»    Строка

СтрокаСоединенияИнформационнойБазы()    «Srvr=»AGP-VPE:2241″;Ref=»test_forms»;»    Строка

   pvase

9 — 07.08.19 — 09:39

Реально база создана на AGP-VPE:2241

а ИмяКомпьютера() = «AGPTESTENV» Как такое может быть? На сервере AGPTESTENV нет базы «test_forms» она есть только на AGP-VPE.

   Cyberhawk

10 — 07.08.19 — 09:39

рпхост может быть на другом хосте, нежели менеджер кластера

   Индиго

11 — 07.08.19 — 09:39

(9)Значит сервер приложений там

   Cyberhawk

12 — 07.08.19 — 09:40

Автор кончай уже бакланить — передавай файл на сервер и там насилуй как хочешь, либо делай все это на клиенте

   pvase

13 — 07.08.19 — 10:06

Все вспомнил. Это когда-то я тестировал работу двух отдельных серверов с одного кластера 1С. Все было хорошо и в один прекрасный день 1С-ка решила запускать rphost на другом дополнительном сервере. Вот такие дела, всем спасибо за помощь.

   pvase

14 — 07.08.19 — 10:08

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

  

pvase

15 — 07.08.19 — 10:12

Вот что я сделал и забыл об этом: https://ibb.co/c1SbmxJ

Пользователь не знает, чего он хочет, пока не увидит то, что он получил.
Э. Йодан

ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку «Обновить» в браузере.

Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.

Shokoladnaj

3 / 3 / 2

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

Сообщений: 162

1

Создание каталога/каталог не обнаружен

08.11.2017, 16:41. Показов 27027. Ответов 7

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


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

Создание каталога/каталог не обнаружен

{Обработка.ВыгрузкаАлиментовЧерезКБ.Форма.ФормаУпр авляемая.Форма(342)}: Ошибка при вызове метода контекста (Записать)
Эксп.Записать(ИмяФайлаКБ,КодировкаТекста.OEM);
по причине:
Каталог не обнаружен ‘E:Usersds_bvsDocumentsБрезицкийБПС_Н.txt’

Эксп.Записать(ИмяФайлаКБ,КодировкаТекста.OEM);//вот до сюда доходит, и на след шаге ошибка
ФайлВыгрузки=Новый Файл(ИмяФайлаКБ);

1C
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
&НаСервере
Процедура ВыгрузкаНаСервере()
    СпискиЛюдейПоБанкам=СформироватьСпискиЛюдейПоБанкамНаСервере();
    Для каждого эБанк Из СпискиЛюдейПоБанкам Цикл
        Если эБанк.Значение[0].Банк.ФорматнаяСтрокаВыгрузки="Приор банк" Тогда
            ВыгрузкаПриорБанк(эБанк.Значение[0].Банк,эБанк);
            Продолжить;
        КонецЕсли; 
        
        Если эБанк.Значение[0].Банк.ФорматнаяСтрокаВыгрузки="Белинвестбанк" Тогда
            ВыгрузкаБелинвестбанк(эБанк.Значение[0].Банк,эБанк);
            Продолжить;
        КонецЕсли;
 
        Эксп=Новый ТекстовыйДокумент; 
        ИмяФайла=СокрЛП(эБанк.Значение[0].Банк.ИмяФайлаВыгрузки);
        Если ИмяФайла="" Тогда
            ИмяФайла="zarplata";
        КонецЕсли; 
        ИмяФайлаКБ = КаталогВыгрузкиКлиентБанк + ""+ИмяФайла+СокрЛП(НомерВедПеречисления)+".txt";
        ФайлПроверки = Новый Файл(ИмяФайлаКБ);
        Если ФайлПроверки.Существует() Тогда
            Эксп.Прочитать(ИмяФайлаКБ);
        КонецЕсли;                                                                                                   
        Если Эксп.КоличествоСтрок() > 0 Тогда
            СчетчикСтрок=1;
            ПОка СчетчикСтрок<=Эксп.КоличествоСтрок() Цикл
                Эксп.УдалитьСтроку(СчетчикСтрок-1);
            КонецЦикла;   
            //Эксп.Очистить();
        КонецЕсли;
        ТзСортировки=Новый ТаблицаЗначений;
        ТзСортировки.Колонки.Добавить("ПолучательПлатежа");
        ТзСортировки.Колонки.Добавить("ЛицевойСчет");
        ТзСортировки.Колонки.Добавить("Выплачено");
        ТзСортировки.Колонки.Добавить("Признак");
        НомерСчет=1;
        Для Каждого СтрЗП Из эБанк.Значение Цикл  
            Если СтрЗП.Выплачено>0 Тогда
                //Эксп.ДобавитьСтроку(ВремСтр+Строка(НомерПП)+" "+ВРег(Строка(Стр.Физлицо))+ВремСтр2+стр.ЛицевойСчет+ВремСтр3+ВВыплачено);
                //НомерПП=НомерПП+1;
                
                НоваяСтрока="";
                СтрокаВыполнить="";
                физлицо=СокрЛП(СтрЗП.ПолучательПлатежа.Наименование);
                ЛицевойСчет=СокрЛП(СтрЗП.ЛицевойСчет);
                Сумма=СтрЗП.Выплачено;
                НомерПП=Строка(НомерСчет);
                ПозицияПробела=Найти(ЛицевойСчет," ");
                Если ПозицияПробела=0 И Найти(СтрЗП.Банк.ФорматнаяСтрокаВыгрузки,"КодВклада")>0 Тогда
                    НомерСчет=НомерСчет+1;
                    Продолжить;
                КонецЕсли; 
                КодВклада=СокрЛП(Лев(ЛицевойСчет,ПозицияПробела-1));
                ЛицевойБезКодаВклада=СокрлП(Прав(ЛицевойСчет,СтрДлина(КодВклада)+2));
                
                СтрокаВыполнить="";
                ФорматнаяСтрока=СокрЛП(СтрЗП.Банк.ФорматнаяСтрокаВыгрузки);
                //"СтрокаВыполнить=" "+НомерПП+" "+ВРЕГ(физлицо)+" "+ЛицевойСчет+" "+СтрЗаменить(Формат(Сумма,"ЧДЦ=2; ЧРД=."),"*","")"
                //СтрокаВыполнить=НомерПП+ЛицевойСчет+ВРЕГ(физлицо)+","+СтрЗаменить(Сумма,"*","") 
                
                //СтрокаВыполнить="   1"+Лев(Физлицо+"                                               ",46)+Лев(ЛицевойСчет+"           ",11)+Прав("          "+СтрЗаменить(Сумма,"*",""),10)+".00 1"
                Попытка
                    Выполнить(ФорматнаяСтрока);
                Исключение
                    Сообщить("Неверно задана форматная строка в банке, проверьте правильность форматной строки выгрузки и повторите попытку");
                    Возврат;
                КонецПопытки;
                Эксп.ДобавитьСтроку(СтрокаВыполнить);
                НомерСчет=НомерСчет+1;
            КонецЕсли;
            
        КонецЦикла;
        Эксп.Записать(ИмяФайлаКБ,КодировкаТекста.OEM);//вот до сюда доходит, и на след шаге ошибка 
        ФайлВыгрузки=Новый Файл(ИмяФайлаКБ);
    КонецЦикла;
 
КонецПроцедуры

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

0

Эксперт 1С

434 / 305 / 92

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

Сообщений: 1,247

08.11.2017, 17:42

2

Shokoladnaj, База серверная?

1

1121 / 674 / 196

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

Сообщений: 5,092

Записей в блоге: 1

08.11.2017, 21:25

3

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

Каталог не обнаружен ‘E:Users

ну так на сервере нет такого каталога, видать.
даже если база файловая, то там всё равно может не быть диска Е
ошибка именно в этом. у вас адрес — на вашем диске, на клиенте.
а процедура — на сервере, и диск/каталог ищет на сервере, соответственно. а его там нет.

1

3 / 3 / 2

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

Сообщений: 162

09.11.2017, 09:52

 [ТС]

4

Yulunga, Вот именно, что есть такой диск, на толстом клиенте же все работает, хотя код аналогичный, вы имеете ввиду, что процедуру на клиенте нужно делать?

Добавлено через 6 минут
Phil, Да, серверная

Добавлено через 6 минут
Yulunga, а как сделать, что-бы не на сервере искала?

0

Эксперт 1С

434 / 305 / 92

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

Сообщений: 1,247

09.11.2017, 09:58

5

Лучший ответ Сообщение было отмечено Shokoladnaj как решение

Решение

Shokoladnaj,
Там где физически расположена база нет такого пути: E:Usersds_bvsDocumentsБрезицкий

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

Добавлено через 1 минуту
Посмотрите, есть куча примеров как на УФ создавать и выгружать в файл txt

1

3 / 3 / 2

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

Сообщений: 162

10.11.2017, 16:09

 [ТС]

6

Phil, окей, например сделаю не на сервере, но вот вопрос не по теме, но как списокЗначений с сервера на клиент передать, там ошибка отсутствует отображения типов, пробую и через структуру и через хранилища данных?

Добавлено через 1 час 12 минут
Все, вопрос решен, можно передать текстовый документ на клиент, и там уже записать

0

1121 / 674 / 196

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

Сообщений: 5,092

Записей в блоге: 1

10.11.2017, 16:31

7

капец. какой текстовый документ. а нукася не будет доступа к записи на диск, что тогда ?
структура, массив, соответствие.

1

3 / 3 / 2

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

Сообщений: 162

13.11.2017, 09:27

 [ТС]

8

Yulunga, Да, передается структура, структура состоит из пути и текстового документа.

Добавлено через 1 минуту
Yulunga, если не будет доступа на диск, тоесть проверка какая-то нужна?

0

Показывать по
10
20
40
сообщений

Новая тема

Ответить

Jonnycage

Дата регистрации: 03.10.2006
Сообщений: 29

Всем доброго времени суток.

Бухгалтерия 8 (3.0.50.19), платформа (8.3.9.2233). Номера релизов роли не играют!
Есть два сервера 2008R2. На одном сервере (S1) установлена MS SQL Server 2008R2. На втором сервере (S2) установлен 1С сервер предприятия 8 на котором заведены базы 1С Бухгалтерия 8. Клиент с рабочей станции (S3) загружается клиентом в 1С Бухгалтерию. На всех машинах версия 1С одинаковая.
При попытке загрузить в 1С файл выгрузки из другой программы или выгрузить себе из 1С Бухгалтерии файл выгрузки, себе на локальный диск, получат сообщение, что каталог не обнаружен. Хотя такой каталог на компьютере пользователя есть, при загрузке — сообщение такое-же.
Путём экспериментов выяснилось, что SQL-ная бухгалтерия ищет этот каталог, на Сервере S2, а не на компьютере пользователя.
Как заставить программу искать и выгружать файлы не на Сервер 1С предприятия, а на локальные диски пользователей?

Gars

Дата регистрации: 28.05.2007
Сообщений: 207

Надо расшарить в сети путь к своему локальному ресурсу и при выгрузке/загрузке файла пользоваться сетевым окружением.
Или наоборот — на сервере создать папку доступную в сетевом окружении, туда выгружать/загружать, а потом с локального компьютера туда кидать и забирать файлы.

Prikum

активный пользователь

офлайн

Дата регистрации: 18.02.2002
Сообщений: 20835

Jonnycage, У Вас код выполняется на сервере, скорее всего.

Показывать по
10
20
40
сообщений

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

Программисты и системные администраторы из компании «Одна Система» готовы быстро решить все проблемы на выгодных условиях, так что мы ждем ваших звонков по телефону +7(495)240-8668.

Если вовремя не принять меры, то возникнут существенные проблемы:

  • ограничение доступа к важным файлам и документам;
  • снижение эффективности рабочего процесса;
  • наращивание существующих проблем.

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

Работа с базами данных и каталогами.

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

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

Выделяют несколько распространенных проблем в работе:

  • несоответствие расширений файлов;
  • повреждение файлов во время работы;
  • неправильное использование шаблонов;
  • ошибки при заполнении и так далее.

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

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

Наши специалисты в кратчайший срок проведут анализ и установят причины неисправности. Вам не придется больше мириться с задержками, если позвоните по телефону +7(495)240-8668 в компанию «Одна Система»!

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

Пытаюсь на 8.3 в управляемых формах на клиенте прочитать файл: Выдает ошибку: {ВнешняяОбработка.Загрузка_приходных_накладных_в_1С_8_2.МодульОбъекта}: Ошибка при вызове метода контекста (Прочитать)     Текст.Прочитать(ВыбФайл); по причине: Файл не обнаружен ‘C:ВО_200114.txt’ Но файл там 100% есть! Помогите

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

не гарантирует наличия файла там, где его ищут, а не там, где ты его положил

процедура сия у тя случаем не на сервере ли выполняется ?

, реально! положил сюда  nbnbхламВО_200114.txt => прочитал. А почему с моего диска С не хочет читать?

потому что на сервере нет твоего диска

диск С скорее всего есть а вот файла скорее всего нет

, тоже пишет что не найден… ,, так получается он ищет диск С не моего компьютера, а на сервере, где база sql крутится? хотя я запускаю 1с через толстого клиента со своего компа..

«C:ВО_200114.txt». Да с безопасностью такого решения все плохо.

Пришли весь код функции которая у тя читает файл

Если команда выполняется на сервере, то вполне логично, что и файл ищется на сервере. И скорее не на сервере SQL, а на сервере 1С.

уже давно в корень дисков класть ничего нельзя…

Ну все понятно. Серверная процедура.

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

Чаще, синтакс — помошника читать надо ))

>МодульОбъекта это непропиваемый опыт и внимательность, а не телепатизм

От блин, а я не заметил ))

твоим следующим вопросом, по-идее, должно быть такое — почему со своего компьютера файл читается, а с компьютера Афанасия Мухтаровича — нет. Я подожду

, блин, так я еще и подсказку оказывается изначально уже дал))) , это тут не причем

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

взял попкорн уселся поудобней

, Интригант? о_О вот, смотрите в , там «nbnbхламВО_200114.txt» — это и есть компьютер Григория. И все отлично считалось.

оказалось не 100%, а 0%

Ну правильно, сервер свою папку «хлам» видит, пусть даже по сетевому пути.

без разницы, все равно он ее видит.

, то есть вы хотите сказать, что те папки, которые видны с сервера будут считываться, а те что не видны  — нет. Это я понимаю. Решение вижу только два: открывать им доступ с сервера или выполнять метод Прочитать «&наклиенте».

В вэб-клиенте вопрос: Передать файл на сервер nbnbхламВО_200114.txt ?  Ура я нашел модальное окно, в режиме использования модальности — не использовать. 8.3.4.389

откатываемся обратно по окнам?

Тэги: 1С 8

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

Описание ошибки:
Обнаружена при разработке обработки для изменения содержимого файла формата XML в серверной базе 1С 8 в режиме управляемого приложения. При тестировании на сервере ошибка не возникала. Проявила себя при работе на рабочем месте пользователя.

Найденные решения:

1С 8 ошибка файл не обнаружен при чтении файла

По факту ошибка возникала при выполнении метода «Прочитать()» для объекта «ТекстовыйДокумент». Как было отмечено, при тестировании работы обработки непосредственно на сервере данной ошибки не возникало. Она проявила себя уже при попытке работы на другом рабочем месте. Обработка разрабатывалась для конфигурации 1С: Комплексная автоматизация 8, ред. 2, которая работает в режиме управляемого приложения — это необходимо отметить. Т.к. это проясняет причины возникновения проблемы.

По привычке разместил операции по чтению содержимого текстового файла и извлечению его содержимого на стороне сервера — см. «&НаСервере» перед процедурой «ОбрабткаНаСервере()». Клиент-серверная архитектура платформы 1С: Предприятие 8.3, казалось бы, к этому обязывала. 

1с 8.3 при чтении файла пишет, выводит ошибку: Файл не обнаружен

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

Но, как оказалось позже — конструктор «Новый ТекстовыйДокумент», методы «Прочитать()», «ПолучитьТекст()» — все они доступны не только на стороне сервера, но и на стороне тонкого и толстого клиента. Поэтому замена директивы «&НаСервере» на «&НаКлиенте» решила проблему.

1С 8 Ошибка при вызове метода контекста (Прочитать)

Если по какой-то причине окажется, что я не совсем ясно объяснил суть проблемы, то вот еще обсуждение на форуме mista.ru, где данная пробелма обсуждается несколько другими словами: 1с 8.3 при чтении файла пишет: Файл не обнаружен

Оцените, помогло ли Вам предоставленное описание решения ошибки?




© www.azhur-c.ru 2014-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.

02-11-2020

Журавлев А.С.
(Сайт azhur-c.ru)

Цитата: vitasw от 19 апр 2016, 15:16
Пробелы лишние поубирайте

В этом случае распознает только в формате csv. И ошибка все так же остается.

Добавлено: 19 апр 2016, 15:46


Ошибка была решена путем копирования обработки. В копии ошибки нет.

Добавлено: 20 апр 2016, 09:34


Вобщем, побороть ошибку не удалось, она все равно возникает. Посмотрите пожалуйста, в этой части кода есть какие-нибудь грубые ошибки? Я не нашла, СП пишет, что ошибок нет… Но она все равно возникает.

СЗ_ВыбораЛистов=Новый СписокЗначений();

DocExcel=ПолучитьCOMОбъект(ИмяФайла);
Для i=1 По DocExcel.Sheets.Count Цикл
НомерЛиста=i;
НазваниеЛиста=СокрЛП(DocExcel.Sheets(i).Name);
СЗ_ВыбораЛистов.Добавить(НомерЛиста,НазваниеЛиста);
КонецЦикла;

НомерЛиста=СЗ_ВыбораЛистов.ВыбратьЭлемент("Выберите лист Excel файла...");
// чтение
ЗагружаемыйФайл = Новый ТекстовыйДокумент;
ЗагружаемыйФайл.Прочитать(ИмяФайла);

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

Текст ошибки:


{Форма.Форма.Форма(52)}: Ошибка при вызове метода контекста (Прочитать)
ЗагружаемыйФайл.Прочитать(ИмяФайла);
по причине:
Ошибка совместного доступа к файлу 'C:UsersDenisenkoYuADesktopОбработка загрузка ценШаблонЗагрузкиЦен.csv'

  • Ошибка при вызове метода контекста получитьизвременногохранилища 1с
  • Ошибка при вызове метода контекста просклонять ошибка внешней компоненты
  • Ошибка при вызове метода контекста получитьcomобъект
  • Ошибка при вызове метода контекста произвестичтениеданных
  • Ошибка при вызове метода контекста получить ссылку