Автоматический бэкап средствами 1С, который обязательно сделается (без перезапуска сервера).
База данных - Архивирование (backup)
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
| Наименование | Скачано | Купить файл | По подписке PRO |
|---|---|---|---|
|
Формирование скрипта VBS (VBE) - управляемые формы - для 8.3
.epf 52,95Kb
135
|
135 | 2 500 руб. Купить | 1 SM Скачать |
|
Формирование скрипта VBS (VBE) для 8.2
.epf 54,18Kb
274
|
274 | 2 500 руб. Купить | 1 SM Скачать |
|
Формирование скрипта VBS (VBE) для 8.1
.epf 53,95Kb
226
|
226 | 2 500 руб. Купить | 1 SM Скачать |
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Обработка предназначена только для SQL версии 1С. Чтобы создать резервную копию средствами 1С нужно заблокировать базу и отрубить повисших пользователей через консоль... Но как быть если 200 пользователей не хотят на ночь выходить из базы? Ориентирована обработка на системных администраторов, которым нужно организовать ежедневное автоматическое создание резервной копии. В режиме "1С:Предприятие" она формирует файл vbs скрипта, который можно скомпилировать (чтобы не хранить пароли открытым текстом). Этот скрипт устанавливает блокировку ИБ, ждет 5 минут, после чего жестко отключает все соединения с ИБ. После завершения всех соединений (даже открытого конфигуратора), начинает с кодом доступа выгружать базу. Даже при возникновении ошибок (например появилось регламентное задание после разрыва всех содинений) база все равно будет выгружена.
Запуск скрипта необходимо настроить в планировщике заданий Windows, например на ночь.
Инструкция по установке
1. Скачать обработку с сайта и сохранить, например, на рабочий стол
2. Запустить в режиме "1С:Предприятие" базу данных для которой будет настроено архивирование
3. В 1С:Предприятии через меню "Файл" открыть файл с рабочего стола "Формирование скрипта VBS (VBE).epf"
4. Указать параметры скрипта и нажать кнопку "Сформировать"
5. Дождаться сообщения, об окончании настройки (Создается пользователь Робот для бэкапа с полными правами и 36 значным паролем - каждый раз новый, уникальный, никому неизвестный GUID)
Что делать, если при архивировании произошел сбой и блокировка не снялась?
1. Блокировка автоматически снимается через 1 час после запуска скрипта.
Что делать, если базу перенесли на другой сервер или переименовали?
1. Повторить действия, описанные в "Инструкции по установке"
Важно: скрипт работает только если на сервере установлен компонент COMСоединение (по умолчанию не ставится). Чтобы проверить, заходим на сервере 1С в панель управления \ Установка удаление программ \ Сервер 1С Предприятие \ Изменить... Если нужно, добавляем COMСоединение.
Обработка сделана на основе //infostart.ru/public/19363/ и доработанного скрипта //infostart.ru/public/63813/
Вступайте в нашу телеграмм-группу Инфостарт
См. также
Архивирование (backup) Инструменты администратора БД 1С:Предприятие 8 1C:Бухгалтерия 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Платные (руб)
Данная разработка позволит решить вопрос с резервным копированием Ваших баз в автоматическом режиме, расположенных на сервере 1С. Система умеет ставить блокировки на вход, блокировать фоновые задания, принудительно отключать сеансы пользователей. И все это система делает в автоматически при создании бэкапа (или через команду). Выгрузка происходит в родной формат 1С - .dt. Так же система умеет архивировать данные выгрузки с установкой пароля. Умеет менять расширение файла zip или dt на любое указанное вами, что позволит сохранить выгрузки от шифровальщика. Может удалять старые копии выгрузок, оставляя указанное количество резервных копий, начиная с самой поздней. Только для WINDOWS! Версия 1.4 от 28.05.2026
7320 руб.
06.11.2012 80379 635 45
Архивирование (backup) Обновление 1С Системный администратор Разработчик 1С 8.3 Бесплатно (free)
Платформа 8.3.17, MS SQL Server: обновление конфигурации падает через 15 секунд на этапе обновления предопределённых данных, и конфигуратор при каждом входе предлагает только повторить. Проверьте у себя, когда сделана последняя полная копия базы: у нас её не было почти месяц. Разбор по минутам: что не помогло (перезапуск агента сервера 1С, перезагрузка, пакетный /UpdateDBCfg, три совета со стороны) и почему. Как ibcmd достал .dt из базы, которая не открывается, и как новую базу подставили под старым именем в кластере 1С через rac, не трогая пользователей. Простой 57 минут, потерь данных нет. Отдельно ошибки ИИ-агента Claude, который работал на сервере, и порядок действий на случай, если это случилось у вас.
03.11.2026 423 nedomolkov.ivan 10
Архивирование (backup) Инструменты администратора БД Системный администратор Разработчик 1С 8.3 1С:Управление торговлей 11 1С:Библиотека стандартных подсистем Абонемент ($m)
Полностью автоматизированная внешняя обработка для администрирования 1С: блокировка/разблокировка ИБ, массовое завершение сеансов, резервное копирование и восстановление из .dt, выгрузка/загрузка конфигурации (.cf), пакетная работа с расширениями (.cfe) и дополнительными обработками – всё через удобную форму без ручных запусков конфигуратора и консоли кластера
1 стартмани
21.01.2026 6493 66 war41k 0
Архивирование (backup) Групповая разработка (Git, хранилище) Системный администратор Разработчик Бесплатно (free)
Как дать возможность каждому разработчику 1С вести разработку, тестирование и оптимизацию на собственной полноразмерной копии базы и при этом не тратить миллиарды рублей и тысячи часов на развертывание тестового окружения, а так же экономить дисковое пространство? Расскажем о том, как с помощью инструмента Database Lab получать полноразмерные копии базы 1C на СУБД PostgreSQL за считанные секунды (даже в случае использования многотерабайтных баз).
15.12.2025 14173 nasonkin 19
Архивирование (backup) Учет документов Бухгалтер 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Платные (руб)
В текущих версиях 1С пока нет функции, позволяющей автоматически отмечать возврат оригиналов документов с помощью сканера штрих-кодов. Многие контрагенты часто сталкиваются с проблемой утери оригиналов УПД или их невозврата. В ответ на эти запросы было разработано расширение, которое упрощает контроль за возвратом оригиналов документов и помогает лучше организовать их хранение.
12200 руб.
19.02.2025 2938 3 0
Архивирование (backup) Системный администратор 1С 8.3 Бесплатно (free)
Предлагаю Вашему вниманию 3 скрипта на bash (sh) для архивирования (backup) типовых конфигураций на Linux средствами 1С и Postgres. Перед запуском корректно заполните раздел "Параметры" в соответствии с Вашими настройками.
20.01.2025 5962 Prelude 5
Архивирование (backup) 1С 8.3 1С:Библиотека стандартных подсистем Абонемент ($m)
Резервные копии базы 1С без завершения сеансов: .dt, файл базы, PostgreSQL, MS SQL, своя команда. Расписание, профили, ротация, ZIP, FTP, журнал и письмо об ошибке. Платформа 8.3+ (кроме 8.2), любая конфигурация с БСП. Подключение за 5 минут.
5000 руб.
27.08.2024 4133 1 6
HighLoad оптимизация Администрирование СУБД Архивирование (backup) Системный администратор Разработчик 1С:Предприятие 8 Бесплатно (free)
Бэкап в Postgres состоит из набора граблей, которые нужно обойти для успешного восстановления. Они заложены в самых неожиданных местах от предмета резервного копирования (база или кластер) до структуры каталогов. Один неверный шаг и восстановление будет невозможным. Почему нельзя было сделать проще, как в MS SQL или Oracle? Почему бэкап в Postgres оставляет впечатление чьей-то лабораторной работы? Статья адресована прежде всего специалистам 1С, избалованным комфортом в MS SQL, в суровых буднях импортозамещения на Postgres.
13.08.2024 10664 1CUnlimited 11
з.ы. firefox
У нас бэкапы обоими средствами делаются одновременно (бекап средствами 1С и полный бэкап SQL выполняется примерно одинаковое количество времени), если на время SQL бэкапа база будет заблокирована, то SQL сервер будет только за :)
А dt - не бэкап, а транспортный формат. В общем случае гарантий его восстановимости 1С не дает, и это русским по белому написано в руководстве администратора.
DT-файлы - не надежный контейнер, база может и не восстановиться.
Да и сама 1С давно признала - DT-архивирование не может применяться в качестве основного бэкапирования.
Если размер одной из таблиц превышает 4 ГБ (например хранилище файлов какое-нибудь), то вы не сможете сделать выгрузку в DT файл из-за ограничений внутреннего формата хранения файлов 1С. Так же при работе с очень большими таблицами наблюдаются падения платформы 1С при восстановлении с ошибкой "Недостаточно памяти".
(160)
Да, бэкап средствами SQL нужно настраивать в первую очередь. Средствами 1С только как дополнительный механизм. К счастью, оба бэкапа могут выполняться одновременно.
1. dt не гарантирует восстановление базы в другом месте
2. Размер практически одинаковый, если пользоваться сжатием
3. Скорость несравнима - в dt долговастенько
4. Базу в 150-200 гб вы будете бекапить в dt ооооочень долго, да с ограничениями по размеру файлов, да с ограничениями по размеру таблиц,д а с ограничениями по длине индексов.
Хотя по самой генерации скрипта вопросов нет.
|Sub SaveToLog(file,msg)
| Set FSO = CreateObject(""Scripting.FileSystemObject"")
| Set File = FSO.GetFile(file)
| Set TextStream = File.OpenAsTextStream(8) -------171 строка, не может файл записать
| TextStream.Write msg
| TextStream.Close
|End Sub";
Показать"dump_log.txt" найти не может. Создай файл с таким именем в папке, в которой скрипт выполняется(лежит).
Процедура ПутьАрхивовОчистка(Элемент, СтандартнаяОбработка)
ПутьАрхивов = "C:";
КонецПроцедуры
(20) Полностью переустановить сервер. Сперва снести, потом выбрать при установке этот компонент. Но что-то с трудом вериться, куда пункт изменить-то мог подеваться? Это помойму стандарт еще со всремен появления "Windows Installer".
(23) Да надо пользователю, из-под которого бэкап стартует, дать право выполнения DCOM операций при невыполненном входе в систему в служебной программе "Управление службами компонентов"
У меня нет такого пункта в изменить... как можно еще это настроить?
Сервер - 2008 R2 х64. Если кто-то сталкивался с этим, подскажите, плиз, куда копать?
(28) Не знаю, на 82 не тестировал, но на 81 глюк лечится добавлением пользователя, из под которого запускается скрипт (Администратор) в группу "Пользователи DCOM" и установкой COM-соединения на сервер.
Почему публикация называется "кторый обязательно сделается (без перезапуска сервера)"?...
Если допустим поднять com-соединение к базе, и "забыть" его закрыть, разве бэкап сделается?
Или если места на диске не хватило... Такое тоже ведь возможно, верно?
Если честно, думал здесь какой-то механизм повторных попыток бэкапа реализован...
Но идея со Scripts Encryptor'ом весьма достойна. Хоть какая-никакая, а защита пароля...
Вот что выдает при попытке сформировать скрипт?! Чтобы это значило?
Ошибка: descr=Сервер недоступен (Не отвечает, завершается аварийно или порт занят другим приложением) line=542
file=Scr\RemoteCreatorImpl.cpp
Код: 80004005
Источник: v82.COMConntctor.1
Помогите, прошу!
(57) Извлечь информацию из зашифрованного .vbe файла можно. Точнее при шифровании используется обфускация текста, алгоритм впринципе обратимый. Но сделать это может очень продвинутый человек, который еще сотней других способов, кроме расшифровки, сможет узнать ваш пароль, или вычистить его напрямую в базе данных... Защита кодированием от простых юзеров, которым хочется побаловаться под полными правами в базе данных.
(0) 1. Не проверки что длина кода для пользователя не "0".
2. Запись файлов происходит на сервере, у пользователя от имени которого работает сервер может не быть прав на каталог с бекапами и валятся ошибки.
Переписал обработку для сохранения файлов на клиенте, но платить 3sm за обработку, которую нужно допиливать напильником как-то не весело.
Я делаю резервирование средствами MS SQL каждый день: полная копия - ночью, и в рабочее время сохраняю цепочки журнала каждые 15 минут.
А не проще ли Snapshot делать? Поднимать базу будете дольше, чем частота инкрементов(не по самому времени выполнения подъема бакапа, а разобраться, что к чему и с чего начать)
или в Oracle / Posgres / IBM DB2 - вы это делаете постоянно в рабочее время по 10-20 раз в сутки? До сих пор считаю, что для SQL - лучше использовать бекапы средствами SQL. Если нужно сделать бекап средствами 1с, можете предупредить пользователей чтобы они вышли (можно почтой, можно используя обработки 1с), а можете отключить наглым образом все соединения через серверную консоль 1с. и все.
Хватит нести бред! Вы б еще бакапили каждые 5 минут!! Найдите мне контору со структурой бизнес-процессов, где обнаружение ЖОПЫ с базой определяется через пол-минуты после ее случения?
Я ВАС УМОЛЯЮ!!!
Да сисадмины/айтишники минимум час будут репу чесать и кормить манагеров/рукотделов/комдиров/гендиров просьбами подождать, прежде, чем въедут в тему(это, если их оперативно найдете в закоулках здания), где и что упало.
Еще столько же, в лучшем случае будут базу поднимать (столько же, потому, что советчиков набежит сразу с пол-дюжины).
Я не видела еще ни одного папика, кто держал бы резервный сервак(за несколько килобаксов) "под парами" где моментально поднималось бы зеркало(кластер) с рабочей базой.
Была одна контора, где фул-бакап делался в обед и вся челядь под роспись при приёме на работу во время ланча ничего в базе не делала(!).
ВСЁ!
Что-то происходит; форс-мажор какой - тупо поднимаем утреннюю/обеденную базу и перебиваем то, что профуфукано.
Да - некошерно, да - противно, да - сизифов труд, но... НО!
Понимаем, что у нас точка восстановления гарантированно вписывается в дальнейшую работу.
А если интенсивность работы такова, что "мама не горюй", то всё, что здесь тредится - детская песочница в соседнем дворе (ну Вы поняли: облака, дата-центры, файловер кластера и проч)
Простите, уважаемый, кто был доволен?
Генеральный, у которого железо/софт падало каждую среду/пятницу, а отдел айти бодро рапортовал, что после 555го падения всё было восстановлено за 14,5 мин, что на 3,5% быстрее, чем в после 554го урона.
Есть такое понятие, как стоимость восстановления данных относительно к реальным (прогнозируемым и моральным потерям).
Мы так привыкли в России корчить из себя распальцашек, хотя не понимаем и 10% впитывания в эту тему(хранения, суппорта и восстановления данных), наивно убаюкивая себя прочей бытовухой. Давайте, наконец, наберемся смелости (это я ща ко всем) расписаться в нашей АВОСЬносьтьночности.
Ну, не знаю. Под моими словами тут любой бы подписался, что пол-года не надо ждать, когда приедет это $-голландский. Методом исключения этот массив мона было вычислить.
Впрочем, это уже риторика. Спасибо за дискуссию.
(прекрасно знаю упёртость сисадминов/айтишников и мужчин в частности)
Считаю, что продолжать дискуссировать с Вами по данной концепции явно нецелесообразным.
Если Ваше самолюбие чем-то задето, то можете безвоздмездно (то есть, даром) принять мои извинения.
ЗЫ: остаюсь при своем мнении!
преамбула:
Вот раз пошли слепой и одноглазый к девочкам. Дорога лесом, сквозь густой ельник. Одноглазый слепого на себе тащит. Вдруг одноглазый натыкается единственным глазом на сучок, громко восклицает: - Всё приехали! - Здравствуйте, девочки!
фабула:
постеснялись бы себе набирать кредитный статус сообщениями, не несущих смысловую нагрузку
p.s. Неспроста говорят, что "человек видит соринку в глазу у собеседника и не замечает бревна у себя"
Да работает, с любым клиент-серверным вариантом работы, от типа СУБД не зависит.
Но архивировать средствами СУБД нужно обязательно!
По крайней мере базу вы всегда развернете через любое другое хранилище.
Более того, свежую копию можно организовать и только средствами скуля, не прибегая ни к каким дополнительным инструментам.
Просто подумайте, что вам нужно
- выгрузка в DT ни даёт ни какой гарантии обратной загрузки и именно поэтому 1С официально не считает dt бэкапом
- время выгрузки в dt в десятки раз больше, чем бэкап сиквела, про инкрементный бэкап и восстановление на момент времени и говорить не приходится
заметно,
иначе бы ты не стал публиковать в 100500 раз выгонялку из 1С и пропагандировать dt
а подписаться на ИТС настоятельно рекомендуем, там кроме статьи о вреде бэкапа в dt есть много чего полезного
Чтобы обычная форма в управляемом режиме открывались свойство конфигурации "Использовать обычные формы в управляемом режиме" должно быть включено. Еще нужно поставить режим запуска этой ИБ насильно "Толстый клиент" и тогда все заработает.
{ COMPRESSION | NO_COMPRESSION }
В SQL Server 2008 Enterprise и более поздних версиях указывает необходимость сжатия резервной копии, переопределяя значение уровня сервера по умолчанию.
При установке по умолчанию резервные копии не сжимаются. Это поведение можно изменить с помощью параметра конфигурации сервера сжатие резервной копии по умолчанию. Дополнительные сведения о просмотре текущего значения этого параметра см. в разделе Просмотр или изменение свойств сервера (SQL Server).
COMPRESSION
Явное включение сжатия резервных копий.
NO_COMPRESSION
Явное отключение сжатия резервной копии.
Формирование файлов скриптов по упрощенной схеме...
Определение пользователя базы данных...
Пользователь Робот найден для выгрузки информационной базы
Формирование скрипта...
Формирование скрипта завершено
А где он сам скрипт появиться должен?
------------------------------------
Пардон, в 8.3 запускал обработку 8.2
Добрый день.
Да, похоже 8.2 обработка под 8.3 не всегда правильно обрабатывает путь файлов. Надо скачать платформу 8.2, поправить обработку.
Спасибо за обратную связь.
С
ТекущийПользователь = Справочники.Пользователи.НайтиПоКоду(Имя);
Если ТекущийПользователь.Пустая() Тогда
ТекущийПользователь = Справочники.Пользователи.СоздатьЭлемент();
ТекущийПользователь.Код = Имя;
ТекущийПользователь.Наименование = Имя;
ТекущийПользователь.Записать();
КонецЕсли;
На
ТекущийПользователь = Справочники.Пользователи.НайтиПоНаименованию(Имя);
ТекущийПользователь = Справочники.Пользователи.НайтиПоНаименованию(Имя);
Если ТекущийПользователь.Пустая() Тогда
ТекущийПользователь = Справочники.Пользователи.СоздатьЭлемент();
//ТекущийПользователь.Код = Имя;
ТекущийПользователь.Наименование = Имя;
ТекущийПользователь.Записать();
КонецЕсли;
А то пользователь не создается.
В описании обработки:
Попробуй права на работу с COM-объектами в Windows проверить или запустить от имени Администратора.
В Windows 7 и старше даже у администратора по умолчанию не полные права и запускать с полными правами нужно правым кликом мыши, пункт "Запустить от имени Администратора". Так же посмотрите как создать класс DCOM 1C тут:
Или сделайте так:
1. Заходим в Панель управления - Администрирование - Службы компонентов.
2. Переходим к ветке Компьютеры - Мой компьютер - Приложения COM+.
3. В контекстном меню выбираем Создать - Приложение. Откроется Мастер установки приложений COM+.
4. Нажимаем "Далее".
5. Выбираем "Создать новое приложение".
6. Вводим имя "V83COMConnector". Устанавливаем переключатель "Серверное приложение". Нажимаем "Далее".
7. На следующем шаге устанавливаем "Текущий пользователь". Нажимаем "Далее".
8. Нажимаем "Готово".
9. В появившейся ветке V83COMConnector переходим к подветке Компоненты.
10. В контекстном меню выбираем Создать - Компонент. Откроется Мастер установки компонентов COM+.
11. Нажимаем "Далее".
12. Выбираем "Установка новых компонентов".
13. Выбираем файл <каталог 1С>\bin\comcntr.dll.
14. Нажимаем "Далее" - "Готово".
15. Переходим к ветке V83COMConnector.
16. В контекстном меню выбираем "Свойства". В открывшемся окне переходим на вкладку «Безопасность».
17. Снимаем галку «Принудительная проверка доступа для приложений». Ставим галку "Применить политику программных ограничений". Устанавливаем Уровень ограничений - "Неограниченный".
18. Нажимаем "ОК".
Класс V83.COMConnector зарегистрирован и может использоваться для подключения к информационным базам.
27.09.2015 2:00:00 Обработка созданной задачи
27.09.2015 2:00:00 Задача запущена
27.09.2015 2:00:00 Действие запущено
28.09.2015 2:00:00 Запрос на запуск проигнорирован, экземпляр уже выполняется.
В логе (dump_log.txt) только одна строка:
BEGIN 27.09.2015 2:00:00
а) Самое простое поставить AgentConnection.GetClusters()(0) на AgentConnection.GetClusters()(1)
б) Добавить в скрипт обход массива кластеров после AgentConnection.GetClusters() и выбор нужного, например, по порту или имени. Но я уже вряд ли подскажу как это сделать и тем более отладить. Насколько я помню Notepad++ поддерживает работу с vbScript.
Активные сеансы и соединения:
компьютер: 1, пользователь: Администратор, сеанс: 7, начат: 18.12.2015 в 16:50:53, приложение: Тонкий клиент;
компьютер: 2, пользователь: Администратор, сеанс: 11, начат: 18.12.2015 в 16:55:43, приложение: Тонкий клиент
Ошибка исключительной блокировки информационной базы.
И так много раз.
Пока руками не удалил соединения, архивация не пошла. Но для ночного архивирования это не айс. Куда копать, подскажите. Или я поторопился, сеансы сами должны были отвалиться через какое-то время?
Да, сеансы по блокировке должны через 5 минут отвалиться. Если этого не происходит, то нужно попробовать руками увеличить время ожидания (sleep) в скрипте после установки блокировки.
Для отладки пока гоняю нескомпилированный vbs-скрипт.
1. Были проблемы с созданием пользователя "Робот" - код пришлось подправить, но и этого оказалось недостаточно.
Похоже, что для управления свойствами информационной базы в кластере пользователя с набором прав "Полные права" недостаточно,
видимо всё же нужен пользователь с набором прав "Администратор системы".
2. Теперь WScript затыкается на строке 113 символ 2 с описанием ошибки "Невозможно найти указанный файл".
В 113-ой строке выполняется запуск 1cv8.exe с параметрами. Содержимое переменной "one1CPath" корректное.
Пока не могу понять куда копать.
Буду благодарен за помощь.
Пробовали скрипт от имени администратора запустить? та же ошибка?
да, ошибка та же - создал cmd-скрипт со ком. строкой "wscript.exe BackUp_bp_mega.vbs" и запустил в контексте от имени администратора.
Ругается на эту строку внутри цикла "делать, пока не создастся"
WshShell.Run one1CPath & " " & Paramters & " /UC""" & LockPermissionCode & """ " & LogPath & " " & BackupPath, 0, Trueв переменной one1CPath при этом
one1CPath = """C:\Program Files\1cv8\8.3.7.2027\bin\1cv8.exe"""забыл сказать - ОС Windows 7 SP1 x64 Ultimate, UAC отключен;
сервер 1С:Предприятие - версия для x64;
версия SQL-сервера, думаю, не важна, - на всякий случай - MS SQL Server 2008 R2 x64 Developer Edition.
После выполнения скрипта блокировка начала сеансов на сервере включена,
блокировка регламентных заданий выключена (псиса не установлена).
хе-хе, и всё-таки one1CPath была определена не верно! Должно быть для x64 ОС:
one1CPath = """C:\Program Files (x86)\1cv8\8.3.7.2027\bin\1cv8.exe"""как я это сразу не заметил - ума не приложу! Старею, однако :)
Скрипт заработал!
ПутьКИсполняемомуФайлу = "";
РеестрОС = ПолучитьCOMОбъект("winmgmts:{impersonationLevel=impersonate}!\\" + ИмяСервера + "\root\default:StdRegProv");
Если Не ЗначениеЗаполнено(ВерсияПлатформы) Тогда
СистемнаяИнформация = Новый СистемнаяИнформация;
ПолнаяВерсияПриложения = СистемнаяИнформация.ВерсияПриложения;
МассивФрагментов = ОбщийИис.РазбитьСтрокуРазделителемИис(ПолнаяВерсияПриложения);
ВерсияПлатформы = Справочники.ВерсииПлатформИис["_" + МассивФрагментов[0] + МассивФрагментов[1]];
КонецЕсли;
Если ВерсияПлатформы = Справочники.ВерсииПлатформИис._81 Тогда
КлючCOMСервера = "\Classes\CLSID\{71CF7C7C-964B-49F1-A507-F1618AF0A7ED}\InprocServer32";
ИначеЕсли ВерсияПлатформы = Справочники.ВерсииПлатформИис._82 Тогда
КлючCOMСервера = "\Classes\CLSID\{5CD98F13-1050-4b43-84F2-33AD97CFC287}\LocalServer32";
ИначеЕсли ВерсияПлатформы = Справочники.ВерсииПлатформИис._83 Тогда
КлючCOMСервера = "\Classes\CLSID\{E92B75E3-2EA1-4FEC-B493-CEF3EC59FCA6}\LocalServer32";
КонецЕсли;
ПутьКИсполняемомуФайлу = Null;
Если ПутьКИсполняемомуФайлу = Null Тогда
//x86 ОС
РеестрОС.GetStringValue(, "SOFTWARE" + КлючCOMСервера, "", ПутьКИсполняемомуФайлу);
КонецЕсли;
Если ПутьКИсполняемомуФайлу = Null Тогда
//x64 ОС
РеестрОС.GetStringValue(, "SOFTWARE\Wow6432Node" + КлючCOMСервера, "", ПутьКИсполняемомуФайлу);
КонецЕсли;
Если ПутьКИсполняемомуФайлу = Null Тогда
ОписаниеОшибки = "Не удалось определить путь к исполняемому файлу клиента на сервере " + ИмяСервера;
ВызватьИсключение ОписаниеОшибки;
КонецЕсли;
Результат = ПутьКИсполняемомуФайлу; Показать// Поучает путь к клиентскому приложению 1cv8.exe
Функция ПолучитьИмяИсполняемогоФайла()
ПутьКИсполняемомуФайлу = "";
РеестрОС = ПолучитьCOMОбъект("winmgmts:{impersonationLevel=impersonate}!\\.\root\default:StdRegProv");
СистемнаяИнформация = Новый СистемнаяИнформация;
ВерсияПлатформы = Лев(СистемнаяИнформация.ВерсияПриложения,3);
Если ВерсияПлатформы = "8.1" Тогда
КлючCOMСервера = "\Classes\CLSID\{71CF7C7C-964B-49F1-A507-F1618AF0A7ED}\InprocServer32";
ИначеЕсли ВерсияПлатформы = "8.2" Тогда
КлючCOMСервера = "\Classes\CLSID\{5CD98F13-1050-4b43-84F2-33AD97CFC287}\LocalServer32";
ИначеЕсли ВерсияПлатформы = "8.3" Тогда
КлючCOMСервера = "\Classes\CLSID\{E92B75E3-2EA1-4FEC-B493-CEF3EC59FCA6}\LocalServer32";
КонецЕсли;
ПутьКИсполняемомуФайлу = Null;
Если ПутьКИсполняемомуФайлу = Null Тогда
//x86 ОС
РеестрОС.GetStringValue(, "SOFTWARE" + КлючCOMСервера, "", ПутьКИсполняемомуФайлу);
КонецЕсли;
Если ПутьКИсполняемомуФайлу = Null Тогда
//x64 ОС
РеестрОС.GetStringValue(, "SOFTWARE\Wow6432Node" + КлючCOMСервера, "", ПутьКИсполняемомуФайлу);
КонецЕсли;
Если ПутьКИсполняемомуФайлу = Null Тогда
ОписаниеОшибки = "Не удалось определить путь к исполняемому файлу клиента на сервере " + ИмяКомпьютера();
ВызватьИсключение ОписаниеОшибки;
КонецЕсли;
Результат = ПутьКИсполняемомуФайлу;
Возврат Результат;
КонецФункции
ПоказатьИ переписываем строку получения пути к исполняемому файлу, вместо
ИмяИсполняемогоФайла = ПолучитьИмяФайла(КаталогПрограммы(), "1cv8.exe");добавляем
ИмяИсполняемогоФайла = ПолучитьИмяИсполняемогоФайла();В этом случае у нас всегда будет определён путь именно к клиентскому приложению.
Функция глобального контекста КаталогПрограммы() определяет место расположения запущенного приложения rphost.exe, и, в нашем случае, никуда не годится!
// Создание пользователя
//
Функция СоздатьПользователя(Имя, Пароль)
УстановитьИнтерфейс = Истина;
УстановитьРоль = Истина;
Если Метаданные.Интерфейсы.Количество() = 0 Тогда
УстановитьИнтерфейс = Ложь;
ИначеЕсли Метаданные.Интерфейсы.Найти("Общий") <> Неопределено Тогда
ВыбранныйИнтерфейс = Метаданные.Интерфейсы.Общий;
Иначе
ВыбранныйИнтерфейс = Метаданные.Интерфейсы[0];
КонецЕсли;
// Проверка на ограничения шаблона
НайденнаяРоль = Неопределено;
Если Метаданные.Роли.Количество() = 0 Тогда
УстановитьРоль = Ложь;
ИначеЕсли НЕ (Метаданные.Роли.Найти("АдминистраторСистемы") = Неопределено) Тогда
НайденнаяРоль = Метаданные.Роли.Найти("АдминистраторСистемы");
ИначеЕсли НЕ (Метаданные.Роли.Найти("ПолныеПрава") = Неопределено) Тогда
НайденнаяРоль = Метаданные.Роли.Найти("ПолныеПрава");
Иначе
Сообщить("Нет возможности создать пользователя """ + Имя + """. В конфигурации отсутствует требуемая роль");
Возврат Ложь;
КонецЕсли;
Попытка
ПользовательНайден = Ложь;
ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени(Имя);
Если ПользовательИБ = Неопределено Тогда
ПользовательИБ = ПользователиИнформационнойБазы.СоздатьПользователя();
Иначе
ПользовательНайден = Истина;
КонецЕсли;
ПользовательИБ.АутентификацияОС = Ложь;
ПользовательИБ.АутентификацияСтандартная = Истина;
ПользовательИБ.Имя = Имя;
ПользовательИБ.ПолноеИмя = Имя;
ПользовательИБ.Пароль = Пароль;
ПользовательИБ.ЗапрещеноИзменятьПароль = Истина;
ПользовательИБ.ПоказыватьВСпискеВыбора = Ложь;
Если УстановитьИнтерфейс Тогда
ПользовательИБ.ОсновнойИнтерфейс = ВыбранныйИнтерфейс;
КонецЕсли;
Если УстановитьРоль Тогда
ПользовательИБ.Роли.Очистить();
ПользовательИБ.Роли.Добавить(НайденнаяРоль);
//ПользовательИБ.Роли.Добавить(Метаданные.Роли.ПолныеПрава);
КонецЕсли;
ПользовательИБ.Записать();
Если Метаданные.Справочники.Найти("Пользователи") <> Неопределено Тогда
ТекущийПользователь = Справочники.Пользователи.НайтиПоНаименованию(Имя);
Если Не ЗначениеЗаполнено(ТекущийПользователь) Тогда
ТекущийПользователь = Справочники.Пользователи.СоздатьЭлемент();
//ТекущийПользователь.Код = Имя;
ТекущийПользователь.Наименование = Имя;
ТекущийПользователь.Записать();
КонецЕсли;
Попытка
// отключаем вывод панели функций при запуске программы, потому как права полные
Движение = РегистрыСведений.НастройкиПользователей.СоздатьМенеджерЗаписи();
Движение.Пользователь = ТекущийПользователь.Ссылка;
Движение.Настройка = ПланыВидовХарактеристик.НастройкиПользователей.ОткрыватьПриЗапускеПанельФункций;
Движение.Значение = Ложь;
Движение.Записать();
Исключение
КонецПопытки;
Попытка
// включаем учет по всем организациям, чтобы избежать ошибок при запуске
Движение = РегистрыСведений.НастройкиПользователей.СоздатьМенеджерЗаписи();
Движение.Пользователь = ТекущийПользователь.Ссылка;
Движение.Настройка = ПланыВидовХарактеристик.НастройкиПользователей.УчетПоВсемОрганизациям;
Движение.Значение = Истина;
Движение.Записать();
Исключение
КонецПопытки;
КонецЕсли;
Если ПользовательНайден Тогда
Сообщить("Пользователь " + Имя + " найден для выгрузки информационной базы");
Иначе
Сообщить("Создан пользователь " + Имя + " для выгрузки информационной базы");
КонецЕсли;
Возврат Истина;
Исключение
Сообщить("Не удалось создать пользователя " + Имя + " для выгрузки информационной базы. " + ОписаниеОшибки());
Возврат Ложь;
КонецПопытки;
КонецФункции
ПоказатьТак я сегодня обновил только версию для 8.3. За повторное ее скачивание $m не должны сниматься.
Скажите свою почту в личку, я вам вышлю последнюю версию.
Скрипт формируется в корне папки, которую вы указали в первом параметре обработки "Путь хранения архивов"
Служебные сообщения:
Формирование файлов скриптов по упрощенной схеме...
Определение пользователя базы данных...
Пользователь Робот найден для выгрузки информационной базы
Формирование скрипта...
Формирование скрипта завершено
Добрый день, Илья.
Попробуйте сохранить скрипт без галочки "Скомпилировать файл", расширение должно получиться .vbs и посмотрите, в какой строке возникает ошибка. Возможно путь до платформы 1С определился не правильно или нет доступа через COM к серверу с локальной машины. На какой строке возникает ошибка в нескомпилированном файле?
Посмотрел в коде, ошибка возникает в строке AgentConnection.GetClusters(), т.е. скрипту не удается получить доступ к кластеру серверов через COM. Скорее доступ на сервере закрыт или у пользователя недостаточно прав.
"Невозможно подключить дополнительную обработку из файла.
Возможно, она не подходит для этой версии программы.
Техническая информация:
Метод объекта не обнаружен (СведенияОВнешнейОбработке)"
Бухгалтерия предприятия, редакция 3.0 (3.0.97.26) (
1С:Предприятие 8.3 (8.3.18.1483)
Возможно, она не подходит для этой версии программы.
Техническая информация:
Метод объекта не обнаружен (СведенияОВнешнейОбработке)
1С:Предприятие 8.3 (8.3.18.1483)
Бухгалтерия предприятия, редакция 3.0 (3.0.97.26)
В общем такое дело, я с 1С давно не работаю, доступа к типовым и платформе нет (убрали метод СведенияОВнешнейОбработке в СтандартныеПодсистемы или как-то так), если сможешь поправить, можешь сам опубликовать на Инфостарте, я ссылку в публикацию добавлю.
Предлагаю пользоваться утилитой ibcmd для выгрузки базы на сервере:
"C:\Program Files\1cv8\xxxx\bin\ibcmd.exe" infobase dump --db-server=localhost --dbms=MSSQLServer --db-name=BASENAME --db-user=SQLUSER --db-pwd=SQLUSER_PASSWORD E:\BACK_UP\%YMD%\BASENAME.dt
Рейтинг: 1161
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 65849
Создание 16.02.10 18:26
Обновление 25.04.18 14:41
Просмотры 92668
Загрузки 635
Рейтинг
186
Комментарии 176
Код открыт Да
Рубрики Архивирование (backup)
Кому
Системный администратор
,
Разработчик
Тип файла Внешняя обработка (ert,epf)
Платформа 1С:Предприятие 8
Конфигурация 1C:Бухгалтерия
Операционная система Windows
Страна Россия
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)
скрипт зашифрован и не понятно как исправить ошибку