Обращение к реквизитам документа в модуле формы

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

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


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

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

ПоставщикДокумента = Объект.Поставщик; 

Обращение к реквизиту.

Я
   Novostruev

03.08.13 — 14:55

Добрый день. Недавно начал изучать 1С и вот такой вопрос возник:

Имеется справочник Контрагент, с реквизитом ПроцентСкидки.

Также имеется документ ПриходнаяНакладная, с реквизитом Контрагент (с ссылкой на справочник).

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

И второй небольшой вопрос. Опять же в форме, я могу обратиться «Элементы.Контрагент» и «объект.Контрагент». В чем разница между ними, к чем у я именно обращаюсь в этих случаях ??

  

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

   GROOVY

1 — 03.08.13 — 15:28

Элементы.Контрагент — это элемент формы. Его можно скрыть, сделать недоступным, покрасить в разные цвета.

Объект.Контрагент — это данные формы. Данные формы содержат ссылку на элемент справочника и его представление.

Именно передавая в серверную процедуру данные формы — мы можем по ссылке получить значения реквизитов.

   Novostruev

2 — 04.08.13 — 08:48

Спасибо большое за пояснение, все работает =)

   Novostruev

3 — 04.08.13 — 10:16

Решил не создавать новую тему, вопрос тот же, но уже связан с табличной частью документа.

Документ  ПриходнаяНакладаная.

Табличная часть — СписокНоменклатры.

При изменении поля Номенклатура из ТабЧасти, должна возвращаться цена продажи из справочника. С простым полем выбора(1 случай) у меня срабтало, а вот с ТЧ не получается.

обращаюсь —

ЦенаТовара = РаботаСоСправочниками.УзнатьЦенуТовара(Объект.СписокНоменклатуры.Номенклатура);

Не видит поле номенклатура.(хотя вроде как передаю ссылку на нее)

пробовал обращаться по номеру строки. Не видит реквизит справочника — ЦенаТовара.

НомерСтроки = Элементы.СписокНоменклатуры.ТекущаяСтрока;

    ЦенаТовара = РаботаСоСправочниками.УзнатьЦенуТовара(Объект.СписокНоменклатуры.НайтиПоИдентификатору(НомерСтроки));

Так как же в ТЧ теперь получить ссылку на справочник ?? =)

   Ковычки

4 — 04.08.13 — 10:41

все делается без изменений конфигурации

   Novostruev

5 — 04.08.13 — 11:13

Так почему-то не делается. Ошибку выдает. Где я не так написал ??

   Orfin

6 — 04.08.13 — 11:35

Может так?

НомерСтроки = Элементы.СписокНоменклатуры.ТекущаяСтрока.НомерСтроки;

ЦенаТовара = РаботаСоСправочниками.УзнатьЦенуТовара(Объект.СписокНоменклатуры.НайтиПоИдентификатору(НомерСтроки));

   Novostruev

7 — 04.08.13 — 11:53

пишет ошибку ((

{Документ.РасходнаяНакладная.Форма.ФормаДокумента.Форма(10)}: Значение не является значением объектного типа (НомерСтроки)

    НомерСтроки = Элементы.СписокНоменклатуры.ТекущаяСтрока.НомерСтроки;

   Капитан О

8 — 04.08.13 — 11:56

&НаКлиенте

Процедура ТоварыСтрокаТЧПриИзменении(Элемент)

    КлиентскийМодуль.РассчитатьСтоимость(Элементы.Товары.ТекущиеДанные);

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

Процедура РассчитатьСтоимость(СтрокаТЧ) Экспорт

    СтрокаТЧ.Стоимость=СтрокаТЧ.Количество*СтрокаТЧ.Цена;

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

   Novostruev

9 — 04.08.13 — 12:02

Мне не нужно считать стоимость. Мне нужно получиться в из ТабличнойЧасти получить ссылку на реквизит справочника. С полем ввода у меня получилось, но вот с ТЧ выдает почему-то ошибку

   Novostruev

10 — 04.08.13 — 12:03

*Мне нужно получить из ТабличнойЧасти ссылку на реквизит

   Капитан О

11 — 04.08.13 — 12:06

(9) не нужно считать стоимость — не считай

   Novostruev

12 — 04.08.13 — 12:21

Мне не элемент формы нужен, а ссылка на реквизит справочника Номенклатура. Обратиться к этому реквизиту я могу через серверную функцию с ссылкой на элемент этого справочника. Так вот как именно получить эту ссылку из ТЧ ???

   Капитан О

13 — 04.08.13 — 12:23

(12) я ни хрена не понял. вон тебе в качестве примера обращение к цене, количеству и стоимость текущей строки ТЧ. сформулируй вопрос

   Любопытная

14 — 04.08.13 — 12:24

(12) на сервер отправь свою текущую строку, а на сервере уще СтрокаТЧ.Номенклатура и будет ссылка на элемент справочника. Что непонятно?

   Капитан О

15 — 04.08.13 — 12:28

(14) дык ссылка бывает не только на сервере

   Любопытная

16 — 04.08.13 — 12:32

(15) ты внимательно читай (12): «Обратиться к этому реквизиту я могу через серверную функцию…» Он один хрен на сервер пойдет, пусть сразу туда все тащит

   Капитан О

17 — 04.08.13 — 12:35

(16) да, ты права

(12) отдавай на сервер свою номенклатуру

   Novostruev

18 — 04.08.13 — 12:40

Сейчас все заново опишу, чего мне не понятно.

в Документе в ТабличнойЧасти нужно при изменении Номенклатуры получить значение реквизита ЦенаПродажи из справочника Номенклатура.

На клиенте есть только ссылка на справочник. А значение реквизита справочника ЦенаПродажи я получу через серверную функцию, так как на клиенте к нему нет доступа.(Ответ на самый первый мой пост). Мне нужна ссылка не на строку ТабличнойЧасти , а на реквизит справочника. До этого я заполнил поле Контрагент(поле выбора) и обращался к нему Объект.Контрагент — вот ссылка на элемент справочника Контрагент, и на серверной функции я считал его резквизит. Это работает. Но вот как получить ссылку на элемент справочника, но уже из ТЧ ??

код в модуле формы:

&НаКлиенте

Процедура СписокНоменклатурыНоменклатураПриИзменении(Элемент)

    СтрокаТЧ = Элементы.СписокНоменклатуры.ТекущиеДанные;

    ЦенаТовара = РаботаСоСправочниками.УзнатьЦенуТовара(СтрокаТЧ);

    СтрокаТЧ.Цена = ЦенаТовара*(100-ПроцентСкидки)/100;

    РаботаСДокументами.РасчитатьСумму(СтрокаТЧ);

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

А вот серверная функция :

Функция УзнатьЦенуТовара(Товар) Экспорт

    Возврат Товар.ЦенаПродажи;

КонецФункции

   Капитан О

19 — 04.08.13 — 12:41

(18) нельзя цену продажи хранить в реквизите элемента. дальше советовать не вижу смысла

   Капитан О

20 — 04.08.13 — 12:43

(19) хотя, не, вижу. ПолучитьПродажнуюЦену(Номенклатура) всего-то нужно переписать. и отдавать ей номенклатуру из текущей строки, а не всю строку целиком

   Novostruev

21 — 04.08.13 — 12:47

Вот я подаю сроку

ЦенаТовара = РаботаСоСправочниками.УзнатьЦенуТовара(СтрокаТЧ.Номенклатура);

а как функцию переписать ?? Что ей не хватает ??

   Капитан О

22 — 04.08.13 — 12:52

(21) запроса к РС ЦеныНоменклатуры ей не хватает

   Novostruev

23 — 04.08.13 — 12:54

Запросом ?? я просто хотел без него попробовать, как с полем Контрагент, просто передать ссыль и считать реквизит, ну да ладно, запросом, так запросом. Спасибо большое за терпение ))

  

Капитан О

24 — 04.08.13 — 12:56

(23) осмысли (19)

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

Автор Andrepan, 23 янв 2017, 11:06

0 Пользователей и 1 гость просматривают эту тему.

Здравствуйте! Подскажите пожалуйста, как обратиться к реквизитам справочника из модуля формы документа. Есть табличная часть документа, в которой производится отбор номенклатуры товара по поставщикам из справочника НоменклатураПоставщиков. Нужно, чтобы при записи номенклатуры в документе, из соответствующих реквизитов Справочника поставщиков переносились в ячейки таблицы Документа характеристики товаров.
Делаю ПриИзменении (для записи Номенклатуры в документе) и объявляю переменную

СтрокаТабличнойЧасти = Элементы.ПриложениеКЗаявлению.ТекущиеДанные;
СтрокаТабличнойЧасти.ТНВД = ??


Если долго всматриваться в учебник…то в голову может прийти мысль его открыть!




Цитата: Andrepan от 23 янв 2017, 13:06Объект — Имя справочника справочника, реквизит — необходимый реквизит??

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

Спасибо за Сказать спасибо


...
СтрокаТабличнойЧасти = Элементы.ПриложениеКЗаявлению.ТекущиеДанные;
СтруктураРеквизитов = ПолучитьСтруктуруРеквизитов(СтрокаТабличнойЧасти.Номенклатура);
СтрокаТабличнойЧасти.ТНВД = СтруктураРеквизитов.ТНВД;
СтрокаТабличнойЧасти.ЛюбойРеквизитНоменклатуры = СтруктураРеквизитов.ЛюбойРеквизитНоменклатуры;
...

&НаСервере
Функция ПолучитьСтруктуруРеквизитов(НоменклатураСсылка)
    СтруктураРеквизитов = Новый Структура;
    СтруктураРеквизитов.Вставить("ТНВД", НоменклатураСсылка.ТНВД);
    СтруктураРеквизитов.Вставить("ЛюбойРеквизитНоменклатуры", НоменклатураСсылка.ЛюбойРеквизитНоменклатуры);
    Возврат СтруктураРеквизитов;
КонецФункции

Правило поведения на форуме №6: Не следует пытаться привлечь внимание к своему сообщению … рассылкой персональных сообщений и/или электронных писем отдельным участникам форума с просьбой ответить в теме.


Цитата: Golickoff от 24 янв 2017, 05:01
...
СтрокаТабличнойЧасти = Элементы.ПриложениеКЗаявлению.ТекущиеДанные;
СтруктураРеквизитов = ПолучитьСтруктуруРеквизитов(СтрокаТабличнойЧасти.Номенклатура);
СтрокаТабличнойЧасти.ТНВД = СтруктураРеквизитов.ТНВД;
СтрокаТабличнойЧасти.ЛюбойРеквизитНоменклатуры = СтруктураРеквизитов.ЛюбойРеквизитНоменклатуры;
...
&НаСервере
Функция ПолучитьСтруктуруРеквизитов(НоменклатураСсылка)
    СтруктураРеквизитов = Новый Структура;
    СтруктураРеквизитов.Вставить("ТНВД", НоменклатураСсылка.ТНВД);
    СтруктураРеквизитов.Вставить("ЛюбойРеквизитНоменклатуры", НоменклатураСсылка.ЛюбойРеквизитНоменклатуры);
    Возврат СтруктураРеквизитов;
КонецФункции

Спасибо большое! Все получилось.


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


ПолучениеСправочника = Справочники.НужныСправочник.НайтиПоНаименованию(«наименование»).ПолучитьОбъект;

И Потом ПолучениеСправочника.НужныйВамРеквизит;

Но такой скрипт выполняется только на стороне сервера


То есть, я из процедуры модуля формы:

Процедура ПриложениеКЗаявлениюНоменклатураТоваровПриИзменении(Элемент)

Должен вызвать Функцию на сервере в которой будет выполняться данный скрипт?


Котовчанин

942 / 482 / 200

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

Сообщений: 3,338

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

1

Обращение к реквизиту ТЧ

23.03.2016, 14:46. Показов 25752. Ответов 8


Плаваю ещё в 1С программировании…
Как в модуле формы документа обратиться к реквизиту табличной части этого документа?



0



286 / 186 / 18

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

Сообщений: 925

23.03.2016, 14:57

2

для чего это необходимо? что делать будете с реквизитом тч?



1



GreenkA

Эксперт 1С

3051 / 1998 / 524

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

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

23.03.2016, 16:17

3

Тамика, для изменения текущей строки

1C
1
2
ТекСтрока = Элементы[ИмяТабличнойЧасти].ТекущиеДанные;
ТекСтрока.Количество = 5;//где Количество - реквизит табличной части

для прохождения по всем строкам используйте цикл:

1C
1
2
3
Для Каждого ТекСтрока из Объект[ИмяТабличнойЧасти] Цикл
 ТекСтрока.Количество =5;
КонецЦикла;

для добавления новой строки:

1C
1
2
НовСтрока = Объект[ИмяТабличнойЧасти].Добавить();
НовСтрока.Количество =5;



1



Котовчанин

942 / 482 / 200

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

Сообщений: 3,338

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

23.03.2016, 17:38

 [ТС]

4

GreenkO, прошу прощения, но у меня снова ступор. Сбросила конфигурацию(не знаю верно ли выгрузила…). Проблема с документом НачисленияЗарплат. В модуле объекта я сделала автоподстановку оклада по фамилии… То есть, при выборе фамилии поле СтавкаЗаМесяц должно заполнится само. А оно мало того, что не заполняется, так ещё отладчик показал, что даже не заходит в функцию ПриИзменении… Тестовая База 1.rar



0



Эксперт 1С

3051 / 1998 / 524

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

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

23.03.2016, 18:43

5

Тамика, у меня проблемы при загрузке конфигурации из файлов. На Configuration.xml выдает несоответствие XDTO.
Можете выгрузить конфигурацию одним файлом(Конфигурация — Сохранить конфигурацию в файл)? Или базу(Администрирование — Выгрузить информационную базу).



0



Котовчанин

942 / 482 / 200

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

Сообщений: 3,338

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

23.03.2016, 18:51

 [ТС]

6



0



Эксперт 1С

3051 / 1998 / 524

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

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

23.03.2016, 18:57

7

Тамика, а можете перед выгрузкой установить режим совместимости? У вас платформа 8.3.7, у меня 8.3.6, не открывает. После выгрузки можно будет все вернуть.

Миниатюры

Обращение к реквизиту ТЧ
 



0



Котовчанин

942 / 482 / 200

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

Сообщений: 3,338

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

23.03.2016, 19:52

 [ТС]

8

Поставила режим совместимости с 8.3.6. Или всё-таки лучше поставить с 8.3.4?



0



GreenkA

Эксперт 1С

3051 / 1998 / 524

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

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

23.03.2016, 20:12

9

Лучший ответ Сообщение было отмечено Тамика как решение

Решение

Тамика, события элементов формы описываются &НаКлиенте(так было и по умолчанию, вы видимо изменили). Обращение к данным регистра сведений происходит &НаСервере, т.е. вам надо было вызвать функцию на сервере для получения ставки.
По работе с регистром сведений — есть такая функция ПолучитьПоследнее(…) — она сразу дает вам последнюю запись по регистру по заданному отбору.
Пользуйтесь синтакс-помощником, там так же описано, где можно вызывать определенные методы и получать свойства.

Измененный код:

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
&НаКлиенте
Процедура НачислениеЗарплатФИОПриИзменении(Элемент)
    ТекСтрока = Элемент.Родитель.ТекущиеДанные; //Элемент.Родитель = Табличная часть документа, получаем текущую строку 
    ТекСтрока.СтавкаЗаМесяц = ПолучитьСтавкуЗаМесяцНаСервере(ТекСтрока.ФИО);
КонецПроцедуры
 
&НаСервере
Функция  ПолучитьСтавкуЗаМесяцНаСервере(ФИО)
    Отбор = Новый Структура;
    Отбор.Вставить("Сотрудник", ФИО);
    ОкладыСотрудника = РегистрыСведений.ДанныеОСотрудниках.ПолучитьПоследнее(Объект.Дата, Отбор); 
    
    Если ОкладыСотрудника.Количество() = 0 Тогда
        Сообщить("Нет записей");
        Возврат 0;
    Иначе  
        Возврат ОкладыСотрудника.Оклад;
    КонецЕсли;
КонецФункции



1



Знакомство с управляемой формой 1С лучше всего начинать с реквизитов. Что такое реквизит управляемой формы?  По своей сути, это данные, которые привязаны именно к форме: они создаются, хранятся, отображаются (по возможности) и редактируются на форме. Вне контекста формы эти данные не могут существовать. Сам по себе реквизит не может отображаться на форме. Для этого служат элементы формы, которые связаны с реквизитами форм.

Научимся создавать простые реквизиты формы и размещать их на форме.

Управляемое приложение 1С 8.3

Для этого в конфигураторе 1С создадим пустую форму. Пусть это будет форма некой внешней обработки. В этой форме нас интересует закладка Реквизиты

Пустая управляемая форма

В этой закладке сейчас только один реквизит – основной. Он нас пока не интересует, работа с основным реквизитом эта тема отдельной статьи. Пока разберемся с простыми реквизитами.

Для того, чтобы добавить реквизит необходимо нажать на кнопку «Добавить реквизит» командной панели закладки «Реквизиты»

Добавить реквизит управляемой формы

После этого будет добавлен реквизит управляемой формы 1С с типом по умолчанию (строка) и справа откроется палитра свойств этого реквизита.

Палитра свойств реквизита управляемой формы

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

Для тренировки создадим четыре реквизита с типом строка:  Фамилия, Имя, Отчество и ФИО. И один реквизит с типом дата: ДатаРождения.

Реквизиты на управляемой форме

Разместим реквизиты на форме. Сделать это просто: необходимо нужный реквизит мышкой «перетащить»  из закладки «Реквизиты» на закладку «Элементы»

Перетаскиваем реквизит в элементыПеретащим все реквизиты на формы, и с помощью кнопок «Вверх», «Вниз» удобно расположим их на форме.

Реквизиты на управляемой форме 1С

Сейчас мы сделали такую примитивную форму, на которой расположили реквизиты. После того, как мы «перетащили»  реквизит в элементы, то на форме был создан элемент формы. В нашем случае это поле формы. Если мы сейчас зайдем в палитру свойств поля ввода, то увидим, что он связан с реквизитом посредством  свойства ПутьКДанным.

Свойство ПутьКДанным элемента формы

Если нажать на кнопку «…» свойства ПутьКДанным, то у разработчика есть возможность поменять привязанный к этому элементу реквизит формы.

Изменяем свойство ПутьКДанным элемента формы

Сейчас научимся использовать реквизиты в программном коде. Из статьи, посвященной архитектуре управляемой формы 1С 8.3 Вы знаете, что выполнение кода на форме возможно под директивами &НаКлиенте &НаСервере и  &НаСервереБезКонтекста.  Доступ к реквизитам формы возможен только в процедурах и функциях, которые выполняются на &НаКлиенте и &НаСервере.

Для наглядности выполним небольшую задачу: создадим команду, при выполнении которой Фамилия, Имя, Отчество и дата Рождения будут складываться в ФИО + Дата рождения.

Создадим локальную команду формы. Для этого на закладке «Команды» в подзакладке «Команды формы» необходимо нажать на кнопку «Добавить»

Добавление команды управляемой формы 1С

После создания команды, справа откроется палитра свойств новой команды, где мы зададим её название.

Название команды управляемой формы 1С

Но команда – это выполнение некоторых действий на форме.  Чтобы действия осуществились необходимо создать обработчик команды. Для создания обработчика команды нужно нажать на кнопку «Лупа» свойства действия. После этого откроется окно выбора места размещения обработчика.

Выбор расположения обработчика команды управляемой формы

Мы выберем расположение НаКлиенте, поскольку для тех действий, которые мы хотим осуществить вполне хватит клиентского контекста.

После выбора места расположения обработчика, в модуле формы будет создана процедура под директивой &НаКлиенте, в которой мы напишем несложный код. В этом коде к реквизитам формы мы будем обращаться просто как к переменным. Мы можем это делать в клиентском и серверном контексте.

&НаКлиенте
Процедура СформироватьФИО(Команда)

    ФИО = Фамилия + " " +
               Имя + " " +
               Отчество + ", д.р. " +

    Формат(ДатаРождения, "ДЛФ=D");

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

В этом коде, я преобразовал дату в строку при помощи функции формат.

Обратите внимание, после создание процедуры в палитре свойств команды свойство Действие заполнилось названием нашей новой процедуры.

Свойство Действие команды управляемой формы

И последним шагом нам осталось нашу команду разместить на управляемой форме. Просто перетащим её мышкой в закладку Элементы

Перетаскиваем команду в закладки Элементы

При этом на форме появится кнопка.

Сохраним обработку и попробуем выполнить нашу команду.

Работа команды на управляемой форме

Как видите, к реквизитам формы в модуле формы можно обращаться напрямую, как к переменным, но только если процедура или функция выполняется под директивами &НаКлиенте и &НаСервере.

Управляемое приложение 1С 8.3

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

Книга «Основы разработки в 1С: Такси»

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

  1. Без сложных технических терминов;
  2. Более 600 страниц практического материала;
  3. Каждый пример сопровождается рисунком (скриншот);
  4. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!

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

Изучайте основы конфигурирования в 1С и учитесь программировать в «1С: Предприятии» с помощью моих книг: «Программировать в 1С за 11 шагов» и «Основы разработки в 1С: Такси»

Книга «Программировать в 1С за 11 шагов»

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

  1. Книга написана понятным и простым языком — для новичка.
  2. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!
  3. Научитесь понимать архитектуру 1С;
  4. Станете писать код на языке 1С;
  5. Освоите основные приемы программирования;
  6. Закрепите полученные знания при помощи задачника;


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

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

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

Вступайте в мои группы в соцсетях, и будьте в курсе всех новостей

Вконтакте: https://vk.com/1c_prosto
Фейсбуке: https://www.facebook.com/groups/922972144448119/
ОК: http://ok.ru/group/52970839015518
Твиттер: https://twitter.com/signum2009

На обычных формах (не управляемые) контекст основного реквизита (в данном случае СправочникОбъект.Номенклатура) дополняет контекст самой формы. Т.е. если в тексте модуля формы явно не определять переменные Артикул, НоменклатурнаяГруппа и т.д. , а сразу начать их читать или заполнять значениями — работа будет идти напрямую с одноименными реквизитами редактируемого объекта.

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

Если поле ввода находится в коллекции (к примеру, является колонкой в табличном поле, которое связано с табличной частью), то доступ немного усложняется и будет в духе: ЭлементыФормы.Товары.Колонки.Цена

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

ЭтаФорма

Используется в модуле формы, в процедурах &НаКлиенте и &НаСервере.

Позволяет обращаться и к элементам формы и к реквизитам.

Обращение к элементу формы происходит через объект Элементы и выглядит так:

ЭтаФорма.Элементы.НомерВерсии.Заголовок = «v.»+ВерсияПрограммы;

Обращение к реквизиту, существующему на форме, происходит так:

ЭтаФорма.ТекстОбъявления=»Здравствуйте, товарищи!»;

Упрощенное обращение к элементам формы и реквизитам

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

// Элемент формы

Элементы.НомерВерсии.Заголовок = «v.»+ВерсияПрограммы;

// Реквизит формы

ТекстОбъявления=»Здравствуйте, товарищи!»;

Особенности получения реквизитов форм (важно!)

Если реквизит формы имеет простой тип — Строка, Число, Дата… то получить (установить) значение реквизита можно просто по имени:

Текст=НаименованиеТовара; // Наименование товара — это реквизит формы

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

Чтобы получить значение реквизита со «сложным» типом, нужно воспользоваться функцией РеквизитФормыВЗначение():

ТекущаяТаблица=РеквизитФормыВЗначение(«ВыбранныеОбъектыСтроительства»);

Для установки значения «сложного» реквизита, можно воспользоваться функцией ЗначениеВРеквизитФормы(<Значение>, <ИмяРеквизита>), оба параметра обязательны.

Функции РеквизитФормыВЗначение() и ЗначениеВРеквизитФормы() доступны только на Сервере.

Объект

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

Например, можно получать ссылку на текущий открытый элемент справочника:

СсылкаНаТекущийЭлемент=Объект.Ссылка;

или, более полная запись:

СсылкаНаТекущийЭлемент=ЭтаФорма.Объект.Ссылка;

ЭтотОбъект

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

Использование: Только чтение.

Доступность: Сервер, толстый клиент, внешнее соединение.

Знаете ли вы, что:

Платформа 1С — это не только бухгалтерский учет! В интернете давно зарекомендавала себя платформа для создания сайтов 1С-Битрикс. На портале https://hrustalev.com можно заказать готовый сайт для любого направления бизнеса, созданный на платформе 1С-Битрикс. Совместимость с 1С гарантирована.

Понравилась статья? Поделить с друзьями:
  • Ооо группа компаний чистый город инн 3435085647
  • Обрешетка в транспортной компании что это такое
  • Оао витебская бройлерная птицефабрика реквизиты
  • Ооо дальневосточная горно строительная компания
  • Обследование бизнес процессов для автоматизации