| 
    
            
         
         | 
    
  | 
Проверка заполнения реквизитов в форме | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        John342    
     01.06.20 
            ✎
    12:23 
 | 
         
        Добры день. Я новичок в 1с. Отрыл всякую инфу, как можно осуществлять проверку заполнения элементов. Остановился на варианте передачи реквизитов из модуля формы в модуль объекта.
 
        Соответственно, функцию ПроверитьЗаполнение() указал в модуле формы и ОбработкаПроверкиЗаполнения() указал в модуле объекта. Всё работает. Вот только одно НО! ПроверяемыеРеквизиты.Количество() возвращает мне 0, однако в моей форме 2 реквизита, строка и период, и у обоих свойство Проверка заполнения выставлено, как Выдавать ошибку. Почему тогда в модуль объекта передаётся пустой массив? Что я упустил? Помогите советом юному падавану!  | 
|||
| 
    1
    
        D_E_S_131    
     01.06.20 
            ✎
    12:39 
 | 
         
        ПроверяемыеРеквизиты - это реквизиты объекта, у которых установлено свойство "обязательности заполнения". Реквизиты формы, если они не связаны с данными формы, не попадут в этот массив. даже не смотря на то, что для них прописано условие на заполненность.     
         | 
|||
| 
    2
    
        John342    
     01.06.20 
            ✎
    12:48 
 | 
         
        (1) А как связать реквизиты с данными? Это выполняется в свойствах реквизита? Или нужно как-то явно передавать это всё дело в качестве параметра?     
         | 
|||
| 
    3
    
        patria0muerte    
     01.06.20 
            ✎
    16:46 
 | 
         
        (0) Проверить заполнение ты можешь вызвать из 2х мест. 
 
        Из формы (в контексте формы вызвать ПроверитьЗаполнение()) - в этом случае будут проверяться и реквизиты объекта с признаком "Выдавать ошибку" и реквизиты формы с этим же признаком Из объекта (в модуле объекта вызвать ПроверитьЗаполнение()) - в этом случае будут проверяться только реквизиты объекта с признаком "Выдавать ошибку"  | 
|||
| 
    4
    
        John342    
     01.06.20 
            ✎
    17:17 
 | 
         
        (3) Если я вызываю из формы, то как я и говорил ранее, в модуль объекта передаётся пустой массив для проверки. Правильно ли я понимаю, что если функцию я вызову из модуля объекта, то массив будет заполнен нужными мне реквизитами для проверки?     
         | 
|||
| 
    5
    
        Мимохожий Однако    
     01.06.20 
            ✎
    17:38 
 | 
         
        (4) Как создавал форму? Кто её Владелец?     
         | 
|||
| 
    6
    
        John342    
     01.06.20 
            ✎
    17:42 
 | 
         
        (5) Форму создавал через Файл->Новый->Внешняя обработка. Там сделал форму и в ней уже создавал реквизиты. А вот кто владелец - пока не разобрался, как это смотреть.     
         | 
|||
| 
    7
    
        patria0muerte    
     01.06.20 
            ✎
    17:46 
 | 
         
        (6) Так в том и суть, что ты создаешь Реквизиты ФОРМЫ и пытаешь проверить их в модуле ОБЪЕКТА. Объект не знает про реквизиты формы.
 
        Проверяй в ОбработкаПроверкиЗаполнения у формы. Либо добавляй реквизиты непосредственно в сам объект и тогда ты увидишь их в модуле объекта  | 
|||
| 
    8
    
        Мимохожий Однако    
     01.06.20 
            ✎
    17:46 
 | 
         
        В данном случае владельцем обычно является внешняя обработка. У нее могут быть реквизиты, которые могут быть связаны с реквизитами формы, которые могут быть отображены на форме, в доме, который построил Джек.     
         | 
|||
| 
    9
    
        Мимохожий Однако    
     01.06.20 
            ✎
    17:48 
 | 
         
        Осталось почитать в справке про метод ПроверитьЗаполнение()  Где и в каком режиме живёт и процветает     
         | 
|||
| 
    10
    
        John342    
     01.06.20 
            ✎
    17:55 
 | 
         
        (7) Получается, если я просто добавлю реквизиты "снаружи" формы, то модуль объекта будет ссылаться на них и тогда проверка заполнения будет работать корректно?     
         | 
|||
| 
    11
    
        John342    
     01.06.20 
            ✎
    17:57 
 | 
         
        (8) Понял. Как patria0 и говорит, модуль объекта ничего не знает, что творится внутри формы. Нужно сколотить реквизиты за пределами формы.     
         | 
|||
| 
    12
    
        Мимохожий Однако    
     01.06.20 
            ✎
    17:58 
 | 
         
        (10) Это форма снаружи ) Сначала объект (в твоем случае обработка), а у нее уже форма. Форма может быть несколько     
         | 
|||
| 
    13
    
        John342    
     01.06.20 
            ✎
    18:05 
 | 
         
        (12) Ещё раз для себя уяснить. Объект - это внешняя обработка, в ней я делаю 2 реквизита, которые мне нужны, и форму. В форме я создаю реквизиты формы. Осталось понять, как реквизиты объекта связать с реквизитами формы.     
         | 
|||
| 
    14
    
        Мимохожий Однако    
     01.06.20 
            ✎
    20:07 
 | 
         
        (13) Открываешь пустую форму и перетягиваешь реквизиты Объекта в левое окно. Если уже добавил реквизиты, то открываешь свойства каждого реквизита и переопределяешь путь к реквизитам Объекта. Результат один и тот же. Реквизиты формы связаны с реквизитами объекта (в данном случае, обработки)     
         | 
|||
| 
    15
    
        John342    
     01.06.20 
            ✎
    21:18 
 | 
         
        (14) Не получается переместить реквизиты из объекта в форму и наоборот. Это наверно как-то включается?     
         | 
|||
| 
    16
    
        John342    
     01.06.20 
            ✎
    22:14 
 | 
         
        (14) А, не, всё получилось. Только теперь понять бы, как передать значения в реквизиты объекта из формы.     
         | 
|||
| 
    17
    
        hhhh    
     02.06.20 
            ✎
    03:33 
 | 
         
        (16) положить левую ногу на правую. И поудобнее устроиться в кресле. Главное не мешать.     
         | 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |