Автоматический бэкап средствами 1С, который обязательно сделается (без перезапуска сервера).

25.04.18

База данных - Архивирование (backup)

Обработка для формирования скрипта, который в SQL версии 1С блокирует базу и через 5 минут разрывает абсолютно все соединения с ИБ. Просто прописываем скрипт в планировщик и наслаждаемся свежим .dt файлом каждый день.

Скачать файлы

Наименование Файл Версия Размер
Формирование скрипта VBS (VBE) - управляемые формы - для 8.3
.epf 52,95Kb
130
.epf 52,95Kb 130 Скачать
Формирование скрипта VBS (VBE) для 8.2
.epf 54,18Kb
273
.epf 54,18Kb 273 Скачать
Формирование скрипта VBS (VBE) для 8.1
.epf 53,95Kb
226
.epf 53,95Kb 226 Скачать

Обработка предназначена только для 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/

См. также

Журнал изменений с восстановлением состояния ссылочных объектов и архивацией по HTTP / COM (расширение + конфигурация, 8.3.14+, ЛЮБАЯ конфигурация)

Архивирование (backup) Журнал регистрации Поиск данных Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 1С:Управление торговлей 11 Платные (руб)

База данных «сама» меняет данные в документах/справочниках? Тогда данный журнал изменений для Вас! Практически не влияет на скорость записи объектов за счет быстрого алгоритма! Скорость работы почти в 2 раза выше типового механизма "История изменений"! Позволяет следить за изменениями и удалением в любых ссылочных объектах конфигурации, с возможностью архивации по HTTP(!) или COM, и сверткой данных. А так же, может восстановить состояние реквизитов (значения) до момента изменения или удаления объекта из базы. Есть ДЕМО-база где можно самостоятельно протестировать часть функционала! Работает на любых платформах выше 8.3.14+ и любых конфигурациях! Версия 3.1 от 24.08.2023!

19200 руб.

15.05.2017    42512    10    24    

38

BackUPv8 - система резервного копирования баз 1С

Архивирование (backup) Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Автоматическое создание копий файловых и серверных информационных баз 1С Предприятие 8 и размещение копий в облаке Яндекс.Диск, локальном или сетевом ресурсе.

1200 руб.

03.09.2014    14726    13    6    

18

Резервное копирование журнала транзакций, наконец-то!

Архивирование (backup) Администрирование СУБД Россия Бесплатно (free)

Постараюсь объяснить, зачем нужно резервное копирование именно журнала транзакций, а не только базы данных, и почему я словно сбросил груз, настроив его - как, покажу, естественно. Кстати, будут скрипты T-SQL (с подробными комментариями) - отличный способ сделать администрирование базы более уютным.

04.12.2023    5857    n_mezentsev    15    

24

Резервное копирование и восстановление 1С баз на PostgreSQL в Windows с помощью pgAdmin, bat-файлов и планировщика

Архивирование (backup) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

В данной инструкции будет описано, как с помощью pgAdmin, bat-файлов и планировщика заданий Windows организовать резервное копирование, восстановление и хранение копий баз данных.

07.10.2022    19795    sapervodichka    36    

141

Архивирование базы в dt и дамп postgres

Архивирование (backup) Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Захотелось клиентам выгрузку архива баз, и выгрузку в дт, готовые скрипты с сети не заработали. Может, кому-то поможет. Релиз 8.3.18.1741.

1 стартмани

25.08.2022    4712    2    Gnom-Gluck    6    

6

Утилита копирования баз данных 1С

Архивирование (backup) Платформа 1С v8.3 Абонемент ($m)

Небольшая утилита для копирования файловых баз данных 1С.

1 стартмани

02.06.2022    4234    3    Giblarium    12    

5
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
86. BAPPKAH 01.02.12 23:18 Сейчас в теме
87. trunix 29.02.12 10:47 Сейчас в теме
Спасибо. Надо попробовать.
88. ГМВ 75 07.03.12 14:10 Сейчас в теме
Возможен еще такой метод: создать две копии рабочей базы и настроить обмен с одной из них. Копия может быть как в файловом варианте, так и в SQL, по вашим потребностям. Обмен вести через файлы, которые нужно хранить столько, на сколько шагов вы предполагаете необходимость отката. Обмен можно проводить как угодно часто, хоть каждые 5 мин. Таким образом, вы будете иметь всегда актуальную копию рабочей базы в вашем монопольном распоряжении. Для обеспечения отката служит вторая копия базы, которая отстает от первой на заданное вами количество шагов (см.выше). Если вы увидели, что вместо светлого будущего ваша база приехала совсем не туда, вы возвращаетесь ко второй копии и последовательно шагаете посредством файлов обмена до требуемой точки. При таком методе потери времени на откат большой базы будут минимальны.
89. dyh 4 25.04.12 09:27 Сейчас в теме
Попробовал скриптик, вроде работает. Раньше год примерно был выкл-вкл 1С сервер и заметных проблем от сих манипуляций не было.
PS База бух перепиленная, до 20ю онлайн.
90. a-novoselov 1155 25.04.12 09:38 Сейчас в теме
(89) После перезапуска кэш сервера чистится, и он первое время подтупливать начинает. Хотя перезапускать сервер тоже иногда надо, т.к. 1С-ка любит течь по памяти, и рабочие процессы могут необоснованно распухать по объему используемой памяти.
91. yavasilek 28.05.12 09:31 Сейчас в теме
то что надо. Теперь работает по уму
92. Alex Prikol 07.06.12 10:42 Сейчас в теме
Прочитал комменты. Ну чтож, кому нужна под рукой база в dt-формате - обработка ему в помощь.

Но архивировать средствами СУБД нужно обязательно!
По крайней мере базу вы всегда развернете через любое другое хранилище.
Более того, свежую копию можно организовать и только средствами скуля, не прибегая ни к каким дополнительным инструментам.
Просто подумайте, что вам нужно
93. yavasilek 08.06.12 18:19 Сейчас в теме
скрипт сформировал.
при запуске вылетает ошибка
скрипт зашифрован и не понятно как исправить ошибку
ТС помоги пожалуйста.
94. a-novoselov 1155 08.06.12 19:08 Сейчас в теме
(93) Сформируй файл скрипта заново. Возможно не может найти 1c8.exe или dump_log.txt
96. shuhard 08.06.12 20:25 Сейчас в теме
(0) у dt два главных минуса, которые делают использование его в качестве бэкапа бессмысленным:
- выгрузка в DT ни даёт ни какой гарантии обратной загрузки и именно поэтому 1С официально не считает dt бэкапом
- время выгрузки в dt в десятки раз больше, чем бэкап сиквела, про инкрементный бэкап и восстановление на момент времени и говорить не приходится
user643327_infostart; sh_max; +2 Ответить
97. a-novoselov 1155 08.06.12 22:43 Сейчас в теме
(96) Это кто это и когда такое сказал, что "1С официально не считает dt бэкапом"??? первый раз такое слышу.
98. shuhard 09.06.12 07:38 Сейчас в теме
(97)
первый раз такое слышу

заметно,
иначе бы ты не стал публиковать в 100500 раз выгонялку из 1С и пропагандировать dt

а подписаться на ИТС настоятельно рекомендуем, там кроме статьи о вреде бэкапа в dt есть много чего полезного
99. a-novoselov 1155 09.06.12 10:00 Сейчас в теме
(98) Пруфлинк? На какой странице (в какой статье) такое написано?
102. пользователь 03.08.12 13:35
Сообщение было скрыто модератором.
...
103. SergeyGladyshev 28.11.12 11:49 Сейчас в теме
Очень полезная обработка, автору респект!
104. sergos3331 17 11.02.13 10:18 Сейчас в теме
Несомненно, хорошая и полезный скрипт бэкапа, а тоже самое под Db2 есть?
105. a-novoselov 1155 11.02.13 15:59 Сейчас в теме
(104) Скрипт должен работать под любой базой данных (кроме файловой), т.к. бэкап делается средствами 1С, а не средствами базы данных.
106. Inoiman 20.08.13 12:37 Сейчас в теме
При открытии в 1с 8.3, БП 3.0 открывается пустая форма, попробывал сделать всё как описанно здесь http://1c-md.com/stati/obychnoe-prilozhenie-1c.html не помогло, помогите пожалуйста.
107. a-novoselov 1155 20.08.13 19:00 Сейчас в теме
(106) Управляемая форма в обработке генерации скрипта не сделана.
Чтобы обычная форма в управляемом режиме открывались свойство конфигурации "Использовать обычные формы в управляемом режиме" должно быть включено. Еще нужно поставить режим запуска этой ИБ насильно "Толстый клиент" и тогда все заработает.
109. Mishka_78 06.01.14 23:53 Сейчас в теме
(107) Спасибо. Как раз подумывал данную обработку приспособить к управляемым формам.
108. BTRVODKA 10 15.09.13 04:41 Сейчас в теме
Спасибо автору за публикацию!
110. orkhan.huseynov 07.04.14 10:53 Сейчас в теме
Странно, что разработчики так и не включили данную возможность в стандартный функционал платформы.
111. a-novoselov 1155 07.04.14 11:20 Сейчас в теме
(110) Разработчики в клиент-серверном режиме работы рекомендуют делать бэкап средствами SQL, т.к. не могут гарантировать корректного восстановления архива из .dt файла при больших объемах базы. Точнее восстановление может упасть даже при очень большом объеме одной из таблиц.
112. Augustinas 30.06.15 12:37 Сейчас в теме
Подскажите пожалуйста работает этот бекапер на 1С 8.3 ?
113. a-novoselov 1155 30.06.15 17:37 Сейчас в теме
(112)
Добавил версию 8.3 на управляемой форме.
114. savostin.alex 83 16.07.15 12:57 Сейчас в теме
Доброе время суток, коллеги. Это к вопросу про размер копии базы, сделанной средствами SQL:

{ COMPRESSION | NO_COMPRESSION }
В SQL Server 2008 Enterprise и более поздних версиях указывает необходимость сжатия резервной копии, переопределяя значение уровня сервера по умолчанию.
При установке по умолчанию резервные копии не сжимаются. Это поведение можно изменить с помощью параметра конфигурации сервера сжатие резервной копии по умолчанию. Дополнительные сведения о просмотре текущего значения этого параметра см. в разделе Просмотр или изменение свойств сервера (SQL Server).
COMPRESSION
Явное включение сжатия резервных копий.
NO_COMPRESSION
Явное отключение сжатия резервной копии.
115. vovanguban 02.09.15 23:47 Сейчас в теме
Господа, что-то не понимаю

Формирование файлов скриптов по упрощенной схеме...
Определение пользователя базы данных...
Пользователь Робот найден для выгрузки информационной базы
Формирование скрипта...
Формирование скрипта завершено

А где он сам скрипт появиться должен?

------------------------------------

Пардон, в 8.3 запускал обработку 8.2
a-novoselov; +1 Ответить
116. a-novoselov 1155 03.09.15 09:53 Сейчас в теме
(115)
Добрый день.
Да, похоже 8.2 обработка под 8.3 не всегда правильно обрабатывает путь файлов. Надо скачать платформу 8.2, поправить обработку.
Спасибо за обратную связь.
118. rnv_ln 03.09.15 13:16 Сейчас в теме
Измени в обработке для 8.3 в модуле объекта, Функция СоздатьПользователя(Имя, Пароль) со строки 53:

С
ТекущийПользователь = Справочники.Пользователи.НайтиПоКоду(Имя);
Если ТекущийПользователь.Пустая() Тогда
ТекущийПользователь = Справочники.Пользователи.СоздатьЭлемент();
ТекущийПользователь.Код = Имя;
ТекущийПользователь.Наименование = Имя;
ТекущийПользователь.Записать();
КонецЕсли;
На
ТекущийПользователь = Справочники.Пользователи.НайтиПоНаименованию(Имя);
ТекущийПользователь = Справочники.Пользователи.НайтиПоНаименованию(Имя);
Если ТекущийПользователь.Пустая() Тогда
ТекущийПользователь = Справочники.Пользователи.СоздатьЭлемент();
//ТекущийПользователь.Код = Имя;
ТекущийПользователь.Наименование = Имя;
ТекущийПользователь.Записать();
КонецЕсли;

А то пользователь не создается.
a-novoselov; +1 Ответить
119. rnv_ln 03.09.15 15:11 Сейчас в теме
У меня скрипт не работает, причем на двух разных машинах пробовал, выдает
ошибку:800a01ad
невозможно создание объекта контейнером activex v83.comconnector
121. rnv_ln 03.09.15 21:44 Сейчас в теме
у меня в установке нет данной компоненты! Где её взять-то?

122. a-novoselov 1155 04.09.15 10:10 Сейчас в теме
(121)
В описании обработки:
Важно: скрипт работает только если на сервере установлен компонент COM-Соединение (по умолчанию не ставится). Чтобы проверить, заходим на сервере 1С в панель управления \ Установка удаление программ \ Сервер 1С Предприятие \ Изменить... Если нужно, добавляем COM-Соединение.
123. rnv_ln 08.09.15 12:08 Сейчас в теме
Нет такого там! Скриншот прилагается. Тыкните пальцем, где вы это нашли?!
Прикрепленные файлы:
124. a-novoselov 1155 08.09.15 15:35 Сейчас в теме
(123)
Тогда вручную
regsvr32 "C:\Program Files (x86)\1cv8\N_ver\bin\comcntr.dll"
125. rnv_ln 08.09.15 15:50 Сейчас в теме
Так я уже делал, все равно выдает ошибку, смотри в приложении
Прикрепленные файлы:
126. a-novoselov 1155 08.09.15 19:48 Сейчас в теме
(125)
Попробуй права на работу с COM-объектами в Windows проверить или запустить от имени Администратора.
127. rnv_ln 09.09.15 11:17 Сейчас в теме
Права на DCOM есть, пользователь один Администратор. Та же петрушка.
128. a-novoselov 1155 10.09.15 11:14 Сейчас в теме
(127)
В Windows 7 и старше даже у администратора по умолчанию не полные права и запускать с полными правами нужно правым кликом мыши, пункт "Запустить от имени Администратора". Так же посмотрите как создать класс DCOM 1C тут:
http://infostart.ru/public/276794/

Или сделайте так:
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 зарегистрирован и может использоваться для подключения к информационным базам.
129. rnv_ln 11.09.15 16:28 Сейчас в теме
Теперь по другому ругается!
Прикрепленные файлы:
130. Jenya78 17.09.15 21:58 Сейчас в теме
Большое спасибо!
Архив SQL бывает может и не подняться...
131. ketr 125 25.09.15 12:20 Сейчас в теме
спасибо! Качнул, COM соединение установил, поставил задачу в шедуллер. В понедельник посмотрим, как отработает
132. ketr 125 28.09.15 08:51 Сейчас в теме
Чет ничего не отработало... В планировщике вот такая инфа в журнале:
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
133. ketr 125 28.09.15 12:16 Сейчас в теме
Запустил сам скрипт - пишет ошибку:
Строка: 61
Символ: 3
Ошибка: Информационная база не зарегистрирована
Код: 80004005
Источник: (null)
134. ketr 125 28.09.15 12:33 Сейчас в теме
Может это из-за того, что у меня 2 кластера? Но эта база на основном кластере (порт 1541)
135. ketr 125 28.09.15 13:41 Сейчас в теме
Блин, точно, это из-за того, что 2 кластера!! Он пытается на кластере 1542 найти базу, которая расположена на кластере 1541 ! Как решить эту проблему? Что дописать / изменить в скрипте?
136. ketr 125 28.09.15 14:19 Сейчас в теме
Судя по всему нужно править строку
Set Cluster = AgentConnection.GetClusters()(0) только не пойму как?
137. a-novoselov 1155 28.09.15 17:52 Сейчас в теме
(136)
а) Самое простое поставить AgentConnection.GetClusters()(0) на AgentConnection.GetClusters()(1)
б) Добавить в скрипт обход массива кластеров после AgentConnection.GetClusters() и выбор нужного, например, по порту или имени. Но я уже вряд ли подскажу как это сделать и тем более отладить. Насколько я помню Notepad++ поддерживает работу с vbScript.
138. ketr 125 29.09.15 09:07 Сейчас в теме
(137)
Вариант А) работает! Спасибо
139. 1_C 18.12.15 16:07 Сейчас в теме
Добрый день. Тестирую обработку на тестовой базе, соединился с нескольких рабочих станций. Создал скрипт, запустил через шедулер. Приложения на рабочих станциях отвалились, но соединения в Консоли кластера остались, и не давали начать архивацию:
Активные сеансы и соединения:
компьютер: 1, пользователь: Администратор, сеанс: 7, начат: 18.12.2015 в 16:50:53, приложение: Тонкий клиент;
компьютер: 2, пользователь: Администратор, сеанс: 11, начат: 18.12.2015 в 16:55:43, приложение: Тонкий клиент
Ошибка исключительной блокировки информационной базы.
И так много раз.
Пока руками не удалил соединения, архивация не пошла. Но для ночного архивирования это не айс. Куда копать, подскажите. Или я поторопился, сеансы сами должны были отвалиться через какое-то время?
140. a-novoselov 1155 22.12.15 18:32 Сейчас в теме
(139)
Да, сеансы по блокировке должны через 5 минут отвалиться. Если этого не происходит, то нужно попробовать руками увеличить время ожидания (sleep) в скрипте после установки блокировки.
141. oops! 20.04.16 04:53 Сейчас в теме
Вариант для управляемого приложения. Платформа 8.3.7.2027. База - Бухгалтерия Предприятия 3.0, V83COMConnector зарегистрирован.
Для отладки пока гоняю нескомпилированный vbs-скрипт.
1. Были проблемы с созданием пользователя "Робот" - код пришлось подправить, но и этого оказалось недостаточно.
Похоже, что для управления свойствами информационной базы в кластере пользователя с набором прав "Полные права" недостаточно,
видимо всё же нужен пользователь с набором прав "Администратор системы".
2. Теперь WScript затыкается на строке 113 символ 2 с описанием ошибки "Невозможно найти указанный файл".
В 113-ой строке выполняется запуск 1cv8.exe с параметрами. Содержимое переменной "one1CPath" корректное.
Пока не могу понять куда копать.
Буду благодарен за помощь.
Прикрепленные файлы:
142. a-novoselov 1155 20.04.16 09:37 Сейчас в теме
(141) Добрый день.
Пробовали скрипт от имени администратора запустить? та же ошибка?
143. oops! 20.04.16 14:52 Сейчас в теме
(142)
да, ошибка та же - создал 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"""
144. oops! 20.04.16 15:05 Сейчас в теме
143 +
забыл сказать - ОС Windows 7 SP1 x64 Ultimate, UAC отключен;
сервер 1С:Предприятие - версия для x64;
версия SQL-сервера, думаю, не важна, - на всякий случай - MS SQL Server 2008 R2 x64 Developer Edition.

После выполнения скрипта блокировка начала сеансов на сервере включена,
блокировка регламентных заданий выключена (псиса не установлена).
145. oops! 20.04.16 15:27 Сейчас в теме
143++
хе-хе, и всё-таки one1CPath была определена не верно! Должно быть для x64 ОС:
one1CPath = """C:\Program Files (x86)\1cv8\8.3.7.2027\bin\1cv8.exe"""

как я это сразу не заметил - ума не приложу! Старею, однако :)
Скрипт заработал!
a-novoselov; +1 Ответить
146. oops! 20.04.16 15:42 Сейчас в теме
143+++ Функция языка "КаталогПрограммы()" на x64 ОС отрабатывает не верно - надо писать в техподдержку!
150. asved.ru 36 14.05.16 13:46 Сейчас в теме
(146) oops!, а нефиг получать каталог программы на сервере, если оперировать им собираетесь на клиенте. Учите матчасть.
147. oops! 20.04.16 16:09 Сейчас в теме
В общем, вместо "КаталогПрограммы()" пока, в качестве обхода, можно через реестр ОС получать путь к модулю COM объекта v8*.application. Вот пример кода (автор Старых Сергей, 2iS IT):
ПутьКИсполняемомуФайлу = "";
    РеестрОС = Получить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 Тогда
        ОписаниеОшибки = "Не удалось определить путь к исполняемому файлу клиента на сервере " + ИмяСервера;
        ВызватьИсключение ОписаниеОшибки;
    КонецЕсли;
    Результат = ПутьКИсполняемомуФайлу;
Показать
a-novoselov; +1 Ответить
148. oops! 20.04.16 20:11 Сейчас в теме
Окончательно добавляем в обработку такую функцию:
// Поучает путь к клиентскому приложению 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, и, в нашем случае, никуда не годится!
149. oops! 20.04.16 21:37 Сейчас в теме
с учетом необходимости под платформой 8.3 пользователя с ролью "АдминистраторСистемы" функцию "СоздатьПользователя()" переписываем так:
// Создание пользователя
//
Функция СоздатьПользователя(Имя, Пароль)
	
	УстановитьИнтерфейс = Истина;
	УстановитьРоль = Истина;
	
	Если Метаданные.Интерфейсы.Количество() = 0 Тогда
		УстановитьИнтерфейс = Ложь;
	ИначеЕсли Метаданные.Интерфейсы.Найти("Общий") <> Неопределено Тогда
		ВыбранныйИнтерфейс = Метаданные.Интерфейсы.Общий;
	Иначе
		ВыбранныйИнтерфейс = Метаданные.Интерфейсы[0];
	КонецЕсли;
	
	// Проверка на ограничения шаблона
	НайденнаяРоль = Неопределено;
	Если Метаданные.Роли.Количество() = 0 Тогда
		УстановитьРоль = Ложь;
	ИначеЕсли НЕ (Метаданные.Роли.Найти("АдминистраторСистемы") = Неопределено) Тогда
		НайденнаяРоль = Метаданные.Роли.Найти("АдминистраторСистемы");
	ИначеЕсли НЕ (Метаданные.Роли.Найти("ПолныеПрава") = Неопределено) Тогда
		НайденнаяРоль = Метаданные.Роли.Найти("ПолныеПрава");
	Иначе
		Сообщить("Нет возможности создать пользователя """ + Имя + """. В конфигурации отсутствует требуемая роль");
		Возврат Ложь;
	КонецЕсли;
	
	Попытка
		ПользовательНайден = Ложь;
		ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоИмени(Имя);
		Если ПользовательИБ = Неопределено Тогда
			ПользовательИБ = ПользователиИнформационнойБазы.СоздатьПользователя();
		Иначе
			ПользовательНайден = Истина;
		КонецЕсли;
		ПользовательИБ.АутентификацияОС 		 = Ложь;
		ПользовательИБ.АутентификацияСтандартная = Истина;
		ПользовательИБ.Имя 					     = Имя;
		ПользовательИБ.ПолноеИмя			     = Имя;
		ПользовательИБ.Пароль 				     = Пароль;
		ПользовательИБ.ЗапрещеноИзменятьПароль   = Истина;
		ПользовательИБ.ПоказыватьВСпискеВыбора   = Ложь;
		Если УстановитьИнтерфейс Тогда
			ПользовательИБ.ОсновнойИнтерфейс	 = ВыбранныйИнтерфейс;
		КонецЕсли;
		Если УстановитьРоль Тогда
			ПользовательИБ.Роли.Очистить();
			ПользовательИБ.Роли.Добавить(НайденнаяРоль);      
			//ПользовательИБ.Роли.Добавить(Метаданные.Роли.ПолныеПрава);      
		КонецЕсли;
		ПользовательИБ.Записать();
		
		Если Метаданные.Справочники.Найти("Пользователи") <> Неопределено Тогда
			ТекущийПользователь = Справочники.Пользователи.НайтиПоНаименованию(Имя);
			Если Не ЗначениеЗаполнено(ТекущийПользователь) Тогда
				ТекущийПользователь = Справочники.Пользователи.СоздатьЭлемент();
				//ТекущийПользователь.Код = Имя;
				ТекущийПользователь.Наименование = Имя;
				ТекущийПользователь.Записать();
			КонецЕсли;
			
			Попытка
				// отключаем вывод панели функций при запуске программы, потому как права полные
				Движение = РегистрыСведений.НастройкиПользователей.СоздатьМенеджерЗаписи();
				Движение.Пользователь = ТекущийПользователь.Ссылка;
				Движение.Настройка 	  = ПланыВидовХарактеристик.НастройкиПользователей.ОткрыватьПриЗапускеПанельФункций;
				Движение.Значение	  = Ложь;
				Движение.Записать();
			Исключение
			КонецПопытки;
			
			Попытка
				// включаем учет по всем организациям, чтобы избежать ошибок при запуске
				Движение = РегистрыСведений.НастройкиПользователей.СоздатьМенеджерЗаписи();
				Движение.Пользователь = ТекущийПользователь.Ссылка;
				Движение.Настройка 	  = ПланыВидовХарактеристик.НастройкиПользователей.УчетПоВсемОрганизациям;
				Движение.Значение	  = Истина;
				Движение.Записать();
			Исключение
			КонецПопытки;
		КонецЕсли;
		
		Если ПользовательНайден Тогда
			Сообщить("Пользователь " + Имя + " найден для выгрузки информационной базы");
		Иначе
			Сообщить("Создан пользователь " + Имя + " для выгрузки информационной базы");
		КонецЕсли;
		
		Возврат Истина;
		
	Исключение
		Сообщить("Не удалось создать пользователя " + Имя + " для выгрузки информационной базы. " + ОписаниеОшибки());
		
		Возврат Ложь;
	КонецПопытки;
	
КонецФункции
Показать
a-novoselov; +1 Ответить
156. a-novoselov 1155 21.12.16 12:50 Сейчас в теме
(149)
(152)
Исправил все ошибки. Теперь файл формируется корректно на клиенте. Пользователь создается с ролью "Администратор системы", проверяется длина кода.

(155)
Попробуйте скачать новую версию обработки. Скорее всего у вас проблема в том, что изначально файл формировался на сервере.
M.Shalimov; +1 Ответить
157. dm68 21.12.16 13:23 Сейчас в теме
(156) Потратив еще 3sm скачал новую версию обработки для 8.2 на выходе получаю тот же результат.Только файл dump_log.txt
158. a-novoselov 1155 21.12.16 14:08 Сейчас в теме
(157)
Так я сегодня обновил только версию для 8.3. За повторное ее скачивание $m не должны сниматься.
Скажите свою почту в личку, я вам вышлю последнюю версию.
159. a-novoselov 1155 21.12.16 16:57 Сейчас в теме
(157) Для 8.2 тоже исправил обработку, но она работает только в обычном режиме (не управляемый). Для работы с управляемым приложением можно использовать обработку для 8.3.
153. dm68 21.12.16 08:08 Сейчас в теме
Подскажите, а где находится сам скрипт после формирования? Так и не смог его найти.
154. a-novoselov 1155 21.12.16 11:52 Сейчас в теме
(153)
Скрипт формируется в корне папки, которую вы указали в первом параметре обработки "Путь хранения архивов"
155. dm68 21.12.16 12:01 Сейчас в теме
(154) Кроме файла dump_log.txt там ничего больше не появляется.
Служебные сообщения:
Формирование файлов скриптов по упрощенной схеме...
Определение пользователя базы данных...
Пользователь Робот найден для выгрузки информационной базы
Формирование скрипта...
Формирование скрипта завершено

163. host_kms 125 14.09.17 17:01 Сейчас в теме
Не срабатывает, вот что пишет, куда копать?
Прикрепленные файлы:
165. a-novoselov 1155 14.09.17 22:39 Сейчас в теме
(163)
Добрый день, Илья.
Попробуйте сохранить скрипт без галочки "Скомпилировать файл", расширение должно получиться .vbs и посмотрите, в какой строке возникает ошибка. Возможно путь до платформы 1С определился не правильно или нет доступа через COM к серверу с локальной машины. На какой строке возникает ошибка в нескомпилированном файле?
166. a-novoselov 1155 15.09.17 13:08 Сейчас в теме
(163)
Посмотрел в коде, ошибка возникает в строке AgentConnection.GetClusters(), т.е. скрипту не удается получить доступ к кластеру серверов через COM. Скорее доступ на сервере закрыт или у пользователя недостаточно прав.
170. user1095540 22.07.21 09:27 Сейчас в теме
Под Администратором выбрасывает сообщение "Запуск программы невозможен, так как на компьютере отсутствует nghttp2/dll. Попробуйте переустановить программу " Что делать?????
171. ketr 125 22.07.21 10:22 Сейчас в теме
(170)
nghttp2/dll

сколько раз ставил на разные машины - не встречал такую ошибку.
Попробуйте воспользоваться инструкцией https://www.exefiles.com/ru/dll/nghttp2-dll/
a-novoselov; +1 Ответить
173. user1095540 22.07.21 10:30 Сейчас в теме
175. user1095540 23.07.21 14:06 Сейчас в теме
(173) Получилось путем копирования nghttp2.dll в папку Windows\system
a-novoselov; +1 Ответить
172. user1095540 22.07.21 10:30 Сейчас в теме
Ошибка при подключении обработки:

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

Техническая информация:
Метод объекта не обнаружен (СведенияОВнешнейОбработке)"

Бухгалтерия предприятия, редакция 3.0 (3.0.97.26) (http://v8.1c.ru/buhv8/)
1С:Предприятие 8.3 (8.3.18.1483)
174. user1095540 22.07.21 10:36 Сейчас в теме
Невозможно подключить дополнительную обработку из файла.
Возможно, она не подходит для этой версии программы.

Техническая информация:
Метод объекта не обнаружен (СведенияОВнешнейОбработке)


1С:Предприятие 8.3 (8.3.18.1483)
Бухгалтерия предприятия, редакция 3.0 (3.0.97.26)
176. a-novoselov 1155 10.12.21 12:54 Сейчас в теме
(174)

В общем такое дело, я с 1С давно не работаю, доступа к типовым и платформе нет (убрали метод СведенияОВнешнейОбработке в СтандартныеПодсистемы или как-то так), если сможешь поправить, можешь сам опубликовать на Инфостарте, я ссылку в публикацию добавлю.
177. jiltsovs 18.11.23 23:56 Сейчас в теме
Данный скрипт IMHO устарел. Не рекомендую его применять.
Предлагаю пользоваться утилитой 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
Оставьте свое сообщение