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

Реализовано в версии 8.3.6.1977.

Мы реализовали принципиально новый механизм адаптации прикладных решений под конкретного потребителя - механизм расширений.

Чем хороши расширения?

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

Как выглядит этот процесс сейчас? Есть типовая конфигурация. Она находится на полной поддержке поставщика. Это значит, что изменять её нельзя. Периодически поставщик выпускает новые (улучшенные) версии этой конфигурации. В такой ситуации обновление старой версии конфигурации на новую версию выполняется полностью автоматически. Это удобно и не требует от заказчика каких-то особенных навыков или знаний.

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

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

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

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

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

Когда нужно использовать расширения?

Механизм расширений заманчив своей универсальностью. Поэтому важно иметь правильное представление о том, для решения каких задач он предназначен.

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

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

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

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

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

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

Что можно изменять уже сейчас с помощью расширений?

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

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

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

Как устроено расширение?

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

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

Заимствованные объекты нужны не всегда. Лучше всего это объяснить на «бытовом» примере, если провести аналогию с обедом в ресторане.

Ситуация первая, когда заимствованные объекты нужны.

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

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

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

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

Ещё через неделю вы приходите в ресторан, и видите, что бифштекс и чай исчезли из меню. Вы встаёте и уходите (сообщение об ошибке подключения расширения). Потому что вы хотели именно их. А о других блюдах (объектах) вы понятия не имеете. Разработчик не обучил вас, как правильно кушать улиток или омаров.

Другая ситуация, когда можно обойтись без заимствованных объектов.

Вы идёте в ресторан, но наличие конкретных блюд вас не интересует. Потому что вы всё равно не собираетесь их есть. Вы хотите их только сфотографировать. А фотографировать вы умеете какое угодно блюдо. Тогда вы просто подключаетесь к конфигурации и говорите: несите все закуски, которые есть у вас в меню (получаете коллекцию документов из метаданных). Я их перепроводить буду (фотографировать).

Если описать это сухим языком разработчиков то получится, что заимствовать объекты нужно:

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

Подключение расширения

Вы создаёте расширение в конфигураторе. После того, как оно отлажено и проверено, вы можете его отторгнуть, сохранив расширение в файл *.cfe.

Этот файл вы можете передать заказчику. Заказчик самостоятельно загрузит его в свою информационную базу в режиме 1С:Предприятие с помощью стандартной функции Управление расширениями конфигурации .

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

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

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

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

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

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

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

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

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

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

Работа расширения

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

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

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

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

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

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

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

Для модулей форм используется другой подход. Для заимствованной формы в расширении создаётся собственный модуль с собственными обработчиками всех событий. В режиме 1С:Предприятие оба модуля формы (из типовой конфигурации и из расширения) объединяются в одном контексте. По этой причине каждое расширение имеет свой префикс, который добавляется к обработчикам всех событий в модуле формы. Чтобы не было совпадений с обработчиками из типовой конфигурации. После этого обработчики событий и команд вызываются последовательно и синхронно. Сначала обработчик из расширения. Потом из типовой конфигурации. Эту последовательность вы можете поменять, или совсем запретить выполнение обработчика из типовой конфигурации.

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

Что касается остальных объектов, которые вы можете использовать в расширении, то для них всё выглядит гораздо проще.

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

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

Расширение - это почти конфигурация

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

У расширения (как и у обычной конфигурации) есть основная конфигурация и конфигурация базы данных. Механизм сравнения и объединения конфигураций работает с расширениями так же, как и с обычными конфигурациями.

Вы можете выгрузить расширение в файл (правда, с другим расширением *.cfe), и загрузить из файла. Расширения можно выгружать / загружать в XML.

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

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

Во встроенном языке основной объект для работы с расширениями это МенеджерРасширенийКонфигурации .

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Мы выпустили новый релиз панели телефонии для 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.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Перевод 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