Имя: Пароль:
1C
1С v8
Немножко умерла база
0 MadJhey
 
28.08.15
18:25
После изменения структуры (добавлял движения документа) - умерла база.
Обновления было НЕ динамическое. А через "завершить сеансы и обновить".
При попытки открытия определенного документа (другого, не того, который правил) валится с ошибкой:
Имя сбойного приложения: 1cv8.exe, версия: 8.2.19.121, отметка времени: 0x547c4707
Имя сбойного модуля: basic.dll, версия: 8.2.19.121, отметка времени 0x547c46ea
Код исключения: 0xc0000005
Смещение ошибки: 0x000166a0
Идентификатор сбойного процесса: 0x1814
Время запуска сбойного приложения: 0x01d0e195c0c57d35
Путь сбойного приложения: C:\Program Files\1cv82\8.2.19.121\bin\1cv8.exe
Путь сбойного модуля: C:\Program Files\1cv82\8.2.19.121\bin\basic.dll
Код отчета: 94f070a5-4d8a-11e5-9269-f46d0439cdd6

Конфигуратор открывается, изменения вносить можно.
В ТЖ ничего толком не видно: валится на контексте открытие формы документа . Криминала нет.  

Пробовал вносить изменения в конфу - изменяет, сохраняет - глюк сохраняется.

Есть утренний бекап, есть разностной на обед. Но не охота терять данные. База - 150 Гиг. SQL

Я так понимаю - записалась в структура конфы какая то гадость.

Вопрос: имеет смысл попробовать загрузить (не объединить) старую структуру или сразу копировать [dbo].[Config],
[ConfigSave], [DBSchema], [Params]?  
Счас пока ТИИ идет.
1 Фрэнки
 
28.08.15
18:27
(0) очистить кэши и тому подобную муть уже испробовал?
2 MadJhey
 
28.08.15
18:27
(1) и на клиенте, и на сервере. И на другом сервере развернул.
3 MadJhey
 
28.08.15
18:28
Расслабился с утра :).
4 Фрэнки
 
28.08.15
18:29
и еще, если тии запустился, то может быть нужно было вместо этого сразу сделать бакап?

Понятно, на другом сервере из бакапа развернул? Т.е. умерла не на совсем.
5 Масянька
 
28.08.15
18:29
6 MadJhey
 
28.08.15
18:30
Сделал бекап рабочей (уже с глюком) и из него развернул.
7 bootini
 
28.08.15
18:31
(0) Аминь.
8 GROOVY
 
28.08.15
18:32
Если серверная, можешь попробовать таблицу с метаданными из бекапа в рабочую (копию рабочей) скопировать.
9 Фрэнки
 
28.08.15
18:32
(5) если бы проблема была в этом, то с другого компа не глючило бы

(6) Ну пробуй тогда сходу просто загрузить прежнюю конфигу из файла. Файл возьми из утренней - если получится, то позже займешься в свободное время исследованием антропологии полученного глюка
10 Фрэнки
 
28.08.15
18:33
(9)+ в копии на другом сервере, пробуй
11 Фрэнки
 
28.08.15
18:36
И отдельно потом будет интересно узнать, каким образом тестил новые изменения, как их накатил с боевую. Просто я в своих разработках отказался на той платформе что у меня стоит сейчас от использования хранилища конфигурации, потому что глюки меня заставили отказаться.
12 MadJhey
 
28.08.15
18:39
(11) глюки хранилища (пропадали новые объекты) у нас были связаны с кэшем. Очистка кэша помогает.
13 Учитель
 
28.08.15
18:59
(12) А запускать "Проверку конфигурации" пробовал?
14 Учитель
 
28.08.15
19:00
а что значит вот эта строчка? про какой отчет идет речь?
15 Учитель
 
28.08.15
19:00
Код отчета: 94f070a5-4d8a-11e5-9269-f46d0439cdd6
16 User_Agronom
 
28.08.15
19:01
(0) Может база немножко беременна? ;)

ИМХО, самый правильный вариант: поднять backup и перенести данные.

Но можно ещё попробовать восстановить конфу: взять конфу исправного bakup и методом сравнить/объединить с рабочей. Возможно этот объект и исправит.
17 MadJhey
 
28.08.15
19:17
(15) думаю идентификатор события в винде.
(16) геммор. В справочники тоже вносились изменения.
Объединить/Загрузить старую конфу валится на этапе сохранения конфигурации.
Буду копировать структуру средствами SQL.
18 mehfk
 
28.08.15
19:21
Будет скучно - мой ник псина народ ру.
19 Учитель
 
28.08.15
19:32
(18) это што тебе , сайт знакомств чтоле? Не видишь, человек плохо!
20 User_Agronom
 
28.08.15
19:34
(17) А разве при сравнить объединить нельзя выбрать те объекты, которое исправлять и которые нет?

Или сохранить конфигурацию в файл, а потом загрузить рабочую конфигурацию из файла. Может при выгрузке он конфу систематизирует и загрузит правильно?

Методов много, но ИМХО я уже писал: восстановить из backup и перенос данных.
21 MadJhey
 
28.08.15
20:21
(20) валится при сохранении.
22 Вадя
 
28.08.15
20:32
Попробуй на копии снять конфу с поддержки. Если все равно валится при открытии сбойных документов - только восстановить из последнего рабочего бекапа и перенести сегодняшние данные.
23 User_Agronom
 
28.08.15
20:39
(21) Тогда дело плохо. Попробуй перезапустить службу агента сервера 1С. Если всё равно будет валится - нужно исправлять конфу. Или средствами SQL или выгрузить из конфу из backup и загрузить сюда.

(22) ?! Что даст удаление конфы поставщика?
24 Вадя
 
28.08.15
20:45
(23) Отключить все лишнее. Что-то вреде чистки временных файлов.
В (21) написано - не удается сохраниться при объединении со старой конфой, скорее всего конфигурация поставщика не сохраняется.
25 Фрэнки
 
28.08.15
20:52
(21) у тебя не написано в каком случае не дает сохранится - можно "загрузить", а можно пытаться "сравнить и объединить"

Вангую, что когда у тебя накатывались изменения, то подхватывал их через хранилище. Что-то пошло криво. И это кривое накатывание версии конфиги в хранилище запустило на базу "реструктуризацию" теперь в сбойных версиях документов испорчены таблицы, т.к. структура данных уже новая, а работать с этими данными в новом объекте не удается. Объекты в метаданных испорченные.

В порядке случайного везения могу предложить... У тебя разработка конфигурации велась на какой базе? какой-то вариант рабочей? А если из базы разработчика возьмешь "правильную" версию CF и накатишь его на копию текущей боевой?
26 MadJhey
 
28.08.15
21:04
(25) сравнить, объединить тоже валится. Не используя я хранилище.
27 H A D G E H O G s
 
28.08.15
21:05
Удалить форму документа
Вставить форму документа
28 Фрэнки
 
28.08.15
21:08
(26) ТИИ чем закончилось?
29 ДенисЧ
 
28.08.15
21:09
(27) ...повторить
30 MadJhey
 
28.08.15
21:12
(28) завалилась
31 Фрэнки
 
28.08.15
21:12
можно взять из бакапа утро. Накатить на него требуемое из CF, как это делается обычно и посмотреть, чем все закончится. Ну и если все будет норм - каким-то образом перебить данные.

В какой момент? на чем? на табличке какой-то?
32 MadJhey
 
28.08.15
21:20
(27) тоже завалилась
33 Serg_1960
 
28.08.15
21:35
То, что это было "обычное" обновление, а не демоническое - уже ничего не решает. Уже получал ошибки при обычном обновлении, свойственные для демонического.

"Конфликтный" алгоритм уже попал в конфигурацию базы и он вызывает падение. Кстати: сбой может быть в любом месте, а не только в последних измененных алгоритмах.

Выгрузи конфигурацию, загрузи в новую пустую базу для разработки и убедись что конфигурации поставщика и основная - нормальные. Если всё получится без ошибок, то вышесказанное - верно.
34 Serg_1960
 
28.08.15
21:51
+(33) Если всё так, то далее всё просто - подмена таблицы config из новой базы в сбойную. Естественно сначала всё сделать на сбойной копии рабочей базы и убедиться что всё корректно без ошибок и потери данных.
35 MadJhey
 
28.08.15
21:58
(33) похоже на то. Менял документ корректировку регистров. Падает на ПлатежномПоручении.
36 MadJhey
 
28.08.15
22:06
(34) я думал взять структуру из бекапа. Но там изменены движения по регистрам. Структура таблиц, полей в принципе не должны были поменяться.
   Попробую и твой вариант. Выгружу конф. и создам пустую. И из нее загружу таблицу.
37 Ctrekoza
 
28.08.15
22:11
Платформу на 8.3.6 поменять предлагали? Бывает помогает.
38 Armando
 
28.08.15
22:14
(0) "В ТЖ ничего толком не видно"
ТЖ смотрел на клиенте или на сервере? Какие события в ТЖ настроены?
39 MadJhey
 
28.08.15
22:24
На клиенте, на сервере ничего криминального не вылезло.

<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="http://v8.1c.ru/v8/tech-log">;
<dump create="true" location="F:\Logs\Dump\" type="2" prntscrn="false"/>
<log location="F:\Logs\Log\" history="168">
  <event>
   <eq property="name" value="excp"/>
  </event>
  <event>
   <eq property="name" value="excpcntx"/>
  </event>
  <property name="all"/>
</log>
</config>
40 MadJhey
 
28.08.15
22:33
(34) не взлетает, имена таблица в SQL после загрузки в пустую базу из выгруженной конфигурации отличаются кардинально. Механизм наименования таблиц остается не ясным
41 xXeNoNx
 
28.08.15
22:37
+(8) Проблема похожая была, в рабочей базе очищал таблицу с обновлениями и накатывал с предыдущего бекапа.
42 xXeNoNx
 
28.08.15
22:38
(40) Восстанавливай из бекапа SQL
43 Armando
 
28.08.15
22:45
Выкладывай cf
44 MadJhey
 
28.08.15
22:58
Все ... на копии взлетело. Документ открывается, свои изменения внес. Запустил ТИИ.
Может кому пригодится скрипт SQL (копирование таблицы конфигурации):

use upp_ilya
go

truncate table [dbo].[Config]
truncate table [dbo].[ConfigSave]
truncate table [dbo].[DBSchema]
truncate table [dbo].[Params]

go

insert into [dbo].[Config] select * from [upp_lex].[dbo].[Config]
insert into [dbo].[DBSchema] select * from [upp_lex].[dbo].[DBSchema]
insert into [dbo].[Params] select * from [upp_lex].[dbo].[Params]

где upp_lex - база из утреннего бекапа,
upp_iliy - текущая база (со сбоем)
45 MadJhey
 
28.08.15
23:00
1с это такая штука, что даже, если все делаешь по правилам, в любой момент может подкрасться зверек.
46 romix
 
28.08.15
23:01
У нас тоже база 1С 8.2 ломалась с концами, копировали таблицу из бэкапа. В 8.3 по ощущениям стало стабильнее. Бэкап все равно нужен перед каждым актом балета (разностный, например).
47 romix
 
28.08.15
23:02
Остановка и новый запуск сервера 1С требуют 5 секундного ожидания после окончательного завершения работы всех exe (через 5 секунд выгрузятся и все связанные dll).
48 MadJhey
 
28.08.15
23:10
Не знаю связано со сбоем или нет. Когда сохранял конфигурацию (f7), система задала вопрос: обнаружены активные пользователи, завершить сеансы и сохранить изменения. Я согласился. Возможно, из-за размера базы или хз чего не все сеансы были закрыты и произошло "демоническое" обновление. Я сужу об этом потому, что на некоторых машинах 1с продолжала запускаться и открывать битый документ и после сбоя.

Так что, вначале всех выгнать, потом обновлять.
49 Armando
 
29.08.15
00:01
(48) напиши скрипт для обновления, который будет всех выгоянть сначала.
У нас скрипт сначала ставит блокировку рег заданий и на вход с отсрочкой 10 минут, готовит обновление, через 10 минут принудительно всех выгоняет, обновлят базу, запускает обработчики, снимает блокировку, отправляет логи в почту. И при обновлении можно передать ключ запрещающий динамическое обновление (на всяк пожарный).
50 break
 
29.08.15
07:13
для таких случаев повесил триггер в sql на сохранение [dbo].[Config] в служебную базу перед обновлением (перед изменением таблицы Config) + отдельно выгрузка cf каждую ночь, + полное бекапирование каждую ночь
51 ДенисЧ
 
29.08.15
07:34
(49) поделись скриптом, будь ласка...
52 Учитель
 
29.08.15
10:49
(51) А метлой не поделиться?)
53 Учитель
 
29.08.15
10:49
(49) Вышли мне скрипт плиз на [email protected]
54 ДенисЧ
 
29.08.15
11:00
(52) Метла занята, тебе только утка больничная
55 rphosts
 
29.08.15
11:03
(49) да, полезный скрипт
56 Учитель
 
29.08.15
11:03
(54) Не, утку себе оставь)
57 Учитель
 
29.08.15
11:04
а если я такой скрипт напишу, за сколько вы готовы купить его у меня?
58 rphosts
 
29.08.15
11:04
+ (55) добавь его в книгу знаний
59 Скай
 
29.08.15
11:10
Тоже падала база именно при таком обновлении через "завершить сеансы и обновить". С тех пор я этой кнопки опасаюсь, хотя прошло года 4.
60 Armando
 
29.08.15
12:26
До компа доберусь покажу скрипт
61 Учитель
 
29.08.15
12:38
(60) С меня пивас и чипсы, А ДенисЧ может тока нагадить, поэтому отправь его свой огород удобрять
62 Armando
 
29.08.15
16:57
63 rphosts
 
29.08.15
19:17
(62)Нет возражений что-бы в базу знаний добавить?
64 Armando
 
29.08.15
20:24
(63)  дабавь мне не жалко
65 RomSt
 
29.08.15
23:15
У меня лет 7 назад была ситуация с конфой от Раруса (Автозапчасти, кажется). Появилось штуки 4 битых документа, а админ не смотря на мои призывы, на бекапы рукой махнул. Долго бился с Рарусом и 1С поддержкой (они друг на друга кивали). В результате скопировал базу, всю кроме конкретных битых доков (определенных экспериментально), а их попросил ручками вбить.
67 rphosts
 
30.08.15
05:30
исходный текст VBScript-а.
автор:  Armando, Armando
назначение: ставит блокировку рег заданий и на вход с отсрочкой 10 минут, готовит обновление, через 10 минут принудительно всех выгоняет, обновлят базу, запускает обработчики, снимает блокировку, отправляет логи в почту.

' Обновление базы:
' 1. Предупреждем пользователей: ставим блокировку начала сеанса. Начало действия - "сейчас" плюс 10 минут.
' 2. Пока пользователи выходят, готовим файл обновления и обновляем конфигурацию.
' 3. Ждем, когда наступит время начала блокировки.
' 4. Принудительно завершаем сеансы.
' 5. Обновляем конфигурацию БД
' 6. Снимаем блокировку
'
' Планы:
' 1. Надо предусмотреть, что на ночь могут запускать групповое перепроведение, которое прерывать нельзя.
'    Поскольку в бух 3.0 оно выполняется в фоновом задании, то определить его можно по наличию
'    активного фонового задания с названием "Групповое перепроведение документов"
' 2. Посмотреть как будет работать, если база в монопольном режиме
' 3. Опциональный перезапуск рабочих процессов или агента сервера
' 4. Проверить, как будет работать получение InfoBaseInfo, если подключились к отключенному рабочему процессу.
'    Возможно придется перебирать рабочие процессы в поисках активного.
' 5. Оптимизация кода
' 6. Во время ожидания начала блокировки, периодически проверять количество сессий. Раз в 5 секунд например.
'    Сейчас такая проверка выполнется один раз. Это позволит сэкономить некоторое количество времени, если пользователи вышли заранее.
' 7. При подсчете количества сессий не учитывать "Консоль кластера" (SrvrConsole) и "COM-администратор" (COMConsole)
' 8. Сделать чтоб скрипт был один, к нему файлы с настройками в XML например

Option Explicit

Dim AgentServer,AgentPort,ClusterServer,ClusterPort,InfoBaseName,IBConnectionString
Dim Connector,AgentConnection,ClusterInfo,WorkingProcessConnection,InfoBaseInfo,InfoBaseShort
Dim ExternalConnection
Dim DateDeniedFrom
Dim DiffSec
Dim FSO,WshShell
Dim ExecFile
Dim LogPath
Dim RepositoryInfoBase,RepositoryF,RepositoryN,RepositoryP
Dim DistributionFile
Dim objlogStep3UpdateCfgFile,objlogStep5UpdateIBFile
Dim Version1C
Dim Install32Path,Install64Path
Dim ExpressionResult,AfterUpdateExpression,AfterUpdateExpressions(0) 'количество строк минус 1
Dim SMTPServer,MailFrom,MailTo

'Значения этих переменных надо внести руками
AgentServer = "appenergo2"     'сервер, где расположен агент сервера 1С
AgentPort = 2540               'порт агента сервера 1С
ClusterServer = "appenergo2"   'сервер, где расположен менеджер кластера 1С
ClusterPort = 2541             'порт менеджера кластера
InfoBaseName = "Base1" 'имя базы в кластере

RepositoryInfoBase = "File=""E:\1C_Base_for_Update"";" 'строка соединения с базой подключенной к хранилищу
LogPath = "c:\Scripts\Logs\Engineering\"               'папка куда складывать логи
RepositoryF = """tcp://appenergo2:1542/1C_Depository_ING_2014"""  'адрес хранилища
RepositoryN = """ReadOnly"""                                      'пользователь хранилища
RepositoryP = """"""                                              'пароль пользователя хранилища
DistributionFile = """e:\DistributionFiles\Engineering\1Cv8.cf""" 'файл поставки
Version1C = "8.3.5.1383" 'версия 1С
Install32Path = "c:\Program Files (x86)\1cv8\" & Version1C & "\bin\" 'путь папки bin 32 бит
Install64path = "c:\Program Files\1cv8\"       & Version1C & "\bin\" 'путь папки bin 64 бит

'Выражения, которые будут выполняться после обновления
'Для бухгалтерии 2.0:
'AfterUpdateExpressions(0) = "ExternalConnection.[ОбновлениеИнформационнойБазы].ВыполнитьОбновлениеИнформационнойБазы"
'Для бухгалтерии 3.0:
'AfterUpdateExpressions(0) = "ExternalConnection.[СтандартныеПодсистемыСервер].True">УстановитьЗапускОбновленияИнформационнойБазы"
'AfterUpdateExpressions(1) = "ExternalConnection.[ОбновлениеИнформационнойБазы].ВыполнитьОбновлениеИнформационнойБазы"

AfterUpdateExpressions(0) = "ExternalConnection.[ОбновлениеИнформационнойБазы].ВыполнитьОбновлениеИнформационнойБазы"

'для отправки логов. остальное в процедуре SendUpdateIBResult
SMTPServer = "smtp.xxx.com" 'адрес SMTP сервера
MailFrom = "[email protected]"            'отправитель
MailTo = "[email protected]; [email protected]" 'получатели. если переменная не заполнена, то отправки не будет




'Поехали

'Инициализация
Call Initialise

'Блокировка базы через 10 минут
DateDeniedFrom = DateAdd("n", 10, Now) 'сейчас плюс 10 минут
Call BlockInfoBase(DateDeniedFrom)

'Обновление промежуточной базы из хранилища
WshShell.Run ExecFile & " DESIGNER" & _
" /IBConnectionString " & RepositoryInfoBase & _
" /Out " & FSO.BuildPath(LogPath, "log_Step1_ConfRepUpdateCfg.txt") & _
" /ConfigurationRepositoryF " & RepositoryF & _
" /ConfigurationRepositoryN " & RepositoryN & _
" /ConfigurationRepositoryP " & RepositoryP & _
" /ConfigurationRepositoryUpdateCfg -force -revised /UpdateDBCfg",, True

'Создание файла поставки
WshShell.Run ExecFile & " DESIGNER" & _
" /IBConnectionString " & RepositoryInfoBase & _
" /Out " & FSO.BuildPath(LogPath, "log_Step2_CreateDistribFiles.txt") & _
" /ConfigurationRepositoryF " & RepositoryF & _
" /ConfigurationRepositoryN " & RepositoryN & _
" /ConfigurationRepositoryP " & RepositoryP & _
" /CreateDistributionFiles -cffile " & DistributionFile,, True

'Завершим конфигуратор, на случай, если кто-то там засел
Call TerminateDesignerSession

'Обновление конфигурации
WshShell.Run ExecFile & " DESIGNER" & _
" /IBConnectionString " & IBConnectionString & _
" /Out " & FSO.BuildPath(LogPath, "log_Step3_UpdateCfg.txt") & _
" /WA+ /DisableStartupMessages" & _
" /UpdateCfg " & DistributionFile,, True

'если обновления нет, то снимаем блокировку и выходим
Set objlogStep3UpdateCfgFile = FSO.OpenTextFile(FSO.BuildPath(LogPath, "log_Step3_UpdateCfg.txt"), 1, True)
If Not objlogStep3UpdateCfgFile.AtEndOfLine Then
    If objlogStep3UpdateCfgFile.ReadLine = "Файл не содержит доступных обновлений" Then
        objlogStep3UpdateCfgFile.Close
        Call UnblockInfoBase
        Call SendUpdateIBResult
        WScript.Quit
    End If
    objlogStep3UpdateCfgFile.Close
End If

'Ждем, когда наступит время начала блокировки
DiffSec = DateDiff("s", Now, InfoBaseInfo.DeniedFrom)
If DiffSec > 0 Then

    'проверим, если количество сессий > 0, то подождем
    If GetCountInfoBaseSessions() > 0 Then
        WScript.Sleep DiffSec 1000
    Else
        Call BlockInfoBase(Now)
    End If

End If

'Принудительно завершаем работу пользователей, вдруг кто-то не отвалился/не вышел
Call TerminateSessions

'Обновление конфигурации БД
WshShell.Run ExecFile & " DESIGNER" & _
" /IBConnectionString " & IBConnectionString & _
" /Out " & FSO.BuildPath(LogPath, "log_Step4_UpdateDBCfg.txt") & _
" /WA+ /DisableStartupMessages /UpdateDBCfg -Server -Dynamic-",, True

'Запись результата выполнения обработчиков
Set objlogStep5UpdateIBFile = FSO.CreateTextFile(FSO.BuildPath(LogPath, "log_Step5_UpdateInfoBase.txt"))
objlogStep5UpdateIBFile.WriteLine "Запуск служебных обработчиков:"

'Выполнение обработчиков после обновления. Выполняются во внешнем соединении
If Not IsEmpty(AfterUpdateExpressions) Then
    Set ExternalConnection = Connector.Connect(IBConnectionString)

    For Each AfterUpdateExpression In AfterUpdateExpressions
        ExpressionResult = Eval(AfterUpdateExpression)
        objlogStep5UpdateIBFile.WriteLine ExpressionResult
    Next
    
End If

objlogStep5UpdateIBFile.Close
'Разблокировка базы
Call UnblockInfoBase

'Отправка логов
If Not IsEmpty(MailTo) And MailTo <> "" Then
    Call SendUpdateIBResult
End If

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'устанавлиает блокировку базы
Sub BlockInfoBase(ByVal DateDeniedFrom)
    InfoBaseInfo.PermissionCode = "0000"
    InfoBaseInfo.SessionsDenied = True
    InfoBaseInfo.ScheduledJobsDenied = True
    InfoBaseInfo.DeniedFrom = DateDeniedFrom
    InfoBaseInfo.DeniedTo = DateSerial(100, 1, 1) 'пустая дата
    InfoBaseInfo.DeniedMessage = "Обновление информационной базы"

    WorkingProcessConnection.UpdateInfoBase(InfoBaseInfo)
End Sub

'отменяет блокировку базы
Sub UnblockInfoBase()
    InfoBaseInfo.ScheduledJobsDenied = False
    InfoBaseInfo.SessionsDenied = False

    WorkingProcessConnection.UpdateInfoBase(InfoBaseInfo)
End Sub

'разрывает все соединения с базой
Sub TerminateSessions()
    Dim SessionInfo
  
    For Each SessionInfo in AgentConnection.GetInfoBaseSessions(ClusterInfo, InfoBaseShort)
        AgentConnection.TerminateSession ClusterInfo, SessionInfo
    Next

End Sub

'завершает работу конфигуратора
Sub TerminateDesignerSession()
    Dim SessionInfo
  
    For Each SessionInfo in AgentConnection.GetInfoBaseSessions(ClusterInfo, InfoBaseShort)
        If SessionInfo.AppID = "Designer" Then
            AgentConnection.TerminateSession ClusterInfo, SessionInfo
        End If
    Next

End Sub

'возвращает количество сессий ИБ
Function GetCountInfoBaseSessions()
    Dim InfoBaseSessions

    InfoBaseSessions = AgentConnection.GetInfoBaseSessions(ClusterInfo, InfoBaseShort)
    GetCountInfoBaseSessions = UBound(InfoBaseSessions)+1

End Function

'отправляет в почту логи обновления
Sub SendUpdateIBResult()

  Dim objEmail

  Dim File,Folder



  Set Folder = FSO.GetFolder(LogPath)



  Set objEmail = WScript.CreateObject("CDO.Message")

  objEmail.From = MailFrom

  objEmail.To = MailTo

  objEmail.BodyPart.Charset = "windows-1251"

  objEmail.BodyPart.ContentTransferEncoding = "base64"

  objEmail.Subject = "Результат обновления " & InfoBaseName

'  objEmail.Textbody = ""

  objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing&quot;) = 2

  objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver&quot;) = SMTPServer
  For Each File In Folder.Files
    objEmail.AddAttachment(File.Path)
  Next
+ Code
    For Each ClusterInfo In AgentConnection.GetClusters()
        If ClusterInfo.MainPort = ClusterPort And LCase(ClusterInfo.HostName) = LCase(ClusterServer) Then
            ClusterInfoOK = True
            Exit For
        End If  
    Next

    AgentConnection.Authenticate ClusterInfo, "", ""

    Set WorkingProcessInfo = AgentConnection.GetWorkingProcesses(ClusterInfo)(0)
    ConnectString = WorkingProcessInfo.HostName & ":" & WorkingProcessInfo.MainPort
    Set WorkingProcessConnection = Connector.ConnectWorkingProcess(ConnectString)
    For Each InfoBaseInfo In WorkingProcessConnection.GetInfoBases()    
        If LCase(InfoBaseInfo.Name) = LCase(InfoBaseName) Then
            InfoBaseInfoOK = True
            Exit For
        End If  
    Next

    For Each InfoBaseShort In AgentConnection.GetInfoBases(ClusterInfo)
        If LCase(InfoBaseShort.Name) = LCase(InfoBaseName) Then
            InfoBaseShortOK = True
            Exit For
        End If
    Next
    
    IBConnectionString = "Srvr=""" & ClusterServer & ":" & ClusterPort & """;Ref=""" & InfoBaseName & """;UC=0000;"
    
    ExecFile = """" & FSO.BuildPath(Install32Path, "1cv8.exe") & """"

    FSO.DeleteFile FSO.BuildPath(LogPath, ""), 1

End Sub
68 Желтый Змей
 
30.08.15
10:55
Откати базу из резервной копии делов то .
69 Armando
 
30.08.15
16:21
Стоит отметить, что этот скрипт писалься под конкретные условия использования, поэтому на универсальность не претендует.
На проектах используется в основном 1С бухгалтерия 2.0 и 3.0. Только клиент-серверный вариант. Разработка ведется в хранилище. Рабочая база стоит на полной поддержке, поэтому обновляемся через механизм поддержки. Есть спец база подключенная к хранилищу, из нее создаем файл поставки.
70 rphosts
 
30.08.15
16:34
(69) видно из текста (прописакно в комментах явным образом)
71 Учитель
 
30.08.15
16:54
(69) А куда потом прописывать этот скрипт? В Батник?
72 mehfk
 
30.08.15
17:07
(71) Распечатай и на стенку повесь
73 Jackman
 
30.08.15
17:13
Вставляешь в блокнот, сохраняешь как vbs
74 Учитель
 
31.08.15
09:48
(73)(72) Спасибо! А как самому такой скрипт написать? Что нужно знать?
75 Armando
 
31.08.15
10:52
(74) надо знать vb script и читать синтаксис помощник 1С
Vbscript это как 1С только по нерусски