|
Помогите сделать проверку | ☑ | ||
---|---|---|---|---|
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) Ну да тоже так можно, более понятным будет алгоритм. при систематизации восползуюсь
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |