Имя: Пароль:
1C
 
ЗУП 3.0. Что за новый файл "DoNotCopy.txt" в папке с базой?
, ,
0 Токарь
 
06.11.15
07:59
Появился после обновления текстовый файл в папке с базой.
внутренности:
2d5cf0cb-c822-40c2-baae-ea4ab5a8a508

Файл создан для контроля за перемещением информационной базы в новое место.
Если информационная база была перемещается в новое место, то скопируйте этот файл в новый каталог базы (необязательно).
Если информационная база перемещается в качестве копии, то этот файл копировать не нужно.

Что это за файл такой?
1 mehfk
 
06.11.15
08:37
(0) защита от дятлов на уровне платформы, которые забывают отключать регламентные задания в копиях базы.
2 Провинциальный 1сник
 
06.11.15
08:39
(1) Хм.. а как это защитит от дятлов, которые скопируют базу вместе с этим файлом? )
3 mehfk
 
06.11.15
08:40
(2) Напиши в 1С.
4 mehfk
 
06.11.15
08:40
или в спортлото.
5 Александр_
Тверь
 
06.11.15
08:43
(1) от дятлов, уверен?
Что происходит с регламентными заданиями, если загружаешь базу из DT в файловую базу? Вот загрузил базу, а в ней прописаны разные синхронизации по регламентным заданиями. Как их отключить до того как оно хоть раз сработает?

ИМХО в стандартной синхронизации очень не хватает настройки, в которой указать рабочий сервер и рабочую базу. (а еще лучше настройку на уровне всей базы сразу). Указывать это надо вручную в явном виде, тогда и не нужны будут всякие костыли.
6 vde69
 
06.11.15
08:44
я уже давно использую следующий код


    мИдентификаторРабочейБазы = ПолныеПрава.ПолучитьИдентификаторРабочейБазы();
    Если мИдентификаторРабочейБазы <> СокрЛП(Константы.ИдентификаторРабочейБазы.Получить()) Тогда
        мСтр = СтрокаСоединенияИнформационнойБазы();
        ИмяБазыНаСервере = "";
        Если Найти(мСтр, "Ref") > 0 Тогда
            ИмяБазыНаСервере = Сред(мСтр, Найти(мСтр, "Ref")+5);
            Если Найти(ИмяБазыНаСервере, ";") > 0 Тогда
                ИмяБазыНаСервере = Лев(ИмяБазыНаСервере, Найти(ИмяБазыНаСервере, ";") - 1);
            КонецЕсли;
            ИмяБазыНаСервере = СтрЗаменить(ИмяБазыНаСервере, """", "");
            ИмяБазыНаСервере = " - " + ИмяБазыНаСервере + " - ";
        КонецЕсли;
        ЗаголовокСистемы = ЗаголовокСистемы + " <<<<<< КОПИЯ " + ИмяБазыНаСервере + " >>>>>> ";
    КонецЕсли;
7 Александр_
Тверь
 
06.11.15
08:45
(6) у тебя только один сервер?
8 vde69
 
06.11.15
08:45
Функция ПолучитьИдентификаторРабочейБазы() Экспорт
    Результат = "";
    мСтр = СтрокаСоединенияИнформационнойБазы();
    ИмяБазыНаСервере = "";
    Если Найти(мСтр, "Ref") > 0 Тогда
        
        ИмяБазыНаСервере = Сред(мСтр, Найти(мСтр, "Ref")+5);
        Если Найти(ИмяБазыНаСервере, ";") > 0 Тогда
            ИмяБазыНаСервере = Лев(ИмяБазыНаСервере, Найти(ИмяБазыНаСервере, ";") - 1);
        КонецЕсли;
        
        ИмяСервера = Сред(мСтр, Найти(мСтр, "Srvr")+6);
        Если Найти(ИмяСервера, ";") > 0 Тогда
            ИмяСервера = Лев(ИмяСервера, Найти(ИмяСервера, ";") - 1);
        КонецЕсли;
        
        Результат = ИмяСервера + ";" + ИмяБазыНаСервере;
        
    ИначеЕсли Найти(мСтр, "File") > 0 Тогда
        ИмяКаталогаБазы = Сред(мСтр, Найти(мСтр, "File")+6);
        Если Найти(ИмяКаталогаБазы, ";") > 0 Тогда
            ИмяКаталогаБазы = Лев(ИмяКаталогаБазы, Найти(ИмяКаталогаБазы, ";") - 1);
        КонецЕсли;
        
        Результат = ИмяКаталогаБазы;
    КонецЕсли;
    
    Результат = СтрЗаменить(Результат, """", "");    
    Возврат Результат;
КонецФункции
9 Azverin
 
06.11.15
08:45
(5) плюсую. сколько раз спотыкался на этом)
10 vde69
 
06.11.15
08:46
(7) нет, не один... работает замечательно...

единственный минус - не работает если часть зверей ломятся по IP а часть по имени
11 Александр_
Тверь
 
06.11.15
08:48
(10) да я к тому, что нужно еще и проверять имя сервера. Иначе развернешь копию с тем же именем на новом сервере и база определится как рабочая.
12 vde69
 
06.11.15
08:50
(11) ты код посмотри сначала (8) ....

конечно там есть варианты с файловой базой, но учитывая, что путь полный (их совсем мало и они только для файловой базы)
13 mehfk
 
06.11.15
08:50
(5)
/AllowExecuteScheduledJobs -Off|-Force  — управление запуском регламентных заданий. Регламентные задания начинают выполняться на первом запущенном по порядку клиенте, у которого не AllowExecuteScheduledJobs –Off. После завершения сеанса этого клиента, выполнение переходит к какому-либо из других запущенных сеансов. Если запускается сеанс с AllowExecuteScheduledJobs –Force, то регламентные задания начинают выполняться на нем, не зависимо от наличия других сеансов.
14 Александр_
Тверь
 
06.11.15
08:52
(12) ок. внимательно код не прочитал, косяк.
15 Александр_
Тверь
 
06.11.15
08:55
(13) /AllowExecuteScheduledJobs -Off  действительно вариант. Спасибо о таком варианте не подумал.

но ИМХО нужен штатный способ на уровне конфигурации указать имя рабочей базы и рабочего сервера.
16 Александр_
Тверь
 
06.11.15
08:58
Слишком легко забыть отключить регламентные задания.
Особенно когда 99% времени работает в одном варианте (например, в клиент-серверном) и один раз понадобилось использовать другой вариант (например, файловый).
17 vde69
 
06.11.15
09:01
(15) я думал привязаться к ID базы в кластере (имя каталога с серверным кешем), но при использования кластера это не работает.


а еще есть вариант когда вообще ничего не спасет - это клон виртуалки...

короче на 100% гарантию нельзя получить (тут с месяц назад был топ на эту тему)

по этому штатную не сделают никогда, что бы к ним претензий не было...

мой вариант дает вполне сносную работу в подавляющем большинстве окружений и реально помогает не только мне но и пользователям (не путаться где тестовая копия а где рабочая)
18 Александр_
Тверь
 
06.11.15
09:06
(17) твой вариант (собственно у меня тоже есть такой вариант) обладает только одним недостатком. А именно: нужно вносить изменения в базу. А это плохо.
19 Serg_1960
 
06.11.15
09:08
Всё было бы гораздо проще, если бы "по умолчанию" в новых базах регламентные задания были бы запрещены и их приходилось бы разрешать "вручную". Имхо.
20 vde69
 
06.11.15
09:12
(19) когда создаешь базу в кластере - ставь галочку "блокировка регламентных заданий" и уже можешь не парится, что при копировании в эту бузу, что-то заработает...

ну а файловые - так они только для демо и подходят... вообще для них нужно запретить рег задания и сделать только монопольный режим...
21 rs_trade
 
06.11.15
09:15
(19) Да, так было бы лучше.
22 Александр_
Тверь
 
06.11.15
09:16
(21) ага... купил себе бух базу, установил - запустил. и не работает.
23 Александр_
Тверь
 
06.11.15
09:17
пойди этому буху объясни, какие регламентные задания и как запустить. но это, конечно, тоже решаемо
24 Александр_
Тверь
 
06.11.15
09:17
Кто знает, где есть описание "DoNotCopy.txt"? на its не нашел :( в доке тоже.
25 Александр_
Тверь
 
06.11.15
09:18
я имею ввиду когда появляется, да чего действует.
26 Serg_1960
 
06.11.15
09:19
(20) Спасибо, кэп :) я об этом и говорил. Было бы лучше, имхо, чтобы в кластере(а ещё лучше - на уровне платформы) там была ба галочка возле пункта "Разрешить выполнение заданий", а не блокировать.

(23) Первоначальное заполнение базы - куда сложнее процесс, но ведь делают. вот там самое место разрешению выполнять задания.
27 rs_trade
 
06.11.15
09:20
(22) лезешь в консоль, снимаешь галку. все просто.
28 Александр_
Тверь
 
06.11.15
09:21
(27) под словосочетанием "бух базу" я имел ввиду "бухгалтер базу". т.е. базу купил не программист, а обычный пользователь, которые не знает никаких консолей.
29 rs_trade
 
06.11.15
09:23
(28) и развернул кластер 1С? где для файловой консоль?
30 Александр_
Тверь
 
06.11.15
09:23
(29) забей.
31 rs_trade
 
06.11.15
09:25
(30) для файловой и так с плясками надо рег.задания настраивать. и на файловую вообще пох. речь о сервере.
32 Serg_1960
 
06.11.15
09:29
"ну а файловые - так они только для демо и подходят" - РИБ-базы, где центральный узел на SQL и куча файловых подчиненных узлов в "ларьках" - имхо, до сих пор широко распространенный вариант.
33 vde69
 
06.11.15
09:33
(32) и какой умник будет делать копию узла и на нем поработать???

в такой ситуации вообще должны жестко запрещены любые манипуляции с узлом
34 Александр_
Тверь
 
06.11.15
09:35
Я для себя решил задачу обмена данными, путем создания обработки-шаблона.
Обработка подключается как доп.обработка (БСП). В обработке 2 команды (все создается автоматом). Одна на открытие формы (для настройки и ручной выгрузки) вторая на запуск в виде регламентного задания.

Как итог: Пишешь правила в КД 2.1. Эти правила загружаешь в макет обработки (либо выкладываешь в сетевую папку, как удобннее). Настраиваешь обработку и дальше все работает автоматом.  Настройка шаблона (при наличии готовых правил) занимает минуты 3-4.

вот так вот это выглядит (настройка):
https://yadi.sk/i/EsuhJphwkGGyR

вот так выглядит ручная выгрузка (это все одна форма, просто настройки скрываются после их сохранения):
https://yadi.sk/i/kruzf852kGGcj

без указания плана обмена документы вручную выбираются. если указан план обмена, то берутся по плану обмена.

соответственно все работает без изменения конфигурации.
35 Stim
 
06.11.15
09:36
(6) предлагаешь в каждую базу добавить константу ИдентификаторРабочейБазы?
36 Serg_1960
 
06.11.15
09:37
PS: у баз данных уже есть к чему "привязать" выполнение заданий - так называемый "внутренний уникальный идентификатор" - он в пути к кэшам используется. Для кластера он на сервере, для файловых - локальный для пользователя, настроенного под выполнение регламентов.
37 Serg_1960
 
06.11.15
09:53
(33) Не знаю у кого как, а у меня это обычное дело. Когда в ЗУПе новые начисления/удержания прописывают - просят копию, чтобы там отработать варианты формул (с прогоном на реальных данных); технологи и конструктора в УПП, когда опытные образцы нового изделия отрабатывают - просят копию для контрольного прогона, вплоть до расчета себестоимости...
38 mehfk
 
06.11.15
10:10
(24) Извиняюсь, проверка на уровне конфигурации
http://its.1c.ru/db/updinfo#content:268:1:issogl2_64
39 Александр_
Тверь
 
06.11.15
10:21
(38) Спасибо, за информацию. не нашел сам :(
40 Александр_
Тверь
 
06.11.15
10:22
значит это только для бухии и с определенного релиза... мало, но уже хлеб.
41 Звездец
 
06.11.15
10:32
(38)в принципе вполне подходящее решение, всегда напрягало в копиях отключать обмены автоматические. Остается только один вопрос, если отключил, а потом надо включить обратно? Под рукой нет подходящего релиза
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс