Как на форме программно очистить реквизиты

Очистить реквизит формы

Я
   rowvg

16.03.20 — 09:50

У формы есть реквизит, с типом СправочникСсылка. Подскажите, пжл, как его программно очистить? Формы управляемые.

  

Партнерская программа EFSOL Oblako

   Ц_У

1 — 16.03.20 — 09:51

очистить в где?

   rowvg

2 — 16.03.20 — 09:57

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

   Михаил Михайлович

3 — 16.03.20 — 09:58

(2) в чем вопрос?

   rowvg

4 — 16.03.20 — 10:00

как это сделать? На клиенте справочники недоступны, есл реквизиту присвоить пустое значение на сервере, то на клиента это никак не влияет, при возращении на клиента реквизит остается заполненным

   Ц_У

5 — 16.03.20 — 10:02

(4) ты определись или реквизит формы или поле объекта

если реквизит формы, то на клиенте, если объекта то на сервере

от этого и пляши

   rowvg

6 — 16.03.20 — 10:03

4+ То есть на клиенте

ЭтотОбъект.Элементы.Собственник = Справочники.Контрагенты.ПустаяСсылка(); выполнить нельзя

на сервере такое присваивание срабатывает, но при возращении в клиентскую процедуру ЭтотОбъект.Элементы.Собственник снова заполнен.

   rowvg

7 — 16.03.20 — 10:04

5+ я однозначно в теме написал — реквизит формы

   Михаил Михайлович

8 — 16.03.20 — 10:05

(6) врешь, наверное или не правильно написал

   sqr4

9 — 16.03.20 — 10:05

.Собственник = Справочники.Контрагенты.ПустаяСсылка();

   sqr4

10 — 16.03.20 — 10:06

без точки

   sqr4

11 — 16.03.20 — 10:07

(6) Срочно книжки читать по управляемому интерфейсу и не трепать форум

   rowvg

12 — 16.03.20 — 10:14

(11) Спасибо, получилось

Почему вот так нельзя ЭтотОбъект.Собственник = Справочники.Контрагенты.ПустаяСсылка();  ?

   hhhh

13 — 16.03.20 — 10:19

(12) так можно

   Ц_У

14 — 16.03.20 — 10:19

(12)



Процедура Сменить()

    СменитьНаСервере()

Конецпроцедуры



СменитьНаСервере()

   ЭтотОбъект.Собственник = Справочники.Контрагенты.ПустаяСсылка()

Конецпроцедуры

   rowvg

15 — 16.03.20 — 10:23

(14)

&НаСервере

Процедура ДобавитьСобственникаНаСервере()

    
    ЭтотОбъект.Собственник = Справочники.Контрагенты.ПустаяСсылка();

    Собственник = Справочники.Контрагенты.ПустаяСсылка();

КонецПроцедуры

Верхняя строчка не срабатывает…

   Александр Б

16 — 16.03.20 — 10:26

Можешь на клиенте сделать

Объект.Собственник = Неопределено

   Ц_У

17 — 16.03.20 — 10:27

   Александр Б

18 — 16.03.20 — 10:29

(14) Реквизит формы можно очистить и без вызова сервера.

   rowvg

19 — 16.03.20 — 10:31

15+  Вернее не срабатывает вот такой вызов

&НаКлиенте

Процедура ДобавитьСобственника(Команда)

    ДобавитьСобственникаНаСервере(ЭтотОбъект.Собственник);

КонецПроцедуры

&НаСервере

Процедура ДобавитьСобственникаНаСервере(Собственник)

    ЭтотОбъект.Собственник = Справочники.Контрагенты.ПустаяСсылка();

КонецПроцедуры

   rowvg

20 — 16.03.20 — 10:32

(16)  Александр Б, у меня реквизит формы, а не объекта

   rowvg

21 — 16.03.20 — 10:33

19+ А вот так все прекрасненько срабатывает!

15+  Вернее не срабатывает вот такой вызов

&НаКлиенте

Процедура ДобавитьСобственника(Команда)

    ДобавитьСобственникаНаСервере();

КонецПроцедуры

&НаСервере

Процедура ДобавитьСобственникаНаСервере()

    ЭтотОбъект.Собственник = Справочники.Контрагенты.ПустаяСсылка();

КонецПроцедуры

Это что за фокусы?

   Александр Б

22 — 16.03.20 — 10:33

(20) Тогда просто на клиенте делаешь Собственник = ПредопределенноеЗначение(«Справочник.Контрагенты.ПустаяСсылка»);

   Александр Б

23 — 16.03.20 — 10:34

(21) Реквизит формы находится в контексте формы. Тебе не нужно обращаться к форме через ЭтотОБъект. Можно сразу обращаться к реквизиту.

   rowvg

24 — 16.03.20 — 10:35

22 Спасибо, не знал

   rowvg

25 — 16.03.20 — 10:36

23 Это я для читабельности. Меня интересует почему если я реквизит формы передал аргументом на сервер, то ЭтотОбъект.Собственник = Справочники.Контрагенты.ПустаяСсылка(); не срабатывает?

   ptiz

26 — 16.03.20 — 10:37

Вы тут прикалываетесь, что-ли?

Реквизит1 = Неопределено;

и всё

   Александр Б

27 — 16.03.20 — 10:38

(25) Не думай об этом. Два глупых и бесполезных действия одновременно

   Ц_У

28 — 16.03.20 — 10:39

(26) не ломай кайф

   rowvg

29 — 16.03.20 — 10:41

(27) Вопрос уже не об очистке реквизита, что меняется от вызова с параметром и без него?

   Жан Пердежон

30 — 16.03.20 — 10:41

(25) почитай что-нибудь про формальные и фактические параметры, как они работают при клиент-серверных вызовах, заодно и этот пример проверишь:

&НаСервере

Процедура ДобавитьСобственникаНаСервере(ЗНАЧ Собственник)

    ЭтотОбъект.Собственник = Справочники.Контрагенты.ПустаяСсылка();

КонецПроцедуры

   Александр Б

31 — 16.03.20 — 10:43

(25) Вообще тебе на заметку. Реквизиты формы существуют одновременно и на клиенте и на сервере. Если ты вызываешь процедуры &НаСервере или &НаКлиенте.

Реквизит формы с клиента на сервер имеет смысл передавать только тогда, когда ты делаешь безконтекстный вызов &НаСервереБезКонтекста. Тогда в этом методе форма и её реквизиты не будут видны, кроме того, что ты передашь в параметрах.

   rowvg

32 — 16.03.20 — 11:02

(30) Все, спасибо, разобрался. Оказывается 1С для того чтобы уменьшить трафик не передает параметр, который передавался по значению, обратно на клиента. Хотя как можно передавать по значению ссылочный объект?

   Жан Пердежон

33 — 18.03.20 — 13:41

(32) нет, не для этого. И ссылка — это ещё не весь объект.

   DrZombi

34 — 18.03.20 — 13:49

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

  

DrZombi

35 — 18.03.20 — 13:49

(30) Можно просто:

Объект.Собственник = Неопределено;

17 правил для составления оптимального ЗАПРОСа к данным базы 1С 47
Для формирования и выполнения запросов к таблицам базы данных в платформе 1С используется специальный объект языка программирования Запрос . Создается этот объект вызовом конструкции Новый Запрос . Запрос удобно использовать, когда требуется получ


1C и Google Maps 21
была поставлена задача отображения на географической карте медицинских учреждений. После обзора предлагаемых решений был выбран сервис google. Но так же подобного рода подход будет работать и с картами сервиса yandex. Во время решения задачи было реш


1С Предприятие что это? 12
Что такое 1С?
1С — это фирма , у которой одно из направлений деятельности — разработка программного обеспечения для автоматизации бизнес-процессов предприятий. « 1С:Предприятие » — конкретный продукт, который выпускает компания 1С .
Что такое


COM-подключение к базе 7.7 из 8.2 1С 6
Если код выполняется на стороне клиента, то необходимо наличие базы 7.7 на локальной машине.
Пример (На форме объекта присутствует реквизит Таблица(ТаблицаЗначений)):
НаКлиенте
Процедура Загрузки()
ПутьКБазе=» D:ВашаБаза1с77″ ;
Пользователь=


Excel файл как Внешний источник данных 16
Подключимся и загрузим из файла Excel данные в таблицу значений 1С. Сделать теперь это очень просто.
1. В конфигурации добавляет новый объект метаданных типа » Внешние источники данных» и назовем его просто » Excel» .
https://helpf.pro/uploads/img


Посмотреть все результаты поиска похожих


пятница, 3 января 2014 г.

Программно очистить реквизит в форме

Для того чтобы очистить реквизит в форме, следует присвоить этому реквизиту значение по умолчанию.
Например, для реквизита Контрагент имеющего тип СправочникСсылка.Контрагенты фрагмент кода будет выглядеть следующим образом:

Объект.Контрагент ПредопределенноеЗначение(«Справочник.Контрагенты.ПустаяСсылка»);


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

2 комментария
:

  1. Можно ещё так:
    Объект.Контрагент = Справочники.Контрагенты.ПустаяСсылка();
    ИЛИ
    Объект.Контрагент = ПредопределенноеЗначение(Объект.Контрагент.Метаданные().ПолноеИмя()+».ПустаяСсылка»));

    ОтветитьУдалить

  2. Объект.Контрагент = ПредопределенноеЗначение(Объект.Контрагент.Метаданные().ПолноеИмя()+».ПустаяСсылка»);

    ОтветитьУдалить

184 / 101 / 8

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

Сообщений: 782

1

Очищение всех реквизитов документа

10.03.2018, 18:34. Показов 10380. Ответов 1


Добрый день.
Подскажите, пожалуйста, как можно программно и разом почистить все реквизиты на форме. ТО есть у документа есть на УФ выведенные реквизиты и надо при нажатии на кнопку, что бы они все очистились.



0



GreenkA

Эксперт 1С

3051 / 1998 / 524

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

Сообщений: 6,964

10.03.2018, 19:20

2

ПростоЯ, универсальный код для любого объекта конфигурации(и не только документа):

1C
1
2
3
4
5
6
7
8
9
10
11
&НаКлиенте
Процедура ОчиститьРеквизиты(Команда)
    ОчиститьРеквизитыНаСервере();
КонецПроцедуры
 
&НаСервере
Процедура ОчиститьРеквизитыНаСервере()
    Для Каждого ТекРеквизит Из Объект.Ссылка.Метаданные().Реквизиты Цикл
        Объект[ТекРеквизит.Имя] = Неопределено;
    КонецЦикла;   
КонецПроцедуры



1



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

УдаляемыеРеквизитыТЗ = Новый Массив;
ТЗ = СтрокиРабочийТабель.Выгрузить();  // СтрокиРабочийТабель – это ТаблицаЗначений на форме
УдаляемыеРеквизитыТЗ.Добавить(СтрокиРабочийТабель.Линия1);  // добавляемв массив сначала реквизиты, который нужно удалить
Элементы.Удалить(Элементы[Линия1]);  // теперь добавляем в массив элементы формы, которые нужно удалить
ЭтаФорма.ИзменитьРеквизиты(, УдаляемыеРеквизитыТЗ);  //  непосредственное удаление реквизитов с помощью метода управляемой формы

Содержание

  1. Похожие FAQ
  2. Еще в этой же категории
  3. Работа с метаданными объекта 1С или как очистить все реквизиты и табличные части : 2 комментария

Для того чтобы очистить реквизит в форме, следует присвоить этому реквизиту значение по умолчанию. Например, для реквизита «Склад» имеющего тип » СправочникСсылка.Склады » фрагмент кода будет выглядеть следующим образом:

Как очистить реквизит формы, имеющий ссылочный тип?

Например: реквизит (имя Материал) имеет тип СправочникСсылка.Номенклатура, чтобы его очистить программно нужно выполнить следующий код:
Код 1C v 8.х

Для очистки ручками, нужно выделить реквизит и нажать Shift+F4

Похожие FAQ

Еще в этой же категории

Как на управляемой форме разместить список регистра сведений с отбором? 15
Решение рассмотрено для элемента справочника (Контрагент и регистр КонтактнаяИнформация) 1. Создание реквизита: Добавляем новый реквизит формы (. не путать с реквизитом справочника . ) с типом » ДинамическийСписок» В поле » Основная табли Поле выбора

Заполнение списка значений в элементе поле выбора на форме 10
//Заполнение списка перебором данных // Элемент формы МетаданныеВыбор имеет тип — Произвольный, Использование — Режим выбора из Списка, кнопка списка Для Каждого Метаданное из Метаданные.РегламентныеЗадания Цикл ЭлементыФормы.МетаданныеВыбор.Спи Как установить параметр динамического списка? 9
Когда используете для вывода данных динамический список и произвольный запрос, то бывают ситуации когда надо указать параметр используемый в этом запросе. Ниже пример вывода данных регистра сведений в карточке клиента Для вывода используется исп Как обновить динамический список или реквизит на форме клиента? 7
Если вы, открыв форму справочника или документа, выполнили некоторое действие, код который должен изменить состояние данных в динамических списках или значение реквизита. Данные изменены, но в открытой форме осталось все как было, можно конечно закр Форма

Программное создание таблицы значений с условным оформлением 6
Как создать на форме таблицу и сделать для нее подсветку содержимого колонки в строке по условию? Итак для начала нам надо добавить реквизиты в форму. Для этого у нас есть метод: ИзменитьРеквизиты(). Перед тем как его использовать мы сформируем ма Посмотреть все в категории Работа с Формой (Диалог) и её элементами

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

Поэтому необходим был механизм, который позволил бы получить полный список реквизитов и табличных частей. Для этого у объектов 1С существует встроенная функция Метаданные().

Эта функция возвращает значение особого типа — ОбъектМетаданных. В нем содержатся практически все свойства объекта. Например для элемента справочника это будут: длина наименования и кода, автонумерация, основные формы, вообще все существующие формы, представление объекта, иерархичность, макеты и многое другое.

В нашем случае потребуются Реквизиты и Табличные части. Эти компоненты метаданных содержат значение КоллекцияОбъектовМетаданных, которую можно обойти в цикле Для каждого.

У каждого из элементов коллекции тоже много свойств, в частности есть очень полезное свойство Тип, через которое можно получить тип того или иного реквизита. Полный список свойств можно узнать, например, в режиме отладки через команду Вычислить выражение. Мне же для обращения к реквизиту или табличной части потребуется свойство Имя.

В итоге модуль, очищающий реквизиты и табличные части, выглядит так:

Для Каждого Реквизит Из Контрагент . Метаданные ( ) . Реквизиты Цикл
Контрагент [ Реквизит . Имя ] = Неопределено ;
КонецЦикла ;

Для Каждого ТаблЧасть Из Контрагент . Метаданные ( ) . ТабличныеЧасти Цикл
Контрагент [ ТаблЧасть . Имя ] . Очистить ( ) ;
КонецЦикла ;

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

Приведенный в заметке пример — это только один из многочисленных способов применения функции Метаданные(). Другие варианты и проблемы с использованием метаданных готов обсудить в комментариях.

(1)>: Получение элемента по индексу для значения не определено

В какой строке возникает такая ошибка? Приведите весь код пожалуйста.

  • Распечатать

Оцените статью:

  1. 5
  2. 4
  3. 3
  4. 2
  5. 1

(0 голосов, среднее: 0 из 5)

Поделитесь с друзьями!

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

Введение в управляемая форма 1С реквизиты элементы команды

Рекомендуется модифицировать управляемые формы типового решения 1С программно для удобного будущего обновления и исключения конфликтов, а также для удобной работы с изменениями и надежности при использовании механизма расширений.
В некоторых типовых конфигурациях 1С (ЕРП 2, УТ 11) используется механизм упрощенного изменения конфигурации. Статьи о типовом механизме можно найти в разделе полезных ссылок. Данный механизм используется в БСП, и его необходимо знать при модификации типовых конфигураций.
При добавлении элементов на форму программно можно отредактировать практически любое свойство из панель свойств, которое можно установить вручную в конфигураторе.
Также все описанные в текущем разделе процедуры и функции находятся во внешней обработке УпрФормы.

Примеры работы с объектом «ДанныеФормыКоллекция» и созданием дин. списка и таблицы значений программно можно будет посмотреть в части 2.

Для запуска обработки в режиме предприятия необходимо наличие объектов «Справочники.Номенклатура», подчиненный ему «Справочники.ХарактеристикиНоменклатуры» и «РегистрыСведений.ЦеныНоменклатуры”.

Программное переопределение обработчиков событий формы и элементов формы

Переопределить обработчики событий формы можно в обработчике «ПриСозданииНаСервере» (кроме самого обрабочика «ПриСозданииНаСервере») или в теле модуля формы в контексте сервера (например, Переопределение событий ПриЧтениинаСервере и ПриСозданииНаСервере).

В теле модуля формы:

А в новой процедуре нужно добавить вызов основной, если такая процедура есть.

Аналогично можно поступить и с обработчиками элементов формы:

Программное создание групп формы.

Доступные виды групп формы:

удалить реквизиты формы программно

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

Удалить команду можно при помощи метода коллекции формы команд: Команды.Удалить( ). Удалять можно только те команды, которые были созданы программно.

Программное создание декораций форм.

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

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

Вывод реквизитов на форму.

Вызов процедур при создании на сервере 1С

После описания всех процедур выводим их в процедуре ПриСозданииНаСервере. Также можно изменить программно некоторые свойства формы, например, заголовок. Чтобы был виден только наш заголовок, нужно отключить свойство Автозаголовок.

Некоторые советы при программном редактировании формы

Итак, взглянем на получившийся результат. Все элементы на форме созданы программно:
удалить реквизиты формы программно

Источник

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

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

удалить реквизиты формы программно

Задача

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Источник

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

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

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

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

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

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

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

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

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

Внимание!

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

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

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

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

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

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

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

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

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

Внимание!

Внимание!

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

Остались вопросы?
Спросите в комментариях к статье.

2 комментария

Ваш текст:
В параметры ДобавляемыеРеквизиты и УдаляемыеРеквизиты передаются массивы с элементами типа РеквизитФормы.
Верный текст:
(необязательный)
Тип: Массив.
Массив, содержащий СТРОКИ, описывающие ПУТИ к удаляемым реквизитам.

Источник

Программная модификация управляемых форм

Одним из требований для прохождения аудита расширения в модели сервиса является программная модификация управляемых форм без заимствования самой формы в расширение.

Мы рассмотрим основные составляющие этой задачи: добавление реквизитов, добавление элементов формы и назначение обработчиков событий элементов формы.

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

Для добавления реквизитов используется метод объекта ФормаКлиентскогоПриложения

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

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

Данную процедуру можно заимствовать в расширение, добавить проверку имени формы и вставить код изменения реквизитов:

Для остальных конфигураций придется переопределять другие процедуры. Например

Использование той или иной процедуры следует проверить в модуле редактируемой формы.

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

Для добавления нового элемента формы требуется передать в функцию Добавить данной коллекции имя элемента, его тип и родителя (при необходимости). Например:

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

Обработка событий формы

Выполнить код по событию элемента формы можно двумя способами:

Для самых простых случаев (команда или событие без параметров) можно использовать следующие комбинации обработчиков и переопределяемых процедур:

При этом в предопределенной процедуре обязательно проверять имя команды (или имя элемента формы) и имя самой формы.

Либо вариант с использованием команд:

Полезные советы

Работа с динамическими списками

Переопределение открываемой формы

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

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

Источник

Программирование в 1С для всех

Из этой статьи вы узнаете, как в удалить в 1С объект при помощи программного кода, а также как поставить пометку на удаление.

В предыдущей статье, я рассказывал, как интерактивно удалить в 1С объект, и что для этого нужно настроить в правах конфигурации:

Программное удаление справочника в 1С

Для того чтобы программно удалить экземпляр справочника в 1С, необходимо воспользоваться методом Удалить объекта справочника. Для демонстрации разберу пример: разместим на форме обработки реквизит с ссылкой на справочник Контрагенты.

удалить реквизиты формы программно

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

В этом коде удаление экземпляра справочника я производил в серверном контексте. Сначала при помощи метода ПолучитьОбъект() из ссылки был получен экземпляр объекта справочника, а потом этот экземпляр удален при помощи метода Удалить(). В реквизит Контрагент управляемой формы я записал пустую ссылку, чтобы отображение ссылки удаленного объекта не вводило в заблуждение.

Замечу, что программное удаление произошло при таких правах на объект.

удалить реквизиты формы программно

Право «Интерактивное удаление» снято, то есть мы не можем непосредственно удалять экземпляр этого объекта, но мы можем удалить его программно (благодаря установленному праву Удалить).

Замечу, что при программном удалении объекта контроль ссылочной целостности не происходит! Поэтом не следует злоупотреблять этой возможностью!

Программное удаление документа в 1С

Документ программным способом удаляется также, как и справочник: нужно воспользоваться методом Удалить() экземпляра объекта документа. Например, на форме этой обработки я размещу реквизит с ссылкой на документ.

удалить реквизиты формы программно

А при выполнении команды документ будет удаляться.

Как и в случае справочника, программное удаление документа стало возможным благодаря установленному праву «Удалить».

удалить реквизиты формы программно

Пометка на удаление программно в 1С

Для того, чтобы программно пометить на удаление объект необходимо воспользоваться методом объекта УстановитьПометкуУдаления.

Для документов он имеет следующий синтаксис: УстановитьПометкуУдаления( ), где параметр ПометкаУдаления имеет тип булево.

Если — Истина, то пометка будет установлена, если Ложь – пометка будет снята.

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

удалить реквизиты формы программно

Одна команда будет устанавливать пометку на удаление у документа в реквизите, вторая снимать.

В этом коде, в процедуре УстановитьНаСервере() мы устанавливаем пометку на удаление, передав в метод УстановитьПометкуУдаления параметр Истина, а в процедуре СнятьНаСервере() снимаем пометку, передав Ложь.

Для объектов справочников метод УстановитьПометкуУдаления имеет следующий синтаксис:

Параметр ВключаяПодчиненные имеет тип Булево, и если установлено Истина, то будут помечены на удаление подчиненные элементы (если справочник иерархический), а также все объекты подчиненного справочника (если есть).

удалить реквизиты формы программно

В обработчиках команд будем устанавливать и снимать пометку на удаление.

У справочника Контрагенты включим иерархию.

удалить реквизиты формы программно

И также сделаем подчиненный справочник.

удалить реквизиты формы программно

Если мы установим пометку для группы с флажком подчиненные.

удалить реквизиты формы программно

То будет помечена группа и все входящие в неё объекты.

удалить реквизиты формы программно

А без установленного флага Подчиненные будет помечена только группа.

удалить реквизиты формы программно

Тоже самое с объектами из подчиненного справочника. При установленном флаге Подчиненные.

удалить реквизиты формы программно

Будет помечен на удаление и сам элемент справочника, и объекты подчиненного ему справочника.

удалить реквизиты формы программно

А иначе, будет помечен только сам элемент.

удалить реквизиты формы программно

Более подробно и основательно начальные вопросы программирования в 1С есть вы можете изучить в
Книга «Программировать в 1С за 11 шагов»

Изучайте программирование в 1С в месте с моей книгой «Программировать в 1С за 11 шагов»

удалить реквизиты формы программно

Книга написана понятным и простым языком — для новичка.

О том как разрабатывать под управляемым приложением 1С, читайте в книге Книга «Основы разработки в 1С: Такси»

Отличное пособие по разработке в управляемом приложении 1С, как для начинающих разработчиков, так и для опытных программистов.

удалить реквизиты формы программно

Промо-код на скидку в 15% — 48PVXHeYu

Эти книги, плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


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

можно оплатить вручную:

Яндекс.Деньги — 410012882996301
Web Money — R955262494655

Источник

Понравилась статья? Поделить с друзьями:
  • Как назвать компанию общественного питания
  • Как назвать ремонтно строительную компанию
  • Как назвать хозяйственный отдел в компании
  • Как назначить встречу в скайпе для бизнеса
  • Как назначить собрание в скайп для бизнеса