Как проверить объект на модифицированность(), при вводе на основании? #664056


#0 by SherifSP
Как проверить объект на модифицированность, при вводе на основании?
#1 by cw014
Зачем?
#2 by cw014
Нет, не так... Да...
#3 by SherifSP
Пользователь изменил реквизит на форме и при вводе на основании, в документ основание подтягивается старый реквизит, нужно отловить модифицированность и дать пользователю сообщение, чтобы записал документ
#4 by cw014
При открытии формы создавай ключ уникальности у нее. При вводе на основании ищи форму с этим ключом. Если форма найдена, она открыта и модифицированна - тогда швах
#5 by SherifSP
Вот что то нашел ДанныеЗаполнения.ПолучитьФорму.ЭтотОбъект.Модифицированность )))
#6 by SherifSP
+ Ток не понятно что такое ДанныеЗаполнения
#7 by cw014
ДанныеЗаполнения - произвольный объект, который может быть "Неопределено", "Структура", "Объект" ну или любой другой параметр
#8 by cw014
Кстати, если док не сохранен, в ДанныеЗаполнения объект до изменения
#9 by SherifSP
А если так Основание.ПолучитьФорму.ЭтотОбъект.Модифицированность ?
#10 by cw014
Если юзверь открыл форму но еще не записал ее - в базе данных старые данные. Поэтому получая ссылку или объект этого добра - ты получаешь данные, а форма создается с новым ключем уникальности.
#11 by SherifSP
Как можно прервать процедуру ввода на основании? Возврат; не предлагать)
#12 by Ненавижу 1С
в модуле формы перед открытием
#13 by SherifSP
Нужно в процедуре ОбработкаЗаполнения
#14 by ssh2012
ВызватьИсключение("еба!")
#15 by cw014
ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>) ОбработкаЗаполнения (Filling) Синтаксис: ОбработкаЗаполнения(<ДанныеЗаполнения>, <СтандартнаяОбработка>) Параметры: <ДанныеЗаполнения> Тип: Произвольный. Значение, которое используется как основание для заполнения. Если обработчик вызван при выполнении метода Заполнить, параметр равен параметру "Данные заполнения" метода Заполнить. При обработке заполнения во время ввода на основании параметр имеет значение основания. При интерактивном вводе нового из формы списка параметр является структурой, элементы которой соответствуют тем параметрам отбора формы списка, у которых способ сравнения Равно или ВСписке с единственным элементом списка. Если таких элементов отбор списка не содержит, данный параметр равен Неопределено. Если параметр "Стандартная обработка" по окончании работы обработчика равен Истина (установлен по умолчанию), система автоматически произведет заполнение одноименными элементами структуры. <СтандартнаяОбработка> Тип: Булево. В данный параметр передается признак выполнения стандартной (системной) обработки события. Если в теле процедуры-обработчика установить данному параметру значение Ложь, стандартная обработка события производиться не будет. Отказ от стандартной обработки не отменяет действие. Значение по умолчанию: Истина Описание: Возникает при вводе документа на основании, а также при выполнении метода Заполнить, при вводе на основании, а также при интерактивном вводе нового. В процедуре-обработчике этого события должен быть описан сам алгоритм заполнения реквизитов документа на основании переданного значения. Примечание: При копировании (как интерактивном, так и средствами встроенного языка), данный обработчик не вызывается. См. также: ДокументОбъект, метод Заполнить
#16 by SherifSP
Не знаю как в 8.2, у меня 8.1 и там нет в параметре СтандартнаяОбработка
#17 by cw014
тогда только
#18 by mxs089
фейспалм,
#19 by cw014
ООПшник? )))
#20 by SherifSP
Есть стандартная функция не помню какая, которая прерывает процедуру с сообщением
#21 by cw014
ВызватьИсключение???
#22 by mxs089
отказ = истина
#23 by mxs089
при записи, организовать подпиской
#24 by cw014
В обработке заполнения нету Отказ. Есть СтандартнаяОбработка, но она только в 8.2
#25 by ssh2012
см
#26 by SherifSP
Да)
#27 by Aprobator
Честно говоря, непонятно чем Возврат плох. Лови как вариант в ОбработкаЗаполнения.
#28 by cw014
Ничем, только он не отменит выполненные действия и откроет наполовину заполненную форму
#29 by mxs089
передоткрытием отказ = документоснование.получитьформу.модифицированность
#30 by Aprobator
вопрос был как прервать. Про все отменить - речи не было.
#31 by SherifSP
В данной ситуации плох, потому что форма после обработки заполнения открывается пустая
#32 by SherifSP
+ А нужно не дать дойти до открытия формы
#33 by SherifSP
Как вариант, но процедура ввода на основании все равно будит задействована, а это не есть хорошо для производительности
#34 by mxs089
}
#35 by Aprobator
в модуле объекта экспортную переменную для контрольки. В модуле формы ПриОткрытии Отказ = ПеремннаяКонтролька <> Неопределено И ПеременнаКонтролька.
#36 by SherifSP
Тогда обработка заполнения не пройдет, но форма все равно откроется
#37 by mxs089
опередил)
#38 by mxs089
в комплексе
#39 by Aprobator
да такая фигня уже на кончике пальцев. У меня даже мозг для такой ерунды не включается )
#40 by SherifSP
Сделаю по другому, у объекта есть дополнительные свойства в виде структуры, буду в них записывать данные и проверять если в структуре есть эти данные, тогда отказ = истина;
#41 by Aprobator
если речь о 8.2, то там было такое. Тут просто в соседней ветке речь про 8.1. потому переключиться не успел )
#42 by SherifSP
У 8.1 тоже есть такое)
#43 by Aprobator
не помню уже - с 8.1 года 3 уже не общался.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С