Изменить длину наименования в расширении 1с
Добрый день.
Конфигурация Зарплата и управление персоналом 3.1.1.74.
Платформа 8.3.8.2167.
На форме элемента справочника "Сотрудники" есть реквизит, отображающий текущий процент северной надбавки (скриншот 1). В типовой конфигурации у этого реквизита длина = 4, точность = 2 (скриншот 2). Это не удобно, так как если у сотрудника северная надбавка = 100%, на форме будет отображаться 99,99% (скриншот 1).
Я хотел программно в модуле формы в процедуре ПриСозданииНаСервере() поменять длину и точность этого поля и вывести в него значение 100%. На всякий случай еще раз получаю значение текущего процента северной надбавки, убеждаюсь, что он равен 100. Мой код:
Реально ли вывести на форму в этот реквизит 100% изменив ее длину и точность программно?
Не хочется редактировать свойства этого элемента руками, чтобы при обновлении не сравнивать формы.
Программное изменение реквизита формы
Здравствуйте. На форме справочника есть поле ввода, с реквизитом "Сотрудник" - выбираются.
Программное изменение формы
Хотел сделать кнопку, которая будет плавно выдвигать зону с настройками программы, но возникли.
Программное изменение печатной формы (макета)
Доброго времени суток! Подскажите, как программно вставить в макет строку, содержащую.
Программное изменение ширины и положения кнопок относительно формы
При изменении размеров формы меняется ширина контрола Групбокс, внутри которого должны меняться.
В принципе проблему решил, программно скрыв реквизит формы и программно вывел на его место свой реквизит, с нужным мне типом. Но всё же интересно, реально ли программно изменять длину и точность типовых реквизитов?
Авто изменение размера полей, подчиненной формы в зависимости от длины текста
Здравствуйте. Можно ли сделать так, чтобы автоматически устанавливались размеры полей,полей со.
Программное изменение формы "поле со списком" в шаблоне на котором основан документ Word
Описание проблемы: Есть шаблон Word, назовем его Карта, на его основе создаются док-ты с полями.
Проверка длины реквизита
Только начал изучение 1С. Пытаюсь написать для реквизита процедуру проверки количества символов.
Поиск реквизита и его длины
Добрый день! 1с Отель. В конфигураторе все на английском. Необходимо изменить длину.
Простенькая, казалось бы, задача: нужно у строкового реквизита увеличить длину с 13 до 30 знаков. Заимствую реквизит в расширение, в расширении в свойствах реквизита нажимаю кнопку выбора типа, увеличиваю длину до нужной, сбрасываю флажок «Проверять значение при подключении расширения». Запускаю систему в режиме «1С:Предприятие», открываю форму документа, содержащего реквизит. В соответствующем поле удаётся ввести только всё те же 13 знаков. Заимствую в расширение форму документа, - тот же результат. Платформа 8.3.12.1685. Как решить проблему, не меняя настройку поддержки конфигурации?
(1) Без сброса флага невозможно изменить длину: кнопка выбора типа затенена. А в чём заключался упомянутый ответ, если не секрет?
(2) В свойствах элемента формы, вроде бы, ничего подозрительного не нашёл. Возможно, не там смотрю, где глянуть конкретно?
Вот вы не читаете документацию совсем.
Флаг "Проверять значение при подключении расширения" необходим для того, чтобы программа проверяла был ли изменен этот реквизит в основной конфигурации по отношению к заимствованному в расширении и никак не наоборот.
Из расширения берутся объекты метаданных только созданные в расширении, заимствованные объекты такие как реквизиты объектов не берутся из расширения.
(6) Ну так я для того и сбрасываю флаг, чтобы проверка не производилась. Если флаг установлен, то программа просто не запустится, выдав ошибку о несоответствии типов.
(8) Тут дело в том, что на просторах интернета пишут, что вот, дескать, я влёгкую изменил длину строкового реквизита, использовав расширение. Вот только, к сожалению, авторы подобных заявлений предпочитают не вдаваться в подробности своего подвига.
Хорошо, давай представим, что существует 3 расширения, эти три расширения меняют 3 раза один реквизит объекта. Представь что тогда будет.
Например, где-либо устанавливается приоритетность расширений: используется самое главное, остальные игнорируются. Правда, ни о чём-либо подобном ни слышать, ни читать не доводилось, но всегда делаю допущение, что чего-либо не знаю.
Просто, как уже упоминалось в (11), некоторые утверждают, что такое возможно, вот, собственно, и возник вопрос.
Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.
Планируется в версии 8.3.22 Пробовать
В версии 8.3.22 у расширений конфигурации появятся новые возможности.
Возможность изменения параметров номеров и кодов объектов
Изменение длины, типа и других настроек кода/номера объектов с помощью расширений конфигурации было невозможно. Если менять это в самой конфигурации – то надо включить в ней возможность изменений, что усложнит обновление конфигурации на новую версию.
В версии 8.3.22 появится возможность изменения этих параметров в расширениях у ряда объектов метаданных. Это позволит с помощью расширений реализовать новые сценарии. Например, увеличить длину номера документа, если в текущих условиях проводится так много документов, что их номера могут не поместиться в текущую длину номера. Или поменять тип нумератора с числа на строку, если бизнес-процессы требуют добавления к номеру документа строкового префикса.
Настройки нумерации
Для объектов типа «Документ», «Бизнес-процесс», «Задача» и «Нумератор» в расширениях можно будет изменять свойства нумерации.
Можно будет увеличивать значение свойства «Длина номера». При изменении свойства несколькими расширениями конфигурации длиной номера будет наибольшее значение.
Также можно будет задавать значение свойства «Тип номера». Если тип номера в конфигурации и расширении отличаются – результирующим типом будет «Строка», т.к. это обеспечит хранение и строковых значений, и чисел (преобразованных в строку).
Будет разрешено задавать значение свойства «Допустимая длина номера», «Периодичность» и «Контроль уникальности». При изменении свойств несколькими расширениями значение свойства будет браться из последнего расширения в списке.
Нумераторы
В расширениях можно будет создавать свои нумераторы. Будет разрешена установка и собственным, и заимствованным документам как собственных, так и заимствованных нумераторов из конфигурации.
Для объектов типа «Планы обмена», «Справочники», «Планы видов характеристик», «Планы счетов», «Планы видов расчета» в расширениях можно будет увеличивать значение свойства «Длина кода».
Для объектов типа «Справочники» и «Планы видов расчета» в расширениях можно будет изменять значение свойства «Тип кода».
Если тип кода в конфигурации и расширении отличаются – результирующим типом будет «Строка», т.к. это обеспечит хранение и строковых значений, и чисел (преобразованных в строку).
Длина наименования
Для объектов типа «Планы обмена», «Справочники», «Планы видов характеристик», «Планы счетов», «Планы видов расчета», «Задачи» в расширениях можно будет увеличивать значение свойства «Длина наименования».
При изменении свойства несколькими расширениями конфигурации длиной наименования будет наибольшее значение.
Доступ к параметрам расширений конфигурации без установки в информационную базу
Разработчикам конфигураций иногда бывает нужно получить доступ к параметрам расширений конфигурации без их установки в информационную базу. В случае если расширение меняет структуру данных, установка расширения требует перевода базы в монопольный режим и реструктуризации данных (что сопряжено с неудобствами для пользователей). А разработчику может понадобиться узнать, меняет ли расширение структуру данных. Или получить хэш-сумму, которая используется в настройке профилей безопасности, до установки расширения.
В версии 8.3.22 в метод МенеджерРасширенийКонфигурации.Создать() будет добавлен необязательный параметр «Данные» типа ДвоичныеДанные. В этот параметр передается содержимое файла расширения. Для расширения, не установленного в конфигурацию, будут доступны свойства Версия, Имя, Назначение, ОсновныеРоли, Синоним и ХешСумма. Метод ИзменяетСтруктуруДанных() вернет «Истина», если после установки расширение будет влиять на структуру данных конфигурации.
Сейчас для проверки расширения на изменения им структуры данных нужно установить расширение. Эта проверка может выполняться следующим кодом:
Раcш1 = РасширенияКонфигурации.Создать(); Раcш1.Записать(Новый ДвоичныеДанные("Раcш1.cfe")); ИзменяетСтруктуруДанных = Раcш1.ИзменяетСтруктуруДанных(); Раcш1.Удалить(); |
Новый вариант проверки будет выглядеть так:
Раcш1 = РасширенияКонфигурации.Создать(Новый ДвоичныеДанные("Раcш1.cfe")); ИзменяетСтруктуруДанных = Раcш1.ИзменяетСтруктуруДанных(); |
Проверка не потребует перевода конфигурации в монопольный режим и реструктуризации данных.
Данная статья является анонсом новой функциональности.
Не рекомендуется использовать содержание данной статьи для освоения новой функциональности.
Полное описание новой функциональности будет приведено в документации к соответствующей версии.
Полный список изменений в новой версии приводится в файле v8Update.htm.
Реализовано в версии 8.3.15.1489.
Мы выполнили ряд доработок, которые упрощают поддержку и подключение расширений в простых и частых сценариях использования.
Упрощение поддержки небольших изменений в методах
При создании расширений бывают случаи, когда вам нужно полностью заменить какой-то метод основной конфигурации собственным методом. Для этого вы можете использовать аннотацию &Вместо. В таком случае, как бы ни изменялась типовая конфигурация, будет работать только ваш метод. Другими словами вы полностью берёте ответственность за работу расширяемого метода на себя.
Но часто возникают ситуации, когда вы не хотите полностью менять поведение метода конфигурации, а хотите лишь немного подкорректировать его. Так, чтобы основное «содержание» метода менялось бы вместе с изменениями конфигурации, и в то же время в нём сохранялись ваши небольшие изменения.
Специально для таких небольших доработок мы сделали компромиссное решение – новую аннотацию &ИзменениеИКонтроль. Она позволяет вам добавить собственные изменения в метод, сохраняя, при этом, его исходный текст.
В результате, если в Конфигураторе при проверке применимости обнаружится, что исходный текст метода (в расширении) не совпадает с новым текстом метода в конфигурации, будут выполнены следующие действия:
- такой метод не применится и попадёт в список ошибок применения расширения,
- Конфигуратор поймёт, что эта ошибка относится к особенностям работы аннотации &ИзменениеИКонтроль,
- в колонке Действие Конфигуратор предложит вам Восстановить соответствие с методом конфигурации,
- с помощью объединения по трём точкам платформа изменит в расширении исходный текст так, чтобы он соответствовал новому тексту модуля (для этого вы должны заранее настроить в Конфигураторе использование внешней программы для сравнения модулей).
В такой ситуации вы можете заимствовать этот метод в расширение, и использовать при этом аннотацию &ИзменениеИКонтроль.
Таким образом, заимствованный модуль будет содержать сразу два «варианта» текста:
Как и в случае использования аннотации &Вместо, метод с аннотацией &ИзменениеИКонтроль полностью заменяет собой расширяемый метод конфигурации. С одним расширяемым методом конфигурации может быть связан только один метод, имеющий аннотацию &ИзменениеИКонтроль. Если есть другие методы с этой аннотацией, расширяющие исходный метод, они будут признаны ошибочными и будут показаны в списке ошибок применения расширения.
Несмотря на всё удобство аннотации &ИзменениеИКонтроль, мы всё равно рекомендуем подходить к её использованию очень взвешенно. Основным сценарием для расширения типовых конфигураций являются аннотации &Перед и &После. Аннотацию &ИзменениеИКонтроль вы можете использовать тогда, когда &Перед и &После не позволяют достичь желаемого результата.
Облегчение поддержки расширений в случае переименования объектов конфигурации
Если в расширении есть заимствованные из конфигурации объекты, то каждый раз, при проверке применимости, платформа контролирует, что в конфигурации всё ещё есть объекты, соответствующие заимствованным. При этом сопоставление объектов происходит по именам.
Если в конфигурации, после создания расширения, переименовали какой-либо из расширяемых объектов, расширение применено не будет. Чтобы оно снова начало применяться, необходимо соответствующий заимствованный объект аналогичным образом переименовать в расширении.
Это понятное ограничение, но технически следовать ему не очень удобно. Такое переименование в расширении приходится выполнять вручную. К тому же не всегда бывает ясно, какое исходное имя было у переименованного объекта.
Чтобы облегчить вам эту работу, мы сделали следующие доработки:
- Для свойств заимствованных объектов мы добавили новый тип действия – Предупреждать о расхождении при подключении расширения. Он отображается как обычный флажок. Кроме этого для заимствованных объектов мы добавили новое контролируемое свойство Объект расширяемой конфигурации. Оно недоступно для редактирования, заполняется автоматически при заимствовании и содержит внутренний идентификатор расширяемого объекта.
- Для самого расширения мы добавили новое свойство Поддерживать соответствие объектам расширяемой конфигурации по внутренним идентификаторам. По умолчанию оно имеет значение Истина.
В результате, если вы не меняли стандартное значение нового свойства расширения, то в Конфигураторе, при переименовании объекта расширяемой конфигурации, во всех открытых расширениях будут соответствующим образом переименованы заимствованные объекты расширения.
Если же конфигурация и расширение разрабатываются отдельно, то в Конфигураторе, при добавлении расширения, в списке ошибок проверки применимости у вас появятся новые действия, основанные на том, что в расширении теперь сохраняются идентификаторы расширяемых объектов:
- Переименовать, сохранив соответствие,
- Выбрать соответствие,
- Сохранить имя, изменив соответствие,
- Установить значение из объекта конфигурации,
- Очистить соответствие,
- Отключить проверку,
- Удалить объект.
Облегчение подключения «универсальных» расширений
«Универсальными» мы, условно, называем такие расширения, которые приносят в конфигурацию свою функциональность, и, как правило, не содержат заимствованных объектов. Например, это может быть расширение, добавляющее в конфигурацию какие-то обработки или отчёты.
Пользователи конфигурации, у которых есть роли, автоматически дающие права на новые объекты, смогут воспользоваться этими обработками и отчётами. Но дать права на них другим пользователям бывает сложно.
Хорошо, если разработчик расширения предусмотрел собственную роль (роли), включающую объекты расширения. Тогда администратор может назначить эту роль нужным пользователям. Однако заранее неизвестно, как такая роль может называться, да и само создание такой роли для разработчика расширения является чисто «механической» задачей.
Если же в расширении нет собственных ролей, то воспользоваться им смогут только те пользователи конфигурации, у которых есть роли, автоматически дающие права на новые объекты. Другим пользователям администратор не сможет предоставить доступ, не модифицировав расширение.
Чтобы упросить создание и подключение «универсальных» расширений, мы внесли в механизм некоторые доработки, которые позволяют работать по следующему сценарию:
- На предприятии некоторым ответственным пользователям дается дополнительное право администрирования расширений конфигурации. Благодаря этому они могут самостоятельно (без участия администратора) подключать новые расширения.
- Эти пользователи, например, скачивают из Интернета расширение, подключающее новую печатную форму.
- С помощью стандартной функции Управление расширениями конфигурации они добавляют это расширение в информационную базу.
Доработки, которые мы сделали в механизме, заключаются в следующем.
Во-первых, теперь при создании расширения в нем автоматически создаётся роль, имя которой формируется по шаблону _ОсновнаяРоль. Эта роль устанавливает права для новых собственных объектов.
Эта роль сразу же добавляется в свойство Основные роли расширения (возможность модифицировать основные роли мы добавили в версии 8.3.14).
Таким образом, мы избавляем вас от необходимости «механически» создавать роли, дающие полный доступ к объектам расширения. Кроме этого такая, автоматически созданная роль, имеет понятное для всех имя, формируемое по фиксированному шаблону.
Во-вторых, расширению конфигурации мы добавили новое свойство ИспользоватьОсновныеРолиДляВсехПользователей, которое стандартно установлено в значение Истина. Это значит, что по умолчанию при добавлении такого расширения все пользователи конфигурации будут обладать правами из основных ролей добавляемого расширения.
В третьих, в стандартную функцию Управление расширениями конфигурации мы добавили возможность управления основными ролями.
С её помощью пользователь, которому «доверено» администрирование расширений, может отобрать роли расширения у тех пользователей, которым оно не нужно. При этом автоматически будет сброшено свойство расширения ИспользоватьОсновныеРолиДляВсехПользователей.
При необходимости и «ответственный» пользователь, и разработчик могут отдельно изменять значение этого свойства расширения. Пользователю оно доступно в списке расширений в стандартной функции Управление расширениями конфигурации, а разработчику оно доступно в списке расширений в Конфигураторе.
Таким образом, если вы не хотите использовать новое стандартное поведение (чтобы при добавлении вашего расширения все пользователи сразу же получали доступ к его функциям), устанавливайте свойство расширения ИспользоватьОсновныеРолиДляВсехПользователей в значение Ложь. Тогда роли расширения, как и раньше, администратор должен будет добавить пользователям в явном виде.
Также мы изменили отображение ролей расширения в Конфигураторе. Теперь они отображаются под своими именами, и у вас есть возможность управлять ими.
По поводу использования основных ролей расширения хочется дать некоторые рекомендации.
Во-первых, среди основных ролей расширения могут быть только собственные роли, и эти роли не могут давать права на заимствованные объекты.
Во-вторых, если ваше расширение небольшое и не предполагает разного ролевого доступа к разным его частям, то вы просто создаёте расширение, и не задумываетесь о ролях. Основная роль, создаваемая автоматически, даст доступ ко всей функциональности вашего расширения.
И, наконец, если в расширении нужен разный ролевой доступ к разным его частям, то в основную роль расширения добавляйте ту роль, которая понадобится большинству пользователей. А роль, которая даёт права на остальную функциональность, администратор добавит пользователям самостоятельно. Например, ваше расширение позволяет формировать и отправлять отчёты. Формировать могут все, а отправлять – только некоторые пользователи. Тогда роль, позволяющую формировать отчеты, вам нужно включить в основные роли расширения.
Мы надеемся, что новые возможности упростят вам создание и использование расширений конфигурации.
В платформе 8.3.18 произошли значительные изменения, связанные с механизмом расширений. Например, теперь при помощи расширений можно изменять типы реквизитов из основной конфигурации!
Этот функционал давно ожидался всеми разработчиками, использующими расширения при внедрениях.
Этот функционал давно ожидался всеми разработчиками, использующими расширения при внедрениях, так как он сильно увеличивает их возможности при доработках.
Раньше можно было только менять логику дорабатываемой конфигурации, корректировать программный код в модулях, добавлять новые объекты (справочники, документы) в расширении. А вот изменять существующие реквизиты – нельзя. Теперь такая возможность появилась.
Какие преимущества это дает?
- К примеру, когда не хватает типовой длины строкового поля, ее можно можно увеличить с помощью расширения – то есть, не снимая конфигурацию с поддержки.
- Можно увеличить длину числового реквизита в документе, когда разработчики типовой задали недостаточную длину для хранения данных конкретного предприятия.
- Также можно в реквизит составного типа добавить еще один тип данных при помощи расширения. Например, разработчик типовой предполагает, что в реквизите можно указывать только документы «Заказ клиента» и «Реализация». А на проекте для реализации требований заказчика нужно добавить в этот реквизит еще «Заказ поставщику». Это можно теперь сделать при помощи расширения, что очень удобно.
Работа с расширением типов реквизитов детально рассмотрена в этой серии видеоуроков — с практическими примерами и описаниями ограничений.
Кроме того, разобраны и другие полезные возможности расширений:
- Объединение расширений с cfe-файлом из командной строки
- Работа платформы при отключенных расширениях — когда при старте сеанса были подключены не все расширения, изменяющие структуру хранения данных
- Новая логика проверки применимости расширения, использующего аннотацию ИзменениеИКонтроль
- И другие полезные «фишки»…
Общая длительность видео – полтора часа. Приятного просмотра! :)
Видео 1 – Вступление
Ключевые моменты видео:
00:00 – Узнаем, какие темы разбираются в занятии.
Видео 2 – Объединение расширений
Ключевые моменты видео:
00:00 – При помощи какой команды пакетного режима запуска конфигуратора можно выполнять сравнение расширения с файлом на диске?
00:45 – Где на сайте ИТС найти описание параметров командной строки
04:05 – Как вручную в конфигураторе выполнить объединение расширения с файлом на диске
05:10 – Какие параметры нужно указывать в командной строке
06:40 – Почему при объединении расширения из командной строки возникает ошибка “Каталог не обнаружен”
07:50 – Как работает сохранение настроек объединения в файл
12:50 – В каких случаях на практике можно применять объединение расширения с файлом на диске
Видео 3 – Расширение типов реквизитов
Ключевые моменты видео:
00:00 – Как убедиться, что в платформе 8.3.17 и ранее нельзя изменить тип реквизита при помощи расширения
01:20 – Как установить признак контролируемого или проверяемого свойства в расширении
Видео 4 – Расширение строковых реквизитов
Ключевые моменты видео:
00:00 – Как в платформе 8.3.18 увеличить длину строкового реквизита при помощи расширения
01:20 – Какие изменения произошли в панели свойств объекта расширения
03:20 – Можно ли уменьшить длину строкового реквизита при помощи расширения
04:20 – Происходит ли потеря данных при уменьшении длины строкового реквизита с помощью расширения
Видео 5 – Расширение числовых реквизитов
Ключевые моменты видео:
00:00 – Как в платформе 8.3.18 изменить длину и точность числового реквизита при помощи расширения
01:50 – Можно ли уменьшить длину и точность числового реквизита при помощи расширения
Видео 6 – Изменение длины кода
Ключевые моменты видео:
00:00 – Можно ли изменить длину кода и наименования справочника при помощи расширения
01:20 – Как в расширении установить признак контролируемого или проверяемого свойства для длины кода и наименования справочника
02:20 – Можно ли изменить длину номера документа при помощи расширения
Видео 7 – Формирование результирующего типа
Ключевые моменты видео:
00:00 – Почему нельзя уменьшить длину строкового реквизита при помощи расширения
00:50 – Каким образом при расширении типа реквизитов получается составной тип данных
03:20 – Как при помощи расширения добавить дополнительные типы в тип данных реквизита из основной конфигурации
04:20 – Как платформа обеспечивает сохранность данных при расширении типов реквизитов
Видео 8 – Примеры расширения типа
Ключевые моменты видео:
00:00 – Какой тип данных в результате будет иметь реквизит, если его тип изменяет одновременно несколько расширений
02:15 – Как ведет себя платформа при отключении расширения, изменяющего тип данных реквизита основной конфигурации
04:30 – Как при помощи консоли запросов проверить результирующую длину строки реквизита
06:00 – Как воспроизвести пример потери данных при изменении типа данных в расширении
Видео 9 – Свойство Тип
Ключевые моменты видео:
00:00 – Как сделать в расширении свойство Тип одновременно и контролируемым, и модифицируемым
01:30 – Что означает признак контролируемости свойства при расширении типа данных реквизита
02:50 – Каким образом формируется всплывающая подсказка для свойства Тип
Видео 10 – Ограничения составного типа
Ключевые моменты видео:
00:00 – Какие типы данных нельзя включать в составной тип
02:00 – Почему при помощи расширения нельзя изменить тип строкового реквизита на ХранилищеЗначения
Видео 11 – Ограничения расширений
Ключевые моменты видео:
00:00 – Можно ли расширить тип данных для общего реквизита
00:50 – Можно ли при помощи расширения изменить тип реквизита, ссылающегося на внешний источник данных
02:50 – Можно ли расширить тип данных определяемого типа
04:30 – Какие ограничения существуют при работе с планом видов характеристик
Видео 12 – Типовые конфигурации
Ключевые моменты видео:
00:00 – Можно ли в типовой конфигурации УТ 11 воспользоваться расширением типов данных
01:20 – Какой режим совместимости необходим для расширения типов данных
02:20 – Как использование определяемых типов усложняет использование расширения типов
Видео 13 – Отключенные расширения
Ключевые моменты видео:
00:00 – Как ведет себя система, когда при старте сеанса подключены не все расширения, изменяющие структуру хранения данных
01:00 – Как работают предыдущие версии платформы в таком случае
03:40 – Какие изменения произошли в платформе 8.3.18
04:10 – Какие особенности существуют при работе со справочниками, документами, планами обмена
10:40 – Какие особенности существуют при работе с табличными частями
15:50 – Какие особенности существуют при работе с регистрами
Видео 14 – Изменение и контроль
Ключевые моменты видео:
Читайте также: