Дело в особенностях сценариев, и в том, как вы их используете: Все данные сбрасываются в БД после завершения сценария а не в момент вызова Save, соотв. FindAll находит актуальные записи в БД на момент сценария (до завершения транзакции)
Частное решение - не задействовать FindAll - вы в сценарии все равно очищаете всю таблицу, а значит все данные для неё в сценарии же и доступны, сделайте так
Код:
//очищаем справочник основной
EntityManager<NomenklaturaITOsnovnaya>.Instance.DeleteAll();
//Создаем список в памяти, зачем нам БД
var Nomenklatura_All = new List<NomenklaturaITOsnovnaya>();
foreach (var el in context.AktualjnayaNomenklatura) {
//
var Nomenklatura_Save = EntityManager<NomenklaturaITOsnovnaya>.Create ();
//
Код заполнения Nomenklatura_Save
//
Nomenklatura_Save.Save ();
Nomenklatura_All.Add(Nomenklatura_Save);
//
}
Но сама реализация в принципе видится сомнительной -справочник не темповая таблица, а такой вариант не масштабируется (если завтра понадобится 2 параллельных процесса для разных групп номенклатуры?)
Возможно лучше было бы посмотреть в сторону блоков, в них и доступ можно отрегулировать, и наполнять по разному и относиться они будут только к конкретному экземпляру, а значит не мешать другим экземплярам и процессам