Консультация № 67514
18.12.2006, 13:00
0.00 руб.
0 3 3
Привет всем Экспертам!! Создал документ ИмпортнаяПоставка. Использовал метод "Видимость". После проведения в проведенном документе заполненых реквизитов не видно. Что нужно сделать чтобы в проведенном документе показывали только заполненные реквизиты?


Приложение:
Процедура ПриОткрытии() ПриЗаписиПерепроводить(1); Пошлина1=0; НДС1=0; Акциз1=0; Досмотр1=0; Форма.Коды.Видимость(0); Форма.Тех.Видимость(0); Форма.Экспертиза.Видимость(0); Форма.Карантин.Видимость(0); Форма.Пошлина.Видимость(0); Форма.НДС.Видимость(0); Форма.Акциз.Видимость(0); Форма.Досмотр.Видимость(0); Форма.Деклар.Видимость(0); Форма.Узтемир.Видимость(0); Форма.УслугиА.Видимость(0); Форма.Оплата.Видимость(0);КонецПроцедуры Процедура Перевозка() ИП=СоздатьОбъект("Документ.ИмпортнаяПоставка"); ИП.Новый(); Если ТипПеревозки=Перечисление.ТипПеревозки.Вагон Тогда Форма.Коды.Видимость(1); Форма.Тех.Видимость(1); Форма.Экспертиза.Видимость(1); Форма.Карантин.Видимость(1); Если Пошлина1=1 Тогда Форма.Пошлина.Видимость(1); Иначе Форма.Пошлина.Видимость(0); КонецЕсли; Если НДС1=1 Тогда Форма.НДС.Видимость(1); Иначе Форма.НДС.Видимость(0); КонецЕсли; Если Акциз1=1 Тогда Форма.Акциз.Видимость(1); Иначе Форма.Акциз.Видимость(0); КонецЕсли; Если Досмотр1=1 Тогда Форма.Досмотр.Видимость(1); Иначе Форма.Досмотр.Видимость(0); КонецЕсли; Форма.Деклар.Видимость(1); Форма.Узтемир.Видимость(0); Форма.УслугиА.Видимость(0); Форма.Оплата.Видимость(0); КонецЕсли; КонецПроцедуры

Обсуждение

Неизвестный
18.12.2006, 13:24
общий
это ответ
Здравствуйте, Рубик!

в документе в процедуре ПриОткрытии() можно использовать условие для всех реквизитов, у которых нужно менять видимость, например так:

Если Проведен()=1 Тогда
Если ПустоеЗначение(Реквизит1)=0 Тогда
//видимый реквизит
Форма.Реквизит1.Видимость(1);
Иначе
//не видимый реквизит
Форма.Реквизит1.Видимость(0);
КонецЕсли;
Иначе
//видимый реквизит
Форма.Реквизит1.Видимость(1);
КонецЕсли;
Неизвестный
18.12.2006, 13:26
общий
это ответ
Здравствуйте, Рубик!
Можно сделать примерно так


Приложение:
Процедура ВидимостьЭлемента(Значение,Элемент) Если (ПустоеЗначение(Значение)=0)ИЛИ(Проведен=0) Тогда Элемент.Видимость(1); Иначе Элемент.Видимость(0); КонецЕсли;КонецПроцедурыПроцедура УправлениеВидимостью() ВидимостьЭлемента(Пошлина1,Форма.Пошлина1); ВидимостьЭлемента(НДС1,Форма.НДС1); ....КонецПроцедурыПроцедура ПриОткрытии() УправлениеВидимостью();КонецПроцедурыПроцедура ПриЗаписи() УправлениеВидимостью();КонецПроцедуры
Неизвестный
18.12.2006, 19:24
общий
это ответ
Здравствуйте, Рубик!
Во первых нужно создать процедуру ВидимостьЭлементво(), которая изменяет видимость реквизитов документов в зависимости от его статуса проведения. (Функция "Проведен()")
Во вторых нужно поместить вызов этой процедуры в функцию, которая выводит какое либо значение на форму (т.е. вызывается из текстового реквизита формы документа). Тогда Вы получите то, что хотели.
ПриОткрытии использовать нельзя, т.к. это установить видимость только при открытии формы, и не отработает интерактивного проведения.
"ПриЗаписи" вызвать тоже нельзя, т.к. статус проведения не обязательно изменится при запии.
"ПриПроведении" вызвать вообще не получится, т.к. эта процедура не вызывается из модуля формы.
Форма ответа