Шаблоны записей компании.
Понадобилось настроить в пустой базе некоторое количество шаблонов номенклатуры для того, чтобы пользователи уже по готовым шаблонам ввводили в дальнейшем номенклатуру. В справочнике номенклатуры создал записи, на их основе через паспорт записей создал шаблоны компании. Проверил и немного подкорректировал шаблоны и записи из справочника удалил. Захожу в форму изменения любого шаблона, а она пустая! Более того, данные в соответствующем поле таблицы
SysRecordTemplateTable для шаблонов, которые открывал удалены.
Выяснилось, что очистка производится в методе
initValue класса
SysRecordTemplate. Для таблицы
InventTable все нормально, а для трех записей таблицы
InventTableModule и одной записи таблицы
InventItemLocation код:
X++:
if (!excludeValidateField.in(fieldId) && !common.validateField(fieldId))
{
doClear = true;
common.(fieldId) = nullValue(conpeek(valueSet, 2));
}
очищает поле
ItemId, что естественно, так как common.validateField(fieldId) не проходит проверку из-за того, что в таблице
InventTable нет соответствующей записи (в форме редактирования шаблона эта таблица временная).
Конкретно для номенклатуры по аналогии с таблицей EventRuleData для InventTableModule и InventItemLocation добавил поле ItemId в excludeValidateField. Грубо, но работает. Только вот как определить все варианты для других шаблонов непонятно.