Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
10 мая 2025, 02:05

Заполнение данных на основании реквизита заполненного программно

Автор BruceWayne007, 02 мая 2025, 17:08

0 Пользователей и 1 гость просматривают эту тему.

BruceWayne007

Всем привет. Создал реквизит в расширении, заполнил реквизит при создании на сервере в доке, далее надо перенести значение этого реквизита в док созданный на основании, делаю через расширение. Почему-то в обработке заполнения "Основание" - значение данного реквизита пустое. Что не так делаю?

BruceWayne007

Еще вопрос с проверкой заполнения, сразу, в модуле формы делаю проверку

&НаСервере
Процедура бит_ОбработкаПроверкиЗаполненияНаСервереПосле(Отказ, ПроверяемыеРеквизиты)
Если Не ЗначениеЗаполнено(Объект.Гражданство)
И Не ЗначениеЗаполнено(Объект.ИНН)
И Не ЗначениеЗаполнено(ПаспортныеДанные)
Тогда

// Если он не заполнен, сообщим об этом пользователю

Сообщение = Новый СообщениеПользователю();
Сообщение.Текст = "";
Сообщение.Поле = "";
Сообщение.УстановитьДанные(ЭтотОбъект);
Сообщение.Сообщить();
   


Отказ = Истина;
       
КонецЕсли;

а можно как то просто добавить в проверяемые реквизиты данные значения
ну типа понятно

ПроверяемыеРеквизиты.Добавить("ИНН"); 
    ПроверяемыеРеквизиты.Добавить("Гражданство");
ПроверяемыеРеквизиты.Добавить("ПаспортныеДанные");

но это же тогда тип строка, в чем прикол? или просто проверять через ЗначениеЗаполнено и если нет, то отказ и не париться? гражданство это справочник ссылка, паспортные данные динамический список(вот здесь вопросик как проверять) короче задача - проверить заполненность вкладки паспортные данные

BruceWayne007

BruceWayne007, так, здесь надо было просто записать нажать :wacko:  когда я уже поумнею...

BruceWayne007

Сегодня все отдыхают))) а динамический список перед записью проверять через текущиеданные или есть получше способ?

antoneus


BruceWayne007

antoneus, Требуется: установить обязательность заполнения паспортных данных
(необходима проверка на заполненность паспорта в целом, а не отдельных его полей, т.е. когда пользователь совсем ничего не указал во вкладке Паспортные данные)


пример.jpg

BruceWayne007

antoneus, и я такой, ээээ... а потом такой аааа, а потом снова ээээ...

&НаСервере
Процедура ОбработкаПроверкиЗаполненияНаСервереПосле(Отказ, ПроверяемыеРеквизиты)
   
    Если Не ЗначениеЗаполнено(Объект.Гражданство)
        ИЛИ Не ЗначениеЗаполнено(Объект.ИНН)
        Тогда
       
        Сообщить("Не указаны паспортные данные");
        Отказ = Истина;
       
    КонецЕсли;

КонецПроцедуры

&НаКлиенте
Процедура ПередЗаписьюПеред(Отказ, ПараметрыЗаписи)
   
    ДанныеПаспорта = Элементы.ПаспортныеДанные.ТекущиеДанные;
   
    Если Не ЗначениеЗаполнено(ДанныеПаспорта) Тогда
       
        Сообщить("Не указаны паспортные данные");
        Отказ = Истина;
       
    КонецЕсли;
   
КонецПроцедуры




antoneus

Динамический список не хранится в базе, он заполняется данными. На то он и динамический, на то и список. Данные берутся откуда-то из базы. Откуда берутся данные?

BruceWayne007

antoneus, я понимаю, что он формируется запросом, он берется из регистра сведений. но мне же надо в модуле формы проверять или нет? или я неправильно понимаю задачу

antoneus

Ну в модуле формы проверять - если в регистре нет записей с этим клиентом в измерении - значит записывать не надо. Штука в том, что для того, чтобы создать запись в регистре и подставить туда клиента - клиент уже должен быть записан.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск