Добавлением реквизита через кнопку действия

3.25 Добавление реквизита через кнопку "Действие" в окне редактирования
объекта приведет к следующим действиям системы:
1. Будет открыта палитра свойств для редактирования реквизита
2. Будет открыто окно конфигурации и курсор активируется на создаваемом
реквизите
3. Будет активирована закладка "Данные"
4. Верны варианты 1 и 2
5. Верны все варианты
В конфигураторе выбираем к примеу какой-нибудь справочник, кликаем два раза, 
открывается окно (Это оказывается окно редактироания объекта), нажимаем действие


получаем: Оказывается это палитра свойств -
-
Итак правильный ответ 1.

nna 27 сентября, 20199 октября, 2019 1с, Тесты 1 комментарий

Проверка знаний по теме “Редакторы и инструменты режима разработки 1c”.Проходите тест и проверяйте Ваши ответы.

Список вопросов 1c :Профессионал Платформа 8.3 Глава 3

03. Редакторы и инструменты режима разработки

Поделиться ссылкой:

Похожие записи

Gallery image with caption: Механизмы сложных периодических расчетов 1c. Список вопросов 1c :Профессионал Платформа 8.3

Gallery image with caption: Объекты и механизмы бухгалтерского учета 1c. Список вопросов 1c :Профессионал Платформа 8.3

Gallery image with caption: Механизмы оперативного учета 1c. Список вопросов 1c :Профессионал Платформа 8.3

Gallery image with caption: Механизмы построения отчетности 1c. Список вопросов 1c :Профессионал Платформа 8.3

Gallery image with caption: Интерфейсные механизмы 1c. Список вопросов 1c :Профессионал Платформа 8.3

Gallery image with caption: Обслуживание прикладного решения 1c. Список вопросов 1c :Профессионал Платформа 8.3

Редакторы и инструменты режима разработки 1c. Список вопросов 1c :Профессионал Платформа 8.3

Метки:1с Профессионал Платформа

  • Хочу свой сайт и что для этого нужно?
  • Сколько можно заработать на контекстной рекламе Google Adsense

Редакторы и инструменты режима разработки 1c. Список вопросов 1c :Профессионал Платформа 8.3: 1 комментарий

  • Светлана

    21 мая, 2020 в 15:01

    Permalink

    18.
    Для каких объектов конфигурации есть возможность выбирать
    способ редактирования (“в диалоге”, “в списке”, “обоими способами)” и выбора
    (“из формы”, “быстрый выбор”, “обоими способами”)…
    Правильный ответ:
    4. верно 1 и 3

    В синтакс-помощнике набрать СпособРедактирования

    Ответить

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

Ваш адрес email не будет опубликован.

Комментарий

Имя

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.

Темы

    • Администрирование
    • Обычные формы
    • Управляемые формы
  • 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. Добавляем реквизит
  2. Добавление кнопки
  3. Добавление группы
  4. Добавляем табличную часть 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



Эксперт 1С

434 / 305 / 92

Регистрация: 28.05.2014

Сообщений: 1,247

02.09.2015, 17:32

2

Briolin, откуда берется значение для записи?



0



Dethmontt

Модератор

Эксперт 1С

3708 / 2905 / 572

Регистрация: 10.03.2011

Сообщений: 11,442

Записей в блоге: 1

02.09.2015, 17:46

3

1C
1
2
3
ТекущийОбъект = ТекущиеДанные.Ссылка.Получитьобъект()
ТекущийОбъект.Реквизит = "Мое значение"
ТекущийОбъект.Записать();



0



sigmov

584 / 371 / 63

Регистрация: 22.07.2009

Сообщений: 875

Записей в блоге: 4

03.09.2015, 10:21

4

Писал от руки, но как-то так

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
&НаКлиенте
Процедура ИзменитьРеквизит(Команда, Знач ТекДанные = Неопределено, Знач ИмяРеквизита = "ИзменяемыйРеквизит")
    
    Если (ТекДанные = Неопределено) Тогда 
        ТекДанные = Элементы.Список.ТекущиеДанные;
        Если ТекДанные = Неопределено Тогда Возврат; КонецЕсли;  
    КонецЕсли;  
    
    ДополнительныеПараметры = Новый Структура("Ссылка,ИмяРеквизита", Ссылка,ИмяРеквизита);
    ОповещениеОбработатьВводНовогоЗначенияРеквизита = Новый ОписаниеОповещения("ОбработатьВводНовогоЗначенияРеквизита", ЭтаФорма, ДополнительныеПараметры);
    ПоказатьВводЗначения(
        ОповещениеОбработатьВводНовогоЗначенияРеквизита, 
        ТекДанные[ИмяРеквизита], 
        "Введите новый ???", 
        Новый ОписаниеТипов("Дата", , , Новый КвалификаторыДаты(ЧастиДаты.ДатаВремя)) // Тип реквизита
    );  
КонецПроцедуры
 
 
&НаСервере
Процедура ОбработатьВводНовогоЗначенияРеквизита(Знач Результат, Знач ДополнительныеПараметры = Неопределено) Экспорт
    Если Результат <> Неопределено Тогда
        Объект = ДополнительныеПараметры.Ссылка.ПолучитьОбъект();
        Объект[ДополнительныеПараметры.ИмяРеквизита] = Результат;
        Объект.Записать();
    КонецЕсли;
КонецПроцедуры



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

03.09.2015, 10:21

Помогаю со студенческими работами здесь

Открытие второй формы по нажатию на кнопку
Не смог найти ответ на свой вопрос на форуме. В общем, есть первая форма и по нажатию кнопки на ней…

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

Изменить размеры формы по нажатию на кнопку
Доброго времени суток… Я хотел бы узнать как изменять размеры формы по нажатию кнопки…

Как отобразить следующую запись из БД по нажатию на кнопку?
Доброго времени суток! Я уже голову себе сломал…
Подскажите, пожалуйста, как написать код, что…

Скрытие и отображение компонентов формы по нажатию на кнопку
подскажите, как при нажатии на jButton1, скрывался jLabel1 и jCheckBox1 , вместо них появлялся…

Открытие формы по нажатию на кнопку на другой форме
Здравствуйте. Подскажите, как я могу создать новую форму на Form1, а отобразить ее по нажатию на…

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:

4

При разработке решений возникает необходимость добавить реквизит формы, состав и типы которых зависят от данных. Например при построении динамических деревьев с периодами, или при выводе контактной информации и т.д.

Содержание

  1. Задача
  2. Добавление реквизитов
  3. Удаление реквизитов
  4. Добавление реквизита табличной части
  5. Добавление реквизита с типом Произвольный

1С. Программное добавление и удаление реквизитов формы

Задача

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

Есть некая конфигурация, в форме элемента справочника Номенклатура необходимо программно создавать реквизиты формы и элементы к ним:

  • ЯчейкаХранения, тип СправочникСсылка.ЯчейкиХранения;
  • ТекущийОстаток, тип Число.

Элементы объединить в группу с горизонтальной группировкой. На текущий момент форма имеет следующий вид:

добавить реквизит формы

Добавление реквизитов

В обработчике формы ПриСозданииНаСервере() опишем код, который разбивается на 3 этапа:

  1. Описание и создание реквизитов формы;
  2. Создание элементов формы, объединение в группу без отображения;
  3. Заполнение данных.

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

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
	
    #Область ДобавлениеРеквизитовФормы
	
    // Массив для новых реквизитов
    ДобавляемыеРеквизиты	= Новый Массив;
		
    // Опишем ревизиты формы
    Реквизит_ЯчейкаХранения = Новый РеквизитФормы("ЯчейкаХранения",	Новый ОписаниеТипов("СправочникСсылка.ЯчейкиХранения"),	, "Ячейка");
    Реквизит_ТекущийОстаток = Новый РеквизитФормы("ТекущийОстаток",	Новый ОписаниеТипов("Число", , , Новый КвалификаторыЧисла(10, 3)), , "Остаток");
	
    // Для наглядности заполним массив после описания реквизитов формы
    ДобавляемыеРеквизиты.Добавить(Реквизит_ЯчейкаХранения);
    ДобавляемыеРеквизиты.Добавить(Реквизит_ТекущийОстаток);
	
    // Добавим новые реквизиты в форму
    ИзменитьРеквизиты(ДобавляемыеРеквизиты);
	
    #КонецОбласти
	
    #Область ДобавлениеЭлементовФормы
	
    // Горизонтальная группа без отображения на форме
    ГруппаФормы = Элементы.Добавить("Группа_СправочныеДанные", Тип("ГруппаФормы"));
    ГруппаФормы.Вид                        = ВидГруппыФормы.ОбычнаяГруппа;
    ГруппаФормы.Отображение                = ОтображениеОбычнойГруппы.Нет;
    ГруппаФормы.ОтображатьЗаголовок        = Ложь;
    ГруппаФормы.Группировка                = ГруппировкаПодчиненныхЭлементовФормы.Горизонтальная;
	
    // Элементы
	
    НовыйЭлемент = Элементы.Добавить("ЯчейкаХранения", Тип("ПолеФормы"), ГруппаФормы);
    НовыйЭлемент.ПутьКДанным                  = "ЯчейкаХранения";
    НовыйЭлемент.Вид                          = ВидПоляФормы.ПолеВвода;
    НовыйЭлемент.ТолькоПросмотр               = Истина;
	
    НовыйЭлемент = Элементы.Добавить("ТекущийОстаток", Тип("ПолеФормы"), ГруппаФормы);
    НовыйЭлемент.ПутьКДанным                  = "ТекущийОстаток";
    НовыйЭлемент.Вид                          = ВидПоляФормы.ПолеВвода;
    НовыйЭлемент.ТолькоПросмотр               = Истина;
	
    #КонецОбласти
	
    #Область ЗаполнениеДанных
	
    //  Имитируем заполнение данных
    ЭтаФорма.ЯчейкаХранения = ПредопределенноеЗначение("Справочник.ЯчейкиХранения.Распаковка");
    ЭтаФорма.ТекущийОстаток = 12;
	
    #КонецОбласти
	
КонецПроцедуры

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

реквизит программно

Удаление реквизитов

Для удаления необходимо передать массив содержащий пути реквизитов в качестве второго параметра метода формы ИзменитьРеквизиты().

    #Область УдалениеРеквизитовФормы
	
    // Массив удаляемых реквизитов
    УдаляемыеРеквизиты = Новый Массив;
    УдаляемыеРеквизиты.Добавить("ЯчейкаХранения");
    УдаляемыеРеквизиты.Добавить("ТекущийОстаток");
	
    // Удалим реквизиты формы
    ИзменитьРеквизиты( , УдаляемыеРеквизиты);
	
    #КонецОбласти

Внимание!!! Удалять можно только реквизиты созданные программно.

Добавление реквизита табличной части

Добавление реквизита и элемента формы для табличной части почти ничем не отличается, необходимо только указать путь «Объект.<ИмяТабличнойЧасти>». Ниже пример добавления реквизита Ячейка в ТЧ Комплектация.

    #Область ДобавлениеРеквизитаТЧ
	
    // Массив для новых реквизитов
    ДобавляемыеРеквизиты = Новый Массив;
	
    // Опишем ревизиты формы
    Реквизит_Ячейка = Новый РеквизитФормы("Ячейка",	Новый ОписаниеТипов("СправочникСсылка.ЯчейкиХранения"),	"Объект.Комплектация", "Ячейка");
	
    // Для наглядности заполним массив после описания реквизитов формы
    ДобавляемыеРеквизиты.Добавить(Реквизит_Ячейка);
	
    // Добавим новые реквизиты в форму
    ИзменитьРеквизиты(ДобавляемыеРеквизиты);
	
    НовыйЭлемент = Элементы.Добавить("КомплектацияЯчейка", Тип("ПолеФормы"), Элементы.Комплектация);
    НовыйЭлемент.ПутьКДанным    = "Объект.Комплектация.Ячейка";
    НовыйЭлемент.Вид            = ВидПоляФормы.ПолеВвода;
	
    #КонецОбласти

Добавление реквизита с типом Произвольный

В одной из задач стало необходимо добавить реквизит с типом Произвольный, но ни СП, ни интернеты ответа не дали. В итоге через несколько попыток было найдено решение

ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("Реквизит", Новый ОписаниеТипов("")));

Внимание!!! Данные добавленного реквизита сохраняться в ИБ не будут.

Понравилась статья? Поделить с друзьями:
  • Замена кабины газель бизнес на газель некст
  • Доброслободская 19 страховая компания согаз
  • Добрынинский красногорск ленина часы работы
  • Добрынинский на боровском шоссе часы работы
  • Добрынинский на кузнецком мосту часы работы