В приведенном вами коде используется правильное сравнение для того, чтобы проверить, не находится ли дата в реквизите "ДатаНачала" справочника "Номенклатура" позже текущей даты. Однако есть некоторые нюансы, которые стоит учесть:
1. **Сравнение с учетом времени**: Если вы сравниваете дату, которая может содержать время, с текущей датой, вам нужно убедиться, что вы сравниваете только даты (без учета времени). Использование функции `НачалоДня(ТекущаяДата())` здесь вполне правильное, так как эта функция возвращает дату без времени.
2. **Логика проверки**: Если вы хотите предотвратить добавление документа с условием, что дата в реквизите должна быть не позже текущей даты, то условие следует записать так:
```1C
Если Справочники.Номенклатура.ДатаНачала > НачалоДня(ТекущаяДата()) Тогда
// Здесь размещается код, который обрабатывает случай, когда дата некорректна.
КонецЕсли;
```
3. **Место размещения кода**:
- Если вы хотите выполнять эту проверку при добавлении нового документа, то логично разместить код в модуле объекта документа на событии "ПередЗаписью" (`BeforeWrite`) или "ПередПроведением" (`BeforePosting`), чтобы предотвратить сохранение документа.
- Если проверка должна происходить когда пользователь взаимодействует с формой, например, при выборе значения в форме, то можно использовать модуль формы.
Таким образом, проверка должна выглядеть примерно так:
```1C
Процедура ПередЗаписью(Отказ)
Если Справочники.Номенклатура.ДатаНачала > НачалоДня(ТекущаяДата()) Тогда
Сообщить("Дата начала не может быть позже текущей даты.");
Отказ = Истина; // предотвращаем запись
КонецЕсли;
КонецПроцедуры
```
Такой код обеспечит необходимую проверку и предотвратит добавление документа с некорректной датой.