Как обычно вносятся изменения в конфигурацию? Редко кто пишет прямо в живой базе. Обычно всю програмистскую работу (написание, отладку и т.п.) делают на копии, и только потом вносят изменения. И все бы ничего, но тут может добавиться ряд неприятных моментов:
1. Изменения можно вносить только тогда, когда никого в базе нет -> нужно либо выгонять пользователей, либо ждать окончания рабочего дня, когда они сами уйдут.
2. Часто на предприятии ведется не одна, а несколько баз идентичной конфигурации -> соответственно в каждую надо загружать изменения.
3. Наконец, базы могут быть на удаленных точках (филиалах). Соответственно там тоже должен быть кто-то, кто загрузит конфигурацию.
Все эти проблемы решались бы, если б 1С предусмотрела возможность пакетной загрузки конфигурации. Однако этого в версии 7.7 нет. И вот именно этот недостаток восполняет моя утилита.
Суть работы: утилита запускает 1С в режиме конфигуратора, и посылает его окну команды (сообщения WM_COMMAND, а также ввод текста в поля edit) как если бы это делал нажимающий на пункты менюшек админ ;) .
При запуске конфигуратора утилите известен идентификатор его процесса, поэтому "запутаться" (послать сообщение не тому окну) она не может. О результате обработки команд узнается по тексту выскакивающих сообщений. Обработка прописана только для сообщений из русского интерфейса, соответственно с иными интерфейсами работать не будет.
Кроме этого, утилита позволяет перед загрузкой конфы сделать выгрузку данных. Имя файла выгрузки может включать форматные символы, задающие дату, день недели и "последний каталог пути" к базе.
Далее, чтобы не показывать пароль пользователя или конфигурации, в параметрах программы можно задавать "шифрованный пароль". Ну и наконец, даже если база еще не зарегистрирована в списке баз (либо регистрация слетела) - в предложенном 1Ской окне регистрации утилита нажмет "Ок", и база зарегистрится под стандартным "Информационная база #N". Насколько мне известно, пакетный режим конфигуратора на этом останавливался.
Параметры задаются ini-файлом, и/или ключами командной строки. В ini параметр представляет строку Ключ=Значение (например, user=Админ); в ком. строке - /Ключ Значение (например, /user Админ), пробел между ключем и значением обязателен! Параметры указанные в ком. строке имеют приоритет перед аналогичными в ini-файле (э
то позволяет, например, написав инишник с параметрами загрузки, использовать его для загрузки нескольких баз, указывая в строке запуска только ключ с путем к базе).
Краткую справку по ключам можно получить, введя в ком. строке /?.
Подробнее о работе утилиты см. в файле readme.
Confstarter
Разработка - Инструментарий разработчика
Скачать файл
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Наименование | Бесплатно | |
---|---|---|
-
.zip 78,71Kb
1561
|
1561 | Скачать бесплатно |
См. также
SALE! 15%
Инструментарий разработчика Роли и права Запросы СКД Программист Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)
Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.
10000 руб.
02.09.2020 160134 882 399
SALE! 15%
Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Платные (руб)
Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.
8400
7140 руб.
20.08.2024 8062 60 28
Инструментарий разработчика Программист Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)
Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.
9360 руб.
17.05.2024 23623 69 45
SALE! 15%
Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)
Инструмент, позволяющий абсолютно по-новому взглянуть на процесс разработки печатных форм. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и "прозрачность" разработки, а также навести порядок в многообразии корпоративных печатных форм.
22200
19980 руб.
06.10.2023 15497 36 7
SALE! 15%
Инструменты администратора БД Инструментарий разработчика Роли и права Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)
Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.
10000
8500 руб.
10.11.2023 10532 37 27
SALE! 35%
Инструментарий разработчика Инструменты администратора БД Системный администратор Программист Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)
Универсальный инструмент программиста для администрирования конфигураций. Сборник наиболее часто используемых обработок под единым интерфейсом.
4800
3120 руб.
14.01.2013 188178 1141 0
SALE! 15%
Инструментарий разработчика Программист 8.3.14 1С:Конвертация данных Россия Платные (руб)
Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.
15000
12750 руб.
07.10.2021 17358 6 32
Инструментарий разработчика Программист Платные (руб)
Менеджер конфигураций 1С — альтернативный стартер информационных баз 1С:Предприятие.
1800 руб.
21.02.2023 7754 8 35
1. Посмотреть документацию : ключ AnsiToOem - переводить (1) или нет (0) вывод из кодировки ANSI (CP-1251) в кодировку OEM (CP-866).
Коды возврата - 0 - все нормально, 1 - ошибка, 2 - загружаемый файл старее текущего (при update=1).
2. Использовать стандартное перенаправление вывода в файл ( > или >>), с последующим просмотром файла чем-либо что позволяет смотреть в разных кодировках (например, FAR, или встроенный вьювер тотал-коммандера)
3. Использовать перед запуском системную команду смены кодовой страницы консоли CHCP (chcp 866)
Пробую утилиту ConfStarter. Для начала хочу сделать бакап.
создаю backup.ini файл:
Debug=1
BasePath=C:\temp\oldbase
Path1CExe=C:\temp\bin
NewMDPath = NULL
DownloadTo=C:\temp\backup\backup.zip
запускаю ConfStarter.exe backup.ini
Получаю ошибку:
Подготовка командной строки...
1С: C:\temp\bin
База: C:\temp\oldbase
Пользователь:
ОШИБКА! Ошибка запуска 1С: (5) Отказано в доступе.
Что не так?
Например так: /DownloadTo C:\backup\?F-?YY-?MM-?DD
?YY-?MM-?DD - заменится на текущие год, месяц, день (для сегодня например 08-01-21), а ?F - на последний каталог в пути базы (например, для чего-то типа c:\bases_1s\mybase будет mybase), итого получим C:\backup\mybase-08-01-21
Для загрузки шаблонов нет (собственно говоря, нечего шаблонить :) ).
Как вариант - можно воспользоваться командой FOR с ключем /D
FOR /d %i in (c:\bases_1s\*) do confstarter /BasePath %i
(внутри батника естественно вместо %i надо писать %%i)
Теперь такие вопросы.
1. Не происходит выбор Файла новой конфигурации. Из-за Опенконфа может быть? У меня плагин FDSubst1C заменяет окно выбора МД-файла на ХР-подобное (места, мой комп и т.п.)
2. Выдается предупреждение "Загружаемая конфигурация не потомок текущей!" хотя 100% это потомок. При установке ForceReplace=1 происходит обновление конфы, но соответственно уже 1С выдает предупреждение, что, мол:
Частичная потеря информации при преобразовании значений. К_ОплатыСверхУрочныхЧасовПоследующих/ВС_ДолжностнойОклад
Частичная потеря информации при преобразовании значений. КПП/ВС_ОкладПоЗванию
Частичная потеря информации при преобразовании значений. НДФЛ/ВС_ПНВЛ
Частичная потеря информации при преобразовании значений. ПочтовыйСбор/КПП
Частичная потеря информации при преобразовании значений. КодДоходаЕСН/КодДоходаЕСН
Частичная потеря информации при преобразовании значений. РайонныйКоэффициент/Адрес
Частичная потеря информации при преобразовании значений. Руководитель/КодОКАТО
Это все константы, причем как видно, абсолютно разные... почему бы он их путал?
И в финале 1С говорит: "Нет возможности удалить документ, по которому существуют движения! БольничныйЛист" (это первый в конфигурации)
Подскажите, пожалуйста.
Прошу прощения, но у меня точно такие же сообщения (только ссылки на документы другие) при обновлении ЗиК с 313 на 320 при загрузке обновленн конфигурации. Работала с 320 приводя ее к не типовой. Прошу подскажите пожалуйста что сделать, чтобы это победить поподробнее...
Ниже я опишу процесс принятия изменений конфы, возможно что-то покажется вам тривиальным - но не зная вашего уровня я пишу максимально подробно.
Итак, все объекты метаданных ("агегатные" объекты типа справочников-документов-регистров, их реквизиты, формы, атрибуты форм и т.д и т.п.) идентифицируются системой не по имени, а по некоему внутреннему номеру(ИДу), который присваивается при создании объекта и в дальнейшем не меняется. Это позволяет, например, сделав копию базы спокойно производить изменения в копии, и лишь по окончании разработки, не боясь даже переименоания реквизитов, загрузить измененную конфу поверх исходной.
Однако, если в исходной конфе также делались изменения (тогда загружаемая конфа их попросту затрет), либо загружаемая конфа вообще не потомок исходной, ИДы скорее всего не будут соответствовать, и с объектами будет полный бардак (например в одной конфе объект № 12345 - Контрагент в РН, а в другой - вообще форма списка справочника товаров). Это ни к чему хорошему не приведет (в часности, возможны потери данных о которых и сообщается в процессе), поэтому эска отслеживает "потомственность" конфы, и при загрузке не-потомка - предупреждает (ну а дальше на выбор пользователя).
Альтернативой является объединение конфигураций - в этом случае во-первых, сопоставление производится по именам объектов (т.е. переименованый реквизит воспримется как новый), во-вторых, пользователю дается больший контроль над процессом (можно выбрать какие объекты и каким образом объединить). По-умолчанию же параметры объединения установлены на наиболее типичный вариант, чтобы максимально сохранить данные (т.е. старые объекты не удаляются, новые добавляются и т.п.).
Теперь что делает конфстартер с ключами force и merge. Без ключей если при загрузке конфы выдалось предупреждение "не потомок" - загрузка останавливается. Force=1 включает "насильственную" загрузку - конфа загружается если не потомок. Merge=1 же в случае "не потомка" вызывает объединение конфигураций, и сразу нажимает в диалоге объединения кнопку принятия (т.е. используется сценарий объединения по-умолчанию). Merge=2 аналогично Merge=1 за исключением того что объединение вызывается сразу же, без попытки обычной загрузки.
Если же у вас сложный случай, то лучше взять копию конфы, произвести с ней необходимые манипуляции, и загружать уже ее (она будет потомок исходной). Кроме того, конфстартер сделан для простой замены рутинных действий, поэтому если делается что-то серьезное (а смена редакции конфы очевидно серьезная и редкая вещь), лучше это сделать самому, не полагаясь на автомат.
PS. Вам (предполагаю, что вы все же начинающий разработчик) возможно стоит привлечь кого-то более опытного для консультаций по месту
Про конфстартер тоже спасибо еще раз. Думаю пригодиться.
Встречный вопрос - если у вас стоит опенконф, то может использовать его средства? На сколько мне известно, есть плагины, которые распознают ключи командной строки, есть плагин который автоматом файл из буфера обмена открывает, и т.п. Посмотрите на сайте опенконфа, возможно есть и плагин для автозагрузки?
2. Судя по всему, таки не потомок. 1Сочное предупреждение же свидетельствует что вероятно ваши конфы обновлялись слиянием (и счас у них не совпадают внутр. ИДы объектов). Соответственно и загружать лучше со слиянием (merge=1 forcereplace=0, при forcereplace=1 попытки объединения даже не делается). А лучше - сначала загрузить новый мд на копию основного, а потом уже, когда все ясно станет - загружать из копии в живую.
И пожалуйста, разберитесь в механизме загрузки/объединения в 1С, тогда подобных вопросов возникать не будет.
1. Опенконф то у меня стоит, но мне нужно наладить обновление у клиентов, порядка 100 машин. Поэтому не вариант.
2. Конфа - точно потомок, помогла команда Merge=1
Спасибище!
Но насколько мне известно, у 8ки в плане регламентных процедур и пакетного режима гАраздо больше возможностей чем у 77. Посмотрите в доке по администрированию, возможно там есть и загрузка конфы.
Посмотри внимательно:
Жаль только, что там нет загрузки с выполнением регламентных заданий и последующим выходом из программы. А то приходится извращаться.
А за Confstarter Спасибо!
А the1 прав.
Из-за Опенконфа файл новой конфигурации не выбирается. А насчет потомка, то в моем случае файл точно является потомком, но выводится сообщение о противном.
Причем для эксперемента заменил МД, при первом обновлении сообщение "о не потомке" не выводилось, а при последующих снова - не потомок. Есть подозрение, что это связано с тем, что у меня подключен Опенконфа, а у пользователей нет.
Не плохо было бы еще запускать в свернутом окне, так как в моем случае процесс обновления происходить на глазах у пользователя и думаю, что не исключена возможность непроизвольных нажатий.
В лог выдается ровно то, что сообщает 1С; если же речь идет о записи лога - для этого можно воспользоваться стандартными символами перенаправления ">" и ">>". См. комментарии, гдето такой пример был.
Да, и еще. Прога писалась давно, так что как будет под вин7 работать - без понятия.
А нужно так, по справке не понятно?
ConfStarter /merge 1 Load1S.ini /user Admin /password 007
или
ConfStarter Load1S.ini /user Admin /password 007 /merge 1
как правильно вывести сообщение в файл, поправь пжл:
@echo off
ConfStarter Load1S.ini /user Админ /password 123
>>c:\log.txt
Я так и не поняла, как обновить несколько баз? Подскажите пожалуйста. Если прописать в INI-файле несколько, обновляется всё-равно только одна
Нужно создать несколько INI-файлов и в батники много раз вызывать их, либо использовать 1 ini-файл а все остальное (пути/пароли) прописать в батнике, там же можно использовать переменные.
AnsiToOem=1
BasePath=C:\RW_Chpato
Path1CExe=C:\Program Files\1Cv77_SQL\BIN
NewMDPath=C:\1cv7.md
ForceReplace=1
DeleteAfter=0
Update=0
User=Admin
Password=602564
ConfigPassword=652218
WorkTime=0
DownLoadTo=null
Помогите разобраться, пожалуйста. Что не так?
Вот например как это сделано у меня в батнике
set v8exe="C:\Program Files (x86)\1cv82\8.2.15.289\1cv8.exe"
set user=admin
set pass=пароль_админа
set server=сервер_базы_данных
set db=имя_БД_на_сервере
set logfile=update.log
set repo_dir=\\путь\к\хранилищу
set repo_user=пользователь_хранилища
set repo_pass=его пароль
%v8exe% DESIGNER /Out%logfile% -NoTruncate /S%server%\%db% ^
/n %user% /p %pass% ^
/ConfigurationRepositoryUpdateCfg -force ^
/ConfigurationRepositoryF %repo_dir% ^
/ConfigurationRepositoryN %repo_user% ^
/ConfigurationRepositoryP %repo_pass% ^
/UpdateDBCfg
Это для загрузки конфы из хранилища. Для загрузки из файла вместо ключей хранилища (ключи со словом Repository) указывается /LoadCfg имя_файла_конфы
Не совсем понятно, как конфстартер определяет, потомка базы?
7.70.027
1С Предприятие, Зарплата и Кадры, 7.70.321
И вот еще вопрос: когда я обновляю вручную, я делаю: Открыть конфигурацию, Объединение конфигурации,
в появившемся окне выбираю Загружаемая конф-я, Замещать объекты. Далее Да, Принять, ок.
Всё обновляется без проблем.
Если я использую конфстартер с инишкой:
Debug=1
BasePath=D:\test\base_zik
Path1CExe=C:\Program Files\1Cv77\BIN\1cv7l.exe
User=admin
NewMDPath=D:\test\z324\1cv7.md
ForceReplace=1
Merge=1
DownloadTo=D:\test\backups\?F-?DD-?MM-?YYYY
На этапе объединения, появляется сообщение вида:
[15:12] Конфигуратор :: Нет возможности удалить документ по которому существуют
движения! ИзменениеУсловийОплатыОтпускаПоУходуЗаРебенком
=OK=
[15:12] Конфигуратор :: Реорганизация данных не выполнена
=OK=
И всё стопорится.
А в чем же проблема? Вручную же обновляется вполне спокойно.
Заранее спасибо
Конфстартер не определяет потомка, это делает сам конфигуратор. Конфстартер только "на менюшки нажимает", и сообщения логгирует.
Если не работает автомат - ну сделайте один раз вручную. Система не может за вас решить, что делать ей, например, со счетом который на место существующего втиснуть пытаетесь.
Ключи ForceReplace=1 и Merge=1 несовместимы. Точнее, ForceReplace=1 заставляет принимать изменения даже если сообщено что конфа не потомок текущей - поэтому до объединения процесс вообще не доходит. Если нужно объединение - уберите ForceReplace=1.
Не совсем понимаю, что мне нужно сделать в конфстартере, чтобы всё гладко обновлялось, как и вручную?
Убрать merge=1?
Насчет обновления вручную - т.е. мд файл моей базы зик не типовой, или что?
Если обновляю подобным скриптом комплексную конфигурацию, вылазит:
[16:16] Конфигуратор :: Невозможно изменить код счета 76.ЗП на 10.11, так как су
ществует счет с данным кодом.
=OK=
[16:16] Конфигуратор :: Реорганизация данных не выполнена
=OK=
Но в теории - если конфстартер просто нажимает кнопки за меня, то почему при ручном обновлении 1с не задает дополнительных вопросов, а при обновлении именно через конфстартер задает?
Получается, когда вручную, конфигуратор сам определяет, что сделать со счетем, а через конфстартер - не умеет?
Т.е. теперь, если мне надо будет откатить базу на момент до обновления, я просто беру её из заранее выгруженного zip архива-бекапа, который делался командой DownloadTo=D:\test\backups\?F-?DD-?MM-?YYYY?
И больше ничего не нужно?
Ещё вопрос - а можно обновлять базы комплексной и зика не по порядку, например, 321 и 322, а сразу с 321 на 324? Или это чревато чем-то?
Для получения уведомлений о новых публикациях автора подключите телеграм бот: Инфостарт бот
№ 14304
Создание 17.08.06 00:00
Обновление 17.08.06 00:00
Просмотры 28059
Загрузки 1561
Рейтинг
69
Комментарии 63
Код открыт Не указано
Рубрики Инструментарий разработчика
Кому
Системный администратор
,
Программист
Тип файла Приложение (exe)
Платформа Не имеет значения
Конфигурация Не имеет значения
Операционная система Windows
Страна Россия
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Бесплатно (free)