Проверка Обязательности ЗаполненияПолей виду документа

1. B3avi5 03.07.14 16:51 Сейчас в теме
Ситуация такая есть 3 вида документов и под каждым свои поля необходимо сделать так чтобы эти паля были обязательными

сделал таую шляпу но она не работает. Кто может подсказать где я ошибся

......

Если Объект.ВидДокумента = Справочники.ВидыВнутреннихДокументов.Распоряжение Тогда
СоздатьСвязиРаспоряжение();

........

&НаСервере
Процедура СоздатьСвязиРаспоряжение()

Если Не ЗначениеЗаполнено(Объект.Заголовок) тогда

Элементы.СохранитьИзменения.Доступность = Ложь;
Элементы.СохранитьКак.Доступность = Ложь;
Элементы.Предприятия.Доступность = Ложь;
Элементы.Папка.Доступность = ложь;

КонецЕсли;

КонецПроцедуры
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. PhoenixAOD 62 04.07.14 04:03 Сейчас в теме
(1) B3avi5,
Если Не ЗначениеЗаполнено(Объект.Заголовок) тогда 
Отказ = Истина;
Сообщить("ЗАполни шапку твою девизию!", СтатустСообщения.ОченьВажно);
Элементы.СохранитьИзменения.Доступность = Ложь; 
Элементы.СохранитьКак.Доступность = Ложь; 
Элементы.Предприятия.Доступность = Ложь; 
Элементы.Папка.Доступность = ложь; 


Так попробуйте.
3. B3avi5 04.07.14 10:15 Сейчас в теме
(2) PhoenixAOD, Спасибо большое !!!
4. Skromnyi 13 04.07.14 10:19 Сейчас в теме
(1) B3avi5, Можно сделать подписку на событие "ОбработкаПроверкиЗаполнения" и в обработчике написать что-то типа:
    // создадим массив проверяемых реквизитов
    ОбязательныеРеквизиты = Неопределено;    
    
    Если ДокументОбъект.ВидДокумента = Справочники.ВидыВнутреннихДокументов.НайтиПоНаименованию("Наименование какого-то вида документа") Тогда 
        ОбязательныеРеквизиты = "Сумма"; /для примера
    ИначеЕсли ДокументОбъект.ВидДокумента = Справочники.ВидыВнутреннихДокументов.НайтиПоНаименованию("Наименование еще какого-то типа документа") Тогда
        ОбязательныеРеквизиты = "Сумма,Валюта";
    КонецЕсли;
    
    Если ОбязательныеРеквизиты <> Неопределено Тогда
        
        МассивПроверяемыхРеквизитов = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ОбязательныеРеквизиты);
        
        Для Каждого ЭлементМассива Из МассивПроверяемыхРеквизитов Цикл
            НайденыйИндекс = ПроверяемыеРеквизиты.Найти(ЭлементМассива);
            Если НайденыйИндекс = Неопределено Тогда
                ПроверяемыеРеквизиты.Добавить(ЭлементМассива);
            КонецЕсли;
        КонецЦикла;
        
    КонецЕсли;

Показать
5. B3avi5 04.07.14 10:25 Сейчас в теме
(4) Skromnyi, Спасибо, но для меня это как то тяжко. когда брался за это сказали "Да ладно обойдемся стандартными формами", я и не предполога что мне придется заняться изучением 1С. Вариант с ИФами мне както проще ))))
6. Skromnyi 13 04.07.14 10:55 Сейчас в теме
ничего сложного тут нет. Что за вариант с Ифамими, не очень понял. Вы где вносите изменения: в модуле объекта "ВнутренниеДокументы" или еще где-то?
7. B3avi5 04.07.14 13:04 Сейчас в теме
(6) Skromnyi, Подскажите плиз эта процедуна на клиенте или на сервере
9. Skromnyi 13 04.07.14 14:01 Сейчас в теме
(7) B3avi5, вот здесь есть хорошая статья по подпискам: http://xn----1-bedvffifm4g.xn--p1ai/post-2013-12/%D0%BF%D0%BE%D0%B4%D0%BF%D0%B8%D1%81%D0%BA%D0%B8-%D0%BD%D0%B0-%D1%81%D0%BE%D0%B1%D1%8B%D1%82%D0%B8%D1%8F/
По дурацки ссылка скопировалась, это сайт: , там Новости,архив - Статьи по программированию. Статья называется "Назначение обработчиков событий с помощью подписок на события". В принципе все подробно описано, как, зачем и почему.
Процедура на сервере
8. B3avi5 04.07.14 13:07 Сейчас в теме
(6) Skromnyi, Да в модуле объекта "ВнутренниеДокументы"
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот