Доброго всем дня.
Уже сутки ломаю голову, не могу придумать как разрулить ситуацию. Клиент просит проверять контрагента ( конфигурация УТ ) на обязательность заполнения реквизитов. Ну да, если это реквизит наименование, то пара пустяков - перед записью, если ЭтоНовый проверяем. А если это непрямой реквизит, например контактное лицо контрагента? Уже передЗаписью не катит, потому как уже должна быть ссылка контрагента!!! Уже что только не придумывал:
1. ПередЗаписью проверять, если ЭтоНовый, то проверку игнорировать. Но тогда юзер особо не парясь нажмет Записать, Закрыть, и всьо.
2. Тулить проверку в форму в ПередЗакрытием(), тоже не айс, каждый раз будет матюкаться, и кроме того уже есть старые контрагенты, кроме того будет матюкаться ВСЕМ юзерам, даже тем кто не имеет никакого отношения к заполнению контрагентов
2. ПередЗаписью(), если ЭтоНовый, писать ссылку в какой то РС, типа КонтрагентыПодлежащиеПроверке, а затем в форме ПередЗакрытием() проверять, если есть ссылка в РС, то проверять реквизиты, ну а после заполнения реквизитов убирать ссылку из РС. И тут тоже есть затык, например захотят создать тестового юзера без телефонов, адресов и пр. Хотя этот вариант мне более всего по душе.
ПослеЗаписи()
Была у меня такая задачка... Только мне надо было основное контактное лицо проверять. И еще адреса и телефоны. При этом, к адресам и телефонам можно обратиться и проверить в процедуре ПередЗаписью() в форме (ЭлементыФормы.КонтактнаяИнформация.Значение). Поэтому я на тот момент ограничилась просто сообщением о том, что значение не заполнено.
Вижу еще один вариант. Добавить текстовый реквизит - КонтактноеЛицо. Проверять его, как обычный реквизит. Если не заполнен - грязно ругаться и отказываться записывать элемент. После записи парсить строку и создавать такое контактное лицо. Ну или всяческие вариации такого действа - можно даже без реквизита справочника обойтись, только реквизит формы сделать. Но лучше реквизит справочника - чтобы сохранялся.
Т. е. проверять надо только новые?
Уже передЗаписью не катит, потому как уже должна быть ссылка контрагента!!! - http://pro1c.org.ua/redirect.php?http://kb.mista.ru/article.php?id=320&
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua