за что отвечает галка использовать всегда в реквизитах формы
Как программно поставить галочку «использовать всегда»?
Конфигурация ЗУП 3.1 (3.1.14.55), хотя это не важно
Основная форма документа
ДобавляемыеРеквизиты = Новый Массив;
НовыйРеквизитВремяИтогСтарое = Новый РеквизитФормы(«ВремяИтогСтарое», Новый ОписаниеТипов(«Строка»), «Объект.ДанныеОВремени», «ВремяИтогСтарое»);
Реквизит добавляется, видно даже по отладке
Затем добавляю его на форму в элементы
НовыйЭлементВремяИтогСтарое = Элементы.Добавить(«ВремяИтогСтарое», Тип(«ПолеФормы»), Элементы.ДанныеОВремени);
НовыйЭлементВремяИтогСтарое.Вид = ВидПоляФормы.ПолеВвода;
НовыйЭлементВремяИтогСтарое.ПутьКДанным = «Объект.ДанныеОВремени.ВремяИтогСтарое»;
НовыйЭлементВремяИтогСтарое.ТолькоПросмотр = Истина;
«Ошибка при установке значения атрибута контекста (ПутьКДанным)» по причине: Недопустимое значение
Нашел в интеренте причину: напротив таблицы «ДанныеОВремени» снята галочка «Использовать всегда». Если галочку нажать, ошибки не будет. Предполагаю, что вновь программно созданный реквизит-колонка «ВремяИтогСтарое» при добавлении заимствует значение этого флажка у своего родителя, т.е. флажок сброшен. Без этой галочки к колонке обратиться нельзя, следовательно нельзя и добавить на форму.
Нужно программно установить эту галочку для этой колонки
Во всех примерах он используется для динамического списка, а у меня табличная часть.
Пробывал писать так:
Везде пишет «Метод объекта не обнаружен»
Подскажите как программно поставить эту галочку для моей колонки.
Свойство «Использовать всегда» объектов конфигурации
При работе с управляемой формой существует возможность не передавать все данные с сервера на клиента.
При создании формы на сервере платформа анализирует состав элементов и определяет, с какими данными они связаны. Соответственно, остальные данные можно не передавать на клиента. Но может потребоваться доступ к этим данным из модуля на клиенте. Для этого введено свойство Использовать всегда. Если у реквизита данное свойство установлено, он будет передан на клиента независимо от того, связан ли с ним какой-либо элемент формы.
По умолчанию свойство Использовать всегда установлено для всех реквизитов формы, за исключением случаев:
Также данное свойство по умолчанию отключено для многих колонок динамических списков, особенно тех, которые автоматически формируются платформой. Таким образом, часть колонок динамического списка выводится на форму, остальные используются в запросе, при этом на форму не выводятся. Если эти колонки требуются для работы каких-то программных алгоритмов формы, то для них следует установить свойство Использовать всегда.
Другие материалы по теме:
Нас находят: 1с использовать всегда, использовать всегда управляемые формы 1с, галочка использовать всегда в реквизитах формы, 1с 8 3 реквизит использовать всегда, 1С при переходе на динамический использовать всегда что значит, Управляемая форма использовать всегда, 1с 8 3 использовать всегда, 1с83 управляемые формы учебный материал, 1с движения и галочка использовать всегда, как устанавливать свойство того или иного вещества
Реквизиты управляемой формы (1Cv8)
Содержание
Реквизиты формы
Набор реквизитов формы описывает состав данных, которые отображаются, редактируются или хранятся в форме. При этом реквизиты формы сами по себе не обеспечивают возможности отображения и редактирования данных. Для отображения и редактирования служат элементы формы (смотрите раздел «Элементы формы» данной главы), связанные с реквизитами формы. Совокупность всех реквизитов формы будем называть данными формы.
Важно! Необходимо помнить, что, в отличие от обычных форм, все данные управляемой формы должны быть описаны в виде реквизитов. Не допускается использование переменных модуля формы в качестве источников данных для элементов формы.
Имеется возможность назначить Основной реквизит формы, т. е. реквизит, который будет определять стандартную функциональность формы (расширение формы). Следует помнить, что основной реквизит у формы может быть только один.
Расширение формы – это дополнительные свойства, методы и параметры формы объекта УправляемаяФорма, характерные для объекта, являющегося основным элементом формы.
В процессе разработки формы можно явно задать возможность просмотра и редактирования конкретных реквизитов формы, в разрезе ролей, с помощью свойств Просмотр и Редактирование (подробнее смотрите раздел «Ролевая настройка формы» главы «Редакторы»). Кроме того, доступность того или иного реквизита в самой форме можно настраивать с помощью функциональных опций (подробнее о функциональных опциях можно посмотреть в главе «Управление интерфейсом конфигурации»).
Свойство реквизита формы Сохраняемые данные является признаком того, что интерактивное изменение реквизита будет приводить к попытке блокировки данных формы для редактирования, а также к автоматической установке признака модифицированности формы.
Типы данных, доступные в управляемой форме
Управляемая форма отличается от обычной формы также и типами данных, с которыми она работает. Если обычная форма работает с большинством типов, которые предоставляет 1С:Предприятие (в том числе и вида СправочникОбъект, ДокументОбъект и т. д.), то в управляемой форме можно выделить следующие категории типов:
Преобразование прикладных объектов в данные формы
Некоторые прикладные типы (такие как СправочникОбъект и т. д.) не существуют на стороне тонкого и Веб-клиентов (подробнее см. главу «Концепция управляемого приложения»). Поэтому для представления в форме таких прикладных типов в платформе введены специальные типы данных, предназначенные для работы в управляемых формах. Эта особенность управляемого приложения обуславливает необходимость выполнять преобразование прикладных объектов в данные формы (и обратно).
Используются следующие типы данных:
Прикладной объект представлен либо одним, либо несколькими элементами данных формы. В общем виде иерархия и состав данных формы зависят от сложности и взаимосвязи прикладных объектов управляемой формы.
Например, документ, содержащий табличную часть, будет представлен объектом типа ДанныеФормыСтруктура (собственно документ), которому подчинен объект типа ДанныеФормыКоллекция (табличная часть документа).
Важно! Во время разработки конфигурации важно помнить, что прикладные объекты доступны только на сервере, в то время как объектами данных форм можно пользоваться и на сервере, и на клиенте.
Передача данных между клиентской и серверной частями управляемой формы
Фактически можно сказать, что данные формы – это унифицированное представление данных различных прикладных объектов, с которыми форма работает единообразно и которые присутствуют и на сервере, и на клиенте. То есть форма содержит некоторую «проекцию» данных прикладных объектов в виде своих собственных типов данных и выполняет преобразование между ними при необходимости. Однако в случае если разработчик конфигурации реализует свой алгоритм обработки данных, то преобразование данных (из специализированных типов в прикладные и обратно) он должен выполнять самостоятельно.
При редактировании реквизитов формы в специализированном редакторе (подробнее см. раздел «Реквизиты формы» главы «Редакторы») имеется возможность влиять на передачу данных между клиентом и сервером во время работы формы. Для этого служит колонка редактора реквизитов Использовать всегда. Действие этого свойства различается для трех типов реквизитов:
Примечание. Следует помнить, что свойство, установленное у родительского реквизита, действует на все подчиненные реквизиты. Например, если свойство Использовать всегда снято у табличной части документа, то система считает, что это свойство снято и у всех подчиненных реквизитов (несмотря на фактическое состояние свойства).
Методы для преобразования данных прикладных объектов в данные формы
Для конвертирования прикладных объектов в данные формы и обратно существует набор глобальных методов:
Важно! Методы, работающие с прикладными объектами, доступны только в серверных процедурах. Метод для копирования значений между данными формы доступен на сервере и на клиенте, так как не требует прикладных объектов в качестве параметров.
Во время конвертирования данных формы в прикладной объект нужно учитывать их совместимость.
Примечание. При выполнении стандартных действий (открытие формы, выполнение стандартной команды Записать и т. д.) формы с основным реквизитом, преобразование выполняется автоматически.
Приведем пример, как использовать преобразование данных в собственных алгоритмах.
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
&НаКлиенте Процедура Записать()
&НаСервере Процедура ЗаписатьНаСервере()
Также у объекта УправляемаяФорма существуют методы, доступные на сервере:
Использование данных методов обычно удобнее, так как они, имеют, например, информацию о типе реквизита формы. Кроме того, метод РеквизитФормыВЗначение() выполняет установку соответствия данных формы и объекта, которая используется при формировании сообщений. Подробнее об этом можно прочитать в главе «Сервисные возможности навигации».
Приведем пример использования этих методов.
&НаСервере Процедура ПересчитатьНаСервере()
Программный интерфейс
ДанныеФормыДерево (FormDataTree)
Предназначен для моделирования дерева в данных управляемой формы.
ПолучитьЭлементы (GetItems)
Получает коллекцию элементов дерева верхнего уровня.
Доступность: клиент, сервер, тонкий клиент, веб-клиент.
НайтиПоИдентификатору (FindById)
Тип: Число. Идентификатор элемента дерева.
Получает элемент коллекции по идентификатору.
Доступность: клиент, сервер, тонкий клиент, веб-клиент.
ДанныеФормыЭлементДерева (FormDataTreeItem)
Элемент дерева данных формы.
ДанныеФормыКоллекцияЭлементовДерева (FormDataTreeItemCollection)
Элементы коллекции: ДанныеФормыЭлементДерева
Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются элементы коллекции. Возможно обращение к элементу коллекции посредством оператора [. ]. В качестве аргумента передается индекс элемента.
Коллекция элементов дерева.
Доступность: клиент, сервер, тонкий клиент, веб-клиент.
Особенности работы с деревом значений
Обновление дерева
Существует проблема падения платформы при обновлении дерева.
Если в дереве был развернут какой-либо узел и выбран подчиненный узел, то при обновлении дерева функцией ЗначениеВДанныеФормы происходит падение платформы.
Решение: перед обновлением нужно очищать дерево.
Программное управление обычными формами документов и справочников в УПП/КА
Часть 1
Чтобы не снимать с поддержки все формы конфигурации и не вставлять свои обработчики в процедуры «ПриОткрытии», будем искать такую процедуру, которая вызывается во всех формах документах и справочников.
И так, с нимаем с поддержки общий модуль «РаботаСДиалогами».
Находим функцию «АктивизироватьРеквизитВФорме» и сразу после объявления функции добавляем строку вызова нашей процедуры:
Все. Отделались снятием с поддержки двух модуле с добавлением в них двух строк. Обновлять будет легко.
Часть 2
Теперь самое главное.
Добавляем в конфигурацию общий модуль «ИТ_РаботаСДиалогами». В свойствах ставим галочки на использование в клиенте.
В модуль помещаем вызываемые функции.
Обратите внимание, что работа с формами справочника имеет особенности. Поскольку процедура «МеханизмНумерацииОбъектов.УстановитьДоступностьПоляВводаНомера» вызывается как из формы списка справочника, так и из формы самого элемента справочника. Различить можно только по составу передаваемых метаданных или просто по имени формы.
Часть 3
Поскольку мы не хотим каждый раз писать кучу кода при размещении реквизитов на форму, мы напишем заранее разного рода функции и процедуры, которые и будем в дальнейшем использовать.
— Функция добавления поля ввода на форму (одна из ранних наших функций).
— Функция добавления флажка на форму.
Эта функция позволяет разместить на форму флажок (булево).
Правила использования такие же как у предыдущей функции. Фактически это копия предыдущей функции, только для флажка.
Код этой функции почти идентичны предыдущим, по этому убран под спойлер.
— Функция добавления надписи на форму.
Эта функция позволяет разместить на форму надпись.
Правила использования такие же как у предыдущей функции. Фактически это вырезка вывода надписи из первой функции..
Код убран под спойлер
— Универсальное добавление поля на форму. (это другой подход добавления элементов на форму, гораздо более универсальный).
Используем эту процедуру гораздо чаще тех, что указал выше.
— Процедура удаления колонки в табличной части формы.
Иногда возникает необходимость удалять колонки с формы документа. Тут все просто.
— Процедура удаления элемента формы.
Часть 4
Думаю надо показать несколько примеров, как мы добавляем новые реквизиты на форму.
Примеры добавления колонки на форме:
Еще пример с добавлением полей в отдельной закладке:
Еще пример работы с формой справочника.
Часть 5
Доработки по совместимости и универсальности.
Желательно весь код модуля «ИТ_РаботаСДиалогами» обрамить в клиента
В процедурах, прежде чем добавлять реквизиты на форму, убедитесь, что такой реквизит существует.
Например так:
Поскольку вызов функции может происходить многократно в одной форме, всегда проверяйте, выведен ли уже реквизит на форму.
Например так:
Такие проверки позволят вам копировать общий модуль «ИТ_РаботаСДиалогами» во все ваши конфигурации УПП/КА и не бояться вызова исключений.
Программирование в 1С для всех
В платформе 1С 8.3 имеется возможность использовать общие реквизиты. Это реквизит определенного типа, который может применяться в различных объектах. Причем в объекте, в котором применяется общий реквизит, этот реквизит может использоваться полноценно как реквизит этого объекта: на форме, в запросах и в любых других ситуациях.
В этой статье мы научимся создавать общие реквизиты, определять состав этих реквизитов (в каких объектах они используются, а в каких нет), и, также, посмотрим, как этот реквизит используется.
В моей учебной конфигурации имеется несколько справочников.
Реализуем, чтобы у справочников Товары, Контрагенты и Склады появился одинаковый реквизит Описание (тип строка (250)). Мы можем, добавить этот реквизит в каждый справочник отдельно, а можем, создать общий реквизит, и в его составе указать, что он применим только к этим справочникам.
Для того, чтобы добавился новый общий реквизит необходимо в конфигураторе 1С, в ветке Общие дерева метаданных конфигурации выделить ветку Общие реквизиты, вызвать правой клавишей мышки контекстное меню, в котором выполнить единственную команду «Добавить».
После этого новый реквизит будет создан, и справа откроется палитра свойств этого реквизита, где мы поменяли название, синоним, тип реквизита оставили Строка, а длину этой строки установили 250.
Общий реквизит создан, следующим шагом нам необходимо определить, в каких объектах (в нашем случае справочниках) этот реквизит будет применяться. За это отвечает свойство реквизита Состав. Если нажать на гиперссылку Открыть этого свойства, то откроется форма, в которой и осуществляется конфигурирование состава реквизита.
Обратите внимание на колонку Использование в верхнем окне формы состава общего реквизита. По умолчанию там установлено значение Автоматически. Если объекту установлено значение Автоматически, это значит, что у данного объекта общий реквизит будет использоваться так, как об этом указано в свойстве Автоиспользование данного реквизита.
У нашего реквизита в данном свойстве установлено значение Не использовать, значит у всех объектов, для которых в колонке Использование установлено значение Автоматически, данный реквизит не будет использоваться. И нам нужно вручную указать, у каких объектов этот реквизит применяется. Мы планировали это делать для трех справочников: Товары, Контрагенты и Склады.
Укажем, что у справочника Товары используется этот реквизит. Для этого выделим этот справочник в списке, и выполним команду в виде галки («Установить «Использовать»…») в верхней панели открывшейся формы.
После этих действий, нужный справочник появится в нижнем списке.
Можно на этой форме добавить объект в используемые по другому. У колонки Использование соответствующего объекта вызвать меню строки, в котором выбрать нужное значение (в нашем случае Использовать).
Включим оставшийся объект.
Замечу, что такая настройка справедлива, когда мы в свойство Автоиспользование общего реквизита установили значение Не использовать.
Рекомендую всегда устанавливать данное значение в это свойство!
Если же мы сделаем наоборот: установим значение Использовать в свойство общего реквизита, то теперь нам нужно будет указать все объекты, где не применяется этот реквизит, включая документы, журналы и т.д.
Применение общих реквизитов
Теперь посмотрим, как применяется этот общий реквизит. Например, у меня у справочника Склады нет ни какой формы, и нет ни каких реквизитов.
Но, если я сейчас открою этот справочник в пользовательском режиме, то созданный нами общий реквизит, будет отображен и на форме справочника, и на форме списка справочника.
Если же я захочу данному справочнику создать форму, то созданный ранее общий реквизит будет предложен в списке реквизитов при конструировании формы.
Если у нас уже есть основная форма объекта, как, например, со справочником Товары, то нужно общий реквизит добавить на эту управляемую форму. Откроем управляемую форму справочника Товары, и в ветке Объект найдем этот реквизит, он там отображается как обычный реквизит объекта.
Перетащим этот реквизит на форму.
И он появится на управляемой форме как обычный реквизит.
Если мы что-то хотим сделать с нашим объектом: создать, записать, то мы можем обращаться к общему реквизиту, как к обычному реквизиту объекта. Например, в коде ниже я создаю новый элемент справочника Склады.
После выполнения этого кода общий реквизит Описание будет заполнен.
Точно также, мы можем обратиться к этому реквизиту в запросе напрямую, как к простому реквизиту объекта.
Остальные статьи по теме конфигурирования:
Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»
Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»
Книга написана понятным и простым языком — для новичка.
О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»
Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.
Промо-код на скидку в 15% — 48PVXHeYu
Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog
Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму:
можно оплатить вручную:
Яндекс.Деньги — 410012882996301
Web Money — R955262494655