Имеются установленные расширения перед выполнением обновления убедитесь что установленные расширения
Имеются установленные расширения перед выполнением обновления убедитесь что установленные расширения
С развитием платформы 1с всё чаще для изменения типовых конфигураций используют расширения.
Я постарался добавить в обновлятор все необходимые возможности для их администрирования (при необходимости сразу в группе баз), в том числе обновление из хранилища, а также операции с расширениями по расписанию.
Меню управления расширениями для базы можно найти сразу в нескольких местах:
Вот как выглядит сам диалог для администрирования расширений:
Посмотрим его в действии.
Перед нами типовая бухгалтерия 3.0 без установленных расширений:
Добавляем новое расширение
В диалоге администрирования расширений переходим на закладку «Добавить» и указываем файл с расширением, уточнив его настройки (безопасный режим, защита от опасных действий и так далее):
Выводим уже добавленные расширения
Переходим на закладку «Вывести», чтобы получить список расширений (вместе с их свойствами), которые уже добавлены в базу:
Проверяем работоспособность (применимость) добавленных расширений
Это можно сделать сразу для всех расширений запустив операцию на закладке «Проверить»:
Обновляем уже существующее расширение
Предположим, вышла новая версия расширения и его нужно обновить в базе (записать поверх существующего).
В этом нам поможет закладка «Обновить».
Из файла
Я указал файл с новой версией расширения и указал имя уже существующего расширения в конфигураторе («ПисьмоВПоддержку»).
Это имя необходимо, чтобы обновлятор смог найти уже существующее расширение в базе и загрузить в него новую версию из файла.
Часто оно совпадает с именем файла из которого мы загружаем расширение. Но так бывает не всегда.
Вот его имя: «ПисьмоВПоддержку».
Причём если мы не выбираем конкретные значения опций (например, оставляем закрашенными синим цветом «Безопасный режим», «Защита от опасных действий» и так далее), то они не меняются при обновлении расширения (остаются как были до обновления).
Из хранилища
При этом есть нюансы в зависимости от того подключено ли расширение в обновляемой рабочей (продуктовой) базе к хранилищу или нет.
Расширение НЕ подключено к хранилищу
Это самый желательный вариант, который позволит вам не беспокоиться о конфликте пользователей хранилища между собой.
А также даст вам возможность обновляться из хранилища не только на последнюю версию конфигурации, но и на любую необходимую (заполнив поле «Версия», об этом ниже).
Расширение подключено к хранилищу
Тогда оно должно быть подключено под тем же пользователем, которого вы указываете в обновляторе для доступа к хранилищу.
Причём в этом случае пользователь должен быть уникальным, то есть не использоваться для подключения этого же расширения в других базах.
Внимание! Чтобы обойти это ограничение вы можете параметризовать имя пользователя хранилища. Для этого укажите значение «%base_name%» (вместо «updater» у нас в примере). В этом случае при выполнении скрипта в качестве имени пользователя хранилища будет подставляться имя базы в обновляторе (наша задача предварительно создать пользователей с такими именами в хранилище).
Стоит также учитывать, что при этом варианте обновление всегда будет происходить на последнюю версию конфигурации в хранилище, даже если вы заполните поле «Версия» (о нём рассказывается ниже).
А на третьем этапе операции (обновление конфигурации базы данных расширения) платформа 1с выведет в отчёт обновлятора следующее сообщение: «Соединение с хранилищем конфигурации не установлено», которое нужно проигнорировать.
Именно поэтому я рекомендую держать расширение подключенным к хранилищу только в базах для разработки, а рабочие (продуктовые) базы к хранилищу не подключать.
Это поле отвечает за номер версии конфигурации расширения из хранилища, которую мы получаем.
Если оставить его пустым, то всегда будем получать актуальную (последнюю) версию конфигурации расширения из хранилища.
Не нужно путать эту версию с версией самого расширения. Речь идёт вот об этой колонке:
Внимание. Заполнять поле «версия» имеет смысл только в том случае, если обновляемое расширение не подключено к хранилищу. Если оно подключено к хранилищу, то будем всегда получать актуальную версию несмотря на настройки.
Выгружаем все расширения во внешнюю папку
Обновлятор может легко выгружать все (или конкретное) имеющиеся в базе расширения во внешнюю папку в виде отдельных файлов:
В нашем случае результат будет таким:
В xml-файле сохраняются все настройки расширения в базе (безопасный режим, защита от опасных действий и так далее).
Загружаем все расширения из внешней папки
Все выгруженные расширения (вместе с их настройками) можно легко загрузить назад в ту же или в другую базу:
Удаляем существующее расширение
Удалим расширение с именем «ПисьмоВПоддержку»:
Выполняем эти же операции по расписанию
Мы также можем настроить запуск любой из перечисленных выше операций по расписанию для нужных нам баз.
Предположим, что нам требуется обновлять расширение с именем «ПисьмоВПоддержку» из хранилища в 3 базах каждую ночь.
Для этого переходим на закладку «Скрипты» в главном окне обновлятора:
Из шаблонов открываем диалог «Управление расширениями» и настраиваем его для обновления нужного расширения из хранилища:
Нажимаем на кнопку «Обновить. » и в редактор вставляется текст скрипта с нужными параметрами:
Внимание! Обычно для каждой базы в хранилище создают отдельного пользователя. Сейчас в скрипте мы указали одного и того же пользователя с именем «updater», но ничего не мешает нам параметризовать это имя и выбрать, например, из параметров скрипта значение «%base_name%«. В этом случае при выполнении скрипта в качестве имени пользователя хранилища будет подставляться имя базы в обновляторе (наша задача предварительно создать пользователей с такими именами в хранилище).
Сохраняем скрипт (кнопка «Сохранить» на нижней панеле):
Далее в настройки программы, кнопка «Расписание»:
Здесь создаём новую задачу с типом операции «Запуск скрипта» и выбираем файл с нашим скриптом («x:\work\update_extension.cmd»):
Настраиваем и сохраняем остальные параметры задачи:
С уважением, Владимир Милькин (преподаватель школы 1С программистов и разработчик обновлятора).
Подписывайтесь и получайте новые статьи и обработки на почту (не чаще 1 раза в неделю). |
Вступайте в мою группу ВКонтакте, Одноклассниках, Facebook или Google+ — самые последние обработки, исправления ошибок в 1С, всё выкладываю там в первую очередь.
Как помочь сайту: расскажите (кнопки поделиться ниже) о нём своим друзьям и коллегам. Сделайте это один раз и вы внесете существенный вклад в развитие сайта. На сайте нет рекламы, но чем больше людей им пользуются, тем больше сил у меня для его поддержки.
Нажмите одну из кнопок, чтобы поделиться:
Проверка работы расширений после обновлений
Сначала о том, как добиться стабильности работы расширений после обновлений. Разберем на примере.
Например, в типовую БП надо вывести свою кнопку в контекстное меню ТЧ товары.
Создаем новое расширение, у расширения должно быть понятное наименование и уникальный префикс
При импорте форм много тащится лишних объектов и реквизитов, но на данном этапе они мне не интересны
создаю кнопку на форме и прописываю алгоритм, отлаживаю работу расширения.
После того как все сделано и проверено удаляю все, что не менялось.
Для того чтобы посмотреть что изменено в расширении, есть удобный фильтр (не всегда все показывает)
все остальное удаляю
последовательность удаления такая:
все реквизиты и ТЧ, затем функциональные опции и константы и потом все остальное в произвольном порядке
обязательно для всего, что осталось снимаю контроли свойств (если не нужны)
затем снимаю все галки в свойствах конфигурации и ставлю дату изменения в версии расширения:
далее в списке расширений нажимаю проверку конфигурации конкретного расширения
программа выдает список ошибок
далее исправляю все ошибки, которые можно исправить (в данном случае достаточно добавить в расширение договор без реквизитов и контроля свойств)
после чего проверка уже не находит ни синтаксических ни других ошибок
в таком случае расширение будет работать долго без сбоев.
Далее после каждого обновления проверяю применимость всех расширений на копии и провожу проверку конфигурации расширения еще раз, если она и в этот раз завершилась удачно, то расширение будет работать и дальше.
Если расширений не много, то не сложно понажимать кнопку в конфигураторе, но в некоторых базах у клиентов их уже более 50.
Поэтому написал для себя обработку по автоматической проверке расширений:
с помощью командной строки запускается конфигуратор с нужными параметрами и проверяется каждое расширение, аналогично ручному нажатию кнопки Проверка конфигурации для расширения
В ней все просто, указываем пользователя и пароль (если есть), выбираем что проверить и нажимаем кнопку Проверить все расширения или проверить выделенные
При этом при проверке конфигуратор должен быть закрыт, иначе обработка не сможет подключиться.
Два режима проверки:
флажками отмечаем что проверить и нажимаем кнопку
у каждой кнопки и флажка есть подсказка, так что запутаться сложно 🙂
Несколько раз меня спасала такая проверка:
И вот совсем недавно обновлял БП и там метод ПодготовитьКоллекциюПечатныхФорм() вдруг стал не экспортным и проверка конфигурации тоже помогла выявить такую ошибку в расширениях, где он использовался.
Тестировалось на 8.3.14.1779 и старше, но скорее всего будет работать и на младших платформах
Обработка применялась на КА 2.4.7.141 и позже и на БП 3.0.70.33 и позже, также на нескольких самописных конфигурациях.
Но обработка универсальная, так что должна работать на любых конфигурациях с расширениями
Адаптация расширений конфигурации
Проверяем возможность применения расширений конфигурации
Открываем конфигуратор и переходим к списку расширений конфигурации: Конфигурация => Расширения конфигурации. В списке расширений проверяем возможность применения всех расширений конфигурации: Действия => Проверка возможности применения расширений конфигурации.
Если в процессе проверки расширений конфигурации обнаружены ошибки — их обязательно необходимо устранить. Иначе расширения, в которых обнаружены ошибки, при запуске 1С:Предприятие не будут использоваться.
При двойном клике на ошибку система направит Вас к месту возникновения ошибки и Вы сможете ее исправить.
Обновляем режим совместимости расширения конфигурации
Еще лучшим решением будет снятие контроля за режимом совместимости (система перестанет контролировать это свойство):
Исправляем ошибки изменения свойств объектов и их реквизитов
Когда разработчик расширения конфигурации готовит свое решение, он использует объекты типовой конфигурации. При добавлении объектов в расширение система начинает контролировать его свойства. К примеру, разработчик добавил в расширение реквизит и включил для него контроль типа:
Если в исходной конфигурации тип этого реквизита изменится — расширение не будет применено и возникнет ошибка «Значение контролируемого свойства Тип у объекта не совпадает со значением в расширяемой конфигурации». Для исправления этой ошибки можно снять галочку контроля типа реквизита или установить верный тип для реквизита. Для этого в основной конфигурации находим объект, которому принадлежит реквизит и запоминаем его тип. Далее переходим в расширение и устанавливаем верный тип для реквизита.
Аналогичный подход можно применять для всех свойств объектов и их реквизитов.
Обновляем формы в расширении конфигурации
При переходе на новую версию типовой конфигурации могут измениться формы, которые используются в расширении конфигурации. В платформе предусмотрен механизм быстрого обновления добавленных в расширение форм. Для начала, отобразим в дереве конфигурации расширения только измененные объекты — Действия => Измененные и добавленные в расширении:
Далее открываем нужную форму и нажимаем на кнопку «Обновить расширение формы»:
Переход на платформу 8.3.14 (и выше) и пересоздание расширения конфигурации
Фирма 1С с каждым релизом платформы развивает механизм расширений. Поэтому все расширения можно условно разделять на актуальные и устаревшие. Термин «устаревшие» означает устаревание внутренней структуры расширения относительно последних версий платформ. Первые расширения требовали включения в состав расширения большого количества объектов типовой конфигурации. Это означало, что очень часто такие расширения надо обновлять при обновлении типовой конфигурации. В версиях платформы 8.3.14 и выше добавлены механизмы, благодаря которым в расширение не нужно добавлять все объекты — фактически описываются и захватываются только нужные для доработки объекты типовой конфигурации. Поэтому если у Вас было разработано расширение на платформе 8.3.10 — 8.3.13 — его желательно переработать под актуальные версии платформы.
Если не получилось исправить ошибки?
Бывают случаи, когда для возобновления работы расширения конфигурации требуется анализ логики расширения и его кода. Назовем это сложным случаем адаптации расширения конфигурации. Возможен вариант, когда необходимо полностью переделать расширение и адаптировать его под новую конфигурацию и платформу. Мы можем предложить Вам свою помощь в адаптации расширения конфигурации — за несколько лет с момента создания этого механизма у нас был наработан большой опыт в создании и адаптации расширений конфигурации. Напишите нам и мы быстро согласуем вариант адаптации Вашего расширения конфигурации.
neturoki.ru
Уроки на все случаи жизни.
Обновление конфигурации 1С с расширением.
С помощью расширения конфигурации можно дополнить функционал программы 1С не снимая саму программу с поддержки. В большинстве случаев это упрощает обновление программ с измененным функционалом. Обновлять измененную расширением программу может обычный пользователь далекий от программирования.
Но, с выходом новых версий конфигурации 1С в конце концов наступает момент, когда расширение конфигурации становится несовместимым с новой версией основной конфигурации.
На такой момент я нарвался обновляя программу «1С:Зарплата и управление персоналом» (ЗУП 3.1) версии 3.1.9.229 с расширением конфигурации «Выгрузка ведомостей на выплату зарплаты из ЗУП 3.1 в Бухгалтерию 7.7» на версию 3.1.10.50.
Как программист 1С я, конечно же, справился с этой ситуацией. И готов поделиться с пользователями 1С на примере обновления программы ЗУП 3.1 с расширением конфигурации «Выгрузка ведомостей на выплату зарплаты из ЗУП 3.1 в Бухгалтерию 7.7».
Чтобы самостоятельно обновиться, кроме файла обновления основной конфигурации понадобится файл расширения, совместимый с новой версией основной конфигурации. Для моих клиентов файл высылается бесплатно.
Для обновления, в программе Вы должны обладать правами администратора. Обновление должно производиться в монопольном режиме (когда в программе только один пользователь – Вы).
Обновление производится в режиме «Конфигуратор» и во многом повторяет действия, описанные в статье «Как обновить базу 1С через конфигуратор». Поэтому активируем ниже гиперссылку и в указанной статье производим все действия до гиперссылки «Обновление конфигурации 1С с расширением».
Обновление расширения конфигурации.
Теперь приступим к обновлению расширения конфигурации. Для этого, в меню «Конфигурация» активируем строку «Расширения конфигурации».
В окне «Расширения конфигурации» выделяем наше расширение и в меню «Конфигурация» активируем строку «Загрузить конфигурацию из файла».
Выбираем файл расширения совместимый с новой версией основной конфигурации (в нашем случае это файл «ВыгрузкаВедомостейЗУП31_Бух77_3_10»), нажимаем кнопку «Открыть».
Соглашаемся с предупреждением «Текущая конфигурация не пустая» нажатием кнопки «Да».
На вопрос «Обновить конфигурацию базы данных» отвечаем «Да».
Ждём завершения обновления расширения.
Далее, производим все действия из статьи «Как обновить базу 1С через конфигуратор» после гиперссылки «Обновление конфигурации 1С с расширением».
Эти статьи Вам могут понравиться:
Нажимайте кнопки! Делитесь информацией с друзьями!
Нажимайте кнопки! Делитесь информацией с друзьями!
Адаптация расширений. После обновление расширения выдает ошибку.
помогите разобраться в адаптации расширения
после обновления
1С Бухгалтерия предприятия, редакция 3.0 (3.0.95.29)
не найдены объекты
Перечесление.СостоянияВерсийЭД
Перечесление.ВидыЭД
РегистрСведений.СостоянияЭД
подскажите с чего начать адаптацию? интересно самому разобраться, где в коде искать и смотреть?
да я не хочу хлеб отбирать, хотя может в будущем что изменится, но сейчас точно нет
я тут немного офигел, как люди в этом разбираются и решил немного вникнуть в вопрос.
натолкните куда копать, где основной код, как искать.
не трасировать же все, это свихнуться можно наверное
парни, вы по проблеме помогите, мои программерские изыски тоже не «на поддержание штанов»). пишу, что бы не забить и быть в курсе новых веяний.
1С сейчас что-то торкнуло, есть интерес разобраться. понять как то
скажите, куда копать, с чего начать?
(30) да, именно это и подобрал по описанию, как можно сразу все формы разом обновить, а не каждую открывать и обновлять?
(28) создал тестовую и на ней лезу
(29) ага))) такие стимулы и заставляют больше влезать)
сами все типы заменил, регистр тоже, а как теперь найти, что на это ссылается?
Ошибка при выполнении запроса.
по причине:
(39) > но неужели так сложно ткнуть
Никто тебя обучать не будет. Попытались, увидили твой уровень, оценили чколько всего тебе рассказывать надо, честно тебе написали, отошли. Оно и не будет у тебя работать.
в общем все роешается, заходим в свойства списка, там будет SQL запрос на стиле 1С, тупо на русском языке, там и есть эта ошибка
неужели так сложно было сказать, что левое соединение как раз и указывает на запрос к базе, тупо LEFT JOIN
зато про курсы пели тут. сейчас поправил все модули и без ваших курсов, если есть азы в работе с базами и языками разными, то 1С проста до безобразия, важно понимать откуда ноги растут