Проект

Общее

Профиль

Управляемые формы 1С » История » Версия 9

Всеволод Дорофеев, 12.02.2017 12:49

1 1 Всеволод Дорофеев
h1. Управляемые формы 1С
2 1 Всеволод Дорофеев
3 6 Всеволод Дорофеев
h3. 1. Как программно удалить текущую строку из табличной части документа?
4 3 Всеволод Дорофеев
5 1 Всеволод Дорофеев
Для этого следует воспользоваться методом Удалить() того объекта, который является источником данных для табличной части документа. Например, для документа "ПриходнаяНакладная" с табличной частью "Товары" это будет объект ДокументТабличнаяЧасть.ПриходнаяНакладная.Товары. В модуле формы этого документа удаление текущей строки табличной части будет выглядеть следующим образом:
6 1 Всеволод Дорофеев
7 7 Всеволод Дорофеев
<pre>
8 1 Всеволод Дорофеев
ДокументОбъект.Товары.Удалить(ЭлементыФормы.Товары.ТекущаяСтрока);
9 7 Всеволод Дорофеев
</pre>
10 1 Всеволод Дорофеев
11 1 Всеволод Дорофеев
В качестве параметра метода Удалить() передается текущая строка табличной части.
12 1 Всеволод Дорофеев
13 1 Всеволод Дорофеев
Обратите внимание, что для удаления (как и для добавления) строк табличной части документа следует использовать методы табличной части (ДокументОбъект.Товары), а не методы табличного поля, отображающего эту табличную часть (ЭлементыФормы.Товары).
14 1 Всеволод Дорофеев
http://its.1c.ru/db/metod8dev/content/2481/hdoc
15 4 Всеволод Дорофеев
16 6 Всеволод Дорофеев
h3. 2. Замена "Сообщить()"
17 5 Всеволод Дорофеев
18 2 Всеволод Дорофеев
Вариант 1.
19 2 Всеволод Дорофеев
<pre>
20 2 Всеволод Дорофеев
ПоказатьОповещениеПользователя(
21 2 Всеволод Дорофеев
	НСтр("ru = 'Изменения не зарегистрированы.'")
22 2 Всеволод Дорофеев
	,,,
23 2 Всеволод Дорофеев
	БиблиотекаКартинок.Информация32);
24 2 Всеволод Дорофеев
</pre>
25 2 Всеволод Дорофеев
26 2 Всеволод Дорофеев
Вариант 2.
27 2 Всеволод Дорофеев
<pre>
28 2 Всеволод Дорофеев
    Сообщение = Новый СообщениеПользователю();
29 2 Всеволод Дорофеев
    Сообщение.Текст = "В строке 11 табличной части ""Номенклатура"" не хватает ";
30 2 Всеволод Дорофеев
    Сообщение.Поле = "Номенклатура";
31 2 Всеволод Дорофеев
32 2 Всеволод Дорофеев
    // Привязка объекта к реквизиту формы произойдет за счет
33 2 Всеволод Дорофеев
    // установленного выше по стеку соответствия методом
34 2 Всеволод Дорофеев
    // УстановитьСоответствиеОбъектаИРеквизитаФормы
35 2 Всеволод Дорофеев
    Сообщение.УстановитьДанные(ОбъектДанных);
36 2 Всеволод Дорофеев
    // Теперь у сообщения заполнено поле ПутьКДанным (установлено имя реквизита формы, до этого была пустая строка),
37 2 Всеволод Дорофеев
    // и свойство КлючДанных (установлена ссылка на документ, до этого было Неопределено)
38 2 Всеволод Дорофеев
39 2 Всеволод Дорофеев
    // Сообщение выводится пользователю
40 2 Всеволод Дорофеев
    Сообщение.Сообщить();	
41 5 Всеволод Дорофеев
</pre>
42 8 Всеволод Дорофеев
43 9 Всеволод Дорофеев
h3. 3. Открытие управляемой формы не записанного документа в 1С 8.2/8.3
44 8 Всеволод Дорофеев
45 8 Всеволод Дорофеев
<pre>
46 8 Всеволод Дорофеев
&НаКлиенте
47 8 Всеволод Дорофеев
Процедура КомандаОткрытьФорму(Команда)
48 8 Всеволод Дорофеев
	Форма = ПолучитьФорму("Справочник.Пользователи.ФормаОбъекта");
49 8 Всеволод Дорофеев
	ДанныеФормы = Форма.Объект;
50 8 Всеволод Дорофеев
	ЗаполнитьНаСервере(ДанныеФормы);
51 8 Всеволод Дорофеев
	КопироватьДанныеФормы(ДанныеФормы, Форма.Объект);
52 8 Всеволод Дорофеев
	Форма.Открыть();
53 8 Всеволод Дорофеев
КонецПроцедуры
54 8 Всеволод Дорофеев
55 8 Всеволод Дорофеев
&НаСервереБезКонтекста
56 8 Всеволод Дорофеев
Процедура ЗаполнитьНаСервере(НовыйОбъект);
57 8 Всеволод Дорофеев
        НовыйОбъект.Наименование = "Новый элемент";
58 8 Всеволод Дорофеев
	Для К=1 По 100 Цикл
59 8 Всеволод Дорофеев
	 	НоваяСтрока = НовыйОбъект.ТЧ.Добавить();
60 8 Всеволод Дорофеев
		НоваяСтрока.РеквизитТЧ = К;
61 8 Всеволод Дорофеев
	КонецЦикла; 
62 8 Всеволод Дорофеев
КонецПроцедуры
63 8 Всеволод Дорофеев
</pre>