что значит расширение конфигурации неактивно
Не принимает расширение
Здравствуйте! Вопрос касается публикации расширения во Фрэш. При публикации следующая ошибка:
. При проверке для Управление нашей фирмой 1.6.15.63 обнаружены проблемы совместимости:
Возможность подключения: Критичная: Значение контролируемого свойства РежимСовместимости у объекта не совпадает со значением в расширяемой конфигурации
Возможность подключения: Критичная: Режим совместимости расширения конфигурации больше режима совместимости основной конфигурации
Возможность подключения: Критичная: Не удалось определить факт изменения структуры данных из за проблем совместимости
При проверке для Управление нашей фирмой 1.6.18.168 обнаружены проблемы совместимости:
Возможность подключения: Критичная: Режим совместимости расширения конфигурации больше режима совместимости основной конфигурации
Возможность подключения: Критичная: Не удалось определить факт изменения структуры данных из за проблем совместимости.
Не подскажете, как согласовать варианты расширений?
(14) При проверке для Управление нашей фирмой 1.6.15.63 обнаружены проблемы совместимости:
Возможность подключения: Критичная: Значение контролируемого свойства РежимСовместимости у объекта не совпадает со значением в расширяемой конфигурации
Возможность подключения: Критичная: Режим совместимости расширения конфигурации больше режима совместимости основной конфигурации
Возможность подключения: Критичная: Не удалось определить факт изменения структуры данных из за проблем совместимости
Расширения (проблемы и решения)
Проблема №1
Работа с таблицей невозможна. Структура таблицы несовместима с текущими расширениями конфигурации
Данная ошибка возникает при отключении расширения (снятие флага «Активно») при попытке прочитать таблицы (запросом, набором записей и т.д.) которые были модифицированы расширением.
Создали расширение, в котором есть заимствованный регистр накопления и добавленный новый документ, который участвует в движении по этому регистру. Даже несмотря на то, что новый добавленный документ не сделал еще никаких движений по регистру, ошибка будет появляться.
Возможность отключить расширение «на время» и продолжить работу в базовой конфигурации очень удобная штука, но к сожалению сделать это как оказалось не всегда возможно.
Проблема №2
На форуме периодически встречаются темы следующего содержания:
Для того, чтобы использовать отчеты\обработки основной конфигурации (в которых есть реквизиты с типом «ЛюбаяСсылка» или конкретным типом) в своих расширениях необходимо либо заменить используемый тип на тип «Неопределено», либо заимствовать отчет\обработку и выполнить замену типа уже в расширении.
Личный опыт
При написании расширений, которые предполагают использование ссылочных типов, я использую следующий подход:
Вместо реквизита «Ссылка» я создаю 2 реквизита «СсылкаID» и «ТипCcылки» где:
Конечно, у такого подхода есть свои минусы (отсутствие ссылочной проверки, отсутствие автоматического включения в интерфейс объекта), но он позволяет создавать универсальные расширения, которые будут работать в паре с любыми другими расширениями.
Заметки из Зазеркалья
Реализовано в версии 8.3.6.1977.
Чем хороши расширения?
Расширения предлагают другую, отличную от существующей, стратегию изменения типовых конфигураций. Использование этой новой стратегии существенно облегчит сопровождение типовых решений, которые хочется адаптировать к потребностям конкретного внедрения, конкретного заказчика.
Как выглядит этот процесс сейчас? Есть типовая конфигурация. Она находится на полной поддержке поставщика. Это значит, что изменять её нельзя. Периодически поставщик выпускает новые (улучшенные) версии этой конфигурации. В такой ситуации обновление старой версии конфигурации на новую версию выполняется полностью автоматически. Это удобно и не требует от заказчика каких-то особенных навыков или знаний.
Но часто заказчик хочет что-то добавить или что-то изменить в типовой конфигурации «под себя». Для этого режим поддержки изменяется, конфигурация снимается с полной поддержки. Партнёр, выполняющий внедрение, или собственные IT специалисты заказчика, вносят в неё необходимые изменения. С этого момента полностью автоматическое обновление типовой конфигурации на новую версию, выпущенную поставщиком, становится невозможным.
Теперь для обновления конфигурации требуется участие специалиста. Причём, если изменения, внесенные по воле заказчика, были значительными, то и от специалиста, выполняющего обновление конфигурации, могут потребоваться значительные затраты времени. И зачастую может потребоваться очень хорошее знание как самой типовой конфигурации, так и внесённых доработок.
Стратегия, предлагаемая расширениями, заключается в следующем. Если вы хотите изменить типовую конфигурацию, вы не трогаете саму конфигурацию. Все изменения вы выполняете в расширении, которое, по сути, тоже является конфигурацией.
В режиме 1С:Предприятие вы просто подключаете своё расширение к типовой конфигурации. Платформа автоматически, в режиме 1С:Предприятие, объединяет ваше расширение с типовой конфигурацией. В результате заказчик работает с изменённым, по его желаниям, типовым решением.
Когда поставщик выпускает новую версию типовой конфигурации, выполняется автоматическое обновление, поскольку режим поддержки типовой конфигурации не менялся. Она осталась на полной поддержке поставщика. А при запуске обновлённого прикладного решения платформа снова автоматически объединит изменённую типовую конфигурацию с вашим расширением. И заказчик продолжит работать с изменённым, по его желаниям, типовым решением.
Когда нужно использовать расширения?
Механизм расширений заманчив своей универсальностью. Поэтому важно иметь правильное представление о том, для решения каких задач он предназначен.
Во-первых, расширения незаменимы тогда, когда прикладное решение работает в режиме разделения данных. Например, в модели сервиса. Один из абонентов хочет иметь пару дополнительных отчётов. В то время как остальные абоненты хотят работать с неизмененной типовой конфигурацией.
Тогда именно для этого абонента вы можете разработать расширение, в котором и реализовать все его пожелания. Абонент подключит себе это расширение и будет работать с изменённой конфигурацией. В то время как для остальных абонентов никаких изменений не произойдет. Потому что все расширения подключаются и запускаются в разрезе текущих значений разделителей.
Есть соблазн использовать расширения для создания тиражных прикладных решений, однако делать этого не стоит. Во-первых, потому, что расширения не проектировались под такие задачи. А во-вторых, потому, что другие механизмы платформы, например механизмы поставки и поддержки, ничего не знают о расширениях.
Если немного заглянуть в историю появления расширений, то, безусловно, мы видели раньше, видим и сейчас, что конфигурации становятся сложнее. Мы видим, что нужна дополнительная поддержка на разных уровнях разработки: библиотечная, модульная и отраслевая и т.д. Мы анализировали все эти задачи и пришли к выводу, что наиболее приоритетной на данный момент является адаптация конфигураций к пожеланиям пользователей во время внедрений.
Именно для этой задачи мы и создали механизм расширений. Конечно, в нём можно заметить разные черты и других перечисленных направлений разработки. Но они не являются его основным назначением и не должны сбивать вас с толка.
Что можно изменять уже сейчас с помощью расширений?
Пока сделано не очень много из того, что планируется сделать. Механизм, конечно, будет развиваться. Но то, что уже сделано, может быть полезно во многих случаях на внедрениях. Сейчас:
В дальнейшем мы планируем постепенно наращивать функциональность расширений и будем рады получить ваше мнение о том, какая функциональность наиболее востребована на внедрениях с небольшими доработками.
Как устроено расширение?
Расширение очень похоже на обычную конфигурацию. Оно также представляется в виде дерева объектов. Для работы с расширением используются те же приёмы работы, что и с обычной конфигурацией.
Важной особенностью расширения является наличие заимствованных объектов. Позаимствовать можно любой объект типовой конфигурации с помощью команды контекстного меню:
Заимствованные объекты нужны не всегда. Лучше всего это объяснить на «бытовом» примере, если провести аналогию с обедом в ресторане.
Ситуация первая, когда заимствованные объекты нужны.
Вы привыкли обедать в одном и том же ресторане. Вы всегда заказываете бифштекс и чай. Например, потому что они очень хороши в этом ресторане. Или по другой причине. Это не важно. Важно лишь то, что кушать вы собираетесь именно их, и ничто другое.
Как расширение подключается к конфигурации и работает? Вы приходите в ресторан и просите меню. В меню вы видите, что есть бифштекс и чай. То есть устанавливаете соответствие между заимствованными объектами и объектами типовой конфигурации. Естественно, соответствие вы устанавливаете по именам :). Вам приносят бифштекс и чай, вы их съедаете. То есть расширение подключается и работает.
Через неделю вы приходите, но меню ресторана изменилось (типовую конфигурацию обновили). Однако в меню по-прежнему есть бифштекс и чай. Именно они вам и нужны. Вам их приносят, вы их съедаете. То есть расширение продолжает работать с обновлённой типовой конфигурацией.
Ещё через неделю вы приходите в ресторан, и видите, что бифштекс и чай исчезли из меню. Вы встаёте и уходите (сообщение об ошибке подключения расширения). Потому что вы хотели именно их. А о других блюдах (объектах) вы понятия не имеете. Разработчик не обучил вас, как правильно кушать улиток или омаров.
Другая ситуация, когда можно обойтись без заимствованных объектов.
Вы идёте в ресторан, но наличие конкретных блюд вас не интересует. Потому что вы всё равно не собираетесь их есть. Вы хотите их только сфотографировать. А фотографировать вы умеете какое угодно блюдо. Тогда вы просто подключаетесь к конфигурации и говорите: несите все закуски, которые есть у вас в меню (получаете коллекцию документов из метаданных). Я их перепроводить буду (фотографировать).
Если описать это сухим языком разработчиков то получится, что заимствовать объекты нужно:
Подключение расширения
Вы создаёте расширение в конфигураторе. После того, как оно отлажено и проверено, вы можете его отторгнуть, сохранив расширение в файл *.cfe.
Этот файл вы можете передать заказчику. Заказчик самостоятельно загрузит его в свою информационную базу в режиме 1С:Предприятие с помощью стандартной функции Управление расширениями конфигурации.
При загрузке расширения из файла оно сохраняется в информационной базе. Причём сохраняется оно в разрезе текущих значений разделителей, используемых в данном сеансе.
Чтобы расширение «заработало», сеанс нужно перезапустить. При старте сеанса, непосредственно перед вызовом события УстановкаПараметровСеанса, будут подключены все расширения, хранящиеся в информационной базе и соответствующие текущим значениям разделителей данного сеанса.
В результате, при работе в режиме разделения данных расширение будет применено только для пользователей этого конкретного абонента. А если разделение данных не используется, то расширение будет работать для всех пользователей информационной базы.
При подключении расширения, как мы уже говорили, контролируется, что в типовой конфигурации существуют заимствованные объекты. Сопоставление объектов происходит по именам.
Кроме этого возможен и более тонкий контроль. Вы можете контролировать не только сам факт наличия объектов, но и состояние их отдельных свойств. То есть, если вспомнить о ресторане и бифштексе, для вас может быть важно не просто наличие как-то приготовленного бифштекса, а именно то, что здесь его готовят непрожаренным, «с кровью».
Возвращаясь к расширению, стандартно оно не контролирует свойства заимствованных объектов. Но если в этом есть необходимость, вы можете некоторые свойства сделать контролируемыми. Например, для вашего алгоритма важно, чтобы не только существовал справочник Номенклатура, но и то, что его код имеет тип Строка.
Тогда если в типовой конфигурации поставщик изменит тип кода этого справочника на Число, ваше расширение определит это в момент подключения и сообщит об ошибке.
Интересный момент связан с переименованием объектов типовой конфигурации. Например, вы пришли в ресторан, а в меню вместо Бифштекс написано Стейк. То есть подключаясь к конфигурации расширение не находит в ней справочник Номенклатура, потому, что поставщик переименовал его в Товары.
Теперь для вас такая ситуация не является проблемой. И вам не нужно «перелопачивать» весь код расширения, чтобы вместо Номенклатура написать Товары. Работает механизм изменения кода модулей при переименовании объектов конфигурации и механизм рефакторинга. Поэтому вам достаточно всего лишь изменить имя заимствованного объекта на Товары, а остальные изменения в расширении платформа сделает сама. Или с вашей минимальной помощью.
Работа расширения
Можно довольно долго рассказывать об особенностях расширения разных объектов, об особенностях работы самих расширений. Но мы ограничены рамками обзорной статьи, поэтому затронем только ключевые и наиболее показательные моменты.
Основная «прелесть» расширений заключается, конечно, не в том, что можно добавить к типовой конфигурации что-то, чего в ней нет. А в том, что в расширении можно изменить то, что в типовой конфигурации уже есть. То есть свойства заимствованных объектов вы можете изменять.
Подробнее это можно увидеть на примере управляемых форм. Вы можете заимствовать форму из основной конфигурации и редактировать её в расширении без ограничений. Для визуальной части формы и для её модуля используются две разные стратегии объединения.
Визуальная часть формы фиксируется в расширении на момент её заимствования. А в режиме 1С:Предприятие для каждого элемента формы анализируются изменения относительно этого состояния в типовой конфигурации, и в расширении.
Для модулей форм используется другой подход. Для заимствованной формы в расширении создаётся собственный модуль с собственными обработчиками всех событий. В режиме 1С:Предприятие оба модуля формы (из типовой конфигурации и из расширения) объединяются в одном контексте. По этой причине каждое расширение имеет свой префикс, который добавляется к обработчикам всех событий в модуле формы. Чтобы не было совпадений с обработчиками из типовой конфигурации. После этого обработчики событий и команд вызываются последовательно и синхронно. Сначала обработчик из расширения. Потом из типовой конфигурации. Эту последовательность вы можете поменять, или совсем запретить выполнение обработчика из типовой конфигурации.
Вообще, что касается совместной работы конфигурации и расширения в режиме 1С:Предприятие, они существуют в общем пространстве имён. Это касается не только отдельных модулей, но и самих деревьев метаданных. Поэтому нет никакой возможности в режиме 1С:Предприятие определить, является ли этот объект «родным» для типовой конфигурации, или он появился из расширения.
Что касается остальных объектов, которые вы можете использовать в расширении, то для них всё выглядит гораздо проще.
В расширении вы можете создавать свои собственные подсистемы. Используя заимствованные объекты, вы можете расширять существующие подсистемы: добавлять в них объекты и подсистемы, которые уже есть в типовой конфигурации, или те, которые вы создали в расширении. Удалить что-то из существующей подсистемы вы не можете.
Расширять роли вы можете только добавляя в них объекты, созданные в расширении. Удалить что-нибудь из существующей роли вы тоже не можете. Это же относится и к командному интерфейсу.
Мы говорили в начале, что расширение похоже на обычную конфигурацию. Поэтому в заключении несколько слов хочется сказать о том, насколько расширения интегрированы с другими механизмами платформы.
У расширения (как и у обычной конфигурации) есть основная конфигурация и конфигурация базы данных. Механизм сравнения и объединения конфигураций работает с расширениями так же, как и с обычными конфигурациями.
Вы можете выгрузить расширение в файл (правда, с другим расширением *.cfe), и загрузить из файла. Расширения можно выгружать / загружать в XML.
Механизмы глобального поиска, замены, редактирования текстов интерфейсов также работают и с расширениями.
Появились новые параметры командной строки для работы с расширениями, а также новые события в журнале регистрации.
Во встроенном языке основной объект для работы с расширениями это МенеджерРасширенийКонфигурации.
Как обойти глюк механизма расширений. Пошаговая инструкция в картинках
Суть дела. В некоторых документах, взаимствованных из основной конфигурации, со статусом «Заимствованный» пропал «Объект расширяемой конфигурации». Потеряна связь расширения с основной конфигурацией, на форме пропали реквизиты расширения.
Проблема решается следующим способом.
1. Ставим флаг «Проверять значение при подключении расширения» рядом с объектом расширяемой конфигурации.
Специальные предложения
(15) Логично.
В типовой не проводится сравнение основной конфигурации, конфигурации поставщика и новой конфигурации.
Если замеры делать на столь мало измененных конфигурациях, то бесспорно вы правы.
Такие конфы можно вообще автоматически обновлять. Главное настроить обновлятор)
(9) Может быть потому, что на этапе разработки вы выбираете решения «проще», потоп при обновлении получается сложнее?
ИМХО, чем меньше я буду тратить времени на очень занудную задачу обновления, тем радостнее будет мне решать сложные задачи.
А для программного изменения форм есть на ИС помогаторы, инструкции, статьи и инструменты
Что за флаг? Где он? Почему на скрине совсем другие стрелочки какие-то?
Обновление 26.04.20 13:00
См. также
Несколько простых приемов для удобной работы в конфигураторе
12.11.2021 4662 acces969 81
Кейсы решения задач на СКД
Разработчик 1С в компании Neti Александр Крынецкий выступил на Infostart Meetup, посвященном практике работы с СКД. Александр поделился с коллегами кейсами по решению сложных задач при работе с СКД.
08.11.2021 2571 echo77 7
Как спроектировать структуру регистра сведений
«Что может быть проще?» — это первое, что приходит в голову. Но что, если это не так? В этой статье мы попробуем затронуть некоторые вопросы, которые могут возникнуть при проектировании больших регистров.
08.11.2021 3925 Neti 60
Готовые механизмы 1С: ЗУП, представления
Здесь будет храниться архив запросов, которые могут помочь разработчику правильно строить отчеты и получать данные в 1С: ЗУП. Статью буду периодически дополнять.
03.11.2021 1568 Margo462 17
01.11.2021 901 pma_2015 9
Типовые операции в 1С: БГУ 2. Часть 4. Заключение
В данной статье автор расскажет, что такое типовые операции в конфигурации бухгалтерии для госсектора, установит стандарты качества написания типовых операций. Часть 4 «Заключение». Завершаем типовую операцию из ТЗ, изучаем простые условия, немного касаемся сложных условий, прикасаемся к булевой алгебре, изучаем функцию ЗНАЧЕНИЕ() и прочие прикладные функции как примеры, задаем стандарты типовой операции.
14.09.2021 467 ldmonster 8
Типовые операции в 1С: БГУ 2. Часть 3
В данной статье автор расскажет, что такое типовые операции в конфигурации бухгалтерии для госсектора, установит стандарты качества написания типовых операций. Часть 3. Разбор четвертой страницы формы типовой операции «Проводки», знакомство с источниками данных, формирующих проводку, первое знакомство с языком СКД.
10.09.2021 494 ldmonster 0
Типовые операции в 1С: БГУ 2. Часть 2
В данной статье автор расскажет, что такое типовые операции в конфигурации бухгалтерии для госсектора, установит стандарты качества написания типовых операций. Часть 2. Разбор второй страницы формы типовой операции «Реквизиты», функциональное назначение кнопок, создание реквизитов и групп, базовые знания о форматировании.
09.09.2021 708 ldmonster 0
Типовые операции в 1С: БГУ 2. Часть 1
В данной статье автор расскажет, что такое типовые операции в конфигурации бухгалтерии для госсектора, установит стандарты качества написания типовых операций Часть 1. Знакомство с типовыми операциями. Разбор первой страницы формы типовой операции, корректное создание (копирование), создание правильного и удобного наименования, написание комментария.
07.09.2021 761 ldmonster 2
Новая упрощенная процедура перерасчета записей регистров расчета (пример)
В данной публикации описано назначение и приведен пример процедуры перерасчета записей регистра перерасчета с сортировкой на уровне набора записей. Предназначена для лиц, готовящихся к экзамену «1С Специалист по платформе» и преподавателей, занимающихся подготовкой Специалистов.
24.03.2021 634 galexmvs 5
Динамический список и поиск. неприятностей
Страх и ненависть в поиске по динамическому списку, или «Кое-что о неоптимальном отборе».
17.03.2021 4529 Yashazz 37
Централизованное управление НСИ при внутрикорпоративном внедрении Фреш
В статье рассказывается о нашем опыте по централизации НСИ на одном из проектов в этом году. Статья может быть полезна тем, кто сам занимался или планирует заниматься чем-то подобным, в особенности руководителям проектов и программистам.
19.11.2020 1663 zivan38 0
Хранилище версий объектов в условиях массовых изменений
Проблема хранения версий объектов при огромном количестве изменений.
08.11.2020 1315 Punisher_1C 4
Альтернативный способ записи в регистры
Предлагаю Вашему вниманию небольшую доработку для любой конфигурации, встроив которую в свою(и) конфигурацию(и) и используя методику, описанную в данной статье, Вы сможете заметно облегчить себе жизнь при работе с регистрами.
20.10.2020 2860 DarkAn 30
Учимся создавать http сервис (часть четвертая). Изучение метода POST http запроса (передача текстовых данных)
Пошаговое руководство по созданию http сервисов (часть четвертая). Изучение метода POST http запроса.
11.10.2020 14426 hpi 25
Несколько групп для одной номенклатуры в УТ 11
В статье опишу вариант доработки УТ 11 для использования нескольких групп для одной номенклатуры.
23.09.2020 1830 malikov_pro 14
Учимся создавать http-сервисы (часть первая)
Пошаговое руководство по созданию http-сервиса.
16.09.2020 15427 hpi 37
Регистры бухгалтерии. Виртуальная таблица остатков
Принцип работы виртуальной таблицы остатков. А также некоторые особенности.
24.08.2020 11842 YPermitin 1
Регистры бухгалтерии. Еще одна таблица оборотов ДТ / КТ
Виртуальная таблица оборотов ДТ / КТ регистра бухгалтерии. Особенности и применение.
12.08.2020 6675 YPermitin 1
Динамический список, ключи записей. Нюансы
Заметки об особенностях динамических списков с произвольным запросом и видом ключа, отличным от «Авто»
07.08.2020 5332 Yashazz 6
Регистры бухгалтерии. Виртуальная таблица оборотов
Виртуальная таблица оборотов регистра бухгалтерии. Принцип работы, особенности и кое-что еще.
28.07.2020 9525 YPermitin 10
Установка расширений в 1С 8.3
Краткая инструкция, как подключить расширение конфигурации в 1С.
27.07.2020 19853 Mouros 11
Настройка через конфигуратор. При открытии карточки номенклатуры открывается вкладка с развернутыми реквизитами
Как сделать так, чтобы при открытии карточки номенклатуры открывалась вкладка с развернутыми реквизитами, а не бесполезная вкладка с карточкой номенклатуры.
03.04.2020 1904 gtrr34 1
Вложенные СКД
Возможности, нюансы, заметки.
26.03.2020 9678 Yashazz 19
Конвертация расширения cfe в конфигурацию сf руками
Как быстро преобразовать расширение в конфигурацию (для дальнейшего переноса в основную конфигурацию, например).
18.03.2020 10914 wtlz 35
Интеграция «Библиотеки интеграции МДЛП 1.1.2.7» с типовой конфигурацией
Инструкция для интеграции “Библиотеки интеграции МДЛП 1.1.2.7” в типовые конфигурации, на примере конфигурации “Управление нашей фирмой, редакция 1.6 (1.6.18.168)”.
02.03.2020 9310 RPGrigorev 3
Регистры бухгалтерии. Настройки, субконто и движения с субконто
Описание основных настроек регистров бухгалтерии, работы виртуальных таблиц «Субконто» и «Движения с субконто» и кое-что еще.
10.02.2020 24558 YPermitin 13
Обновление релиза измененной типовой конфигурации
Пригодится тем, кому еще не приходилось обновлять измененную типовую конфигурацию.
29.11.2019 15427 John_d 76
Реализация продвинутой обработки запросов HTTP сервиса
Стандартный функционал маршрутизации не позволяет использовать regexp при обработке адреса, организация модуля приводит к дублированию кода. Так же при ошибке исполнения нет фиксации в журнале регистрации. В статье опишу свой взгляд на решение обозначенных проблем.
05.10.2019 4014 malikov_pro 4
Конструирование аналитической структуры плана счетов в программе «1С:Бухгалтерия 8» с целью обеспечения достоверности финансовой отчетности
Описаны правила конструирования аналитической структуры плана счетов, позволяющей формировать достоверную финансовую отчётность. Описываются принципы формирования баланса и отчета о прибылях и убытках в МСФО и в РСБУ. Даётся определение развёрнутого сальдо и рассматривается его корректное отражение в ОСВ. Делается анализ минимально необходимого количества уровней субконто по счетам расчётов. Подробно рассматриваются ошибки плана счетов «Хозрасчётный» и ОСВ стандартной поставки 1С, препятствующие выверке баланса и отчета о прибылях и убытках по ОСВ. Предлагаются методы купирования проблем.