Исправление ошибки доступа к файлу
Во время работы с программами 1С пользователи 1С Бухгалтерия или других типовых конфигураций на базе платформы 1С Предприятие получают сообщение об «Ошибке режима доступа к файлу» либо об «Ошибке совместного доступа к файлу». Это критическая ошибка, которая не позволяет использовать программу в штатном режиме. Но устранить ее достаточно просто не прибегая к услугам 1С-сервисов, которые предоставляют технические консультации по вопросам использования приложений.
Описание ошибки и способ ее устранения
Сама суть ошибки указана в системном сообщение, которое выдает программа. В случае «ошибки режима доступа» имеет место нарушение прав пользователя, прописанных в операционной системе на компьютере. Чаще всего подобное возникает в случае, если база данных была скопирована и подключена, а после запуска на экране появилось сообщение с указанием адреса объекта в локальной сети.
Чтобы исправить права доступна, необходимо открыть окно Свойства файла с базой данных. После этого найти в нем папку «Общий доступ» и проконтролировать сделанные там настройки. Доступ должен быть открыт для текущего пользователя Windows. Причем как на чтение файла, так и на запись изменений в него.
Если база данных находится не в сети, а на локальном компьютере, соответствующие права доступа размещаются на вкладке «Безопасность». Необходимо удостоверится в том, что в правах не отменено разрешение на запись данных в файл.
Кроме того, ошибки могут возникать и по другим причинам:
- Изменение настроек штатного брандмауэра операционной системы или сторонней программы, которая выполняет аналогичные функции;
- Неправильная настройка антивирусных программ, которые могут блокировать сетевые соединения к определенным объектам.
Чтобы устранить проблему, необходимо добавить файл с базой данных в исключения этих приложений, устранив блокировку.
Иногда проблема с программами 1С может быть связана с кэшем. В этом случае в диалоговом окне указывается путь доступа к папке TEMP. Решить проблему помогает удаление файлов из этой папки.
У неопытных пользователей ошибка доступа к файлу может быть обусловлена попыткой запуска сразу двух приложений на базе 1С Предприятие. Например, 1С ЗУП и 1С Бухгалтерия, одна из которых была базовой.
Если попытки справиться с проблемой не привели к положительному результату или у вас появились другие вопросы, связанные с использование программ и обновлением 1С, обращайтесь за помощью к специалистам компании «ГК в Приоритете». Телефоны для связи указаны в разделе «Контакты».
- Permalink
Загрузка файла в хранилище значений через управляемые формы осложняется тем, что реквизит с типом Хранилище значения недоступен в данных формы. То есть работать с ним напрямую не получится.
Начиная с версии 1С:Предприятие 8.3.15, доступна процедура НачатьПомещениеФайлаНаСервер(). Она позволяет с помощью диалога выбрать файл на клиенте и поместить его во Временное хранилище, чтобы потом на сервере поместить файл в Хранилище значения.
Рассмотрим пример работы с этой процедурой.
Во-первых, нам понадобится реквизит управляемой формы АдресВХранилище. Туда будет записан адрес файла во временном хранилище. Этот реквизит мы сможем прочитать и на клиенте, и на сервере.
После этого создаем кнопку, команду и процедуру НаКлиенте, которую вызывает эта кнопка (кнопку можно заменить на другой элемент управления). В процедуре размещаем следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
&НаКлиенте Процедура ЗагрузитьПодпись(Команда) Фильтр = «Все картинки (*.bmp;*.dib;*.rle;*.jpg;*.jpeg;*.tif;*.gif;*.png;*.ico;*.wmf;*.emf)|*.bmp;*.dib;*.rle;*.jpg;*.jpeg;*.tif;*.gif;*.png;*.ico;*.wmf;*.emf|» + «Формат bmp (*.bmp;*.dib;*.rle)|*.bmp;*.dib;*.rle|» + «Формат JPEG (*.jpg;*.jpeg)|*.jpg;*.jpeg|» + «Формат TIFF (*.tif)|*.tif|» + «Формат GIF (*.gif)|*.gif|» + «Формат PNG (*.png)|*.png|» + «Формат icon (*.ico)|*.ico|» + «Формат метафайл (*.wmf;*.emf)|*.wmf;*.emf|»; Диалог = новый ПараметрыДиалогаПомещенияФайлов(«Выберите файл с подписью», Ложь, Фильтр); Оповещение = новый ОписаниеОповещения(«ПослеЗакрытияДиалогаВыбораПодписи», ЭтаФорма); НачатьПомещениеФайлаНаСервер(Оповещение,,,, Диалог, УникальныйИдентификатор); КонецПроцедуры |
Здесь мы задали фильтр на тип (расширение) файла, в данном случае выбираем картинки всевозможных форматов. После этого создали Диалог помещения файла, где указали заголовок диалогового окна, запретили множественный выбор (второй параметр — Ложь) и установили заранее подготовленный фильтр. Далее создаем Описание оповещения, которое указывает на процедуру в модуле данной формы, которая будет вызвана после помещения файла во временное хранилище. При желании можно отдельными описаниями оповещения указать процедуры, которые будут вызываться в ходе выполнения помещения файла во временное хранилище, а также непосредственно перед помещением.
И, наконец, начинаем помещение файла на сервер. При этом вызывается диалоговое окно выбора файла с теми параметрами, которые мы указали.
Теперь создадим процедуру, которую будем вызывать после завершения помещения файла во временное хранилище:
&НаКлиенте Процедура ПослеЗакрытияДиалогаВыбораПодписи (ОписаниеФайла, ДопПараметры) Экспорт Если ОписаниеФайла.ПомещениеФайлаОтменено ТОгда Возврат; КОнецЕсли; АдресВХранилище = ОписаниеФайла.Адрес; КонецПроцедуры |
Как обычно, асинхронный метод НачатьПомещениеФайлаНаСервер() возвращает результат и дополнительные параметры. В качестве результата возвращается переменная с типом ОписаниеФайла. Дополнительные параметры мы в нашем примере не задавали.
В первую очередь проверяем, не была ли отменена процедура помещения файла во временное хранилище. Если была, прерываем дальнейшие действия. Если же все прошло хорошо, то записываем адрес временного хранилища в реквизит формы АдресВХранилище.
Теперь осталось только перед записью объекта получить файл из временного хранилища и поместить его в реквизит с типом ХранилищеЗначения.
&НаСервере Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи) Если ЭтоАдресВременногоХранилища(АдресВХранилище) ТОгда ТекущийОбъект.Подпись = новый ХранилищеЗначения(ПолучитьИзВременногоХранилища(АдресВХранилище)); КонецЕсли; КонецПроцедуры |
Используем обработчик события формы ПередЗаписьюНаСервере. Сначала проверяем, является ли содержимое реквизита формы АдресВХранилище адресом временного хранилища. Если да, то стандартным способом получаем файл из временного хранилища и записываем в реквизит. В нашем случае реквизит называется Подпись.
В этой статье мы расскажем об ошибке доступа к файлу 1с. Как решить возникшую проблему, что это за баг и еще немного об этом.
Ошибка доступа к файлу 1C 8.3
«1С: Предприятие» — система программ для автоматизации, улучшения и упрощения деятельности различных сфер компании, начиная от бухгалтерии и заканчивая учетом. 1С: возможности при правильной настройке безграничны . Для предпринимателя — нужно найти хороших программистов.
Нет ни одной программы в современном мире, как бы хороша она не была без ошибок и проблем. Такое случается и с нашим приложением. В ряде случаев виноват в этом криворукий программист. Многие проблемы вы не сможете решить без его участия, но некоторые, вам подсилу и самому.
Причины возникновения
Случается, что люди, которые используют данную прогу сталкиваются с проблемой при запуске программы.
Способы решения
По наименованию явившегося бага поймем что происходит с системой — нет прав для доступа к файлу. Такое случается если юзер создает копию базы и подключает ее. Также ошибка бывает в результате попытки открыть файл по сетевому доступу.
Первостепенное что мы делаем в таком случае — проверяем доступ к файлу. Правая кнопка мыши по файлу -> проверяем стоит ли галочка на «Общий доступ».
Взгляните на права пользователя под которым вы зашли в систему виндоус. У вас должны быть права и на чтение файлов и на запись.
Когда данные к которым нужно получить доступ (база) находится на удаленном (локальном) персональном компьютере — смотрим закладку «Безопасность». В безопасности вы должны убедиться что у пользователя нет запрета на запись.
Предупреждения о проблемах вылазят когда возмущается брандмауэр. Это касается сетевых объектов. Антивирусные программы препятствуют нормальной работе.
Открываем брандмауэр и антивирус и ищем в списке блокируемых программ 1С. Удаляем из списка.
Почистите кеш, ошибки также возникают из-за кеша.
Большой шанс появления ошибки, когда два синонимичных приложения запускаются вместе. К примеру, ЗУП и Бухгалтерия. Если запустить по очереди, проблема исчезнет
Дополнительный способ
Ничего не помогло — воспользуйтесь следующими методами:
Путь к имени файла должен быть допустимым в каталоге отчетов: щелкните вкладку «Вывод». Перейдите на вкладку «Параметры вывода». В поле Имя файла убедитесь, что путь действителен.
Сколько дискового пространства доступно для файла: Откройте Windows Explorer. Выберите Локальный диск (буква диска:), на котором хранится отчет. Щелкните правой кнопкой мыши на локальном диске (буква диска:) и нажмите Свойства. Откроется окно свойств. Проверьте доступное свободное пространство на этом локальном диске.
Убедитесь, что у пользователя есть разрешения на доступ к папке IO_Data: Откройте проводник Windows. Щелкните правой кнопкой мыши основную папку выберите «Свойства».
Перейдите на вкладку «Безопасность». Убедитесь, что у пользователя есть полные права на эту папку и все подпапки. Если вы не можете проверить права доступа, обратитесь к администратору.
65918
Руководитель Центра
сопровождения 1С
28 февраля 2019
Обслуживание 1С
Актуальность проверена: 26.01.2023
Получить консультацию
Бесплатно
Обслуживание 1С
Помощь персонального менеджера, оперативность сдачи отчетности, соответствие законодательству РФ
Иногда пользователь программы 1С может столкнуться с сообщениями программы «Ошибка режима доступа к файлу 1С»…
…а также «Ошибка совместного доступа к файлу» 1С 8.3.
Само название ошибки уже говорит пользователю о случившемся: в первом случае – о нарушении прав доступа. Такое сможет случиться, когда пользователь скопировал информационную базу, подключил, а при открытии по сети всплыла такого рода ошибка с указанием сетевого пути к объекту. В этом случае, первое, на что сразу надо обратить внимание – на права доступа, щелкнув правой кнопкой на свойства объекта. Нажав кнопку «Общий доступ», проверить настройки.
Доступ пользователя Windows, который запустил сеанс программы 1С, должен быть не только на чтение, но и на запись.
Если база располагается на локальном ПК, необходимо проверить на закладке «Безопасность», что для пользователя установлено разрешение на запись или не стоит запрет на запись.
Предупреждение о проблемах с совместным доступом с указанием пути к конкретному объекту, кроме сбоя сетевых настроек, может быть следствием предустановок брандмауэра, антивирусных программ, которые стопорят сетевые подключения. Необходимо открыть их настройки и посмотреть, не будет ли 1С в списке заблокированных программ. Если это так, следует удалить ее из списка или добавить файл информационной базы 1С в исключения, предотвратив его блокировку.
Если при возникновении ошибки система указывает на временные файлы, например C:Users…AppDataLocalTemp, то очистка кэш может решить проблему с ошибкой.
Высока вероятность появления такой ошибки – при одновременном запуске двух программ (ЗУП и Бухгалтерии), одна из которых была базовой версией. Когда программы запустили по очереди, ошибка не появлялась.
Для решения проблемы с ошибкой доступа, как видите, потребуется немного времени, главное – понять причину и исключить ее повторение.
Другие статьи по теме
Обновления 1С
Как обновить 1С самостоятельно. Рассмотрим пошаговые действия для обновления типовой конфигурации 1С:Предприятия 8 на примере 1С:Бухгалтерии 3.0.
Настройка 1С Бухгалтерия 8.3 с нуля
Настройка 1С:Бухгалтерия позволят задать программе конкретную функциональность, выбрать варианты ведения учета, ввести ряд конкретных значений и параметров.
Установка 1С
Начинающие пользователи программ, разработанных на платформе «1С:Предприятие», подойдя к моменту покупки «коробки» или уже приобретя ее, естественно задаются вопросом: «Как установить 1С Предприятие?»…
Ошибка совместного доступа к файлу 1C в 8.3
Ошибка, сообщающая о проблеме с доступом к файлу или совместном доступе к файлу — та неприятность, с которой нередко сталкиваются пользователи 1C 8.3. Сейчас мы расскажем о причинах появления этого бага и о том, как его устранить.
Права пользователя
Понять, с чем связана та или иная ошибка, можно по самому названию. Соответственно, надо удостовериться, что дело не в нарушении прав доступа. Ошибка с указанием сетевого пути вылезает при попытке открытия информационной базы по сети после того, как пользователь скопировал и подключил ее.
Рекомендуем проверить настройки прав доступа:
1. нажмите правой кнопкой мыши на ярлык информационной базы и откройте «Свойства»;
2. нажмите на «Общий доступ»;
3. если в настройках доступ указан лишь к чтению объекта, то надо дать разрешение и на запись.
Что касается информационной базы, расположенной на локальном ПК, то здесь необходимо удостовериться, что на вкладке «Безопасность» стоит разрешение на запись.
Настройки блокирования
Причиной нарушения совместного доступа могут служить настройки брандмауэра и антивируса, стопорящих сетевые подключения. Чтобы понять, так ли это, надо зайти в их настройки и посмотреть, имеется ли 1C в перечне заблокированных программ. При положительном ответе 1C нужно удалить из списка и добавить в исключения, чтобы предотвратить в дальнейшем ее блокирование.
Хотим обратить ваше внимание, что самостоятельно заходить и изменять настройки антивирусных программ стоит лишь в исключительных случаях. Такие программы обеспечивают безопасность ваших данных. В случае нехватки опыта в данной сфере рекомендуем обратиться к специалистам, которые помогут вам снять блокировку 1C.
Чистка кэша
В ошибке может указываться путь к временным файлам. К примеру, C:Users…AppDataLocalTemp. В таком случае советуем прибегнуть к очистке кэша.
Повышенный риск возникновения данной ошибки отмечается при единовременном запуске двух программ (ЗУП и Бухгалтерии), одна из которых является базовой версией. Если программы запускать поочередно, то ошибка не появится.
Заключение
Как видно, чтобы решить проблему с ошибкой доступа, совершенно необязательно тратить много времени. Достаточно понять, в чем заключается причина, и сделать все возможное для исключения ее повторения.
Если по какой-то причине вам не удалось справиться с проблемой, или же у вас возникли вопросы по использованию программ и обновлению 1C, то обратитесь к нашим специалистам.
Отзывы о компании
-
Сивелькина С. В.
ПАО «НИКО-БАНК» выражает свою благодарность за оперативную и грамотную работу.
В условиях постоянно меняющегося законодательства Банк заинтересован иметь полную и актуальную номативную базу. Это обеспечивается использованием Банком справочно-нормативной системы «Гарант».
Безусловным плюсом в работе компании «МастерСофт» является быстрое реагирование сотрудников при предоставлении документов по запросу Банка, принятых до обновления справочно-правовой системы.
-
Мордвинцев С. П.
Коллектив компании «АЭРОПОРТ ОРЕНБУРГ» выражает благодарность за взаимовыгодное сотрудничество с МастерСофт-ИТ. Оперативная поставка антивирусных программ Dr. Web обеспечила надежную защиту нашей компьтерной сети.
Особая благодарность сотрудникам Департамента продаж СЦ ИТ за профессиональный подход в решении всех возникающих задач.
-
Ряховская Н. А.
ООО «Орский Вагонный Завод» выражает искреннюю благодраность за качество обслуживания вашими специалистами. Консультации и поставка антивирусов всегда проходят оперативно и на высоком профессиональном уровне.
Уверены, что и в дальнейшем наше сотрудничество на взаимовыгодных условиях продолжится.
-
Кетерер Т. М.
Главный бухгалтер муниципального бюджетного учреждения дополнительного образования «Дворец творчества детей и молодёжи» Кетерер Татьяна Михайловна выражает благодарность специалистам МастерСофт:
«Я хотела бы объявить благодарность вашим сотрудникам. Работает с нами по программе «1С: Бухгалтерия бюджетного учреждения 8» непосредственно Шевлягина Юлия.
Так же огромная благодарность за отзывчивость, терпение и квалифицированную, своевременную помощь Набокиной Олесе и Ерёменко Татьяне (они нас сопровождают по программе «Зарплата и Кадры»).
Им очень с нами тяжело, но они терпеливо продолжают сотрудничать. С вами очень надёжно. Конечно же наши ошибки есть и без вас мы бы вообще о них не знали и в суде, наверное, судились бы. А сейчас мы решаем вопросы…».
Как выбрать файл, а затем переместить его (Ошибка совместного доступа к файлу). |
Я |
turrist
02.07.15 — 09:30
Задача: дать пользователю выбрать файл. Переместить выбранный файл в другой каталог.
Код кратко:
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Если ДиалогОткрытияФайла.Выбрать() Тогда
СтароеПолноеИмяФайла = ДиалогОткрытияФайла.ПолноеИмяФайла;
ДиалогОткрытияФайла = Неопределено;
ПереместитьФайл(СтароеПолноеИмяФайла, НовоеПолноеИмяФайла);
КонецЕсли;
Получаю ошибку: Ошибка совместного доступа к файлу.
Получается метод ДиалогОткрытияФайла.Выбрать() блокирует файл.
Как решить эту проблему?
ДенисЧ
1 — 02.07.15 — 09:33
Либо прав нет, либо кто-то ещё его держит
dsdred
2 — 02.07.15 — 09:35
1 Проверь уровень доступа к файлу (Если нет прав можно получить их FSO = Новый COMОбъект("Scripting.FileSystemObject"); FileFSO = FSO.GetFile(ИмяФайлаПриемника); FileFSO.Attributes=0;) 2 КопироватьФайл(ИмяФайлаИсточника, ИмяФайлаПриемника);
turrist
3 — 02.07.15 — 09:50
Права есть. файл доступен для удаления до вызова
ДиалогОткрытияФайла.Выбрать()
Блокировка снимается только после закрытия сессии 1С.
turrist
4 — 02.07.15 — 09:52
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Если ДиалогОткрытияФайла.Выбрать() Тогда
СтароеПолноеИмяФайла = ДиалогОткрытияФайла.ПолноеИмяФайла;
ДиалогОткрытияФайла = Неопределено;
FSO = Новый COMОбъект("Scripting.FileSystemObject");
FileFSO = FSO.GetFile(ФайлПользователяПолноеИмя);
FileFSO.Attributes=0;
ПереместитьФайл(СтароеПолноеИмяФайла, НовоеПолноеИмяФайла);
КонецЕсли;
Что это дает?
Проблема осталась.
turrist
5 — 02.07.15 — 09:53
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Если ДиалогОткрытияФайла.Выбрать() Тогда
СтароеПолноеИмяФайла = ДиалогОткрытияФайла.ПолноеИмяФайла;
ДиалогОткрытияФайла = Неопределено;
FSO = Новый COMОбъект("Scripting.FileSystemObject");
FileFSO = FSO.GetFile(СтароеПолноеИмяФайла);
FileFSO.Attributes=0;
ПереместитьФайл(СтароеПолноеИмяФайла, НовоеПолноеИмяФайла);
КонецЕсли;
Что это дает?
Проблема осталась.
Господин ПЖ
6 — 02.07.15 — 09:53
>Получается метод ДиалогОткрытияФайла.Выбрать() блокирует файл.
настроить Process Monitor и посмотреть что происходит
AllJoke
7 — 02.07.15 — 09:56
Если ДиалогОткрытияФайла.Выбрать() Тогда
СтароеПолноеИмяФайла = ДиалогОткрытияФайла.ПолноеИмяФайла;
ДиалогОткрытияФайла = Неопределено;
КонецЕсли;
ПереместитьФайл(СтароеПолноеИмяФайла, НовоеПолноеИмяФайла);
если так?
turrist
8 — 02.07.15 — 09:56
Господин ПЖ
9 — 02.07.15 — 09:57
(8) нету уже давно никакого filemon
turrist
10 — 02.07.15 — 09:59
(7) В полном коде у меня примерно так и есть.
Не то.
turrist
11 — 02.07.15 — 09:59
Лефмихалыч
12 — 02.07.15 — 10:05
(3) Выбрать() ни чего не блокирует. Просто у тебя там вокруг еще какой-то код есть, который ты не показываешь и который, собственно, виноват в просиходящем
stix2010
13 — 02.07.15 — 10:06
ПереместитьФайл() за конструкцию Выбрать(), не?
turrist
14 — 02.07.15 — 10:06
(12) ОК. Сейчас попробую выполнить краткий пример.
Господин ПЖ
15 — 02.07.15 — 10:06
(11) ага
turrist
16 — 02.07.15 — 10:07
(13) Да. Удаление файлов у меня отложено до других событий.
AllJoke
17 — 02.07.15 — 10:17
смотри код, у меня всё рабоатет, только я вот это
AllJoke
18 — 02.07.15 — 10:17
(+17) ДиалогОткрытияФайла = Неопределено; — закомментировал
AllJoke
19 — 02.07.15 — 10:19
(+18) да оно даже и не имеет значения.
turrist
20 — 02.07.15 — 10:28
(12) Выполнил тестовый пример.
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); Если ДиалогОткрытияФайла.Выбрать() Тогда// при этом блокирует выбранный файл СтароеПолноеИмяФайла = ДиалогОткрытияФайла.ПолноеИмяФайла; ДиалогОткрытияФайла = Неопределено; КонецЕсли; НовоеПолноеИмяФайла = СокрЛП(Константы.КаталогОбщихФайлов.Получить()) + "1.jpg"; ПереместитьФайл(СтароеПолноеИмяФайла, НовоеПолноеИмяФайла); Действительо работает! Буду дальше смотреть что его блокирует.
По результату отпишу.
Всем спасибо.
turrist
21 — 02.07.15 — 11:54
Опытным путем установил что блокировка файла происходит при выполнении
ДиалогОткрытияФайла.Выбрать()
если установлено свойство
ДиалогОткрытияФайла.ПредварительныйПросмотр = Истина;
turrist
22 — 02.07.15 — 11:57
Релиз 8.3 (8.3.5.1517)
Возникает вопрос как совместить предварительный просмотр при открытии файла и отсутствие блокировки для последующего перемещения выбранного файла.
Fedor-1971
23 — 02.07.15 — 12:36
(21) возможно, у тебя в проводнике включено окно автопросмотра. Позакрывай все окна с расположением твоего файла и смотри на его перемещение, например, через TotalCommander.
turrist
24 — 02.07.15 — 13:00
(23) Именно так. Включено окно автопросмотра. Файл блокируется в момент отображения в окне предпросмотра.
Fedor-1971
25 — 02.07.15 — 13:07
(24) я про другое, если открыта папка (не из 1С, а просто так с винды) с твоим файлом и в ней указан автопросмотр, то он блокирует твой файл, даже если ничего не показывает.
Признак сей бороды у (17) работает, правда он не указал версию 1С (на 8.2 работает без проблем и с автопросмотром и без оного)
Жизненный цикл курсов по 1С достаточно короткий. Содержание очень быстро теряет свою актуальность. За счет работы Мастер-групп удается существенно продлить срок жизни продуктов проекта. Так, например, для курса Подготовка к аттестации 1С:Специалист по платформе 1С:Предприятие 8.3 служба поддержки всегда оперативно помогает слушателям разбираться в изменениях платформы, сравнивать механизмы и методы, выявлять ошибки и многое другое.
Вопрос
При решении задачи по теме “Как реализовать отображение картинок на форме и хранение их в базе”, для помещения файла картинки во временное хранилище используется метод глобального контекста НачатьПомещениеФайла. Для платформы 8.3.16.1063 про процедуру НачатьПомещениеФайла в Синтакс-помощнике написано что данный метод доступен, начиная с версии 8.3.6, и что не рекомендуется его использовать, начиная с версии 8.3.15. Как это понимать?
Ответ
В платформе 8.3.15 появились новые методы, поэтому в Синтакс-помощнике и указана такая рекомендация. Поскольку для каркасной учебной конфигурации установлен режим совместимости Версия 8.3.12, то в решении задачи используется старый метод. Количество параметров у новой процедуры, которая будет вызвана после завершения помещения файла, изменилось, так как в новом методе используются новые типы данных.
Подробнее про унификацию методов в платформе 8.3.15 есть в статье на “Зазеркалье” – Унификация методов работы с файлами.
12.11.19 — 07:36
Доброго дня.
Прошу помощи по следующему вопросу, сижу туплю уже два дня.
Как можно организовать передачу с клиента на сервер НЕСКОЛЬКИХ файлов через временное хранилище. Не модально. Платформа 8.3
В случае одного файла — все понятно, все работает и помещается, но как правильно организовать этот механизм для нескольких?
Дано: В ТЧ (ФотоТовара) имеются строки с именами файлов на компьютере клиента, их несколько.
Задача: Все файлы, указанные в ТЧ поместить на сервер через временное хранилище без использования модальности.
Попытка решения:
&НаКлиенте
Процедура ПомещаемФайлы ()
Для каждого Строка Из ФотоТовара
ОписаниеОповещения = Новый ОписаниеОповещения(«ПередатьФайлыНаСерверЗавершение», ЭтаФорма);
НачатьПомещениеФайла(ОписаниеОповещения,,Строка.ИмяФайла, Ложь, УникальныйИдентификатор);
КонецПроцедуры
&НаКлиенте
Процедура ВыбратьИПередатьФайлыНаСерверЗавершение(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт
Сообщить(Адрес);
//ЗавершитьНаСервере();
КонецПроцедуры
ругается:
{Документ.ПоступлениеТоваров.Форма.ФормаДокумента.Форма(27)}: Ошибка при вызове метода контекста (НачатьПомещениеФайла)
НачатьПомещениеФайла(ОписаниеОповещения,,Строка.ИмяФайла, Ложь, УникальныйИдентификатор);
по причине:
Помещение файла невозможно, повторите попытку позднее.
Понимаю что проблема как-то связана с асинхронностью, но никак не могу разобраться.
Заранее благодарен за помощь.
1 — 12.11.19 — 07:38
* немного ошибся при перепечатке.
Пробую делать вот так:
&НаКлиенте
Процедура ПомещаемФайлы ()
Для каждого Строка Из ФотоТовара
ОписаниеОповещения = Новый ОписаниеОповещения(«ПередатьФайлыНаСерверЗавершение», ЭтаФорма);
НачатьПомещениеФайла(ОписаниеОповещения,,Строка.ИмяФайла, Ложь, УникальныйИдентификатор);
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ПередатьФайлыНаСерверЗавершение(Результат, Адрес, ВыбранноеИмяФайла, ДополнительныеПараметры) Экспорт
Сообщить(Адрес);
//ЗавершитьНаСервере();
КонецПроцедуры
travelekb
5 — 12.11.19 — 08:10
(3) если-палки, ну точно же, как же я пропустил его…
Спасибо огромное, сейчас буду изучать, уверен что подойдет.
(4) это я второпях писал пример для теста. Исправлю. Еще раз спасибо, второй день читаю описание этого метода и не вижу в СП строчку ниже с методом НачатьПомещениеФайлов, ну надо же как
Содержание
- Помещение файла невозможно, повторите попытку позднее #609
- Comments
- ImHunter commented Nov 7, 2019 •
- 1cergey commented Mar 23, 2020 •
- artbear commented May 13, 2020
- artbear commented May 13, 2020
- artbear commented May 13, 2020
- artbear commented May 13, 2020
- rkovtunovich commented May 20, 2020
- artbear commented May 22, 2020
- rkovtunovich commented May 27, 2020
- ImHunter commented Jun 16, 2020 •
- НачатьПомещениеФайла()
Помещение файла невозможно, повторите попытку позднее #609
Описание ошибки
При выполнении теста устойчиво получаю ошибку платформы «Помещение файла невозможно, повторите попытку позднее»
Сценарий воспроизведения
Шаги по воспроизведению:
- Использовать платформу 8.3.14-15
- Запустить xddTestRunner.epf
- Загрузить тесты
- Запустить выполнение теста (тестов)
Ожидаемое поведение, если бы ошибки не было
Тесты выполняются со своими успехами/неудачами
Окружение:
- Версия операционной системы: Win 7
- Редакция платформы 1С 8.3.15.1700
- Версия Vanessa.ADD 6.4.0
Ругается при этом в методе формы обработки УправляемаяФорма:
Причем, в доках (СП) про НачатьПомещениеФайла() честно пишется, что
Не рекомендуется использовать, начиная с версии 8.3.15.
Но альтернативных рецептов не приводится. Поэтому решил избавиться от НачатьПомещениеФайла(. ) по-простому.
Новый код метода:
И почти копипаст обработчика оповещения:
С такой доработкой — все норм, работает без ошибок.
The text was updated successfully, but these errors were encountered:
У меня похожая ошибка.
«Выполнить все тесты» отрабатывает без проблем.
«Выполнить выделенные» — завершается ошибкой с текстом «Помещение файла невозможно, повторите попытку позднее.»:
по причине:
Помещение файла невозможно, повторите попытку позднее.
Версия ADD 6.5.0
Платформа 8.3.16.1148
Режим совместимости 8.3.13
Синхронные вызовы и модальность не используются.
Очень странно, я пропустил этот ишуз (
@ImHunter проверю твое предложение.
Эта ошибка какая-то плавающая. у меня то повторяется, то нет.
Ошибки, возникающие у меня иногда
Столкнулся с этой же проблемой
Техническая информация:
— Версия Vanessa-ADD: 6.6.5
— Платформа 1С: 8.3.15.1830
— Тип базы: Клиент-серверная ИБ
— Режим запуска: Управляемое приложение (Толстый клиент)
— Режим совместимости (для TestManager): НеИспользовать
— Режим совместимости интерфейса (для TestManager): ТаксиРазрешитьВерсия8_2
— Режим синхронности: выключен
— Защита от опасных действий: выключен
— Язык (для TestManager): Русский
— Локализация (для TestManager): uk_UA
— Операционная система (клиент): Windows x86 Microsoft Windows 10 version 10.0 (Build 14393)
— Операционная система (сервер): Windows x86-64 Microsoft Windows 10 version 10.0 (Build 14393)
Коллеги, прикладываю пример файла с исправлением для быстрой проверки
xddTestRunner.zip
у меня перестал воспроизводиться периодический баг — 2й день проверяю, все нормально.
Коллеги, прикладываю пример файла с исправлением для быстрой проверки
xddTestRunner.zip
у меня перестал воспроизводиться периодический баг — 2й день проверяю, все нормально.
Спасибо! Когда заменил TestRunner на тот что в архиве, проблема ушла.
Коллеги, прикладываю пример файла с исправлением для быстрой проверки
у меня перестал воспроизводиться периодический баг — 2й день проверяю, все нормально.
Сходу не сработало. Пишет:
Неизвестный идентификатор плагина:
Пока нет времени поразбираться глубже. Вернулся на свою правленную версию.
Вероятно, нужно сначала поднять версию ADD.
Источник
НачатьПомещениеФайла()
Так вот — не могу понять как можно установить фильтр по типу файла в данному методе?
Есть вариант использовать сначала ДиалогВыбораФайла с фильтрами, а потом не интерактивно помещать файлы во временное хранилище.
Как можно это сделать без таких вот манипуляций?
Спасибо
Глобальный контекст.НачатьПомещениеФайла (Global context.BeginPutFile)
Глобальный контекст (Global context)
НачатьПомещениеФайла (BeginPutFile)
Синтаксис:
Тип: ОписаниеОповещения.
Содержит описание процедуры, которая будет вызвана после завершения помещения файла со следующими параметрами:
— Ложь — в параметре установлен интерактивный режим (Истина) и пользователь отказался от выполнения операции в диалоге выбора файла,
— расположение нового файла,
— Через этот параметр возвращается путь к файлу, указанный в диалоге выбора файла. Для неинтерактивного режима выбранное имя файла соответствует начальному имени файла. В режиме запуска «Веб-клиент» значение параметра зависит от типа браузера. Для Mozilla Firefox 3 в параметре возвращается только имя файла без пути. Для Microsoft Internet Explorer возвращаемое значение зависит от настройки текущей зоны. Подробности: http://msdn.microsoft.com/en-us/library/ms535128(VS.85).aspx ,
— значение, которое было указано при создании объекта ОписаниеОповещения.
Если параметр не указан или имеет тип Неопределено, то по завершении никакая процедура вызвана не будет.
(необязательный)
Тип: Строка.
Содержит адрес файла во временном хранилище, по которому должны быть помещены данные. Если не задан или является пустой строкой, то будет создан новый файл.
(необязательный)
Тип: Строка.
Путь файла на диске, данные из которого будут помещены во временное хранилище. Может быть не указан, если параметр = Истина. В этом случае отображается диалог выбора файла.
(необязательный)
Тип: Булево.
Указывает, используется ли интерактивный режим, в котором отображается диалог выбора файла. Этот файл будет помещен по указанному в параметре расположению во временном хранилище или по новому адресу, если параметр опущен.
Истина — интерактивный режим используется.
Значение по умолчанию: Истина.
(необязательный)
Тип: УникальныйИдентификатор.
Уникальный идентификатор формы, который можно получить с помощью свойства УникальныйИдентификатор управляемой формы. Файл помещается во временное хранилище и автоматически удаляется после удаления объекта формы.
Если параметр не указан, то помещенное значение будет удалено после очередного запроса сервера из общего модуля, при контекстном и неконтекстном серверном вызове из формы, при серверном вызове из модуля команды или при получении формы.
Возвращаемое значение:
Тип: Булево.
Ложь — в параметре установлен интерактивный режим (Истина) и пользователь отказался от выполнения операции в диалоге выбора файла.
Описание:
Помещает файл из локальной файловой системы во временное хранилище.
Тонкий клиент, веб-клиент, толстый клиент.
Примечание:
На мобильной платформе параметр игнорируется и диалоговое окно выбора файла не отображается никогда.
В тонком и толстом клиентах, в отличие от веб-клиента, метод блокирует исполнение кода языка. Тем не менее, по завершению помещения файла указанный обработчик оповещения также будет вызван, но до исполнения кода, размещенного после вызова метода.
———————————————————————————
Источник
Ошибки, возникающие у меня иногда
Платформа: 1С:Предприятие 8.3 (8.3.15.1778)
Конфигурация: ADD/BDD, ver. 6.6.5 (6.6.5)
Режим: Файловый (без сжатия)
Приложение: Тонкий клиент
Ошибки:
--------------------------------------------------------------------------------
5/13/2020 6:37:38 PM
Помещение файла невозможно, повторите попытку позднее.
{(1)}:НачатьПомещениеФайла(ОписаниеОповещенияОЗавершении, АдресХранения, ПомещаемыйФайл, Интерактивно, ВладелецФормы.УникальныйИдентификатор)
{ВнешняяОбработка.xddTestRunner.Форма.МодульАсинк.Форма(721)}: Выполнить("НачатьПомещениеФайла(ОписаниеОповещенияОЗавершении, АдресХранения, ПомещаемыйФайл, Интерактивно, ВладелецФормы.УникальныйИдентификатор)");
{ВнешняяОбработка.xddTestRunner.Форма.УправляемаяФорма.Форма(1793)}: АСинк().смв_ПоместитьФайл(Оповещение, АдресХранилища, ФайлОбработки.ПолноеИмя, Ложь);
{ВнешняяОбработка.ЗагрузчикФайла.Форма.Форма.Форма(576)}: КонтекстЯдра.ПодключитьВнешнююОбработку(ФайлОбработки);
{ВнешняяОбработка.ЗагрузчикФайла.Форма.Форма.Форма(157)}: ПодключитьВнешнююОбработку(КонтекстЯдра, ФайлОбработки);
{ВнешняяОбработка.ЗагрузчикФайла.Форма.Форма.Форма(143)}: Контекст = ПолучитьКлиентскийКонтекст(КонтекстЯдра, Путь);
{ВнешняяОбработка.ЗагрузчикКаталога.Форма.Форма.Форма(151)}: Контекст = ЗагрузчикФайла.ПолучитьКонтекстПоПути(КонтекстЯдра, Путь);
{ВнешняяОбработка.xddTestRunner.Форма.УправляемаяФорма.Форма(757)}: КонтекстВыполнения = Загрузчик.ПолучитьКонтекстПоПути(ЭтаФорма, Путь);
{ВнешняяОбработка.xddTestRunner.Форма.УправляемаяФорма.Форма(657)}: КонтекстВыполненияДляКонтейнера = ПолучитьКонтекстВыполненияПоПути(Загрузчик, ПутьИзКонтейнера);
{ВнешняяОбработка.xddTestRunner.Форма.УправляемаяФорма.Форма(669)}: ДочернийРезультатТестирования = ВыполнитьТесты(Загрузчик, ДочернийУзел, ФильтрДляДочернихУзлов, Подписчик, Родитель, ПараметрыПотоковыхОтчетов);
{ВнешняяОбработка.xddTestRunner.Форма.УправляемаяФорма.Форма(669)}: ДочернийРезультатТестирования = ВыполнитьТесты(Загрузчик, ДочернийУзел, ФильтрДляДочернихУзлов, Подписчик, Родитель, ПараметрыПотоковыхОтчетов);
{ВнешняяОбработка.xddTestRunner.Форма.УправляемаяФорма.Форма(669)}: ДочернийРезультатТестирования = ВыполнитьТесты(Загрузчик, ДочернийУзел, ФильтрДляДочернихУзлов, Подписчик, Родитель, ПараметрыПотоковыхОтчетов);
{ВнешняяОбработка.xddTestRunner.Форма.УправляемаяФорма.Форма(141)}: РезультатыТестирования = ВыполнитьТесты(Плагин(ИдентификаторЗагрузчика), ЭтаФорма.ДеревоОтЗагрузчика, Фильтр, ЭтаФорма);
{ВнешняяОбработка.xddTestRunner.Форма.УправляемаяФорма.Форма(160)}: ВыполнитьТестыНаКлиенте(Фильтр);
по причине:
Помещение файла невозможно, повторите попытку позднее.