Bat для 1с обмен

Обновлено: 07.07.2024

Для решения данного вопроса залез в интернет и понял, что единого решения нет - каждый извращается как может. Ну вот и я присоединился к этой компашке. Воевал за максимальную функциональность, поэтому при выборе решения остановился на своём.

Решения без изменения конфигурации мне найти не удалось. Уже вижу, как как в меня полетели помидоры - ведь при запуске 1с есть ключ /Execute , который позволяет после запуска 1с запустить внешнюю обработку и сделать обмен, да вот только - фик там! После загрузки 1с загружается: сначало панель интернет-соединение (отключил), а вот потом панель "Установить границу расчитанных итогов на. " - быстро победить мне эту панельку не удалось. У-у-у-у-у, вторая порция помидоров полетела. Знаю, что есть права на регистрах - рассчитывать итоги, через которые можно избавить пользователя от этой ненужной обузы, да вот только для этого нужно создавать новую роль и тащить её через последующие релизы и для одной только цели - делать обмен. Мне это показалось не совсем универсально.

Покопавшись в интернете и ключах запуска нашел ключ /C - передача параметра в конфигурацию. 1с Бухгалтерия отрабатывает ключ /CРазрешитьРаботуПользователей, при котором работа 1с завершается, но с параметром Ложь: ЗавершитьРаботуСистемы(Ложь), при этом 1с просто подрубается, не выполняя функций завершения работы программы.

Но ведь через этот ключ можно передать, что-то типа /cВыполнить=ЗавершитьРаботуСистемы(Истина); и при запуске обрезав "/cВыполнить интернет-соединения" и "расчета границы итогов".

Для этого в процедуру ПриНачалеРаботыСистемы() внес обработчик передаваемого параметра (текст нашел где-то в нете, может и на инфостарте):

(понимаю, что лучше было бы внести эти строки в обработку ключа /С: ОбщиеМодули-УправлениеСоединениями-ОбработатьПараметрыЗапуска(), но в любом случае в типовую конфигурацию надо вносить изменения).

А дальше все просто - создаем bat-файл и ставим на шедулер (Планировщик заданий), что б в обед в 13.00-14.00 была выгрузка. Текст батника у меня такой (можно скачать в приложении):

@ECHO OFF
chcp 1251
PATH "C:\Program Files (x86)\1cv82\8.2.15.319\bin";"C:\Program Files\1cv82\8.2.15.319\bin"
start 1cv8.exe ENTERPRISE /F"\\Bases\2012\База" /N"Обмен" /P"12345" /cВыполнить=ЗавершитьРаботуСистемы(Истина); &

Что б было понятно, объясню:

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

2 строка - прописываем пути, где искать запускной файл 1с для 32 и 64 битных систем. У меня пути прописаны для 15 платформы 319 релиз.

3 строка - запускаем 1с: /F - указываем путь до базы, /N - указываем пользователя, /P - указываем пароль, /c- передаем параметр, & - запускаем в фоне, что б пользователь даже не видел запуска 1с.

А зачем завершать работу, спросите вы? И как при этом происходит выгрузка?

Все просто! При настройке обменов РИБ можно определенному пользователю (в нашем случае - под кем загружаем 1с из бат-файла) назначить выполнять обмен при различных событиях. Одним из событий является "Завершение работы", где мы и ставим галочку (смотрите рисунок).

Да, пользователю, который будет делать обмен не забудьте снять в настройках (Сервис - Настройки пользователя) галочку - "Запрашивать подтверждение при завершении работы", а то нажать на Да/Нет в "Завершить работу 1с?" при закрытии 1с будет некому.

Т.е. весь процесс выглядит так:

1. Шедулер ежедневно в фоне запускает 1с под пользователем "Обмен" и с ключем, который передает строку кода: ЗавершитьРаботуСистемы(Истина).

2. При загрузке системы отрабатывает наша обработка параметра, где переданная строка кода (в п.1) выполняется - т.е. завершается работа 1с.

3. Перед завершение работы делается обмен РИБ, после чего 1с благополучно завершает работу.

Всё. Одним емором стало меньше.

И теперь при загрузке 1с можно выполнять любые команды не вторгаясь в конфигурацию, прописав их в "/cВыполнить soc-butt-wrap centered">

Никак не могу решить одну проблему, может вы поможете. Настроен обмен между 2 базами 1С.
Чтобы не снимать конфигурации с поддержки, реализовал через обработку «Универсальный обмен в формате XML».
У меня есть bat файл, который подгружен в планировщик Windows (используется SQL).
Bat-файл выполняет задачу: запускает 1С – запускает внешнюю обработку – внешняя обработка в свою очередь запускает обработку «Универсальный обмен в формате XML» и заполняет все необходимые параметры (подгружает правила обмена, подключается напрямую к базе Приемник и т.д.) – происходит выгрузка данных – после чего завершается работа 1С.
Проблема возникает в том, что когда запускаешь bat файл вручную, он все «шикарно» отрабатывает.
Но если закрываешь сеанс удаленного рабочего стола и ставишь выполнения задания ночью, планировщик заданий в свою очередь запускает 1С и через некоторое время завершается работа 1С, секунд примерно 10 держится сеанс.
В журнале регистрации ошибки не зафиксированы.
Есть ли мысли по данной проблеме?
Все перепробовал.
Заранее спасибо за ответ.

юзео от имени которого запускается таск имеет права админа?

(0) Все очень просто.
Когда запускаешь руками - батник работает от имени текущего юзера в текущей директории.
Когда через планировщик - батник работает от имени системного юзера, если не указанно иное, и в системной директории.

Поэтому причины может быть две и только две -
Права - проверяем есть ли права у юзера от имени которого запускается батник.

Пути - пишем абсолютные пути к файлам, а не относительно текущей директории.

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

(0) неужели не получилось применить Полный план обмена с загруженными правилами обмена?

вижу неудобство только в том, что придется периодически руками регистрацию "лишних" объектов очищать.

(6) Да что там скрины планировщика.
Ты лучше содержимое батника покажи.

"C:\Program Files (x86)\1cv8\8.3.9.1850\bin\1cv8.exe" ENTERPRISE /S%NameServer%\%NameBase% /N%Login% /P%Password% /DisableStartupMessages /C ЗавершитьРаботуПользователей
"C:\Program Files (x86)\1cv8\8.3.9.1850\bin\1cv8.exe" CONFIG /S%NameServer%\%NameBase% /N%Login% /P%Password% /DisableStartupMessages /UC %KodRazr% /DumpIB C:\BackUp\%mydate%_%NameBase%_copy.dt /OUT C:\BackUp\%mydate%_%NameBase%_log.txt
"C:\Program Files (x86)\1cv8\8.3.9.1850\bin\1cv8.exe" ENTERPRISE /S%NameServer%\%NameBase% /N%Login% /P%Password% /DisableStartupMessages /C РазрешитьРаботуПользователей /UC %KodRazr%

Но почему-то не завершается работа пользователей. Подскажите, пожалуйста, чего не хватает или где ошибка?

(0)
Во-первых. В клиент-серверной информационной базе бэкап по раписанию необходимо производить средствами СУБД
Во-вторых. Работа пользователей завершается не мгновенно, а с таймаутом, ЕМНИП, 60 секунд.
(1) , Спасибо за ответ! Завершение работы пользователей ждала 5 минут. Подожду еще подольше.
(1) Если у пользователя что-то делается - он может вообще никогда не завершиться. А спящие сеансы только по таймауту отвалятся.

(3) > Если у пользователя что-то делается - он может вообще никогда не завершиться

А если он в этот момент ожидает выполнения запроса в СУБД, так он вообще может быть бессмертным =)

(2) "Завершение работы пользователей ждала 5 минут. Подожду еще подольше.". лучше уж вот как-то вот так:

Start "Stop" /Wait "C:\Program Files (x86)\1cv8\8.3.9.1850\bin\ragent.exe" -stop
.
Start "Start" /Wait "C:\Program Files (x86)\1cv8\8.3.9.1850\bin\ragent.exe" -start

(0) А "C:\Program Files (x86)\1cv8\8.3.9.1850\bin\1cv8.exe" ENTERPRISE. /C ЗавершитьРаботуПользователей закрывает конфигуратор? Может конфигуратор не закрыт.
(0) Не занимайтесь ерундой.
Выгрузку надо делать средствами СУБД, а не через выгрузку конфигуратором.
Выгрузка в dt не является архивом.
(8) Ну, например, SQL-сервер может выйти из строя. На этот случай dt-выгрузка позволит создать файловую базу.
Есть ли методы программно определить, есть ли пользователи в базе? Как для версии 7.7 как из одной базы 1С проверить есть ли кто в другой. По временным файлам Что-то мешает сделать dt-выгрузку базы. Что?? Что-то у себя их не нашел. правда у нас отдельный SQL-сервер, может не там искал?

(9) > На этот случай dt-выгрузка позволит создать файловую базу
В которую данные из SQL тупо не влезут из за ограничения размеров страниц, ага.

Закопайте уже стюардессу.

(11) Ошибка о невозможности разворота из dt появляется на при выгрузке, а при загрузке в файловую базу. Ваш К.О.
(10) в последних платформах ограничения размеров страниц ля файловых баз снято.
(8) , архив средствами СУБД делается. А выгрузка нужна мне, для подстраховки и для быстрого развертывания базы для экспериментов. В рабочей базе постоянно сидят пользователи.
(15) средствами СУБД все и так быстро делается
и пользователей выгонять не надо
(16) Для экспериментов нужна файловая база, не ставить же на SQL-сервер.
(17) Отлаживать клиент-серверное взаимодействие вообще-то надо на клиент-сервере. Ваш К.О.
(17) для экспериментов регулярность копии особого значения не имеет, поэтому можно обойтись и без выгонялки пользователей. У меня такой скрипт работает, естественно, помимо нормального бэкапа. Сделал копию - хорошо, не сделал - ну, тоже ничего, возьмем позавчерашнюю.
Имхо:
Последовательно
1. Бэкап sql базы средствами субд
(23)+ Точнее можно если отлаживатель всего один на весь сервер 1С, если их несколько то упс

(14) Начиная с версии платформы "1С:Предприятие" 8.3.8 появилась поддержка нового формата файловых баз данных, который позволяет настраивать размер внутренней страницы файла данных. Это размер порции данных, в которых хранится информация и которыми обменивается программа с файловой системой. Предыдущий формат файловой базы данных поддерживал единственный размер внутренней страницы файла – 4Кб. Новый формат по умолчанию использует размер страницы 8192 байта (8Кб), но позволяет его менять в диапазоне от 4Кб до 64Кб (размер страницы может принимать одно из значений: 4096, 8192, 16384, 32768, или 65536 байт).

Обратите внимание, что данная утилита позволяет увеличить или уменьшить размер страницы файла данных, но не снимает ограничение на размер самого внутреннего файла. Теоретически размер внутреннего файла может уменьшится за счет увеличения или уменьшения размера страниц и конвертации данных в новый формат, но результат не гарантирован и может вызвать обратный эффект.

В платформе 1С:Предприятие начиная с версии 8.3.8 увеличение размера страниц до 8192, 16384, 32768 и 65536 байт позволяет увеличить максимальный размер внутреннего файла до 6Гб. При использовании размера страниц 4096 байт максимальный размер внутреннего файла по прежнему не может превышать 4 Гбайта для любой версии платформы.

Что необходимо для автоматического обмена данными, без внесения изменений в конфигурацию:
1) Обработка "Универсальный обмен данными в формате XML", которая входит в состав большинства типовых конфигураций. Если её там не оказалось, то её легко найти на диске ИТС или на просторах интернета. В конфигурации она обзывается "УниверсальныйОбменДаннымиXML"
2) Правила обмена данными. Создаются с помощью "Конвертации данных". Работу с которой вам придётся освоить. Есть и видеокурсы и учебные пособия. Например: http://programmist1s.ru/wp-content/uploads/2013/06/Konvertatsiya_dannyih._Metodika_rabotyi_i_primeryi.pdf
3) Внешняя обработка, содержащая процедуры загрузки/выгрузки. Займемся её созданием:
Создаётся внешняя обработка в модуле объекта которой будет нижеприведённый текст (подставляете свои данные по базам и пользователям). Желательно создать отдельного пользователя с полными правами для обмена данными. Назовём обработку, к примеру, "ОбменДанными.epf".

4) Bat файл выгрузки, который будет запускать 1с и внешнюю обработку с параметром запуска под пользователем, который предназначен для обмен данными. Файл необходимо создать к примеру в notepad++ с кодировкой OEM(MS-Dos), иначе работать не будет. Файл назовём, например "BatVygruz.bat". Текст будет следующим:

Если база файловая:
"C:\Program Files (x86)\1cv82\common\1cestart.exe" ENTERPRISE /F"C:\Inbox\КБФ\1Cv8_Base_8.1\Зевс 83 БП3\Зевс 83 БП3" /N"РоботОбменаДанными" /P"pass" /DisableStartupMessages /RunModeManagedApplication /Execute"C:\Inbox\ОлегА\ОбменДанными.epf" /C"Выгрузка"
Пояснения:
а) C:\Program Files (x86)\1cv82\common\1cestart.exe - ваш путь к стартеру 1С
б) C:\Inbox\КБФ\1Cv8_Base_8.1\Зевс 83 БП3\Зевс 83 БП3 - ваш путь к файловой базе, из которой будем выгружать данные
в) РоботОбменаДанными - Имя пользователя, под которым запускам 1С для обмена данными
г) pass - пароль пользователя
д) /DisableStartupMessages - закрываем всплывающие окна при старте 1С
е) /RunModeOrdinaryApplication - запуск в обычном режиме толстый клиент
ж) C:\Inbox\ОлегА\ОбменДанными.epf - путь к нашей обработке, которая запустится при старте
з) Выгрузка - передаём параметр запуска 1С, сообщает, что надо выгружать данные

Если база серверная:
"C:\Program Files (x86)\1cv82\common\1cestart.exe" ENTERPRISE /S"Server1C/DataBase" /N"РоботОбменаДанными" /P"pass" /DisableStartupMessages /RunModeManagedApplication /Execute"C:\Inbox\ОлегА\ОбменДанными.epf" /C"Выгрузка"
Пояснения:
а) C:\Program Files (x86)\1cv82\common\1cestart.exe - ваш путь к стартеру 1С
б) Server1C/DataBase - ваш сервер на котором находится база и имя самой базы из которой выгружаем данные.
Остальные параметры аналогичны файловому варианту bat файла

5) Bat файл загрузки (при необходимости). Если вы решили выгружать данные в файл, а не напрямую в базу. То этот пункт нам тоже понадобится (обычно необходим).
Создание Bat файла загрузки аналогично файлу выгрузки, но отличается лишь параметр запуска, вместо "Выгрузка", мы ставим "Загрузка"

6) Задать расписание запуска наших Bat файлов загрузки/выгрузки на сервере. Для этого надо зайти в администрирование панели управления на сервере и в планировщике заданий создать новое задание запуска файла выгрузки на 23 часа каждый день и задание на загрузку с указанием Bat файла загрузки(если надо) на 04 часа к примеру.

Речь идёт о возможности написания пакетных скриптов для автоматизации операций над группой баз вот на этой вкладке обновлятора:


Что такое пакетный скрипт?

Пакетный скрипт - это текстовый файл для Windows, содержащий последовательность команд, предназначенных для исполнения командным интерпретатором (подробнее).

Такие файлы обычно имеют расширение bat или cmd.

Я сам подсматриваю синтаксис таких скриптов здесь и здесь.

Зачем писать и запускать эти скрипты именно в обновляторе?

Потому что обновлятор берёт на себя ряд непростых вещей, чтобы упростить написание таких скриптов в части взаимодействия с пакетным режимом конфигуратора и в целом с базами.

Список баз для обработки

Прямо в обновляторе мы выбираем для какого количества баз нужно запустить написанный нами скрипт:


Передача параметров базы

При выполнении скрипта обновлятор сам передаёт в него необходимые параметры с информацией о текущей базе:

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

Примеры таких скриптов мы можем найти в списке шаблонов обновлятора:


Предварительная архивация базы

При необходимости обновлятор обеспечит создание резервной копии перед выполнением скрипта:


Эта резервная копия будет согласована с общей системой архивации, то есть её также можно подвергать "тюнингу" в дополнительных настройках обновлятора. Такая копия всегда будет иметь метку "перед опасной операцией".

Блокировка, разблокировка базы

При необходимости обновлятор выполнит полную блокировку базы перед выполнением вашего скрипта и разблокировку после:


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

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

Сохранение отчётов

Обновлятор сохраняет историю выполнения таких скриптов в менеджере отчётов.

Как в общем виде:


Так и в детальном:


Кстати, вы обратили внимание, что в отчётах скрываются имя и пароль пользователя, под которым выполнялся пакетный запуск конфигуратора? Эта конфиденциальная информация намеренно заменяется на символ звёздочка.

Уведомление на почту

Если у вас настроены уведомления на почту (все или только при ошибках).


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



Запуск скрипта по расписанию

Для добавления скрипта в запуск по расписанию следует сохранить сам скрипт:

Далее у нас есть 2 варианта:

Быстрый, но неудобный способ

При сохранении скрипта мы можем установить опцию "Настроить однократный запуск скрипта . ":


И далее уже отредактировать расписание этого задания непосредственно в планировщике Windows.

Чуть более медленный, но самый удобный способ

После того как вы сохранили скрипт (не добавляя его в планировщик Windows) вернитесь в главное окно Обновлятора на закладку "Настройки программы".

Далее нажмите кнопку "Расписание".

И создайте задачу с типом операции "Запуск скрипта":

Укажите ваш сохраненный скрипт по ссылке "выбрать скрипт для запуска. ".

Облачный мониторинг

При сохранении скрипта нам также доступна опция для облачного мониторинга его работы - совершенно потрясающая возможность на мой взгляд. Вот здесь подробнее об облачном мониторинге.

Многопоточное выполнение скриптов

О том как запускать скрипт параллельно для нескольких баз подробно рассказывается здесь.

Что ещё полезно изучить перед написанием скриптов?

Ну, конечно же, пакетные команды конфигуратора. Куда же без них.

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

Чтобы увидеть все возможные команды именно для нашей версии 1с - заходим в конфигуратор и выбираем пункт меню "Справка"-"Содержание справки":


В открывшемся окне нас интересует вот эта ветка:


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

Ну, поехали!

Хватит говорить про скрипты - давайте их писать

Выводим на экран имя базы

Для этого нам понадобится команда echo (именно она отвечает за вывод на экран) и параметр %base_name% (его нам передаёт в скрипт обновлятор).


И запустим наш скрипт над выбранной группой баз:


Пересчитываем итоги

Здесь уже речь идёт о том, чтобы выполнить пакетную команду конфигуратора, которая называется IBCheckAndRepair с ключом RecalcTotals.

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

Вместо этого мы просто напишем:

%run_1c_d% это параметр скрипта, который включает в себя пакетный вызов конфигуратора к текущей базе, для которой выполняется скрипт.

Почему он называется именно run_1c_d? Это сокращение "run 1c designer". Designer означает режим конфигуратора.

Кстати, для более удобного формирования скрипта для тестирования и исправления базы воспользуйтесь соответствующим шаблоном:


Делаем выгрузку базы

За выгрузку базы отвечает команда DumpIB, которая принимает в качестве параметра путь к файлу, куда нужно выгрузить базу.

Получается наша команда могла бы быть такой:

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

Именно для этих целей в скрипт передаётся параметр %stamp% - имя файла, уникальное для текущей базы и текущего момента времени.

Эта метка включает в себя имя базы и текущую дату и время.

Чтобы сделать наш скрипт универсальным перепишем его вот так:

Вы спросите - откуда я беру все эти полезные параметры для скрипта?

А я ещё раз напомню вам вот об этом меню:


Открываем базу с запуском внешней обработки

Полезная фича, если нам нужно выполнить некоторый код в режиме пользователя и затем закрыть базу.

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

А затем пишем следующий пакетный скрипт:

Обратите внимание, что здесь уже не идёт речи о пакетном запуске конфигуратора. Здесь мы запускаем 1с в режиме предприятия с ключом Execute, указав для последнего путь к обработке, которую нужно открыть сразу после запуска базы.

За запуск базы в режиме предприятия отвечает параметр run_1c_e. Почему он называется именно так? Это сокращение от "run 1c enterprise". Enterprise означает запуск базы в режиме предприятия (пользовательский режим).

Выполняем регламентные задачи

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

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

Речь идёт вот об этой группе команд:


При выборе этих методов вызываются особые конструкторы, по результатам которых в код вставляются специфичные команды, понятные только обновлятору.

Например, вот так будет выглядеть команда запуска регламентного задания "ЗагрузкаКурсовВалют":

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

Подробное пояснение по командам, которые начинаются с @

В чём их смысл

Эти команды на самом деле не исполняются командным интерпретатором системы.

Обновлятор вычленяет их из скрипта и сам последовательно выполняет прежде чем отдать оставшуюся часть текста на выполнение операционной системе.

Соответственно эти команды имеют более обширный функционал и позволяют автоматизировать больше и лучше, чем только при использовании команд интерпретатора.

Строгий формат

Такие команды (все они выбираются из меню 'Обновлятор'-'Методы') имеют строгий формат написания, чтобы обновлятор смог их найти и разобрать в общем тексте пакетного скрипта:

  1. Их вызов всегда начинается с новой строки.
  2. Их имя всегда начинается с @
  3. Если у команды есть параметры, то вызов записывается вот в таком формате:
    @имя_команды(
    имя_параметра_1: "значение",
    имя_параметра_2: "значение"
    )
    Обратите внимание, что:
    - каждый новый параметр написан с новой строки
    - закрывающая список параметров круглая скобка также вынесена на отдельную строку
Возможность сочетания с другими командами интепретатора

Рассмотрим актуальный пример. Нам требуется написать пакетный скрипт, который бы делал обновление базы данных, а затем выполнял обработчики обновления.

Для обновления БД из шаблонов мы выбираем такой скрипт:

Эта команда будет передана командному интепретатору системы на выполнение.

А для выполнения обработчиков обновления нам придётся воспользоваться специальной командой для обновлятора, которая начинается с @, выбрав её из меню 'Обновлятор'-'Методы':

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

И если мы напишем такой скрипт.

. то не получим ожидаемого поведения. Обновлятор сначала выполнит команду run_update_handlers и только затем передаст командному интерпретатору оставшуюся часть скрипта (%run_1c_d% /UpdateDBCfg).

И ранее не оставалось ничего, кроме как разносить эти команды по разным скриптам и выполнять их последовательно. Что, конечно, крайне неудобно.

Теперь такая возможность появилась в виде специальной команды, которая выбирается из меню 'Обновлятор'-'Методы'-'Выполнение пакетного скрипта'.

Вот как выглядит эта команда:

При помощи неё мы сможем переписать наш скрипт (для обновления БД и выполнения обработчиков обновления) вот так:

И теперь всё будет работать именно так, как мы задумали.

Внимание! При вставке команд, начинающихся с @ обновлятор вставляет также в текст подсказку-ссылку на эту статью. Подсказка перестанет вставляться автоматически через некоторое время после использования таких команд.

Как мне придумывать свои скрипты?

Для вдохновления вначале советую разобрать и понять скрипты из шаблонов обновлятора. Это уже многое вам даст.

Ну а затем изучайте пакетные возможности конфигуратора (см. справку по ним выше) и если какая-то команда вас заинтересовала - пробуйте её применять подобно тому, как мы делали выше.

Я написал классный скрипт и хочу поделиться

Для этого я завёл специальный проект на github, где собираю полезные скрипты от пользователей обновлятора, чтобы как можно большее количество людей смогло использовать их в своей работе.

Хотите прислать мне свой скрипт? Прошу вас сюда (ссылка).


С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).

Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.

Читайте также: