Показать полную графическую версию : Возможно ли создать невидимый локальный диск?
Avatar-Lion
13-09-2019, 23:14
Есть старый ПК, на нём 1С 7.7. Перенёс программу и базу на новый ПК. 1С запускается и открывает базу, но при запуске подтупливает и каждый раз вываливается ошибка:
Текст.Записать("D:\1sbases\1Cv77\1SBDB\Архивы\РезАрхБухКажДень.txt");
{Глобальный модуль(6068)}: Неверное имя файла!
Я не спец по 1С, но, по всей видимости, база была как-то вручную отредактирована (такое вообще возможно?) с целью создания резервной копии при каждом запуске 1С. В принципе, учитывая хреновое состояние старого ПК, в этом действительно был смысл. Однако на новом ПК нет диска D:, только диск С:, ибо не вижу смысла разбивать SSD на два раздела. ОС на новом компьютере Windows 10 Pro (64-bit).
Понятно, что можно отщипнуть кусочек с хвоста диска С и создать диск D, но он со временем забьётся, а как убрать эту идиотскую команду из базы - я не знаю. Что можно сделать в такой ситуации? Есть ли возможность создать какой-нибудь виртуальный диск D, который не был бы виден и пропадал после выключения компа?
а как убрать эту идиотскую команду из базы - я не знаю. »
В смысле? Запустить Конфигуратор, открыть конфигурацию, открыть глобальный модуль, перейти на строку 6068 (если я правильно понимаю), сменить путь на потребный, сохранить конфигурацию. Или у Вас Базовая версия 1С:Предприятия?
Есть ли возможность создать какой-нибудь виртуальный диск D, который не был бы виден и пропадал после выключения компа? »
subst /?
например:
subst.exe d: "%temp%"
как я понимаю. Чтобы смапированный диск был виден — 1С:Предприятие должно исполняться в том же сеансе консоли, что и данная команда. Можно ещё с реестром поиграться, но тут можно и «огрести».
Avatar-Lion
13-09-2019, 23:54
открыть конфигурацию »
Требует пароль. Странно... При запуске базы ничего не требует, ни имени, ни пароля - сразу запускается.
---
Нашел какой-то "USP патч", теперь всё ОК, пускает в конфигурацию с пустым паролем, но там нет никаких глобальных модулей: http://imagestun.com/hosting/kartinki/avaava.png
Требует пароль. »
1. Искать разработчика, который установил этот пароль на конфигурацию.
Странно... При запуске базы ничего не требует, ни имени, ни пароля - сразу запускается. »
Это разные пароли.
пускает в конфигурацию с пустым паролем, но там нет никаких глобальных модулей: http://imagestun.com/hosting/kartinki/avaava.png »
https://i.imgur.com/Sw8JAKI.pngМеню \Действия\Глобальный модуль.
Avatar-Lion
14-09-2019, 00:24
О, теперь нашел, да. :) И кусок этот нашёл. Удалил всё нахрен, что касалось резервного копирования. Теперь пишет при запуске базы "Ошибка компиляции глобального модуля".
Заново восстановил базу из выгрузки. Вот этот кусок:
// ПРЕДОПРЕДЕЛЕННЫЕ ПРОЦЕДУРЫ
//
//******************************************************************************
// Предопределенная процедура
//
Процедура ПриНачалеРаботыСистемы()
Текст=СоздатьОбъект("Текст");
Текст.ДобавитьСтроку("[General]
|Output=""D:\1sbases\1Cv77\1SBDB\Архивы\ОтчСохрАрх.txt""
|SaveData=1
|Quit=1
|[SaveData]");
Текст.Шаблон(1);
Текст.ДобавитьСтроку("SaveToFile=""D:\1sbases\1Cv77\1SBDB\АрхивыКаждыйДень\РезАрхБухОт[Формат(ТекущаяДата(),""Д ГГГГММДД"")].zip""");
Если ФС.СуществуетФайл("\\Glavbuh\1Cv77\1SBDB\Архивы\РезАрхБухКажДень.txt")=1 Тогда
Текст.Записать("\\Glavbuh\1Cv77\1SBDB\Архивы\РезАрхБухКажДень.txt");
Иначе
Текст.Записать("D:\1sbases\1Cv77\1SBDB\Архивы\РезАрхБухКажДень.txt");
КонецЕсли;
Текст.ЗаменитьСтроку(2,"Output=""D:\1sbases\PRBasic\Архивы\ОтчСохрАрхЗарПл.txt""");
Текст.ЗаменитьСтроку(6,"SaveToFile=""D:\1sbases\PRBasic\АрхКаждДень\РезАрхЗарПлОт[Формат(ТекущаяДата(),""Д ГГГГММДД"")].zip""");
Если ФС.СуществуетФайл("\\Buhzarpl\PRBasic\Архивы\РезАрхЗарПлКажДень.txt")=1 Тогда
Текст.Записать("\\Buhzarpl\PRBasic\Архивы\РезАрхЗарПлКажДень.txt");
КонецЕсли;
//Если (ФС.СуществуетФайл("C:\1sBases\2005\ЭтоНеКаталогСервера.txt")=1) Тогда //м_№ D:\1sbases\1Cv77\ССМУ-24\1sbdb
Если (ФС.СуществуетФайл("\\Glavbuh\1Cv77\1SBDB\АрхивыКаждыйДень\РезАрхБухОт*")=1) Тогда //м_№
СписАрхивов=СоздатьОбъект("СписокЗначений"); //м_№
ПервАрх =""; //м_№
ПервАрх = ФС.НайтиПервыйФайл("\\Glavbuh\1Cv77\1SBDB\АрхивыКаждыйДень\РезАрхБухОт*"); //м_№
СписАрхивов.ДобавитьЗначение(ПервАрх,ПервАрх); //м_№
СледАрх = "1"; //м_№
Пока (ПервАрх <> СледАрх) Цикл //м_№
СледАрх = ФС.НайтиСледующийФайл(); //м_№
Если СписАрхивов.НайтиЗначение(СледАрх)=0 Тогда //м_№
Если (СледАрх = "") Тогда
Прервать //м_№
КонецЕсли; //м_№
СписАрхивов.ДобавитьЗначение(СледАрх,СледАрх); //м_№
КонецЕсли; //м_№
КонецЦикла; //м_№
Пока СписАрхивов.РазмерСписка()>90 Цикл //м_№
СписАрхивов.Сортировать(,); //м_№
Если СписАрхивов.РазмерСписка()>90 Тогда //м_№
ПервАрх = ФС.НайтиПервыйФайл("\\Glavbuh\1Cv77\1SBDB\АрхивыКаждыйДень\"+СписАрхивов.ПолучитьЗначение(1,)); //м_№
ФС.УдалитьФайл(Строка("\\Glavbuh\1Cv77\1SBDB\АрхивыКаждыйДень\"+ПервАрх)); //м_№
СписАрхивов.УдалитьЗначение(1); //м_№
КонецЕсли; //м_№
КонецЦикла; //м_№
Если (ФС.СуществуетФайл("\\BuhZarpl\Не_Стирать\РезАрхБухОт*")=1) Тогда //м_№
// Если (ФС.СвободноеМестоНаДиске("E:")>15000000) Тогда //м_№
СписАрхивов.Сортировать(1,); //м_№
ПервАрх = ФС.НайтиПервыйФайл("\\Glavbuh\1Cv77\1SBDB\АрхивыКаждыйДень\"+СписАрхивов.ПолучитьЗначение(1,)); //м_№
ФС.КопироватьФайл(Строка("\\Glavbuh\1Cv77\1SBDB\АрхивыКаждыйДень\"+ПервАрх),Строка("\\BuhZarpl\Не_Стирать\"+ПервАрх),0); //м_№
// КонецЕсли; //м_№
КонецЕсли; //м_№
КонецЕсли; //м_№
Если (ФС.СуществуетФайл("\\BuhZarpl\Не_Стирать\ItIsReserv.txt")=1) Тогда //м_№
Если (ФС.СуществуетФайл("\\BuhZarpl\Не_Стирать\РезАрхБухОт*")=1) Тогда //м_№
СписАрхивов=СоздатьОбъект("СписокЗначений"); //м_№
ПервАрх =""; //м_№
ПервАрх = ФС.НайтиПервыйФайл("\\BuhZarpl\Не_Стирать\РезАрхБухОт*"); //м_№
СписАрхивов.ДобавитьЗначение(ПервАрх,ПервАрх); //м_№
СледАрх = "1"; //м_№
Пока (ПервАрх <> СледАрх) Цикл //м_№
СледАрх = ФС.НайтиСледующийФайл(); //м_№
Если СписАрхивов.НайтиЗначение(СледАрх)=0 Тогда //м_№
Если (СледАрх = "") Тогда
Прервать //м_№
КонецЕсли; //м_№
СписАрхивов.ДобавитьЗначение(СледАрх,СледАрх); //м_№
КонецЕсли; //м_№
КонецЦикла; //м_№
Пока СписАрхивов.РазмерСписка()>10 Цикл //м_№
СписАрхивов.Сортировать(,); //м_№
Если СписАрхивов.РазмерСписка()>10 Тогда //м_№
ПервАрх = ФС.НайтиПервыйФайл("\\BuhZarpl\Не_Стирать\"+СписАрхивов.ПолучитьЗначение(1,)); //м_№
ФС.УдалитьФайл(Строка("\\BuhZarpl\Не_Стирать\"+ПервАрх)); //м_№
СписАрхивов.УдалитьЗначение(1); //м_№
КонецЕсли; //м_№
КонецЦикла; //м_№
КонецЕсли; //м_№
КонецЕсли; //м_№
//КонецЕсли; //м_№
Как его корректно удалить?
P.S. Оказывается, чтобы русские символы копировались нормально в буфер обмена, надо раскладку на русскую сменить. Жесть... Эту 1С какие-то больные люди писали.
Вот этот кусок: »
А что ниже?
Удалил всё нахрен, что касалось резервного копирования. »
Видимо, удалили лишнее, либо удалили недостаточно.
Как его корректно удалить? »
Оставьте саму предопределённую процедуру:
Процедура ПриНачалеРаботыСистемы()
…
КонецПроцедуры
Но внутри неё может быть и ещё что-то, окромя хардкорной нашлёпки архивирования. Не захватите лишку.
P.S. Оказывается, чтобы русские символы копировались нормально в буфер обмена, надо раскладку на русскую сменить. Жесть... Эту 1С какие-то больные люди писали. »
Да нет, это достаточно распространённая проблема была. В до-Vista'вские времена сие, как правило, «лечилось» подменой nls и substitution'ами шрифтов в реестре (что, в свою очередь, создавало проблемы с некоторыми другими приложениями [например, Adobe]).
А вот 16-разрядный установщик — это воистину «жесть».
А вот 16-разрядный установщик — это воистину «жесть» »
так, блин, 7ая версия появилась в 98 году
Busla, ну, а я про что. Релизы-то новые выходили (когда там появился последний, 27-й?), продажи-то продолжались, так? А на принципиальную невозможность инсталляции на x64-платформах просто «забили».
Avatar-Lion
14-09-2019, 12:43
А что ниже? »
Ниже вот это (захватил на всякий случай последнюю строчку из предыдущего спойлера).
//КонецЕсли; //м_№
ЭтоПервыйЗапуск = 0;
Если ПустоеЗначение(Константа.НомерРелиза) = 1 Тогда
ЭтоПервыйЗапуск = 1;
Док = СоздатьОбъект("Документ");
Если Док.ВыбратьДокументы() = 1 Тогда
ЭтоПервыйЗапуск = 0;
КонецЕсли;
Если ЭтоПервыйЗапуск = 1 Тогда
ПоставляемыеСправочники = ",КлассификаторЕН,";
Индекс = 1;
КоличествоСправочников = Метаданные.Справочник();
Пока (ЭтоПервыйЗапуск = 1) и (Индекс <= КоличествоСправочников) Цикл
ВидСпр = Метаданные.Справочник(Индекс).Идентификатор;
Если Найти(ПоставляемыеСправочники, ","+ВидСпр+",") = 0 Тогда
Спр = СоздатьОбъект("Справочник."+ВидСпр);
Если Спр.ВыбратьЭлементы(0) = 1 Тогда
ЭтоПервыйЗапуск = 0;
КонецЕсли;
КонецЕсли;
Индекс = Индекс+1;
КонецЦикла;
КонецЕсли;
Если ЭтоПервыйЗапуск = 1 Тогда
Константа.НомерРелиза = Лев(Метаданные.Комментарий, 8);
ОткрытьФормуМодально("Обработка.ПервыйЗапуск", 1);
Иначе
Константа.НомерРелиза = "7.70.001";
КонецЕсли;
КонецЕсли;
// Если ПроверитьЛегальностьПолученияОбновления() = 0 Тогда //м_№(было)
Если 1 = 0 Тогда //м_№(стало)
Возврат;
КонецЕсли;
ПервыйЗапускНаРабочемМесте = ВосстановитьЗначение("ПервыйЗапускНаРабочемМесте");
Оставьте саму предопределённую процедуру: »
Попробовал. Та же шляпа.
Короче ладно... Попробую все пути поменять. Процессор Pentium G5400, SSD хороший, работает по NVMe-протоколу, ёмкость 240Гб. По идее, создание копий не должно будет сильно сказываться на скорости запуска программы.
Ниже вот это (захватил на всякий случай последнюю строчку из предыдущего спойлера). »
Всё ещё не вижу строки с:
КонецПроцедуры
Или приведённое — как раз все внутренности внутри процедуры ПриНачалеРаботыСистемы()?
Попробовал. Та же шляпа. »
Хмм… Не должно такого быть.
Короче ладно... Попробую все пути поменять. »
Ну, или так :).
Avatar-Lion
14-09-2019, 14:55
Да, точно. Помучал скроллинг на мышке и домотал-таки до "КонецПроцедуры // ПриНачалеРаботыСистемы()". Блин... А нельзя как-то создать новую базу без всякого лишнего дерьма и перекинуть в нее данные из нынешней?
Avatar-Lion, если Вы уверены, что ничего ценного для дальнейшей работы конфигурации внутри вышеназванной процедуры нет, Вы можете просто оставить от неё две строки:
Процедура ПриНачалеРаботыСистемы()
КонецПроцедуры
А нельзя как-то создать новую базу без всякого лишнего дерьма и перекинуть в нее данные из нынешней? »
Можно. Но разбираться, что есть лишнее, что не лишнее — всё равно придётся. Кто знает, что там нахардкодено было программистами под Вашу конкретную контору поверх какой-либо стандартной конфигурации?!
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.