Имя: Пароль:
1C
1С v8
ПроверкаЗаполнения() реквизитов объекта
0 prtx
 
23.04.16
13:10
товарищи, я уже начинаю нервничать.

у меня есть встроенная обработка, в этой обработке я создаю реквизит (реквизит объекта) ставлю Проверка заполнения - Выдавать ошибку.

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

в чем проблема.

1с 8.3. уф

спасибо!
1 prtx
 
23.04.16
13:18
(0) методом тыка было выявлено, что функция ПроверитьЗаполнение() вызывает сыбытие ОбработкаПроверкиЗаполненияНаСервере() однако, на сколько я понимаю для того чтобы происходила проверка заполнения реквизитов объекта необходимо событие ОбработкаПроверкиЗаполнения(). а эта падлюка его не вызывает, в чем беда?
2 RomanYS
 
23.04.16
13:25
ОбработкаОбъект.<Имя обработки> (DataProcessorObject.<Имя обработки>)
ОбработкаПроверкиЗаполнения (FillCheckProcessing)
Синтаксис:

ОбработкаПроверкиЗаполнения(<Отказ>, <ПроверяемыеРеквизиты>)
Параметры:

<Отказ>

Тип: Булево.
Если в теле процедуры-обработчика установить данному параметру значение Истина, то будет выполнен отказ от продолжения работы после выполнения проверки заполнения.
Значение по умолчанию: Ложь.
<ПроверяемыеРеквизиты>

Тип: Массив.
Массив путей к реквизитам, для которых будет выполнена проверка заполнения. Массив может быть модифицирован удалением или добавлением путей к необходимым реквизитам.
Описание:

Вызывается расширением формы при необходимости проверки заполнения реквизитов в форме, при вызове стандартных команд "OK", "Да", "Повторить", "Пропустить", а также при выполнении метода ПроверитьЗаполнение.
3 RomanYS
 
23.04.16
13:28
(1) тебе надо вызывать ПроверитьЗаполнение() у обработки(объекта), а не формы
4 prtx
 
23.04.16
13:40
(2) после долгих мук я до этого дочитался, и засунул на форму стандартную команду да и ок и другие. нажимаю на кнопку ок и ничего не происходит тупо форма закрывается и все и пофиг, что там половина реквизитов не заполнена.
5 prtx
 
23.04.16
13:43
(2) а имеет значение как открывается форма?
ОткрытьФорму("Обработка.ПодборНоменклатуры.Форма.НаРозничнуюПродажу", ПараметрыФормы, ЭтаФорма, , , , , );
6 prtx
 
23.04.16
13:49
(3) т.е. это нужно сделать в модуле объекта? да?

а как это сделать?
7 RomanYS
 
23.04.16
13:54
(4) если я правильно понимаю абзац про расширении формы, то это только для ОФ.

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

Проще (и без лишних вызовов сервера) просто явно проверять что нужно кодом
8 prtx
 
23.04.16
14:19
(7) честно раньше так и делал. но вот наткнулся на сей механизм, и решил не изобретать велосипед, а использовать это чудо-юдо которое якобы для этого и предназначено...

я одного не пойму а нафига тогда в свойствах реквизитов(реквизиты объекта в обработке) есть этот пункт проверка заполнения? и нафига тогда в модуле объекта (обработки) есть ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты) если ее хрен вызовешь, и сама по себе она непонятно как вызывается?
9 RomanYS
 
23.04.16
14:27
(8) наверное, когда это разрабатывалось УФ ещё не было
10 prtx
 
23.04.16
15:00
(9) УРА ТОВАРИЩИ!!!

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

т.е. есть на объекте стоит галка "основной реквизит" тогда вызывается ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты), если нет тогда ее фиг вызовешь...