Ошибка открытия файлов в ДО

1. Sp1k3 12 26.01.23 12:49 Сейчас в теме
Добрый день! В базе 1С:Документооборот возникает ошибка при открытии файлов: Ошибка при выполнении файловой операции 'e1cib\tempstorage\0de75b0-16e2-...' Значение данного типа невозможно преобразовать для передачи как файл. (Неопределено). Подскажите, куда копать?

UPD: Заметил, что ошибка возникает при попытке открытия файлов весом больше 1мб. Те, которые меньше, открываются без проблем
По теме из базы знаний
Найденные решения
6. melenaspb 208 26.01.23 13:33 Сейчас в теме
Платформа 8.3.22 версии? Там ошибка в платформе.Ошибка не всегда проявляетя, но если появилась - то все. Надо или откатываться 8.3.21. Или попробовать тестовую версию 8.3.22.1791, вроде в ней исправили. Или попробовать очистить серверный кэш - остановить сервер 1с предприятия и стереть каталог snccntx*, снова запустить сервер. Но чистка кэша не гарантия.
huzden; espero; MikStyle; wokituk; GorI; zeibba; RedG52; milanse; krundel; Silenser; vindsor; smit1c; chebser; Sp1k3; +14 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Good_Smile 26.01.23 12:58 Сейчас в теме
У вас вроде файла нет.. тип значения, которое вы пытаетесь открыть - Неопределено..
Покажите хоть код как открываете файл..
3. Sp1k3 12 26.01.23 13:04 Сейчас в теме
4. Sp1k3 12 26.01.23 13:05 Сейчас в теме
(3)
(2)
Прощу прощения, не до печатал...

Если Не ПолучитьФайлы(ПередаваемыеФайлы,, ПараметрыВыполнения.ПараметрПутьКФайлу, Ложь) Тогда
ВернутьРезультат(ПараметрыВыполнения.ОбработчикРезультата, ПараметрыВыполнения);
Возврат;
КонецЕсли;


--------> ПолучитьФайлы(ПередаваемыеФайлы,, ПараметрыВыполнения.ПараметрПутьКФайлу, Ложь) Вот тут вываливается в ошибку
5. Sp1k3 12 26.01.23 13:06 Сейчас в теме
(2)(4)
Вот вся процедура, если поможет


Процедура ПолучитьССервераИЗарегистрироватьВЛокальномКэшеФайловПередачаФайла(ПараметрыВыполнения, АдресФайла = Неопределено) Экспорт
	
	Если АдресФайла = Неопределено Тогда
		Если ПараметрыВыполнения.ДанныеФайла.Версия <> ПараметрыВыполнения.ДанныеФайла.ТекущаяВерсия Тогда
			АдресФайла = РаботаСФайламиВызовСервера.ПолучитьНавигационнуюСсылкуДляОткрытия(
				ПараметрыВыполнения.ДанныеФайла.Версия, ПараметрыВыполнения.ИдентификаторФормы);
		Иначе
			АдресФайла = ПараметрыВыполнения.ДанныеФайла.НавигационнаяСсылкаТекущейВерсии;
		КонецЕсли;
	КонецЕсли;
	
	ПередаваемыеФайлы = Новый Массив;
	Описание = Новый ОписаниеПередаваемогоФайла(ПараметрыВыполнения.ИмяФайла, АдресФайла);
	ПередаваемыеФайлы.Добавить(Описание);
	
	#Если ВебКлиент Тогда
		Если ПараметрыВыполнения.ДополнительныеПараметры <> Неопределено И ПараметрыВыполнения.ДополнительныеПараметры.Свойство("ОткрытьФайл") Тогда
			
		МассивОпераций = Новый Массив;
		
		ОписаниеВызова = Новый Массив;
		ОписаниеВызова.Добавить("ПолучитьФайлы");
		ОписаниеВызова.Добавить(ПередаваемыеФайлы);
		ОписаниеВызова.Добавить(Неопределено);  // Не используется.
		ОписаниеВызова.Добавить(ПараметрыВыполнения.ПараметрПутьКФайлу);
		ОписаниеВызова.Добавить(Ложь);          // Интерактивно = Ложь.
		МассивОпераций.Добавить(ОписаниеВызова);
		
		ОписаниеВызова = Новый Массив;
		ОписаниеВызова.Добавить("ЗапуститьПриложение");
		ОписаниеВызова.Добавить(ПараметрыВыполнения.ПолноеИмяФайла);
		МассивОпераций.Добавить(ОписаниеВызова);
		
		Если Не ЗапроситьРазрешениеПользователя(МассивОпераций) Тогда
			// Пользователь не дал разрешения.
			
			// создадим запись в РС ФайлыВРабочемКаталогеКомпьютера и обновим КоличествоЗанятыхФайлов
			РаботаСФайламиВызовСервера.СоздатьЗаписьВФайлыВРабочемКаталоге(ПараметрыВыполнения.ДанныеФайла.Ссылка);
			
			КоличествоЗанятыхФайлов = РаботаСФайламиВызовСервера.ПолучитьКоличествоЗанятыхФайлов(,,Истина);

			СтандартныеПодсистемыКлиент.УстановитьПараметрКлиента(
				"КоличествоЗанятыхФайлов", 
				КоличествоЗанятыхФайлов);
			
			ВернутьРезультат(ПараметрыВыполнения.ОбработчикРезультата, ПараметрыВыполнения);
			Возврат;
		КонецЕсли;
		
		КонецЕсли;
	#КонецЕсли
	
	Если Не ПолучитьФайлы(ПередаваемыеФайлы,, ПараметрыВыполнения.ПараметрПутьКФайлу, Ложь) Тогда
		ВернутьРезультат(ПараметрыВыполнения.ОбработчикРезультата, ПараметрыВыполнения);
		Возврат;
	КонецЕсли;
	
	// Для варианта с хранением файлов на диске (на сервере)
	// файл удаляется из временного хранилища после получения.
	Если ЭтоАдресВременногоХранилища(АдресФайла) Тогда
		УдалитьИзВременногоХранилища(АдресФайла);
	КонецЕсли;
	
	Состояние();
	ПолучитьССервераИЗарегистрироватьВЛокальномКэшеФайловЗаверше­ние(ПараметрыВыполнения);
	
КонецПроцедуры
Показать
6. melenaspb 208 26.01.23 13:33 Сейчас в теме
Платформа 8.3.22 версии? Там ошибка в платформе.Ошибка не всегда проявляетя, но если появилась - то все. Надо или откатываться 8.3.21. Или попробовать тестовую версию 8.3.22.1791, вроде в ней исправили. Или попробовать очистить серверный кэш - остановить сервер 1с предприятия и стереть каталог snccntx*, снова запустить сервер. Но чистка кэша не гарантия.
huzden; espero; MikStyle; wokituk; GorI; zeibba; RedG52; milanse; krundel; Silenser; vindsor; smit1c; chebser; Sp1k3; +14 Ответить
7. Sp1k3 12 26.01.23 13:54 Сейчас в теме
(6) Да. 8.3.22.1709. Сейчас возможности обновиться нет, тогда попробуем сперва почистить серверный кэш.
Есть подозрение, что ошибка стала проявляться после динамического обновления
9. Sp1k3 12 26.01.23 16:21 Сейчас в теме
(6) Серверный кэш почистил и всё заработало, спасибо за совет! Буду просить админов обновить платформу...
10. Tolyas 42 23.03.23 12:47 Сейчас в теме
(6) Помогла чистка кэша сервера, спасибо!
8. melenaspb 208 26.01.23 14:00 Сейчас в теме
Вроде это ошибка номер 70018120
krikmarin; +1 Ответить
11. chebser 4 14.04.23 13:33 Сейчас в теме
Очистка кэша помогла.
12. milanse 38 13.07.23 11:15 Сейчас в теме
Такая же проболема в 1С:Предприятие 8.3 (8.3.22.1851)
13. milanse 38 13.07.23 11:16 Сейчас в теме
14. user1894297 14.07.23 10:50 Сейчас в теме
(13) А что за cntx? Где его найти и удалить?
15. NurriK 2 14.07.23 11:23 Сейчас в теме
(14) Это папка snccntx..... , находится по пути «%ProgramFiles%\1cv8\srvinfo\reg_1541\» , то есть на сервере, где находится кластер 1С.
16. NurriK 2 14.07.23 11:26 Сейчас в теме
(14) а так в принципе если в поисковике наберёте "очистка серверного кэша 1С" или "очистка сеансовых данных на сервере 1с", то там более подробно будет описано где и как это делать.
17. milanse 38 14.07.23 11:48 Сейчас в теме
Более того, эта проблема вызывала некорректную обработку ошибки и в другом месте. Например обработка Диадок падала с закрытием платформы и ошибкой сеанс отсутствует или удален, а должно было быть другое и после чистки кеша поправилось.
18. wokituk 17 31.10.23 16:42 Сейчас в теме
В теме обсуждается ПолучитьФайлы(...)
Столкнулся точно с такой же ошибки при ПолучитьФайл(...). Работало, работало и перестало

Платформа 8.3.23.1912

Без очистки серверного Кэш помогло
замена ПолучитьФайл(...) на ПолучитьФайлССервераАсинх(...)
19. djslon16 29.11.23 18:31 Сейчас в теме
А как называется эта папка в линуксе. У нас сервер на линуксе и такая же ошибка вылазит.
20. depo 05.03.24 19:19 Сейчас в теме
Похоже, что проблема в связности объектов в tempstorage и сеансовых данных.
1С где-то хранит это соответствие. Когда вы перегружаете сервер с очисткой сеансовых данных или как у некоторых, без очистки, при этом не очищая tempstorage, закешированные файлы, остаются в tempstorage, а сеансов к ним нет. 1С валит ошибку.

Что делать.
при перезагрузке сервера 1С:
1. Стопаем сервер 1С (ждем пару минут и глушим из процессов rmngr.exe ragent.exe и все rphost.exe)
2. чистим tempstorage (каталог temp в профиле пользователя от которого работает служба сервера 1С)
3. удаляем каталог сеансовых данных snccntx3XXX...XXX в рабочем каталоге сервера 1С. Где он находится, можно посмотреть в свойствах службы сервера 1С.
4. запускаем сервер 1С
21. depo 05.03.24 19:23 Сейчас в теме
Похоже, что проблема в связности объектов в tempstorage и сеансовых данных.
1С где-то хранит это соответствие. Когда вы перегружаете сервер с очисткой сеансовых данных или как у некоторых, без очистки, при этом не очищая tempstorage, закешированные файлы, остаются в tempstorage, а сеансов к ним нет. 1С валит ошибку.

Что делать.
при перезагрузке сервера 1С:
1. Стопаем сервер 1С (ждем пару минут и глушим из процессов rmngr.exe ragent.exe и все rphost.exe)
2. чистим tempstorage (каталог temp в профиле пользователя от которого работает служба сервера 1С)
3. удаляем каталог сеансовых данных snccntx3XXX...XXX в рабочем каталоге сервера 1С. Где он находится, можно посмотреть в свойствах службы сервера 1С.
4. запускаем сервер 1С
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот