|   |   | 
| 
 | Помогите сделать проверку | ☑ | ||
|---|---|---|---|---|
| 0
    
        Начинающий_13 24.03.14✎ 17:52 | 
        Здравствуйте
 УФ Модуль объекта. Шапка; СчетЗатрат, при выборе активизируются субконто (Субконто1, Субконто 2 и т.д.) в зависимости от счета. Хочу в процедуре ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)сделать проверку, если субконто не заполнено, то отказ. Когда субконто актизизируется от имеет ДОСТУПНОСТЬ = Истина Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты). Если НЕ ЗначениеЗаполнено(СчетЗатрат) ???? Тогда МассивНепроверяемыхРеквизитов = Новый Массив; МассивНепроверяемыхРеквизитов.Добавить("СчетЗатрат"); МассивНепроверяемыхРеквизитов.Добавить("Субконто1"); МассивНепроверяемыхРеквизитов.Добавить("Субконто2"); МассивНепроверяемыхРеквизитов.Добавить("Субконто3"); МассивНепроверяемыхРеквизитов.Добавить("Субконто4"); УправлениеПроверками.УдалитьНепроверяемыеРеквизитыИзМассива(ПроверяемыеРеквизиты, МассивНепроверяемыхРеквизитов); КонецЕсли; КонецПроцедуры | |||
| 1
    
        vmv 24.03.14✎ 17:54 | 
        не возражаю     | |||
| 2
    
        Начинающий_13 24.03.14✎ 17:57 | 
        Как подступить к Элементы из модуля Объекта     | |||
| 3
    
        mikecool 24.03.14✎ 18:02 | 
        (2) нафига тебе элементы? у тебя есть объект     | |||
| 4
    
        Начинающий_13 24.03.14✎ 18:03 | 
        Через объект КАК? Доступность у его нет.     | |||
| 5
    
        vmv 24.03.14✎ 18:03 | 
        +(3) объект видит только данные, а где они сидят ему по-барабану - циничный игнор     | |||
| 6
    
        Начинающий_13 24.03.14✎ 18:04 | 
        Можте другой подход есть?     | |||
| 7
    
        vmv 24.03.14✎ 18:05 | 
        (4) самое время забраться в гамак с сигарой и задуматься о смысле форм и содержания, прозрение обязательно будет - бэз абид     | |||
| 8
    
        Начинающий_13 24.03.14✎ 18:07 | 
        (7) Вот и думаю, что надо разбивать проверку на две или только в модуле формы, а хотелось бы в модуле объекта.     | |||
| 9
    
        hhhh 24.03.14✎ 18:07 | 
        (8) ну напрямую к реквизитам объекта обращаться. Вы же сами написали
 ЗначениеЗаполнено(СчетЗатрат) СчетЗатрат это реквизит объекта. | |||
| 10
    
        Начинающий_13 24.03.14✎ 18:09 | 
        СчетЗатрат это проверяет заполнеение реквизита,
 Если счет затрат на ЗАПОЛНЕН, то и проверять нечего все субконто недоступны | |||
| 11
    
        hhhh 24.03.14✎ 18:11 | 
        (10) ну и что вас не устраивает в этой проверке?     | |||
| 12
    
        Начинающий_13 24.03.14✎ 18:13 | 
        Она не может правильно работать.
 т.е сохрнанять документ можно с пустыми субконто. | |||
| 13
    
        hhhh 24.03.14✎ 18:16 | 
        (12) ну так напишите Отказ = Истина; ничего и не сохранится     | |||
| 14
    
        Начинающий_13 24.03.14✎ 18:21 | 
        Если счетЗатрат пустой, тогда можно сохранять, 
 А если заполнен надо проверить субконто и потом принять решение сохранять или нет. | |||
| 15
    
        Начинающий_13 25.03.14✎ 10:06 | 
        ПОЗВОЛЮ ПРОДОЛЖИТЬ ТЕМУ
 проверку перенес в модуль формы ВАРИАНТ №1 Все работает &НаСервере Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты) Если ЗначениеЗаполнено(Объект.СчетЗатрат) Тогда Если Элементы.Субконто1.Доступность = Истина И НЕ ЗначениеЗаполнено(Объект.Субконто1) Тогда ТекстСообщения = НСтр("ru='Не заполнено СУБКОНТО 1 !!!'"); ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения); Отказ = Истина; КонецЕсли; Если Элементы.Субконто2.Доступность = Истина И НЕ ЗначениеЗаполнено(Объект.Субконто2) Тогда ТекстСообщения = НСтр("ru='Не заполнено СУБКОНТО 2 !!!'"); ОбщегоНазначенияКлиентСервер.СообщитьПользователю(ТекстСообщения); Отказ = Истина; КонецЕсли; ..... и так для всех субконто КонецЕсли; КонецПроцедуры ВАРИАНТ №2 Хочу переделать через МАССИВ. Не могу разобраться. МассивНепроверяемыхРеквизитов - Определяется правильно ПроверяемыеРеквизиты - это Объект, строка ??? Как их получить??? Что не так? &НаСервере Процедура ОбработкаПроверкиЗаполненияНаСервере(Отказ, ПроверяемыеРеквизиты) Если ЗначениеЗаполнено(Объект.СчетЗатрат) Тогда МассивНепроверяемыхРеквизитов = Новый Массив; Если Элементы.Субконто1.Доступность = Ложь И НЕ ЗначениеЗаполнено(Объект.Субконто1) Тогда МассивНепроверяемыхРеквизитов.Добавить("Субконто1"); КонецЕсли; Если Элементы.Субконто2.Доступность = Ложь И НЕ ЗначениеЗаполнено(Объект.Субконто2) Тогда МассивНепроверяемыхРеквизитов.Добавить("Субконто2"); КонецЕсли; УправлениеПроверками.УдалитьНепроверяемыеРеквизитыИзМассива(ПроверяемыеРеквизиты, МассивНепроверяемыхРеквизитов); /// ???? Если НЕ ЗначениеЗаполнено(ПроверяемыеРеквизиты) Тогда Отказ = Истина; КонецЕсли; КонецПроцедуры | |||
| 16
    
        Начинающий_13 25.03.14✎ 10:35 | 
        Неужели никто на сталикался     | |||
| 17
    
        vmv 25.03.14✎ 10:47 | 
        СтруктураСубконто = Новый Структура;
 СтруктураСубконто.Вставить("Субконто1", Объект.Субконто1); СтруктураСубконто.Вставить("Субконто2", Объект.Субконто2); СтруктураСубконто.Вставить("Субконто3", Объект.Субконто3); Для каждого ЭлементСтруктуры Из СтруктураСубконто Цикл // ...какие-то условия // ЗначениеЗаполнено(Объект[ЭлементСтруктуры.Ключ]) // Элементы[ЭлементСтруктуры.Ключ].Доступность = Истина // ...какие-то действия КонецЦикла; | |||
| 18
    
        Начинающий_13 25.03.14✎ 10:51 | 
        Хорошо через структуру попробую позже. Мне интересно печему на работает через массив. И нете чатал про проблему, но ответан на ее на нашел.     | |||
| 19
    
        cw014 25.03.14✎ 10:54 | 
        Наверное тебе нужно так:
 Если ЗначениеЗаполнено(Объект.СчетЗатрат) Тогда МассивНепроверяемыхРеквизитов = Новый Массив; Для Сч = Объект.СчетЗатрат.ВидыСубконто.Количество() По Объект.СчетЗатрат.Метаданные().МаксКоличествоСубконто Цикл МассивНепроверяемыхРеквизитов.Добавить("Субконто" + Формат(Сч,"ЧН=; ЧГ=")); КонецЦикла; КонецЕсли; | |||
| 20
    
        cw014 25.03.14✎ 10:54 | 
        С тебя 300 рублев :)     | |||
| 21
    
        elCust 25.03.14✎ 10:56 | 
        (20) Возьми у мамы.     | |||
| 22
    
        cw014 25.03.14✎ 10:56 | 
        (21) Умно     | |||
| 23
    
        Начинающий_13 25.03.14✎ 11:02 | 
        (19) Ну да тоже так можно, более понятным будет алгоритм. при систематизации восползуюсь     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |