3.25 Добавление реквизита через кнопку "Действие" в окне редактирования объекта приведет к следующим действиям системы: 1. Будет открыта палитра свойств для редактирования реквизита 2. Будет открыто окно конфигурации и курсор активируется на создаваемом реквизите 3. Будет активирована закладка "Данные" 4. Верны варианты 1 и 2 5. Верны все варианты В конфигураторе выбираем к примеу какой-нибудь справочник, кликаем два раза, открывается окно (Это оказывается окно редактироания объекта), нажимаем действие получаем: Оказывается это палитра свойств - - Итак правильный ответ 1.
nna 27 сентября, 20199 октября, 2019 1с, Тесты 1 комментарий
Проверка знаний по теме “Редакторы и инструменты режима разработки 1c”.Проходите тест и проверяйте Ваши ответы.
Список вопросов 1c :Профессионал Платформа 8.3 Глава 3
03. Редакторы и инструменты режима разработки
Поделиться ссылкой:
Похожие записи
Редакторы и инструменты режима разработки 1c. Список вопросов 1c :Профессионал Платформа 8.3
Метки:1с Профессионал Платформа
- ← Хочу свой сайт и что для этого нужно?
- Сколько можно заработать на контекстной рекламе Google Adsense →
Редакторы и инструменты режима разработки 1c. Список вопросов 1c :Профессионал Платформа 8.3: 1 комментарий
-
Светлана
21 мая, 2020 в 15:01
Permalink
18.
Для каких объектов конфигурации есть возможность выбирать
способ редактирования (“в диалоге”, “в списке”, “обоими способами)” и выбора
(“из формы”, “быстрый выбор”, “обоими способами”)…
Правильный ответ:
4. верно 1 и 3В синтакс-помощнике набрать СпособРедактирования
Ответить
Добавить комментарий
Ваш адрес email не будет опубликован.
Комментарий
Имя
Сайт
Сохранить моё имя, email и адрес сайта в этом браузере для последующих моих комментариев.
1c Профессионал Платформа
- 1. Общие механизмы, понятия и термины 1с
- 2. Редакторы и инструменты 1c (общие)
- 3. Редакторы и инструменты режима разработки 1c
- 4. Конструкторы 1c
- 5. Технология разработки 1c
- 6. Объектная модель прикладного решения 1c
- 7. Табличная модель прикладного решения 1c
- 8. Механизмы интеграции и обмена данными в 1с.
- 9. Обслуживание прикладного решения 1c.
- 10. Интерфейсные механизмы 1c.
- 11. Механизмы построения отчетности 1c.
- 12. Механизмы оперативного учета 1c.
- 13. Объекты и механизмы бухгалтерского учета 1c.
- 14. Механизмы сложных периодических расчетов 1c.
Темы
- 1с
- Администрирование
- Обычные формы
- Управляемые формы
- WEB
- Windows
- Вирусы и антивирусы
- Драйверы
- Оптимизация, исправление ошибок
- Полезные программы
- Заработок в Интернет
- Информатика для детей
- Суперокна
- Тесты
Топ 7
- Шаблоны внешнего отчета 1с 8.3 на управляемых формах опубликовано 22/10/2019
- 10 полезных команд командной строки Windows опубликовано 17/10/2017
- Общие механизмы, понятия и термины 1с.Список вопросов 1c Профессионал по платформе 8.3 опубликовано 24/09/2019
- Сколько можно заработать на контекстной рекламе Google Adsense опубликовано 27/09/2019
- Конструкторы 1c. Список вопросов 1c :Профессионал Платформа 8.3 опубликовано 28/09/2019
- Системный блок. Урок 2 опубликовано 28/08/2019
- Восстановление поврежденной базы данных Firebird опубликовано 14/06/2021
Соц.сети
Содержание:
- Добавляем реквизит
- Добавление кнопки
- Добавление группы
- Добавляем табличную часть 1С
В связи с развитием системы расширений многие разработчики 1С сталкиваются с проблемой: если форма захвачена и на ней произведены изменения, то после обновления в основной конфигурации формы, эти изменения не будут отражены на захваченной форме. Получается, что форму после обновления надо каждый раз проверять. Это трудно и «убивает» все плюсы расширения. Но из любой непростой ситуации есть выход, если знать, где его искать. Можно захватить форму в расширение и не изменять её, а все новые реквизиты добавить программно. Тогда при обновлении формы в основной конфигурации 1С 8.3, форма измениться в расширении, и добавленные реквизиты будут корректно отображаться в ней.
В этой статье я постараюсь собрать все основные методы создания реквизитов на форме.
1. Добавляем реквизит
Начнем с самого простого. Мы добавили реквизит «МоеРасширение_НаименованиеНаАнглийском» в справочник контрагентов.
Для того, чтобы вывести его на форму програмно, пишем код процедуры «МоеРасширение_ПриСозданииНаСервереПосле» (Отказ, Стандартная Обработка).
НовыйЭлемент = Элементы.Добавить («МоеРасширение_НаименованиеНаАнглийском», Тип(«ПолеФормы»));
НовыйЭлемент.ПутьКДанным = «Объект. МоеРасширение_НаименованиеНаАнглийском»;
НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
НовыйЭлемент.ТолькоПросмотр = Ложь;
НовыйЭлемент.Видимость = Истина;
НовыйЭлемент.Доступность = Истина.
Теперь мы добавим на форму реквизит, которого нет в конфигурации. Например, выведем на форму текущую задолженность: реквизит «МоеРасширение_ТекущаяЗадолженность».
Сначала создадим реквизит:
ДобавляемыеРеквизиты = Новый Массив;
НовыйРеквизит = Новый РеквизитФормы(«МоеРасширение_ТекущаяЗадолженность»), Новый ОписаниеТипов («Число», «Текущая задолженность»);
ДобавляемыеРеквизиты.Добавить(НовыйРеквизит);
ЭтаФорма.ИзменитьРеквизиты(ДобавляемыеРеквизиты).
Затем выведем его на форму таким же образом, как и добавленный в конфигурацию реквизит, разница только в поле «ПутьКДанным» – здесь мы пишем наименование только что созданного реквизита:
НовыйЭлемент = Элементы.Добавить(«МоеРасширение_НаименованиеНаАнглийском», Тип(«ПолеФормы»));
НовыйЭлемент.ПутьКДанным = «МоеРасширение_ТекущаяЗадолженность»;
НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода;
НовыйЭлемент.ТолькоПросмотр = Истина;
НовыйЭлемент.Видимость = Истина;
НовыйЭлемент.Доступность = Истина.
Теперь переместим наши реквизиты под поле «Полное наименование». Для этого надо определить на форме место добавления, в нашем случаем – над группой «ГруппаКолонки»:
Элементы.Переместить(Элементы.МоеРасширение_НаименованиеНаАнглийском,Элементы.ГруппаКолонки.Родитель,Элементы.ГруппаКолонки);
Элементы.Переместить(Элементы.МоеРасширение_ТекущаяЗадолженность,Элементы.ГруппаКолонки.Родитель,Элементы.ГруппаКолонки).
Получаем результат:
Для того, чтобы отрабатывались процедуры событий для этих реквизитов, можем указать действия:
Элементы. МоеРасширение_ТекущаяЗадолженность.УстановитьДействие(«ПриИзменении», «МоеРасширение_РасшифроватьЗадолженность»).
2. Добавление кнопки
Для того, чтобы произвести добавление кнопки на форму, сначала надо програмно добавить команду.
НоваяКоманда = Команды.Добавить(«МоеРасширение_ПоказатьОСВ»);
НоваяКоманда.Действие = «МоеРасширение_ПоказатьОСВ»;
НоваяКоманда.Заголовок = «Показать ОСВ».
ВАЖНО!! В поле действие пишется имя процедуры.
Теперь добавляем саму кнопку:
НоваяКнопка = Элементы.Добавить(«МоеРасширение_Кнопка_ПоказатьОСВ», Тип(«КнопкаФормы»));
НоваяКнопка.ИмяКоманды = «МоеРасширение_ПоказатьОСВ».
3. Добавление группы
Для добавления группы переместим кнопку к полю «Текущая задолженность». На этом этапе нам надо создать группу и переместить в нее уже созданные наши элементы.
Создаем группу и помещаем ее под наименованием. Затем переносим в нее реквизит «Текущая задолженность» и кнопку «Показать ОСВ»:
НоваяГруппа =Элементы.Добавить(«МоеРасширение_ГруппаЗадолженность», Тип(«ГруппаФормы»));
НоваяГруппа.Вид = ВидГруппыФормы.ОбычнаяГруппа;
НоваяГруппа.Заголовок = «»;
НоваяГруппа.ОтображатьЗаголовок = Ложь;
НоваяГруппа.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяВсегда;
Элементы.Переместить(НоваяГруппа,Элементы.ГруппаКолонки.Родитель,Элементы.ГруппаКолонки);
Элементы.Переместить(Элементы.МоеРасширение_ТекущаяЗадолженность,НоваяГруппа);
Элементы.Переместить(Элементы.МоеРасширение_Кнопка_ПоказатьОСВ,НоваяГруппа).
4. Добавляем табличную часть 1С
Добавим к контрагенту табличную часть 1С «МоеРасширение_Номенклатура» с реквизитом «Номенклатура» и выведем ее на форму.
Сначала мы добавляем табличную часть на форму, после чего описываем все колонки, которые должны отображаться на форме.
ВАЖНО! При создании реквизитов таблицы родителем указывается реквизит формы «Табличная часть».
НоваяТабличнаяЧасть = Элементы.Добавить(«МоеРасширение_ТаблицаНоменклатура», Тип(«ТаблицаФормы»));
НоваяТабличнаяЧасть.ПутьКДанным = «Объект.МоеРасширение_Номенклатура»;
НовыйРеквизитТабличнойЧасти = Элементы.Добавить(«МоеРасширение_Номенклатура», Тип(«ПолеФормы»),НоваяТабличнаяЧасть);
НовыйРеквизитТабличнойЧасти.Заголовок = «Номенклатура»;
НовыйРеквизитТабличнойЧасти.Вид = ВидПоляФормы.ПолеВвода;
НовыйРеквизитТабличнойЧасти.ПутьКДанным = «Объект.МоеРасширение_Номенклатура.Номенклатура».
Используя этот базовый набор, можно изменить любую форму программно. И при обновлениях форма всегда будет подстраиваться под выбранный алгоритм. Если форма поменяется глобально, то расширение выдаст ошибку. Тогда, переписав несколько строчек кода, мы снова получим рабочую форму. Это быстрее и проще, чем каждый раз анализировать диалоговую форму.
Специалист компании «Кодерлайн»
Максим Федоров
58 / 63 / 11 Регистрация: 13.11.2014 Сообщений: 939 |
|
1 |
|
1C 8.x Запись данных в нужный реквизит по нажатию на кнопку с формы02.09.2015, 17:29. Показов 5872. Ответов 3
Здравствуйте. Кто-нибудь сталкивался с такой задачей: открыта форма списка справочника. На нём размещена кнопка которая по нажатию должна заполнять нужный реквизит определенным значением. Так вот, как сделать так, что бы: когда выделена мышкой нужная запись справочника(её открывать не нужно) по нажатию на кнопку, записывалось нужное значение в реквизит?
0 |
434 / 305 / 92 Регистрация: 28.05.2014 Сообщений: 1,247 |
|
02.09.2015, 17:32 |
2 |
Briolin, откуда берется значение для записи?
0 |
Dethmontt Модератор 3708 / 2905 / 572 Регистрация: 10.03.2011 Сообщений: 11,442 Записей в блоге: 1 |
||||
02.09.2015, 17:46 |
3 |
|||
0 |
sigmov 584 / 371 / 63 Регистрация: 22.07.2009 Сообщений: 875 Записей в блоге: 4 |
||||
03.09.2015, 10:21 |
4 |
|||
Писал от руки, но как-то так
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
03.09.2015, 10:21 |
Помогаю со студенческими работами здесь Открытие второй формы по нажатию на кнопку Открытие второй формы по нажатию на кнопку Изменить размеры формы по нажатию на кнопку Как отобразить следующую запись из БД по нажатию на кнопку? Скрытие и отображение компонентов формы по нажатию на кнопку Открытие формы по нажатию на кнопку на другой форме Искать еще темы с ответами Или воспользуйтесь поиском по форуму: 4 |
При разработке решений возникает необходимость добавить реквизит формы, состав и типы которых зависят от данных. Например при построении динамических деревьев с периодами, или при выводе контактной информации и т.д.
Содержание
- Задача
- Добавление реквизитов
- Удаление реквизитов
- Добавление реквизита табличной части
- Добавление реквизита с типом Произвольный
Задача
Для наглядности разберем простой пример, в котором можно было обойтись только элементами формы, но мы создадим и реквизиты.
Есть некая конфигурация, в форме элемента справочника Номенклатура необходимо программно создавать реквизиты формы и элементы к ним:
- ЯчейкаХранения, тип СправочникСсылка.ЯчейкиХранения;
- ТекущийОстаток, тип Число.
Элементы объединить в группу с горизонтальной группировкой. На текущий момент форма имеет следующий вид:
Добавление реквизитов
В обработчике формы ПриСозданииНаСервере() опишем код, который разбивается на 3 этапа:
- Описание и создание реквизитов формы;
- Создание элементов формы, объединение в группу без отображения;
- Заполнение данных.
Ниже приведен готовый код, код снабжен комментариями и разбит на области для лучшего понимания
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) #Область ДобавлениеРеквизитовФормы // Массив для новых реквизитов ДобавляемыеРеквизиты = Новый Массив; // Опишем ревизиты формы Реквизит_ЯчейкаХранения = Новый РеквизитФормы("ЯчейкаХранения", Новый ОписаниеТипов("СправочникСсылка.ЯчейкиХранения"), , "Ячейка"); Реквизит_ТекущийОстаток = Новый РеквизитФормы("ТекущийОстаток", Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(10, 3)), , "Остаток"); // Для наглядности заполним массив после описания реквизитов формы ДобавляемыеРеквизиты.Добавить(Реквизит_ЯчейкаХранения); ДобавляемыеРеквизиты.Добавить(Реквизит_ТекущийОстаток); // Добавим новые реквизиты в форму ИзменитьРеквизиты(ДобавляемыеРеквизиты); #КонецОбласти #Область ДобавлениеЭлементовФормы // Горизонтальная группа без отображения на форме ГруппаФормы = Элементы.Добавить("Группа_СправочныеДанные", Тип("ГруппаФормы")); ГруппаФормы.Вид = ВидГруппыФормы.ОбычнаяГруппа; ГруппаФормы.Отображение = ОтображениеОбычнойГруппы.Нет; ГруппаФормы.ОтображатьЗаголовок = Ложь; ГруппаФормы.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Горизонтальная; // Элементы НовыйЭлемент = Элементы.Добавить("ЯчейкаХранения", Тип("ПолеФормы"), ГруппаФормы); НовыйЭлемент.ПутьКДанным = "ЯчейкаХранения"; НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода; НовыйЭлемент.ТолькоПросмотр = Истина; НовыйЭлемент = Элементы.Добавить("ТекущийОстаток", Тип("ПолеФормы"), ГруппаФормы); НовыйЭлемент.ПутьКДанным = "ТекущийОстаток"; НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода; НовыйЭлемент.ТолькоПросмотр = Истина; #КонецОбласти #Область ЗаполнениеДанных // Имитируем заполнение данных ЭтаФорма.ЯчейкаХранения = ПредопределенноеЗначение("Справочник.ЯчейкиХранения.Распаковка"); ЭтаФорма.ТекущийОстаток = 12; #КонецОбласти КонецПроцедуры
После выполнения приведенного кода форма будет выглядеть так:
Удаление реквизитов
Для удаления необходимо передать массив содержащий пути реквизитов в качестве второго параметра метода формы ИзменитьРеквизиты().
#Область УдалениеРеквизитовФормы // Массив удаляемых реквизитов УдаляемыеРеквизиты = Новый Массив; УдаляемыеРеквизиты.Добавить("ЯчейкаХранения"); УдаляемыеРеквизиты.Добавить("ТекущийОстаток"); // Удалим реквизиты формы ИзменитьРеквизиты( , УдаляемыеРеквизиты); #КонецОбласти
Внимание!!! Удалять можно только реквизиты созданные программно.
Добавление реквизита табличной части
Добавление реквизита и элемента формы для табличной части почти ничем не отличается, необходимо только указать путь «Объект.<ИмяТабличнойЧасти>». Ниже пример добавления реквизита Ячейка в ТЧ Комплектация.
#Область ДобавлениеРеквизитаТЧ // Массив для новых реквизитов ДобавляемыеРеквизиты = Новый Массив; // Опишем ревизиты формы Реквизит_Ячейка = Новый РеквизитФормы("Ячейка", Новый ОписаниеТипов("СправочникСсылка.ЯчейкиХранения"), "Объект.Комплектация", "Ячейка"); // Для наглядности заполним массив после описания реквизитов формы ДобавляемыеРеквизиты.Добавить(Реквизит_Ячейка); // Добавим новые реквизиты в форму ИзменитьРеквизиты(ДобавляемыеРеквизиты); НовыйЭлемент = Элементы.Добавить("КомплектацияЯчейка", Тип("ПолеФормы"), Элементы.Комплектация); НовыйЭлемент.ПутьКДанным = "Объект.Комплектация.Ячейка"; НовыйЭлемент.Вид = ВидПоляФормы.ПолеВвода; #КонецОбласти
Добавление реквизита с типом Произвольный
В одной из задач стало необходимо добавить реквизит с типом Произвольный, но ни СП, ни интернеты ответа не дали. В итоге через несколько попыток было найдено решение
ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("Реквизит", Новый ОписаниеТипов("")));
Внимание!!! Данные добавленного реквизита сохраняться в ИБ не будут.