(2) так как реквизит присутствует в нескольких документах, не логично писать для каждого отдельно код... а как написать один раз и для всех документов с этим реквизитом? а главное где? первый раз получила такое задание...
(6) можно написать Процедуру проверки в общем модуле, создать Подписку на событие (источники все документы с нужным реквизитом, обработчик Процедура проверки).
(6) Вам можно добавить подписку на событие или вызывать общую функцию в обработчике проверки заполнения модуля объекта. Где проверяется одним запросом сразу все документы. Примерно таким: Потом сгрупировать и посчитать количество. Если не равно нулю, то ошибка
Выбор
НомерВходящегоДокумента
Из
АвансовыйОтчет
Где НомерВходящегоДокумента = &НомерВходящегоДокумента и Ссылка <> &Ссылка
Объеденитьвсе
Выбор
НомерВходящегоДокумента
Из
ВозвратТоваров
Где НомерВходящегоДокумента = &НомерВходящегоДокумента и Ссылка <> &Ссылка
(1) Можно, как вариант, использовать критерии отбора: по нему будет проще проверять. Либо ввести определяемый тип, в который включать все типы, по которым требуется контроль; а далее, исходя из определяемого типа собирать текст запроса для проверки
(12) Ну я бы не был так категоричен , если много поставщиков , нумерация может совпасть , тем более вы рассматриваете все документы где есть этот реквизит (если одни поставщик прислал например накладную № 1 а второй Отчет комиссионера №1 - то как быть в этом случае. Потом нумерация может быть в пределах года , если номер в тек. году будет совпадать с одним из номеров прошлого года что тогда ?
(5) При изменении реквизита сделать проверку, а именно:
Создаем виртуальную таблицу где выбирается этот реквизит по всем типам документа.
Дальше уже делаем сравнение с виртуальной таблицей по текущему реквизиту и если количество забисей больше 0 тогда ошибка.