1С объект недоступен для изменения

  • автор:

Настройка форм

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

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

Пользователь может изменить расположение полей Номер и Дата и удалить поле N из таблицы.

В режиме 1С:Предприятие вызвать настройку формы можно с помощью команды Еще — Изменить форму…

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

Если возникает необходимость вернуться к тому внешнему виду формы, который «был задуман» разработчиком, то для этого используется команда Еще — Установить стандартные настройки.

Разработка интерфейса прикладных решений на платформе «1С:Предприятие 8»

Авторы: В.А. Ажеронок, А.В. Островерх, М.Г. Радченко, Е.Ю. Хрусталева

Основное


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

0. Изменение биологического возраста — способность, позволяющее изменить физиологическое развитие организма.

Некоторые свойственные способы применения:

  • Маскировка
  • Изменение физических характеристик
  • Изменение способностей(возможность получить те навыки, которые были у человека раньше)
  • Изменение личности/эмоционального состояния/образа мышления

Пример персонажа с такими способностями:

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

Некоторые свойственные способы применения:

  • Маскировка
  • Шпионаж
  • Копирование способностей
  • Копирование памяти/личности
  • Улучшение наступательных возможностей

Пример персонажа с такими способностями:

2. Перевоплощение — способность переходить из одной определенной формы в другую, например из гуманоидной в форму животного.

Некоторые свойственные способы применения:

  • Маскировка
  • Изменение физических характеристик
  • Получение новых способностей
  • Улучшение оборонительных возможностей
  • Улучшение наступательных возможностей
  • Улучшение чувств
  • Изменение личности/эмоционального состояния/образа мышления

Пример персонажа с такими способностями:

3. Изменение размера — способность изменить размер тела, сохранив пропорции, что обычно также пропорционально изменяет массу и прочность тела.

Некоторые свойственные способы применения:

  • Изменение физических характеристик
  • Изменение уровня потребления энергии
  • Шпионаж (проникновение в малые отверстия, возможность эффективно прятаться)

Пример персонажа с такими способностями:

4. Эластичность — способность изменять форму тела, сохраняя его массу.

Некоторые свойственные способы применения:

  • Амортизация урона
  • Растяжение и сжатие

Пример персонажа с такими способностями:

5. Материальные превращения — способность целиком или частично превращаться в некий материал, например металл или камень.

Некоторые свойственные способы применения:

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

Пример персонажа с такими способностями:

6. Элементальные и энергетические преобразования — способность превращаться в некий элемент или энергию, то есть в некую однородную субстанцию. Частым недостатком является уязвимость к противоположным элементам.

Некоторые свойственные способы применения:

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

Пример персонажа с такими способностями:

7. Хаотичные преобразования — превращения в неопределенную форму, например в хаотичную массу из частей различных существ и объектов. Обычно при этом может изменяться масса и объём существа.

Некоторые свойственные способы применения:

  • Изменение физических характеристик
  • Улучшение оборонительных возможностей
  • Улучшение наступательных возможностей
  • Получение новых способностей
  • Изменение размера
  • Адаптивность
  • Абсорбции
  • Регенерация
  • Контроль тела
  • Свободный выбор облика

Пример персонажа с такими способностями:

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

Некоторые свойственные способы применения:

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

Пример персонажа с такими способностями:

Когда 1С пишет «объект недоступен для изменения»? #681398

  • v7: Не раскрывается группировка в запросе
  • Регистрация Addon1C.dll в Windows (x64).
  • Создание иерархии в табличной части документа. Как?
  • Цвет строки против цвета колонки: кто главнее
  • 4-ФСС компенсация отпуска
  • Работа с веб сервисами РСА по ДиКБМ
  • Консоль запросов дает ошибку: не установлен менеджер временных таблиц
  • УНФ: пометка на удаление не ставится
  • Unknown BIOS Error Code =410e
  • Проблемы со шрифтом при сохранении Табличного документа в pdf на сервере
  • проблемы при обновлении конфигурации ут 11
  • Запрет перемещения и сортировки в табличной части документа
  • БП 2.0. Настройка РИБ по организации. Не выгрузился справочник «Осн. средства»
  • Заказ поставщику или Счет на оплату поставщика?
  • В запросе нада достать Регистратор в регистре накопления остатки
  • v7: Как вставить объект рисунок в печатную форму?
  • УФ. Переменная на сервере.
  • Ввод в домен через командную строку
  • v7: 1с 7.7 запись заблокирована
  • v7: 1с++ В запросе получить значение реквизита измерения регистра

На закладке Дополнительно сгруппированы доп.опции для построения запроса:

Рассмотрим их назначение.

  1. Первые (n) — позволяет выбрать заданное число записей, первых в запросе, с учетом заданного порядка записей. В тексте запроса сгенерит ключевое слово ВЫБРАТЬ ПЕРВЫЕ N
  2. Без повторяющихся — оставит в детальных записях выборки только уникальные записи. В тексте запроса сгенерит ключевое слово ВЫБРАТЬ РАЗЛИЧНЫЕ
  3. Разрешенные — необходимо для настройки ограничений прав доступа; будут показаны только разрешенные для данных полномочий записи (если опцию не ставить, то запрос модет не выполниться при ограниченных правах, вернуть ошибку). В тексте запроса опция сгенерит ключевое слово ВЫБРАТЬ РАЗРЕШЕННЫЕ
  4. Тип запроса — выборка данных либо создание временной таблицы. Опция временной таблицы позволяет задать ее имя; к данной таблице впоследствии можно будет обращаться как промежуточному источнику данных редактируемого запроса. В тексте запроса в этом случае появится ключевое слово ПОМЕСТИТЬ
  5. Блокировать полученные данные для последующего изменения — предполагается, что пока идет чтение из таблиц-источников, они блокируются на чтение в иных сессиях. В тексте запроса в случае включения опции появится ключевое слово ДЛЯ ИЗМЕНЕНИЯ. При этом можно указать, какие именно таблицы из числа задействованных в запросе блокируются; если этого не сделать, то заблокируются все.

*** Вопрос 07.21 экзамена 1С:Профессионал по платформе. Флаг «Без повторяющихся записей» на закладке «Дополнительно» конструктора запросов позволяет:

  1. Исключить из таблиц-источников данных одинаковые строки
  2. Исключить из результирующей таблицы запроса одинаковые строки. Данная операция распространяется как на детальные, так и на итоговые записи
  3. Исключить из результирующей таблицы запроса одинаковые строки. Данная операция распространяется только на детальные записи

Правильный ответ третий. На итоги требование уникальности не распространяется.
*** Вопрос 07.22 экзамена 1С:Профессионал по платформе. Флаг «Первые 5 записей» на закладке «Дополнительно» конструктора запросов позволяет:

  1. Вывести в отчет первые 5 записей. Записи будут отобраны без учета правил упорядочивания, настроенных в конструкторе запросов
  2. Вывести в отчет первые 5 записей. Записи будут отобраны с учетом правил упорядочивания, настроенных в конструкторе запросов

Правильный ответ второй, порядок будет учтен.
*** Вопрос 07.23 экзамена 1С:Профессионал по платформе. Флаг «Для изменения» (в режиме автоматических транзакционных блокировок) на закладке «Дополнительно» конструктора запросов позволяет:

  1. Заблокировать на изменение данные указанных таблиц-источников при выполнении запроса (вне транзакции)
  2. Заблокировать на чтение данные указанных таблиц-источников в запросе (как вне, так и в рамках транзакции)
  3. Заблокировать данные указанных таблиц-источников на чтение (в рамках транзакции)
  4. Верны ответы 1 и 2

Правильный ответ третий. Блокировка снимается после завершения отрабатывающей транзакции.
*** Вопрос 07.24 экзамена 1С:Профессионал по платформе. При установке флага «Для изменения» (в режиме автоматических транзакционных блокировок) на закладке «Дополнительно» конструктора запросов происходят блокировки:

  1. На уровне таблиц базы данных
  2. На уровне записей таблиц базы данных
  3. В варианте файл-сервер — на уровне таблиц базы данных
  4. В варианте клиент-сервер — на уровне записей таблиц базы данных
  5. Верны ответы 3 и 4

Правильный ответ пятый.
Подробнее об автоматических и управляемых транзакционных блокировках.
*** Вопрос 07.25 экзамена 1С:Профессионал по платформе. При установке флага «Для изменения» (в режиме автоматических транзакционных блокировок) на закладке «Дополнительно» конструктора запросов будут блокироваться данные:

  1. Всех таблиц-источников в запросе
  2. Только виртуальных таблиц-источников в запросе
  3. Если список «Таблицы для изменения» — пуст, то всех таблиц, задействованных в запросе, иначе — только таблиц, указанных в списке

Правильный ответ третий, разбор в посте.
*** Вопрос 07.47 экзамена 1С:Профессионал по платформе. При попытке выполнить запрос с текстом «Выбрать * Из Справочник.Номенклатура», в случае если на записи справочника были определены ограничения на чтение (в соответствующей роли) произойдет следующее:

  1. Будут получены все данные
  2. Будут получены данные только из разрешенных записей
  3. Произойдет ошибка

Правильный ответ третий. Для избежания ситуации, нужно выставить опцию «Разрешенные».

Программное добавление и изменение элементов управляемых форм

Платформа 1С:Предприятие позволяет программно добавлять и изменять элементы управляемой формы. Разберемся для чего это может потребоваться.

Программная модификация формы может потребоваться в нескольких случаях:

  • При доработке типовых конфигураций для облегчения процедуры последующего обновления. В этом случае будет изменен только модуль формы. Модули намного проще обновлять, чем форму.
  • При реализации некоторых общих алгоритмов. Например, в подсистеме БСП «Запрет редактирования реквизитов объектов» для всех подключенных к подсистеме объектов предусмотрено программное создание кнопки для включения возможности редактирования реквизитов.
  • При реализации некоторых специфических алгоритмов. Например, в справочнике Номенклатура создаются поля для редактирования дополнительных реквизитов.

В управляемой форме можно программно добавить, изменить и удалить:

  • реквизиты;
  • локальные команды;
  • элементы.

Все указанные операции возможны только на сервере.

Программное изменение формы имеет ограничения:

  • Удалить можно только программно добавленные реквизиты/команды/элементы. Нельзя программно удалить объекты, созданные в конфигураторе.
  • Нельзя назначить реквизит основным.

Изменение команд формы

Для управления составом команд у объекта УправляемаяФорма есть коллекция Команды. У коллекции есть несколько методов:

  • Добавить(<ИмяКоманды>)
  • Количество()
  • Найти(<ИмяКоманды>)
  • Удалить(<Команда>)

Коллекция Команды доступна как на клиенте, так и на сервере. Изменять коллекцию (методы Добавить() и Удалить()) можно только на сервере. Искать и получать количество элементов (методы Найти() и Количество()) можно как на клиенте, так и на сервере.

В качестве примера работы с командами формы создадим новую команду ИсторияИзменений с заголовком «История изменений…», которая будет вызвать обработчик ОтобразитьИсторию(). Создание выполняется при открытии формы.

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Команда = Команды.Добавить(«ИсторияИзменений»);
Команда.Действие = «Подключаемый_ОтобразитьИсторию»;
Команда.Заголовок = «История изменений…»;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОтобразитьИсторию(Команда)
// действия команды
КонецПроцедуры

Обработчик команды должен располагаться в форме и иметь директиву компиляции &НаКлиенте.

Изменение реквизитов формы

Чтение состава реквизитов формы выполняется функцией ПолучитьРеквизиты(<Путь>), возвращающей массив типа РеквизитФормы. Параметр функции указывает путь к родительскому реквизиту (в виде строки). Если параметр опущен или указана пустая строка, возвращаются реквизиты верхнего уровня.

Изменение реквизитов выполняется методом ИзменитьРеквизиты(<ДобавляемыеРеквизиты>, <УдаляемыеРеквизиты>) объекта УправляемаяФорма. В параметры ДобавляемыеРеквизиты и УдаляемыеРеквизиты передаются массивы с элементами типа РеквизитФормы.

Внимание!

Процесс изменения состава реквизитов является достаточно ресурсоемким. Фактически выполняется пересоздание формы. В связи с этим работа с реквизитами формы выполняется в пакетном режиме.

Создадим новый реквизит формы с именем Покупатель:

// Описание добавляемых реквизитов
ДобавляемыеРеквизиты = Новый Массив;
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(«Покупатель», Новый ОписаниеТипов(«СправочникСсылка.Контрагенты»), , «Клиент»));

// Изменения состава реквизитов
ИзменитьРеквизиты(ДобавляемыеРеквизиты);

Изменение элементов формы

Для управления составом элементов у объекта УправляемаяФорма есть коллекция Элементы. У коллекции есть несколько методов:

Коллекция Элементы доступна как на клиенте, так и на сервере. Изменять коллекцию (методы Вставить(), Добавить(), Переместить() и Удалить()) можно только на сервере. Искать и получать количество элементов (методы Найти() и Количество()) можно как на клиенте, так и на сервере. Элементами коллекции могут быть:

  • ГруппаФормы;
  • ТаблицаФормы;
  • ПолеФормы;
  • КнопкаФормы.

Элементам формы можно программно назначить обработчики событий. Для этих целей предназначен метод УстановитьДействие(<ИмяСобытия>, <Действие>).

Рассмотрим несколько наиболее распространенных на практике примеров работы с командами, реквизитами и элементами формы.

Добавление команды и связанной с ней кнопки:

// Создание команды
Команда = Команды.Добавить(«ИсторияИзменений»);
Команда.Действие = «Подключаемый_ОтобразитьИсторию»; // В форме должна быть процедура с указанным наименованием
Команда.Заголовок = «История изменений…»;
// Создание кнопки и связь ее с командой
Элемент = Элементы.Добавить(«ИсторияИзменений», Тип(«КнопкаФормы»));
Элемент.ИмяКоманды = «ИсторияИзменений»;

Добавление реквизита и связанного с ним поля ввода:

// Описание добавляемых реквизитов
ДобавляемыеРеквизиты = Новый Массив;
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(«Покупатель», Новый ОписаниеТипов(«СправочникСсылка.Контрагенты»), , «Клиент»));
// Изменение состава реквизитов
ИзменитьРеквизиты(ДобавляемыеРеквизиты);
// Создание поля ввода и связь с реквизитом
Элемент = Элементы.Добавить(«Покупатель», Тип(«ПолеФормы»));
Элемент.Вид = ВидПоляФормы.ПолеВвода;
Элемент.ПутьКДанным = «Покупатель»;

Назначение элементу формы обработчика события:

ЭлементПокупатель.УстановитьДействие(«ПриИзменении», «Подключаемый_ПокупательПриИзменении»);

&НаКлиенте
Процедура Подключаемый_ПокупательПриИзменении(Элемент)
// Действия события
КонецПроцедуры

Внимание!

Процедурам, которые устанавливаются в качестве обработчиков событий из кода с помощью метода УстановитьДействие(), рекомендуется задавать префикс Подключаемый_.

Внимание!

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

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *