как изменить локальные темповые папки 1С пользователя

Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
1. jeck122 07.05.15 15:13 Сейчас в теме
Стокнулся с проблемой в Бух 2.0, ос win serv 2003, в ЭДО приходят Произвольный документ с вложением, но не суть, при попытке открыть вложение программа пытается его кешировать в папку

C:\Documents and Settings\%userprofile% \Local Settings\Application Data\1C\Файлы\БухгалтерияПредприятия\<Имя пользователя>\<Имя файла>

проблема в том что <Имя пользователя> около 30 символов ФИО полностью, <Имя файла> - больше 50 там в имени вложения идентефикатор документа и отправителя получателя в эдо

операционная система выдает ошибку.

Хочу изменить <Имя пользователя> убрать Имя и Отчество, должно помочь, так как у пользователей без отчества в частности меня, сохраняется нормально. Но не могу найти куда это имя сохранено, имя пользователя в справочнике менял, в конфигураторе тоже, кеш чистил, все равно Имя остается первоначальное, то есть с отчеством. Или может можно вообще как нибудь самому сделать путь к локальным папкам короче?
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Aleksey58 07.05.15 15:21 Сейчас в теме
8. jeck122 07.05.15 18:01 Сейчас в теме
(2) Aleksey58,

сделал приблизительно так

mkdir C:\Temp\1c\user1
rd /s /q "C:\Documents and Settings\user1\Application Data\1C"
mklink /j "C:\Documents and Settings\user1\Application Data\1C" "C:\Temp\1c\user1"

не помогло стал сохранять файл в старом месте в новом делать на него ссылку ((
3. h00k 51 07.05.15 15:32 Сейчас в теме
(1) jeck122,
Или может можно вообще как нибудь самому сделать путь к локальным папкам короче?

RegEdit
- HKEY_USERS
--- <ид пользователя>
---- Environment

там заменяем значение, например, на системный диск:
для Tmp на %SystemDrive%\TEMP
для Temp на %SystemDrive%\TEMP

П.С.: Если вынести эти папки на RAM или SSD-диск, то еще и неплохой прирост в скорости работы получается...
9. jeck122 07.05.15 18:03 Сейчас в теме
(3) h00k, не помогло в этой ветке реестра он хранит видимо не все локальные пути, что то перенеслось, то что нужно осталось по старому
12. Fox-trot 164 07.05.15 18:23 Сейчас в теме
(9) jeck122,
тады для компа смотри/меняй \HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
\TEMP
\TMP
13. StBender 07.05.15 18:28 Сейчас в теме
(12) Fox-trot, механизм 1с всё равно будет дописывать свои монструозные пути, так что надежнее всё же в коде изменить получение рабочего пути.
15. Fox-trot 164 08.05.15 06:24 Сейчас в теме
(13) StBender, так ежели конфу править нельзя, то какие еще могут быть варианты?
14. h00k 51 07.05.15 18:42 Сейчас в теме
(9) jeck122,
что то перенеслось, то что нужно осталось по старому

После правки реестра комп или хотя бы службы перезапускали?
16. Fox-trot 164 08.05.15 06:25 Сейчас в теме
(14) h00k, а сервер тут причем, если все происходит на стороне клиента?
17. jeck122 08.05.15 08:49 Сейчас в теме
(14) h00k, сервер перезагружать когда на нем пользователи это фантастика, но сеанс завершал, я так конимаю это не совсем локальный кэш, это просто в отдельной процедуре жестко прописаны пути StBender точно указал место где это задано. Можно отнести к небольшим недальновидным косякам 1С, так делать нельзя, если конфу править нельзя то ситуация безвыходная) но это не мой случай
4. StBender 07.05.15 15:48 Сейчас в теме
(1) jeck122, поищите в конфигураторе по "\1C\Файлы\" там где-то в модулях файловых функций определяется вид пути, для сохранения файлов. Можете убрать формирование лишних элементов путей файлов. Или вообще прописать свой короткий путь для сохранения файлов. У меня этот путь определяется здесь

Функция ВыбратьПутьККаталогуДанныхПользователя() Экспорт
	
	ИмяКаталога = "";
	
	ВыбратьРабочийКаталогПользователя = Ложь;
	
#Если Не ВебКлиент Тогда
	
	Если ОбщегоНазначенияКлиентСервер.ЭтоLinuxКлиент() Тогда
		ИмяКаталога = Вычислить("РабочийКаталогДанныхПользователя()");
	Иначе
		ПараметрыРаботыКлиента = СтандартныеПодсистемыКлиентПовтИсп.ПараметрыРаботыКлиента();
		
		Если ПараметрыРаботыКлиента.ЭтоБазоваяВерсияКонфигурации Тогда
			ВыбратьРабочийКаталогПользователя = Истина;
		Иначе
			Оболочка = Новый COMОбъект("WScript.Shell");
			Путь = Оболочка.ExpandEnvironmentStrings("%APPDATA%");
			Путь = Путь + "\1C\Файлы\";
			
			Путь = Путь
			     + ПараметрыРаботыКлиента.ИмяКонфигурации
			     + ОбщегоНазначенияКлиентСервер.РазделительПути();
			
			ИмяПользователя = ПользователиКлиентСервер.ТекущийПользователь();
			
			ИмяКаталога = Путь + ИмяПользователя;
			ИмяКаталога = СтрЗаменить(ИмяКаталога, "<", " ");
			ИмяКаталога = СтрЗаменить(ИмяКаталога, ">", " ");
			ИмяКаталога = СокрЛП(ИмяКаталога);
			
			ИмяКаталога = ИмяКаталога + ОбщегоНазначенияКлиентСервер.РазделительПути();
		КонецЕсли;
		
	КонецЕсли;
	
#Иначе // ВебКлиент
	
	РасширениеПодключено = ПодключитьРасширениеРаботыСФайлами();
	
	Если РасширениеПодключено Тогда
		
		Если ОбщегоНазначенияКлиентСервер.ЭтоПлатформа83БезРежимаСовместимости() Тогда
			ИмяКаталога = Вычислить("РабочийКаталогДанныхПользователя()");
		Иначе
			ВыбратьРабочийКаталогПользователя = Истина;
		КонецЕсли;
		
	КонецЕсли;
	
#КонецЕсли
	
	Если ВыбратьРабочийКаталогПользователя Тогда
		
		Режим = РежимДиалогаВыбораФайла.ВыборКаталога;
		ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
		ДиалогОткрытияФайла.ПолноеИмяФайла = "";
		ДиалогОткрытияФайла.Каталог = "";
		ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
		ДиалогОткрытияФайла.Заголовок = НСтр("ru = 'Выберите путь к рабочему каталогу'");
		
		Если ДиалогОткрытияФайла.Выбрать() Тогда
			ИмяКаталога = ДиалогОткрытияФайла.Каталог;
			ИмяКаталога = ИмяКаталога + ОбщегоНазначенияКлиентСервер.РазделительПути();
		КонецЕсли;
	КонецЕсли;
	
	Возврат ИмяКаталога;
	
КонецФункции
Показать

Модуль - ФайловыеФункцииСлужебныйКлиент.
5. h00k 51 07.05.15 16:29 Сейчас в теме
(4) StBender, Это только для конфигураций на базе БСП. Но менять в любом случае лучше или через подписку или через вызов своего обработчика.
6. StBender 07.05.15 16:46 Сейчас в теме
(5) h00k, принцип формирования имени папки копирует бспшный, так что думаю и сам код не сильно отличается. В любом случае данный механизм может натолкнуть на представления о работе механизма, реализованного у ТС.
7. h00k 51 07.05.15 17:00 Сейчас в теме
(6) StBender, не, я к тому, что в некоторых древних версиях, до БСП, свой алгоритм.
Но так-то да, можно найти процедуру формирования имени файла и переопределить её на свою.

Особенно если нет дополнительного ССД для временных файлов или ССД является системным диском. Но даже в этих случаях, я например, предпочитаю весь тмр "мусор" для всех учетных записей скидывать в С:\Темр, особенно это касается учеток от имени которых запускаются службы.
10. jeck122 07.05.15 18:08 Сейчас в теме
(4) StBender, спасибо в принципе я подозревал что это где-то жестко прописано, но хотелось побыстрее)) там и подправлю но уже не сегодня =)
11. StBender 07.05.15 18:17 Сейчас в теме
(10) jeck122, "побыстрее" не 1сный вариант :) Этот чудесный механизм ещё чудеса выдает, если в имени пользователя присутствуют интересные символы: двоеточие, или ещё что.
Оставьте свое сообщение

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