Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как считать значение реквизита на управляемой форме?
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
OLL
Здравствуйте!!
Никак не могу узнать значение реквизита на управляемой форме.....

Мне нужно узнать дату, которую только-что указали в реквизите ДатаОклада на управляемой форме, перед проведением....
тоесть, как-бы так, в модуле объекта документа, в процедуре ОбработкаПроведения:
1.сначала считать дату с формы...как???
2. проверить ее
3. провести документ


только начала учить 1с((( помогите пожалуйста)
logist
Цитата(OLL @ 23.10.11, 22:59) необходимо зарегистрироваться для просмотра ссылки
1.сначала считать дату с формы...как???

Никак. Хотя можете ПриЗаписи формы передать ее в Хранилище, а при проведении считать от туда. Только это через Ж

Цитата(OLL @ 23.10.11, 22:59) необходимо зарегистрироваться для просмотра ссылки
только начала учить 1с((( помогите пожалуйста)

У Вас вероятно сама реализация задачи не правильно построена. Зачем при проведении использовать данные которые не хранятся в самом объекте (вероятно ж дата не является расчетным значением)?
OLL
хорошо, спасибо...я поняла...)))

тогда скажите пожалуйста, как мне просто обратиться к этому реквизиту? можно ли это сделать?)) спасибо!!
logist
Цитата(OLL @ 23.10.11, 23:29) необходимо зарегистрироваться для просмотра ссылки
тогда скажите пожалуйста, как мне просто обратиться к этому реквизиту? можно ли это сделать?)) спасибо!!

Ну написал же, "просто" нельзя из модуля объекта обратиться к реквизиту формы.
В модуле формы он доступен по своему имени или ЭтаФорма.ИмяРевизита
DartRomanius
Ээээ... тут наверное в корне неправильно вопрос поставлен.

Для топик-стартера -

Для управляемых форм следует вбить в голову что:

имеем 3-х-уровневую архитектуру.
следовательно - есть понятия

данные формы на клиенте (практически не имеют отношения к фактическим данным, только видимая часть).
данные формы на сервере (имеют отношения к данным, но скорее к конкретному объекту данных).
собственно уровень данных базы.

Следовательно все изменения касающиеся работы с визуальной частью следует размещать в 1-м случае (за исключением доступа к реальным данным)

Грубо в касательстве документа выглядит так:
Модуль объекта -> Модуль формы (серверная часть) -> Модуль формы (клиентская часть).

ЗЫ: То есть на модуле формы (клиентская часть) невозможна такая конструкция:
СтороннийОбъектСсылка.РеквизитСтороннегоОбъекта
vbi
А в самом документе (не на форме) есть такой реквизит "ДатаОклада"? Если нет - создайте его, свяжите с тем что на форме и будет Вам счастье!
А лучше:
1. Найдите Ваш документ в конфигураторе, раскройте все плюсики (реквизиты, формы, макеты)
2. Сделайте скриншот этого всего и сюда

Цитата
Мне нужно узнать дату, которую только-что указали в реквизите ДатаОклада на управляемой форме, перед проведением....


3. Код "узнавания даты" тоже сюда smile.gif
kivals
Чтобы при записи в модуле объекта проверить изменение реквизита (независимо от метода изменения и клиента) нужно понимать, что
а) ЭтотОбъект содержит новые (измененные) данные
б) Ссылка содержит данные, сохраненные в БД
Таким образом сравнение
ЭтотОбъект.НужныйРеквизит = ЭтотОбъект.Ссылка.НужныйРеквизит
даст Истина если реквизит не менялся
(можно записать проще: НужныйРеквизит = Ссылка.НужныйРеквизит, т.к. в модуле объекта мы и так к объекту обращаемся, но ИМХО с ЭтотОбъект нагляднее)

P.S. Я пользуюсь этим методом в событии ПередЗаписью, так что в событии ПриЗаписи его не проверял, а ПослеЗаписи он точно не работает
logist
Цитата(kivals @ 27.10.11, 18:25) необходимо зарегистрироваться для просмотра ссылки
Чтобы при записи в модуле объекта проверить изменение реквизита (независимо от метода изменения и клиента) нужно понимать, что
а) ЭтотОбъект содержит новые (измененные) данные
б) Ссылка содержит данные, сохраненные в БД
Таким образом сравнение
ЭтотОбъект.НужныйРеквизит = ЭтотОбъект.Ссылка.НужныйРеквизит
даст Истина если реквизит не менялся
(можно записать проще: НужныйРеквизит = Ссылка.НужныйРеквизит, т.к. в модуле объекта мы и так к объекту обращаемся, но ИМХО с ЭтотОбъект нагляднее)

P.S. Я пользуюсь этим методом в событии ПередЗаписью, так что в событии ПриЗаписи его не проверял, а ПослеЗаписи он точно не работает

kivals, у Вас там что 1с 9.0??? Почему у меня ЭтотОбъект НЕ содержит реквизит формы?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.