Режим совместимости расширения конфигурации. Расширения конфигураций – как добавить функционал в типовую конфигурацию, не снимая с поддержки (20 минут видео)

Стоимость работ и варианты переводов с разных релизов

Перевод 8.1 → 8.2.13 Перевод 8.2.13 → 8.2.16 Перевод 8.2.16 → 8.3.10
Цена, руб. * 54 000 ₽ 12 000 ₽ 76 800 ₽

Список всех изменений в различных версиях платформы доступен по ссылкам:
Для платформы 8.2:
http://downloads.v8.1c.ru/content/Platform/8_2_19_106/1cv8upd.htm

Перед началом работ по переводу на 8.3 нужно:

Проверить режим управляемых блокировок. Если используется “Автоматический”, то при переходе на 8.3 могут потребоваться дополнительные затраты на перевод в режим управляемых блокировок.
Если используется режим совместимости с 8.2.16 и выше, то нужно проверить, выполнена ли реструктуризация таблиц
Определить, какие типы клиентов используются (тонкий, толстый, веб-клиент)
Определить, есть ли машины, которые работают под linux

Перевод конфигурации 8.1 → 8.2.13

Стоимость работ: 54 000 руб.

Перевод конфигурации 8.2.13 → 8.2.16 (включая реструктуризацию)

Ключевые изменения:
Изменен режим хранения констант и настроек регистров накопления. Для каждого объекта используется своя таблица базы данных
Переработана реализация механизма управляемых блокировок.
Для события технологического журнала «TLOCK» свойство «Txt» записывается только в режиме совместимости с версией 8.2.13
Уменьшено влияние режима отладки на скорость работы в режиме «1С:Предприятие» для тонкого клиента, толстого клиента, сервера и внешнего соединения.
Оптимизировано выполнение запроса вида «ТипЗначения(Поле1) = ТипЗначения(Поле2)», если «Поле1» и «Поле2» содержат значения ссылочного типа.
Для полей управляемой формы, отображающих реквизит составного типа, ускорено открытие списка быстрого выбора в тех случаях, когда в составной тип входят ссылочные типы с разными настройками быстрого выбора.
Для нового независимого и непериодического регистра сведений, индекс по измерениям является кластерным

Изменения, требующие изменений в конфигурациях:

При отключенном режиме совместимости, параметр «Период» метода менеджера периодического регистра сведений «Получить()» является обязательным. В режиме совместимости с версией 8.2.13 и версией 8.1 поведение не изменилось (метод можно использовать без указания параметра, но результат является неопределенным).
При одновременном использовании методов «УстановитьЗначение()» и «ИспользоватьИзИсточникаДанных()» объекта «ЭлементБлокировкиДанных» вызывается исключение. В режиме совместимости с версией 8.2.13 поведение не изменилось (приоритетным считается значение, установленное методом «ИспользоватьИзИсточникаДанных()»).
Не поддерживается помещение в хранилище значения данных, которые не поддерживают сериализацию. В режиме совместимости поведение не изменилось.
Если база файловая, то должно быть выполнено преобразование информационной базы. После начала преобразования работа с данной информационной базой предыдущими версиями платформы «1С:Предприятие 8» будет невозможна. Если разработка выполняется с использованием хранилища конфигураций, перед преобразованием информационной базы нужно обязательно сделать копию хранилища

ВАЖНО. Для получения эффекта от изменения режима совместимости надо сделать реструктуризацию через конфигуратор: “Администрирование → Тестирование и исправление → Реструктуризация таблиц информационной базы”.

Предварительно необходимо выполнить реструктуризацию на тестовой базе и замерить время выполнения данной операции.
Если используется сервер 1С версии старше 8.2.19, например, версии 8.3, то при выполнении реструктуризации могут возникнуть ошибки следующего вида:

В таком случае необходимо сделать следующее:
Установить отдельно сервер 1С версии 8.2.19 и развернуть на нем исследуемую базу
Открыть базу в конфигураторе на сервере 1С версии 8.2.19, изменить режим совместимости на “Не использовать”
Выполнить реструктуризацию таблиц информационной базы
После того как реструктуризация будет выполнена, переместить информационную базу на исходный сервер 1С версии 8.3

Стоимость работ по переводу конфигурации из режима совместимости 8.2.13 в режим 8.2.16 (режим без совместимости, при использовании платформы 8.2.16, 8.2.19 и режим совместимости 8.2.16 при использовании платформы 8.3) составляет 12 000 руб.

Шаблон договора на работы можно скачать .

Перевод конфигурации 8.2.16 → 8.3.10

В состав работ по переводу конфигурацию входят следующие доработки конфигурации:

1. Устранение конфликт имен свойств. Изменение имен переменных, совпадающие с новыми свойствами, которые появились в «1С:Предприятии 8.3».
2. Устранение конфликт имен картинок. Переименование имен картинок с именами, совпадающеми с именами из библиотеки картинок.
3. Доработка кода при изменение свойств фиксированной структуры. Замена указания свойств фиксированной структуры на пересоздание фиксированной структуры или замена ее использование на аналогичный тип «Структура».
4. Замена помещения во временное хранилище несериализуемых значений, на код поддерживаемый в «1С:Предприятии 8.3».
5. Замена использования вызова метода «Показать» для реквизитов управляемой формы, на использование свойств «ТекущийЭлемент», «ТекущаяСтраница», метода «Активировать»
6. Замена имен объектов метаданных с длинной более 80 символов, на имена с длиной имени в 80 символов или меньше для объектов метаданных
7. Переименования методов и свойств, согласно методике перехода на версию 8.3.
8. Доработка механизмов работы с отборами, условным оформлением, группировками и порядком в динамических списках.
9. Доработка кода для запросов с ключевым словом «ИТОГИ ПО ОБЩИЕ», выгруженный в режиме
«ОбходРезультатаЗапроса.ПоГруппировкам», с целью сохранения прежней логики работы.
10. Изменения имен классов COM-объектов. Замена имен «V82.COMConnector» на «V83.COMConnector», и «V82.Application» на «V83.Application».
11. Отказ в коде программы от события «НачалоВыбораИзСписка» для полей ввода в режиме выбора из списка
12. Отказ в коде программы от свойства «КнопкаСпискаВыбора» для полей ввода, путем установки свойства «КнопкаВыпадающегоСписка».
13. Изменение кода с учетом изменения типа значения, возвращаемого методом глобального контекста «БезопасныйРежим()»
14. Изменение кода с учетом изменение результата запроса к константам (при обращение к полю «Значение» таблицы константы, если константа хранит значение типа «ХранилищеЗначения», «УникальныйИдентификатор» или «ВнешнийИсточникДанныхТаблицаСсылка».
15. Замена свойства конфигурации «ОсновнаяРоль» на «ОсновныеРоли»
16. Отказ от свойств «Пользователь» и «Пароль» для объекта «ИнтернетПрокси» и замена на методы «Установить()», «Пользователь()», «Пароль()».
17. Доработка кода для поддержки команды «Показать в списке», согласно методике перехода на версию 8.3.
18. Доработка кода для поддержания прежней логики работы системы при изменившемся возвращаемом значении свойства СистемнаяИнформация.ВерсияОС,
19. Доработка кода для поддержания прежней логики работы системы при отказе от использования системного перечисление ВариантОткрытияОкна, которое более не доступно в версии 8.3.
20. Доработка кода с учетом отказа от использования модальных окон.
21. Доработка кода по поддержке веб-клиента, а именно отказ от серверных вызовов и открытия окон в «ПередЗакрытием», отказ от серверных вызовов в «ПриЗакрытии».
22. Доработка кода для возможности корректного использования функции РольДоступна(), при передачи функции в качестве параметра отсутствующей роли.
23. Для управляемого приложения: начиная с версии 8.3.8 в обработчиках событий управляемого приложения ПередЗавершениемРаботыСистемы,ПриЗавершенииРаботыСистемы, а также в обработчиках событий управляемой формы, находящейся в режиме закрытия, ПередЗакрытием, ПриЗакрытии, запрещено открывать окна и выполнять любые серверные вызовы . Необходима доработка конфигурации, чтобы закрытие форм выполнялось корректно — без серверных вызовов.
24. Конфликт имен переменных: в модуле формы нельзя использовать имя переменной ПараметрыФормы. Поэтому необходимо доработать все модули управляемых форм, где используются переменные с именем ПараметрыФормы, переименовав эти переменные.

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

Стоимость работ: 76 800 руб.

Шаблон договора на работы можно скачать .

Стоимость работ по переводу конфигурации в режим совместимости с 8.3.10 может быть увеличена , если:
В конфигурации используются управляемые формы
Необходимо отказаться от использования модальности
Нужно поддерживать работоспособность конфигурации в ОС Linux

В данной статье предлагаю рассмотреть, что такое «расширение конфигурации», как добавить расширение или же отключить его. Начиная с версии 1C 8.3.6.1977 в платформе введен новый механизм – расширения конфигурации. Сначала немного теории.

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

Для чего нужны расширения?

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

Снятие с полной поддержки влечет за собой ряд неудобств:

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

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

После обновления основной конфигурации, если произошли в новом релизе какие-то изменения с объектом, который ранее был изменен расширением, то изменения все равно возьмутся из расширения. То есть расширения имеют больший приоритет, чем основная конфигурация.

Видео — расширения в 1С за 45 минут

Получите 267 видеоуроков по 1С бесплатно:

Пример добавления расширения в 1С

Чтобы показать, что такое расширение, лучше привести пример его создания в конфигураторе 1С.

В конфигураторе зайдем в меню «Конфигурация» и выберем пункт «Расширения конфигурации». Откроется окно со списком расширений (если они есть). Нажмем кнопку «Добавить» и добавим новое расширение. Теперь можно открыть конфигурацию расширения:

Как видно, конфигурация расширения имеет точно такую же структуру, как и основная. Только она изначально совершенно чистая, без объектов.

Недавно я писал статью о том, как самим сделать . На её примере я хочу сделать ее встроенной при помощи расширения.

В обработке у меня есть поле со ссылкой на справочник «Организации». Поэтому мне этот справочник необходим. Но мы не будем создавать новый справочник «Организации», тем более что платформа этого и не позволит. Нельзя, чтобы в конфигурации расширения были объекты, одноименные с объектами в основной конфигурации.

Поэтому справочник мы позаимствуем из основной конфигурации:

Теперь нажмем правой кнопкой мышки на «Обработки» и выберем «Вставить внешнюю обработку, отчет…» Таким образом, добавим новую обработку в конфигурацию расширения. Если Вы используете мою обработку, то сразу переименуйте ее, так как в основной конфигурации уже есть обработка с таким именем.

Ну и последний штрих. Я хочу, чтобы моя обработка отражалась в меню «Администрирование». Для этого позаимствуем одноименную подсистему основной конфигурации. Не забудьте указать в обработке, что она относится к этой подсистеме.

Вот такая структура у меня получилась:

Посмотрим, что у нас получилось. Обновляем конфигурацию базы данных и запускаем программу в режиме 1C: Предприятие, и идем в меню «Администрирование». Да, чуть не забыл, конфигурацию расширения необходимо закрыть, иначе программа не запустится:

Мы выпустили новый релиз панели телефонии для 1С.

  • версия 1.2.24.10 для обычного приложения
  • версия 1.4.26.17 для управляемого приложения

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

Преимущества использования расширения

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

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

Особенности встраивания панели телефонии для 1С

Такие возможности стали доступны расширениям для платформы, начиная с версии 8.3.9.1818 . Поэтому, чтобы воспользоваться этим, мы отключили режим совместимости для расширения, так как версия 8.3.9 еще не поддерживается. Соответственно возникает необходимость отключения режима совместимости и для основной конфигурации, иначе возникнет ошибка: "Режим совместимости расширения конфигурации больше режима совместимости основной конфигурации ".

2) В основную конфигурацию мы добавляем роль МИКО_Софтфон , для которой мы снимаем все права.

При добавлении нового объекта метаданных, в данном случае роли, необходимо обновление справочника ИдентификаторыОбъектаМетаданных . Когда мы добавляли эту роль в расширение, то типовые конфигурации игнорировали её, то есть при обновлении справочника ИдентификаторыОбъектаМетаданных роль в нём не появлялась. Из-за этого некорректно работал механизм профилей настроек панели телефонии, возникала ошибка: "Не найден идентификатор объекта метаданных для роли МИКО_Софтфон ".

Причем данная ситуация возникала не во всех конфигурациях, так в "Управление торговлей, 11.2.3.218" и "Комплексная автоматизация, 2.0.3.222" проблем с ролью не было, когда она была добавлена в само расширение. Чтобы обеспечить некую универсальность предлагаемого нами решения и гарантировать бесперебойную работу в большинстве поддерживаемых нами конфигураций, мы решили добавлять роль МИКО_софтфон в основную конфигурацию и заимствовать её в расширении, а уже в расширении реализовать настройки данной роли.

Очень важной особенностью является тот факт, что если встроив однажды наше расширение, Вы захотите встроить панель по нашим старым инструкциям , необходимо отключить расширение и удалить роль МИКО_софтфон. Если захотите вновь воспользоваться расширением, необходимо сначала добавить роль, а потом уже добавить расширение.

Резюмируем

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

Инструкции по встраиванию панели телефонии для 1С с помощью механизма расширений находятся .

Задавайте свои вопросы через форму обратной связи .

© 2019. MIKO LLC All Rights Reserved.

Тема «аккуратной» доработки типовых конфигураций является всегда актуальной.

С помощью расширений появляется возможность вносить доработки, оставляя конфигурации БЕЗ изменений (то есть не снимая «с замка» ).

В качестве примера мы расширим функционал типовой “1С:Бухгалтерии 8” – добавим проверки на заполненность реквизитов документов. В результате система будет выдавать диагностику, если реквизиты заполнены “неправильными” значениями.

Буквально за 15 минут Вы научитесь приемам, которые сможете использовать для решения разных задач.

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

Мечты о собственной нетленке могут стать реальностью:)

Итак, приступаем:

Видео 1. Приемы работы с расширениями – на примере “1С:Бухгалтерии 8”

Изучив видео, Вы научитесь:

  • Создавать и подключать расширения к конфигурации
  • Выполнять отладку расширений
  • Дорабатывать типовые формы обработок/документов с помощью расширений
  • Перехватывать события форм типовой конфигурации
  • Хранить данные не в таблицах ИБ (хранилище настроек)
  • Использовать обработки как хранилище алгоритмов

Также мы разберем оптимизацию состава объектов расширений и ограничения расширений в текущих релизах платформы.

Видео 2. Создание универсальных механизмов с помощью расширений

В этом видео мы покажем:

  • Подключение расширения в пользовательском режиме (без конфигуратора )
  • Пример универсальной проверки заполнения
  • Особенности реализации расширений – создание форм с произвольными отборами и хранение данных в расширениях

Коллеги, всем здравствуйте.

На днях вышла тестовая Бухгалтерия Предприятия с отключенным режимом совместимости с платформой 8.3.6.
А значит в этой версии используется новый движок, который по-новому отрисовывает формы.
Прочитать про это можно в Зазеркалье .

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

Памятка:


1. Переводим расширение на новую платформу

Для этого следует привести режим совместимости расширения к режиму совместимости конфигурации.
В версии Бухгалтерия Предприятия установлены следующие свойства:

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


2. Устраняем проблемы подключения

Для этого запускаем конфигурацию в режиме предприятия и смотрим взлетело или нет.
Ошибки, из-за которых не удалось подключить расширение, можно посмотреть в журнале регистрации
(Администрирование - Поддержка и обслуживание - Журнал регистрации)
Нас интересуют события - “Сеанс. Ошибка применения расширения конфигурации”:

Чаще всего проблема подключения решается удалением лишнего реквизита или объекта.

Основная сложность в том, что расширение не выдает сразу все ошибки (кстати, эта проблема решена в 8.3.9).
Поэтому требуется последовательно запускать конфигурации после исправления каждой ошибки.
Чтобы было удобно запускать журнал регистрации - добавим его в избранное:



3. Обновляем формы в расширении

Для этого в каждой измененной форме нажимаем на “Обновить расширение формы”
С помощью этой команды мы заново подгружаем форму основной конфигурации в расширение.

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


4. Приводим форму к правилам нового движка.

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

Я составил следующий порядок действий:

  • Убираем все декорации , которые использовались для отступов.
    Вместо них теперь используются группы.
  • Смотрим, что все выглядит хорошо .
    Если что-то пошло не так, то смотрим статью.
    Если все хорошо, то двигаемся дальше.
  • Проверяем новые свойства платформы “Объединенная”, “АвтомаксимальнаяШирина” и “АвтомаксимальнаяВысота”.
    Просто смотрим, что в этих свойства установлены умолчания платформы и форма из-за этого не разъезжается.