Значение данного типа невозможно преобразовать для передачи как файл

от admin

Ошибка при сохранении файла документа в 1С

При сохранении файла в формате «.txt», «.doc» и т.д. происходит ошибка:

Ошибка при выполнении файловой операции’/e1cib/data/. Значение данного типа невозможно преобразовать для передачи как файл. (Неопределено)

Пожалуйста, помогите разобраться и исправить.

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

Ваша задача обычно решается таким кодом:

P.S. Прикрепил ссылку на пример обработки.

Petro Bazeliuk's user avatar

Дизайн сайта / логотип © 2023 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2023.3.11.43304

Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.

ОАКЗВ Проблема с 1С

<Справочник.Файлы.Форма.ФормаЭлемента.Форма(50)>: Ошибка при вызове метода контекста (ПолучитьФайл)
ПолучитьФайл(СсылкаНаФайлВИБ, Объект.ИмяФайла, Истина);
по причине:
Ошибка при выполнении файловой операции ‘/e1cib/data/Справочник.Файлы.Файл?ref=82602c44fd7b163311ed96f07530ee74’. Значение данного типа невозможно преобразовать для передачи как файл. (Неопределено)
Ошибка при выполнении файловой операции ‘/e1cib/data/Справочник.Файлы.Файл?ref=82602c44fd7b163311ed96f07530ee74’. Значение данного типа невозможно преобразовать для передачи как файл. (Неопределено)

«Неопределено» получает.
Точнее, в какой-то момент, туда загружается, «Неопределено».

Ошибка при выполнении файловой операции e1cib tempstorage

При сохранении pdf файла на диск периодически получаем ошибку, в чем могут быть причины, явных причин нет, так как это происходит не со всеми файлами. Кто сталкивался?

Ошибка получения файлов

Ошибка при выполнении файловой операции ‘/e1cib/tempstorage/a6ecfa55-14fa-452b-8859-84f9e7b555fe?seanceId=1ce7618b-b2f9-48e9-8617-097488327ef4’. Значение данного типа невозможно преобразовать для передачи как файл. (Неопределено)

(0) В ХранилищеЗначений — неопределено.

В коде надо перед сохранением файла проверять что сохраняется.

(0) кэш почистился

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

(1) если в отладке смотреть все верно там Неопределено.

Решение помогло это https://forum.infostart.ru/forum9/topic222349/

(3) дык писал же что кэш почистился

временное хранилище оно чистится после окончания (не сразу да, еще какое то время доступно) если не указать идентификатор формы, тогда когда ее закрыть чистится

(4) *после окончания вызова сервера

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

всем спасибо! вопрос закрыт.

(5) да, там на моменте вопроса, когда путь сохранения файла указываешь, хранилище переходило в Неопределено. (4) это же вы имели ввиду?

ПараметрыДиалога = Новый ПараметрыДиалогаПолученияФайлов;

ПараметрыДиалога.Заголовок = НСтр(«ru = ‘Выберите путь для сохранения файла’; en = ‘Select the path to save the file’»);

НачатьПолучениеФайлаССервера(ДанныеФайла.АдресВоВременномХранилище, СтруктураИмениФайла.Имя, ПараметрыДиалога);

Закон Брукера: Даже маленькая практика стоит большой теории.

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

НачатьПолучениеФайловССервера

Автор Александр Мун, 24 фев 2021, 13:22

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

Добрый день!
Помогите разобраться с НачатьПолучениеФайловССервера

&НаКлиенте
Процедура СкачатьФайл(Команда)
ВыбранныеСтроки = Элементы.ТаблицаФайлы.ВыделенныеСтроки;
Если ВыбранныеСтроки.Количество() = 0 Тогда
Возврат;
КонецЕсли;
ИмяФайловДляСкачивания = Новый Массив();
Для Каждого Строка Из ВыбранныеСтроки Цикл
ТекСтрока = ТабЧастьФалы.НайтиПоИдентификатору(Строка);
ИмяФайла = ТекСтрока.Наименование + ТекСтрока.Формат;
Адрес = ПодготовитьФайлНаСервере(ИмяФайла);
ИмяФайловДляСкачивания.Добавить(Новый ОписаниеПередаваемогоФайла(ИмяФайла, Адрес));
КонецЦикла;

ПараметрыДиалога = Новый ПараметрыДиалогаПолученияФайлов;
ПараметрыДиалога.Заголовок = «Сохранение фалов»;
ПараметрыДиалога.ВыборКаталога = Истина;
НачатьПолучениеФайловССервера(ИмяФайловДляСкачивания, ПараметрыДиалога);
КонецПроцедуры

&НаСервереБезКонтекста
Функция ПодготовитьФайлНаСервере(ИмяФайла)
Путь = «D:IISDataBasescan» + ИмяФайла;
Адрес = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(Путь));
Возврат Адрес;
КонецФункции

В итоге если выбрать один файл, то все работает отлично, но если выбрать более одного, то получаю ошибку:

Цитировать Ошибка при выполнении файловой операции ‘/e1cib/tempstorage/4507f143-d20a-4ebb-88f7-e173739b45ea?seanceId=4c20eb1b-4703-4608-96be-addef04c2e46’. Значение данного типа невозможно преобразовать для передачи как файл. (Неопределено)

В тоже время переменные ИмяФайла и Адрес заполняются корректно, и пустых в массиве нет.

Рабочий код в общем, такой:

&НаКлиенте
Процедура СкачатьФайл(Команда)
ВыбранныеСтроки = Элементы.ТаблицаФайлы.ВыделенныеСтроки;
Если ВыбранныеСтроки.Количество() = 0 Тогда
Возврат;
КонецЕсли;
ИмяФайлов = Новый Массив();
Для Каждого Строка Из ВыбранныеСтроки Цикл
ТекСтрока = ТабЧастьФалы.НайтиПоИдентификатору(Строка);
ИмяФайла = ТекСтрока.Наименование + ТекСтрока.Формат;
ИмяФайлов.Добавить(ИмяФайла);
КонецЦикла;

ИмяФайловДляСкачивания = ПодготовитьФайлыНаСервере(ИмяФайлов);

ПараметрыДиалога = Новый ПараметрыДиалогаПолученияФайлов(«Выберите каталог для сохранения файлов», Истина);
//ПараметрыАрхива = Новый ПараметрыПолученияАрхиваФайлов(«files.zip», РежимПолученияАрхиваФайлов.ПолучатьАрхивВсегда);
НачатьПолучениеФайловССервера(ИмяФайловДляСкачивания, ПараметрыДиалога);

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

&НаСервереБезКонтекста
Функция ПодготовитьФайлыНаСервере(ИмяФайлов)

ИмяФайловДляСкачивания = Новый Массив();

Для Каждого ИмяФайла Из ИмяФайлов Цикл
Путь = «D:IISDataBasescan» + ИмяФайла;
Адрес = ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(Путь));
ИмяФайловДляСкачивания.Добавить(Новый ОписаниеПередаваемогоФайла(ИмяФайла, Адрес));
КонецЦикла;

Возврат ИмяФайловДляСкачивания;

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

  • Форум 1С

  • Форум 1С — ПРЕДПРИЯТИЕ 8.0 8.1 8.2 8.3 8.4

  • Конфигурирование, программирование в 1С Предприятие 8

  • НачатьПолучениеФайловССервера

Поиск

Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов Рунета Pyatilistnik.org. В прошлый раз мы с вами разобрали, что из себя представляет файловая система raw, и как ее исправить, чтобы восстановить свои данные. Двигаемся дальше и поговорим сегодня на тему капризности 1С, точнее на капризную работу в рамках Windows Server 2016. Я рассмотрю причину и устранение периодически повторяющейся ошибки на сервере 1С 8.3 «Ошибка при выполнении файловой операции«. Ее я стал встречать после обновления с Windows Server 2012 R2 д 2016. Думаю мой опыт сэкономит вам часик серфинга по интернету.

Описание проблемы

В моей компании заканчивается обновление операционных систем у виртуальных серверов, с Windows Server 2012 R2 на Windows Server 2016, я понимаю, что поддержка первых еще будет несколько лет, но хочется уже не делать это в последний момент, а слегка опережать, да и уже давно пора стремиться к Windows Server 2019. Сервера 1С не были исключением, обновление происходило по быстрому варианты. Тут подразумевается накатывание более новой версии ОС по верх старой, тут мы убивали двух зайцев:

  1. Получали свежую версию ОС
  2. Оставляли весь софт на сервере, и не требовалась его переустановка

В случае чего всегда можно было откатиться из снапшота на момент проведения работ, благо ESXI 6.5 это помогает делать в два клика. Все прекрасно обновилось и сервер зажил новой жизнью. В какой-то момент при запуске клиента 1С 8.3 на RDS ферме, стала появляться ошибка:

Ошибка при выполнении файловой операции

Ошибка при выполнении файловой операции в 1С 8.3

Устранение проблемы

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

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

запуск сборки мусора на томе

Вывод: Windows Дедупликация и 1С просто не совместимы друг с другом, это нужно запомнить

Из дополнительных методов я могу вам посоветовать еще очистку кэша 1С. Еще в на умных сайтах советуют на серверах, где используется 1С отключать протокол IPv6 на сетевых интерфейсах, но лично я не понимаю этого прикола, так как сама Microsoft советует по возможности этого не делать, в виду того, что очень многие ее сервисы и компоненты Windows в приоритете используют именно его, меньше будет проблем с DNS и Active Directory.

Вообще если у вас виртуальные сервера лежат на системе хранения данных, то у нее должна быть своя функция дедупликации и использовать лучше и правильнее ее. Если у вас есть другие варианты решения данной проблемы, то пишите их в комментариях. С вами был Иван Семин, автор и создатель IT портала Pyatilistnik.org.

1. Об ошибке при выполнении файловой операции

2. Устранение «Ошибки при выполнении файловой операции» в 1С 8.3

1. Об ошибке при выполнении файловой операции

Приветствую, коллеги! В данной статье будет описана ошибка «Ошибка при выполнении файловой операции», и подробно рассмотрены способы ее устранения.

Когда происходит обновление конфигураций в 1С 8, по завершении обновления, часто появляется ошибка, которая гласит «Ошибка при выполнении файловой операции – файл не содержит доступных обновлений».

2. Устранение «Ошибки при выполнении файловой операции» в 1С 8.3

Рассмотрим методы, при помощи которых, можно устранить ошибку при выполнении файловой операции в 1С.

Итак, первый способ – это попробовать сделать обновление при помощи файлов по обновлению вида «релиз 1с*.cfu». Если это не помогло, то можно попробовать обновить систему при помощи общего файла вида «полный релиз 1С*.cf».

Вторым способом будет проверка на соответствие общей версии системы 1С с минимальными требованиями версии конфигурации 1С, которую обновляем.

Третий способ устранения ошибки при выполнении файловой операции в 1С – более сложный, но действенный. Необходимо открыть в конфигурацию от поставщика в режиме Конфигуратора. Если ошибка всё так же появляется, то необходимо удалить конфигурацию поставщика, а затем опять установить. По сути, в данном варианте «вытягивается» последняя, рабочая версия данной конфигурации и обновление будет завершено без ошибок.

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

1. скачать релиз 1С KORG с версией 1*.cf;

2. копируем нашу базу данных;

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

4. Далее переходим по следующему пути: «Конфигурация → Сравнить и объединить с конфигурацией из файла…». Здесь необходимо выбрать файл «полный релиз 1С KORG версии 1*.cf»;

5. Далее перед нами появится окно, в котором система 1С будет запрашивать постановление на учёт для поддержки, на это уведомление обязательно отвечаем согласием;

6. В случае, если наша конфигурация является типовой, откроется окно по сравнению конфигураций. В нем обязательно убираем все «галочки». Далее последует объединение конфигураций;

7. В новом окне кликаем на «Сохранить изменения»;

8. Ещё раз сохраняем базу данных;

9. Обновляем конфигурацию 1С стандартным способом.

Если всё сделать, согласно инструкции выше, то в вашей конфигурации 1С 8.3 «Ошибка при выполнении файловой операции» больше не возникнет. Спасибо за внимание!

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

Программирование 1С 8.х для начинающих

Общие вопросы

Временное хранилище в 1С 8.2

  • Печать
  • E-mail

Передача файла с клиента на сервер и обратно.

В связи с новым подходом в программировании на платформе 8.2 возникла необходимость передачи данных между клиентом и сервером при этом прямая передача в виде параметров имеет ряд ограничений. И тогда был введен объект «Временное хранилище».

Чем полезно временное хранилище:

  • Не надо создавать объекты в конфигурации
  • Доступно и с сервера и с клиента
  • Можно записать любой объект

Временное хранилище это не объект конфигурации, а объект платформы поэтому для разработчика он выглядит как черный ящик. Можно туда положить что-то получив псевдоним(адрес) и получить из него что-то указав псевдоним(адрес). Но узнать что находится во временном хранилище и сколько нельзя. В ниже рассмотренных примерах помещение в хранилище происходит на клиенте, а чтение на сервере. Хотя можно передавать данные и в обратном направлении.

Синтаксис работы с хранилищем простой:

Передав параметром, данные которые хотим поместить(Посылка) и УникальныйИдентификатор получаем Адрес, по которому потом можно будет обратиться. Причем передаваемый идентификатор не является получаемым в последствии адресом. Вместо идентификатора можно передать строку Адреса, по которому и будет помещено наше значение, но это не любая строка! Строка Адреса выглядит примерно вот так «e1cib/tempstorage/ae5c5472-0266-4892-9073-20392dd5a6a6» .

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

Чтобы получить из хранилища нужно только указать адрес:

Также можно удалить помещенный объект, используя адрес

Если помещаемые данные не являются объектами конфигурации, то для того чтобы их поместить нужно перевести в доступный тип — «ДвоичныеДанные»

Помещение в хранилище

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

Чтение из хранилища

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

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

В параметре Адрес, можно указать Адрес в который нужно записать файл, если нужен новый адрес, то нужно передать пустую строку.

Истина – открывает окно для выбора папки и имени файла, при значении Истина есть возможность открыть файл.»КопияФайла.xml» – Имя файла под которым будет сохранен файл.Адрес – это адрес в хранилище,ПолучитьФайл(Адрес,»Копияфайла.xml» , Истина);Чтобы сохранить файл из временного хранилища на Клиенте можно использовать метод

Читать:
Сколько страниц в тысячах будет найдено по запросу фрегат

« Как стать программистом 1С » Язык 1С » ПодключитьРасширениеРаботыСФайлами 1С, УстановитьРасширениеРаботыСФайлами 1С, ПолучитьФайл 1С, ПоместитьФайл 1С, ПолучитьФайлы 1С, ПоместитьФайлы 1С, ПолучитьИзВременногоХранилища 1С, ПоместитьВоВременноеХранилище 1С

ПодключитьРасширениеРаботыСФайлами 1С, УстановитьРасширениеРаботыСФайлами 1С, ПолучитьФайл 1С, ПоместитьФайл 1С, ПолучитьФайлы 1С, ПоместитьФайлы 1С, ПолучитьИзВременногоХранилища 1С, ПоместитьВоВременноеХранилище 1С

В веб-клиенте работа с файлами (чтение/запись) производится только на сервере.

Функция ПодключитьРасширениеРаботыСФайлами() используется в веб-клиенте для включения разрешения работы с файлами (поддерживают не все браузеры), если неудачно – возвращает Ложь. Перед первым использованием функции в этом браузере на этом комьютере требуется установить расширение работы с файлами с помощью функции УстановитьРасширениеРаботыСФайлами()

Функции
• ПоместитьФайл(АдресКудаПомещен, ИмяФайла)
• ПолучитьФайл(АдресОткуда)
• ПоместитьФайлы(МассивИменФайлов, МассивАдресовКудаПомещены)
• ПолучитьФайлы(МассивАдресовОткуда)
позволяют передвать файлы между клиентом и сервером.

Функции ПолучитьИзВременногоХранилища() и ПоместитьВоВременноеХранилище() позволяют получить данные файла из временного хранилища сервера, куда они были помещены с помощью ПолучитьФайл() и ПоместитьФайл().

На клиенте файлы располагаются где требуется в файловой системе. На сервере файлы помещаются в «хранилище» — временный каталог файлов сервера 1С. Напрямую с хранилищем работать нельзя – требуется получить значение из хранилища с помощью функции ПолучитьИзВременногоХранилища() и сохранить во временный файл на сервере с помощью функции ПолучитьИмяВременногоФайла()

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

При использовании данных функций в веб-клиенте необходимо заранее выполнить функцию ПодключитьРасширениеРаботыСФайлами()

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

Для примеров использован текстовый файл на локальной «клиентской» машине по адресу «D:Текстовый файл.txt» со следующим содержимым:
Привет, мир!
Конец файла

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

//если подключить не удалось — требуется установить его (в первый раз)
Если не Результат Тогда
//устанавливаем
УстановитьРасширениеРаботыСФайлами();
//если не удалось установить — то повторный вызов подключения будет неудачный
Если не ПодключитьРасширениеРаботыСФайлами() Тогда
//сообщаем об ошибке и прерываем работу программы
ВызватьИсключение «Ошибка. Ваш браузер не поддерживает работу с файлами.»;
КонецЕсли;
КонецЕсли;
#КонецЕсли

//перемещаем файл на сервер во «внутреннее хранилище сервера»
ВнутреннийАдресСервера = «»;

//если имя файла выбирает пользователь в стандартном диалоговом окне Windows
Результат = ПоместитьФайл(ВнутреннийАдресСервера);

//если имя файла указывает программист напрямую
//Результат = ПоместитьФайл(ВнутреннийАдресСервера, «D:Текстовый файл.txt»,, Ложь);

Если не Результат Тогда
ВызватьИсключение «Ошибка. Не удалось передать файл на сервер. Операция прервана.»;
КонецЕсли;
Сообщить(ВнутреннийАдресСервера);

//переводим выполнение на сервер вызовом серверной процедуры
ЧтениеФайла(ВнутреннийАдресСервера);
КонецПроцедуры

//начинаем работать с файлом

//узнаем размер файла в байтах (и переведем размер в мегабайты)
Файл = Новый Файл(ИмяВременногоФайла);
Сообщить(Строка(Окр(Файл.Размер() /1024 /1024, 2)) + «Мб»);

//прочитаем первую строку файла
ТекстовыйФайл = Новый ЧтениеТекста(ИмяВременногоФайла);
ТекстПервойСтрокиФайла = ТекстовыйФайл.ПрочитатьСтроку();
Сообщить(ТекстПервойСтрокиФайла);

1с возвращает:
e1cib/tempstorage/ad728cdf-fce4-4c50-b348-87d5265a57a6
C:UsersИмяПользователяWindowsAppDataLocalTempv8_BE51_59.tmp
0Мб
Привет, мир!

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

&НаКлиенте
Процедура КнопкаЧтениеФайла(Команда)

//для веб-клиента требуется дополнительно подключение расширения работы с файлами
#Если ВебКлиент Тогда
Результат = ПодключитьРасширениеРаботыСФайлами();

//если подключить не удалось — требуется установить его (в первый раз)
Если не Результат Тогда
//устанавливаем
УстановитьРасширениеРаботыСФайлами();
//если не удалось установить — то повторный вызов подключения будет неудачный
Если не ПодключитьРасширениеРаботыСФайлами() Тогда
//сообщаем об ошибке и прерываем работу программы
ВызватьИсключение «Ошибка. Ваш браузер не поддерживает работу с файлами.»;
КонецЕсли;
КонецЕсли;
#КонецЕсли

//перемещаем файл на сервер во «внутреннее хранилище сервера»
МассивВнутреннихАдресовСервера = Новый Массив;

//если список имен файлов выбирает пользователь
Результат = ПоместитьФайлы(,МассивВнутреннихАдресовСервера);

//если список имен файлов указывает программист напрямую
//МассивВнутреннихАдресовСервера = Новый Массив;
//МассивИменФайлов = Новый Массив;
//МассивИменФайлов.Добавить(Новый ОписаниеПередаваемогоФайла(«D:Текстовый файл.txt», «»));
//Результат = ПоместитьФайлы(МассивИменФайлов, МассивВнутреннихАдресовСервера,, Ложь);

Если не Результат или МассивВнутреннихАдресовСервера.Количество() = 0 Тогда
ВызватьИсключение «Ошибка. Не удалось передать файл на сервер. Операция прервана.»;
КонецЕсли;

Для каждого ИмяФайла из МассивВнутреннихАдресовСервера Цикл
Сообщить(ИмяФайла.Хранение);

//переводим выполнение на сервер вызовом серверной процедуры
//реализацию этой функции см. в примере 1
ЧтениеФайла(ИмяФайла.Хранение);
КонецЦикла;

Пример 3. Запись нового файла на сервере с последующей передачей на клиент. Имя файла выбирает пользователь/формирует программист

&НаКлиенте
Процедура КнопкаЧтениеФайла(Команда)

//для веб-клиента требуется дополнительно подключение расширения работы с файлами
#Если ВебКлиент Тогда
Результат = ПодключитьРасширениеРаботыСФайлами();

//если подключить не удалось — требуется установить его (в первый раз)
Если не Результат Тогда
//устанавливаем
УстановитьРасширениеРаботыСФайлами();
//если не удалось установить — то повторный вызов подключения будет неудачный
Если не ПодключитьРасширениеРаботыСФайлами() Тогда
//сообщаем об ошибке и прерываем работу программы
ВызватьИсключение «Ошибка. Ваш браузер не поддерживает работу с файлами.»;
КонецЕсли;
КонецЕсли;
#КонецЕсли

//вызов серверной процедуры формирования файла, она возвращает «внутренний адрес», передаем его параметром
//куда сохранил пользователь файл и сохранил ли — мы не знаем
//пользователь всегда подтверждает разрешение на получение файла
ПолучитьФайл(ФормированиеФайла());

//вариант с сохранением файла без подтверждения пользователя, имя файла указываем сразу, в веб-клиенте работать не будет
//ПолучитьФайл(ФормированиеФайла(), «D:Текстовый файл.txt», Ложь);

&НаСервере
Функция ФормированиеФайла()

//получаем файл из «временного хранилища сервера» и сохраняем во временный файл на сервере
ИмяВременногоФайла = ПолучитьИмяВременногоФайла();

//начинаем работать с файлом

//записываем текст в файл
ТекстовыйФайл = Новый ЗаписьТекста(ИмяВременногоФайла);
ТекстовыйФайл.ЗаписатьСтроку(«Привет, мир!»);
ТекстовыйФайл.ЗаписатьСтроку(«Конец файла»);
ТекстовыйФайл.Закрыть();

//помещаем во «временное хранилище сервера», система вернет «внутренний адрес»
Возврат ПоместитьВоВременноеХранилище(Новый ДвоичныеДанные(ИмяВременногоФайла));

v8: Получение данных из ХралищаЗначений

Данные в хранилще есть. В элемент они попадают, но при открытии элемента картикнка не видна, что сделал не так.

ДанныеАдрес (Строка) Реквизит элемента спр.

&НаСервереПроцедура ОбработкаВыбораПодборНаСервере(ВыбранноеЗначение) ТаблицаФайлов = ПолучитьИзВременногоХранилища(ВыбранноеЗначение.АдресХЗ); Для Каждого СтрокаФайл Из ТаблицаФайлов Цикл Файл = Новый Файл(СтрокаФайл.Значение.Имя); ХранимыйФайл = Справочники.ХранилищеДанныхСправочники.СоздатьЭлемент(); ХранимыйФайл.СсылкаНаОбъект = СсылкаНаОбъект; ХранимыйФайл.Наименование = Файл.Имя; ХранимыйФайл.ДанныеПуть = Файл.Путь; ХранимыйФайл.ДанныеТекущаяДата = ТекущаяДата();

// . ХранимыйФайл.ДанныеХЗ = Новый ХранилищеЗначения(СтрокаФайл.Значение.Хранение, Новый СжатиеДанных()); ХранимыйФайл.Записать(); КонецЦикла; Элементы.Список.Обновить(); КонецПроцедуры

Как-то у тебя сложно или я чего-то не понял, вообщем так:

Действия по установке (загрузке) картинки и ее отображения на форме нашего справочника Сотрудника необходимо выполнять на стороне сервера. Это особенность работы системы с файлами. Именно для этого в тексте процедуры ДобавитьКартинку осуществляется вызов другой процедуры УстановитьКартинку(), которая будет выполняться на сервере.

В программном модуле, ниже процедуры ДобавитьКартинку(Команда) пишем следующий программный код:

Чтобы при открытии картинка отобразилась:

1) я в ообщей форме помещаю данные в ХранилищеЗначений. (данные заполнены)

2) При нажатии кпонки на общей форме создаются элементы справочника. Все данные из хранилища заполняются в элементе спр, а вот с картикой проблема. Я сейчас еще разок книгу читану. Где то рядом брожу.(Процедура ОбработкаВыбора)

&НаСервереПроцедура ОбработкаВыбораПодборНаСервере(ВыбранноеЗначение) ТаблицаФайлов = ПолучитьИзВременногоХранилища(ВыбранноеЗначение.АдресХЗ); Для Каждого СтрокаФайл Из ТаблицаФайлов Цикл Файл = Новый Файл(СтрокаФайл.Значение.Имя); ХранимыйФайл = Справочники.ХранилищеДанныхСправочники.СоздатьЭлемент();

.ХранимыйФайл.ДанныеХЗ = Новый ХранилищеЗначения(СтрокаФайл.Значение.Хранение, Новый СжатиеДанных());

Если написать (выбараю 2 картинки)

Этот алгоритм не отрабатывает..

ХранимыйФайл.ДанныеХЗ = Новый ХранилищеЗначения(СтрокаФайл.Значение.Хранение, Новый СжатиеДанных());

Да нет управляемая.

Для того что бы избавиться от модальности я решил передавать данные через хранилище.

Вот алгорит выгрузки из общей формы

блин. да что с синтаксисом ;( капец какой-то

E_Migachev, объясни как нужно вставлять наверно с видео

(12) да, напишу вечерком

для bell:

в управляемых формах принцип следующий:

Простой пример справочника с картинкой

Отображения картинки текущего элемента списка

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

Картинка как и раньше (8.1) хранится в базе в реквизите (реквизите ТЧ) с типом ХранилищеЗначения, но записать данные в реквизит с этим типом обычном способом нельзя, запись производится в предопределенной процедуре «ПередЗаписьюНаСервере».

Для отображения картинки создается элемент формы поле картинки, данными для которого, является реквизит формы (с типом Строка(0)), содержащий навигационную ссылку на картинку (можно получить функцией «ПолучитьНавигационнуюСсылку») или адрес во временном хранилище (пол.ф. «ПоместитьФайл»)

Ниже приведен код части примера:

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

В процедуре ПриЗаписиНаСервере на первый взгляд можно убрать код удаление из временного хранилища т.к. ф. ПоместитьФайл вызывается с параметром УникальныйИдентификатор формы т.е. объект хранилища будет существовать до закрытия формы, но рекумендуется освобождать ресурсы сразу (если пользователь загрузит картинку и нажмет записать, форма не закрыта и объект будет существовать до закрытия).

Значение данного типа невозможно преобразовать для передачи как файл

Сопровождение 1С

22.03.2022
Как правильно учесть подотчетные деньги в 1С ЗУП
Анонс: В статье рассмотрим, как в программе 1С:Зарплата и Управление персоналом 3 отражается удержание неиспользуемых денежных средств.
> Читать статью

15.03.2022
Штрихкоды в 1С, как создать и напечатать?
Анонс: В статье рассмотрим вопрос, касающийся создания и печати штрихкодов в 1С. Рассматривать будет на примере конфигурации 1С:Управление Торговлей 11, но материал будет актуален и для других программных продуктов фирмы 1С таких как 1С:Бухгалтерия 3, 1С:Управление Нашей Фирмой и др.
> Читать статью

10.03.2022
Как правильно оформить электронный больничный в 1С ЗУП?
Анонс: В статье рассмотрим вопрос, каким образом в программе 1С:Зарплата и Управление Персоналом оформляется электронный больничный.
> Читать статью

Програмный продукт верcия(релиз) Дата выхода
Документооборот КОРП 2.1.21.12 09.06.2020

1С:Предприятие 8
Типовая конфигурация
1С:Документооборот 8 КОРП, редакция 2.1
Версия 2.1.21
Новое в версии 2.1.21.12
Работа по технологии 1С:Облачная подсистема Фреш
Согласование заявок на оплату
Каналы обсуждений
Новые возможности списка «Задачи мне»
Процессы и задачи по файлам
Учет электронных документов
Новые возможности для учета документов в разрезе проектов
Автоматическая отправка проектных задач на исполнение
Развитие мобильного приложения
Развитие мобильного клиента (ознакомительная версия)
Исправлены ошибки:
При удалении ЭП в файлах документа появлялись служебные файлы.
При удалении ЭП штамп ЭП не удалялся из документа.
Если сервер на Linux, добавление файлов в том могло давать ошибку "the file name you specified is not valid or too long".
В веб-клиенте возникала ошибка при выполнении задачи, если ее предметом были занятые на редактирование файлы.
При настройке заполнения полей шаблона документа, при выборе параметра "На что заменять", возникала ошибка: Поле не найдено "ВидыКонтактнойИнформации.
Если в карточке вида документа были занятые файлы, нажатие на гиперссылку в колонке "Настройка заполнения" приводило к ошибке "Поле объекта не обнаружено (Расширение)".
Ошибка проверки заполнения доп. реквизита с условием по реквизитам процессов перед выполнением задачи.
Команда "Обсудить с участниками" отображалась в формах списков объектов.
Ошибка преобразования данных XDTO при обработке очереди обновления обсуждений.
При открытии файла картинки из карточки входящего ЭД возникала ошибка.
При подписании ЭП документа без права на изменение возникала ошибка "В данной транзакции уже происходили ошибки!".
При обновлении конфигурации, если не удалось установить монопольный режим, возникала ошибка "Слишком много фактических параметров".
При наборе текста в чате иногда пропадала часть текста.
Не очищался протокол выполнения задач по почте.
При выборе обязательного связанного документа не устанавливался фильтр по контрагенту, если по документу ведется "Учет сторон".
Автоматическая вставка штампа электронной подписи для pdf-файла более 10 страниц показывала их в неверном порядке.
В Протоколе работы сотрудников, если слева нет отображалось ни одного отдела, возникала ошибка "<(1, 1)>: Ожидается выражение "ВЫБРАТЬ"".
Для учетных записей почты с IMAP не велось полное удаление писем на email-сервере (они только помечались на удаление).
При выполнении команды "Напечатать " из встроенного просмотра картинок возникала ошибка: "Значение данного типа невозможно преобразовать для передачи как файл. (Неопределено)".
В карточке проекта в списке Документы отсутствовала команда "Показать удаленные".
Изменение наименования объекта должно менять тему авточата. Но если заголовок менялся вручную, изменение наименования не должно на него влиять.
Недостаточное количество символов для ввода наименования группы доступа физических лиц
Авточат "с нижестоящими" в некоторых сценариях мог оставаться после того, как из подразделения или рабочей группы были удалены все нижестоящие.
Команда "Обсуждение с участниками" не отображалась для группы "Все пользователи".
Обработка создания обсуждений – возникала ошибка в подсчете количества участников
Не сохранялся скрипт обработки при настройке комплексного процесса.
Автообновляемые обсуждения: не учитывалось делегирование при вычислении пользователей, имеющих права на добавление участников вручную.
В карточке исходящего письма встроенной почты после добавления получателей область "Адресаты" растягивалась на весь экран.

Мы оказываем услуги по следующим направлениям:

Выбор системы автоматизации и поставка программ 1С;
Услуги по 1С (настройка, обновление, доработка);
Автоматизация предприятий;
Обучение. Бухгалтерский и информационный консалтинг;
Подготовка и сдача отчетности в электронном виде (с помощью 1С:Бухгалтерия 8);
Информационно Технологическое Сопровождение (ИТС).

10.03.2023
"БУХ.1С" — вышел номер 3 (март)
Новый выпуск!
Подробнее

28.02.2023 20:55:00
Управление торговлей, редакция 11
11.5.11.70

28.02.2023 20:55:00
Управление торговлей базовая, редакция 11
11.5.11.70

28.02.2023 20:55:00
Управление производственным предприятием, редакция 1.3
1.3.198.1

28.02.2023 20:54:00
Комплексная автоматизация, редакция 2
2.5.11.70

03.03.2023 20:54:00
Документооборот КОРП, редакция 3.0
3.0.10.20

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

Похожие статьи