Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
21 Янв 2018, 05:44
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Получение файла из базы  (Прочитано 12856 раз)

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

Оффлайн fairei

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-08-30
  • Сайт: 
  • Профессия: Разработчик 1С
Имеется документ, в его табличной части "СканыДокументов" есть поле типа Хранилище значений - "СканДокументаХранилище"
По кнопкам организую помещение в базу через временное хранилище.
При попытке открыть файл вылетает ошибка: Ошибка при вызове метода контекста (ПолучитьФайл)
   ПолучитьФайл(Адрес,Объект.СканыДокументов[ИндексСтроки].СодержаниеФайла,Истина);
по причине:
Файл не обнаружен 'e1c://server/dzo/46mrn/e1cib/data/Документ.ДОГОВОРНАЯ_РАБОТА_ДЗО.СканыДокументов.СодержаниеФайла?ref="99cf20cf30e61ece11e0e401cf955ab1"&index=0'
по причине:
Неправильный путь к файлу '/e1cib/data/Документ.ДОГОВОРНАЯ_РАБОТА_ДЗО.СканыДокументов.СодержаниеФайла?ref="99cf20cf30e61ece11e0e401cf955ab1"&index=0

Вот текст процедур:
&НаКлиенте
Процедура ПрикрепитьСкан(Команда)
   Перем ВыбранноеИмя;
   Перем АдресВременногоХранилища;
   Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
   Диалог.Выбрать();
   ВыбранноеИмя = Диалог.ПолноеИмяФайла;
   Если ПоместитьФайл(АдресВременногоХранилища, ВыбранноеИмя, ВыбранноеИмя, ЛОЖЬ, УникальныйИдентификатор) Тогда
      НовыйСкан = Объект.СканыДокументов.Добавить();
      НовыйСкан.СодержаниеФайла = ВыбранноеИмя;
      ПоместитьВБД(АдресВременногоХранилища, НовыйСкан.НомерСтроки-1);
   КонецЕсли;
КонецПроцедуры

&НаСервере
Процедура ПоместитьВБД(АдресВременногоХранилища, ИндексСтроки)
   ЭлементДокумента = РеквизитФормыВЗначение("Объект");
   ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресВременногоХранилища);
   ЭлементДокумента.СканыДокументов[ИндексСтроки].СканДокументаХранилище = Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных());
   ФайлПутьНаДиске = Новый Файл(ЭлементДокумента.СканыДокументов[ИндексСтроки].СодержаниеФайла);
   ЭлементДокумента.СканыДокументов[ИндексСтроки].СодержаниеФайла = ФайлПутьНаДиске.Имя;
   ЭлементДокумента.Записать();
   Модифицированность = Ложь;
   УдалитьИзВременногоХранилища(АдресВременногоХранилища);
   ЗначениеВРеквизитФормы(ЭлементДокумента, "Объект");
КонецПроцедуры

&НаКлиенте
Процедура ОткрытьСкан(Команда)
   ИндексСтроки = Элементы.СканыДокументов.ТекущаяСтрока;
   Адрес = ПолучитьНавигационнуюСсылку(Объект.Ссылка,"СканыДокументов.СодержаниеФайла",ИндексСтроки);
   ПолучитьФайл(Адрес,Объект.СканыДокументов[ИндексСтроки].СодержаниеФайла,Истина);
КонецПроцедуры

где закралась ошибка?


Оффлайн fairei

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-08-30
  • Сайт: 
  • Профессия: Разработчик 1С
текст процедур:
&НаКлиенте
Процедура ПрикрепитьСкан(Команда)
   Перем ВыбранноеИмя;
   Перем АдресВременногоХранилища;
   Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
   Диалог.Выбрать();
   ВыбранноеИмя = Диалог.ПолноеИмяФайла;
   Если ПоместитьФайл(АдресВременногоХранилища, ВыбранноеИмя, ВыбранноеИмя, ЛОЖЬ, УникальныйИдентификатор) Тогда
      НовыйСкан = Объект.СканыДокументов.Добавить();
      НовыйСкан.СодержаниеФайла = ВыбранноеИмя;
      ПоместитьВБД(АдресВременногоХранилища, НовыйСкан.НомерСтроки-1);
   КонецЕсли;
КонецПроцедуры

&НаСервере
Процедура ПоместитьВБД(АдресВременногоХранилища, ИндексСтроки)
   ЭлементДокумента = РеквизитФормыВЗначение("Объект");
   ДвоичныеДанные = ПолучитьИзВременногоХранилища(АдресВременногоХранилища);
   ЭлементДокумента.СканыДокументов[ИндексСтроки].СканДокументаХранилище = Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных());
   ФайлПутьНаДиске = Новый Файл(ЭлементДокумента.СканыДокументов[ИндексСтроки].СодержаниеФайла);
   ЭлементДокумента.СканыДокументов[ИндексСтроки].СодержаниеФайла = ФайлПутьНаДиске.Имя;
   ЭлементДокумента.Записать();
   Модифицированность = Ложь;
   УдалитьИзВременногоХранилища(АдресВременногоХранилища);
   ЗначениеВРеквизитФормы(ЭлементДокумента, "Объект");
КонецПроцедуры

&НаКлиенте
Процедура ОткрытьСкан(Команда)
   ИндексСтроки = Элементы.СканыДокументов.ТекущаяСтрока;
   Адрес = ПолучитьНавигационнуюСсылку(Объект.Ссылка,"СканыДокументов.СодержаниеФайла",ИндексСтроки);
   ПолучитьФайл(Адрес,Объект.СканыДокументов[ИндексСтроки].СодержаниеФайла,Истина);
КонецПроцедуры

Оффлайн fairei

  • *
  • Сообщений: 6
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-08-30
  • Сайт: 
  • Профессия: Разработчик 1С
ЭлементДокумента.СканыДокументов[ИндексСтроки].СодержаниеФайла = ФайлПутьНаДиске.Имя;
   ЭлементДокумента.Записать();
   Модифицированность = Ложь;
   УдалитьИзВременногоХранилища(АдресВременногоХранилища);
   ЗначениеВРеквизитФормы(ЭлементДокумента, "Объект");
КонецПроцедуры

&НаКлиенте
Процедура ОткрытьСкан(Команда)
   ИндексСтроки = Элементы.СканыДокументов.ТекущаяСтрока;
   Адрес = ПолучитьНавигационнуюСсылку(Объект.Ссылка,"СканыДокументов.СодержаниеФайла",ИндексСтроки);
   ПолучитьФайл(Адрес,Объект.СканыДокументов[ИндексСтроки].СодержаниеФайла,Истина);
КонецПроцедуры

Оффлайн dello

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-05-16
  • Сайт: 
  • Профессия: Программист 1С
Аналогичная ошибка. Возникает только у одного пользователя. Стала возникать после обновления платформы.
Почистили Кэш, переустановили 1С. Заново перепрописали базу в списке баз.
Прикрепляем файл к документу, сохраняем. Пробуем открыть - ошибка. Захожу под этим пользователем со своего компа, этот же файл прикрепляю, нормально открывается. Что еще можно сделать?

Оффлайн Yura063

  • *****
  • Сообщений: 1045
  • РЕПУТАЦИЯ: 136
  • КПД: 13%
  • Регистрация: 2010-11-15
  • Сайт: yuis.ru
  • Профессия: Программист 1С
Ну, может стоить проверить доступ к этой папке пользователю от которого вылетает ошибка?
Помогли, отблагодари!

Оффлайн dello

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-05-16
  • Сайт: 
  • Профессия: Программист 1С
Тоже думал над этим вариантом. Но загружается файл с рабочего стола в базу (пробовали и jpg, и pdf прикреплять), а при открытии из хранилища помещается в темп и оттуда открывается.
Помещенный в базу файл (тем пользователем) не открывается ни у кого. Как будто он помещает в хранилище и при сохранении файл становится "битым".

Оффлайн Yura063

  • *****
  • Сообщений: 1045
  • РЕПУТАЦИЯ: 136
  • КПД: 13%
  • Регистрация: 2010-11-15
  • Сайт: yuis.ru
  • Профессия: Программист 1С
файлы загружаются C:\Users\имя_пользователя\AppData\Roaming\1C\Файлы\конфиг\пользователь
поэтому другие не могут обратится к файлам! Как вариант поменять путь к хранению файлов на папку с общим доступам. я могу и ошибаться! Можете проверить нахождение файлов справочнике файлы!
Помогли, отблагодари!

Оффлайн dello

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-05-16
  • Сайт: 
  • Профессия: Программист 1С
Файлы хранятся в базе в хранилище. При открытии прикрепленного, скажем, к документу файла, он из хранилища помещается в LocalTemp папку и оттуда открывается. Опять же проблема только с 1-2 юзерами, у остальных в такой ситуации всё норм. Где бы может еще что-то почистить, переустановить у него?
Вот мысль еще есть, пользователь заходит в базу через аутентификацию винды, может здесь что-то?


Теги:
 

Можете помочь написать обработку которая сможет делать реализацию списывая поступления из другой базы или ссылаясь на них? просто одна компания покупает другая продает этот товар и чтобы вторая компания не смогла продать больше чем есть у первой? 1с 8.2 2

Автор Юлия АндреевнаРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 834
Последний ответ 13 Ноя 2016, 19:25
от BuhRust
Как перенести конфу базы данных на новую конфу?

Автор dim3740Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 11
Просмотров: 11556
Последний ответ 23 Авг 2010, 15:41
от mohock
восстановить учет после после уреза базы

Автор NarimanРаздел Пользователям "1С - Предприятие 8"

Ответов: 5
Просмотров: 4017
Последний ответ 16 Июн 2011, 15:02
от Nariman
Восстановление испорченной базы данных 1С [chdbfl.exe] [chdbfl]

Автор MuI_I_IkaРаздел Администрирование 1с

Ответов: 3
Просмотров: 29313
Последний ответ 04 Дек 2012, 13:13
от greenLiss
Постоянно вылетает 1С с ошибкой "Не удалось зафиксировать файл базы данных ..."

Автор skillmanРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 8
Просмотров: 7355
Последний ответ 26 Июл 2011, 22:34
от skillman

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
99 Сообщений
AIFrame
65 Сообщений
alex0402
32 Сообщений
kiksi
26 Сообщений
pavl_vs
24 Сообщений
alexandr_ll
17 Сообщений
andron81_81
16 Сообщений
Norfolk
15 Сообщений
KOI8-R
14 Сообщений
MuI_I_Ika MuI_I_Ika
13 Сообщений

* Кто онлайн

  • Точка Гостей: 116
  • Точка Скрытых: 0
  • Точка Пользователей: 1
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal