Подскажи, как можно сделать массовое добавление записей?
У меня есть таблица, в ней есть записи, мне нужно по фильтру выбрать записи которых нет во второй таблице, потом отфильтровать по городу, и указать что нужно определенное количество записей из каждого указанного города записать в другую таблицу.
Код выполняется на сервере, в конфигурационном сервисе.
Нравится
Александр, у элемента вставки в БП есть возможность вставлять выборку из другого объекта с нужным фильтром.

Из того, что Вы хотите, нет разве что указания количества. Возможно, получится через view с привязанным объектом, там в SQL-запросе можно сразу прописать и фильтр, и количество.
Ну или всю логику и считывания, и вставки реализовать в C#-скрипте с использованием классов ESQ или Select и Insert.
Зверев Александр, Реализовать надо в сервисе, выходит только через Select
Query selectQuery = new Select(UserConnection).Top(numberCountForNumberPool)
.Column(Column.Parameter(request)).Column(Column.Parameter(currentUserContactId))
.Column(Column.Parameter(currentUserContactId))
.Column("KtSimManagementInitialPoolNumbers", "KtIccid")
.Column("KtSimManagementInitialPoolNumbers", "KtImsi")
.Column("KtSimManagementInitialPoolNumbers", "KtMsisdn")
.Column("KtSimManagementInitialPoolNumbers", "KtName")
.Column(Column.Parameter(cityAndCountNumbersEntity.GetTypedColumnValue<Guid>(city.Name)))
.Column(Column.Parameter(cityAndCountNumbersEntity.GetTypedColumnValue<string>(note.Name)))
.Column(Column.Parameter(DateTime.UtcNow.Date))
.Column(Column.Parameter(DateTime.UtcNow.Date
.AddDays((int)Core.Configuration.SysSettings.GetValue(UserConnection,
"DayCountForDedicatedPoolNumbers") + 1).AddSeconds(-1)))
.From("KtSimManagementInitialPoolNumbers")
.OrderByAsc("KtSimManagementInitialPoolNumbers", "KtName")
.Join(JoinType.LeftOuter, "KtJasperFullNumberPool")
.On("KtSimManagementInitialPoolNumbers", "KtName")
.IsEqual("KtJasperFullNumberPool", "KtName")
.Where("KtJasperFullNumberPool", "KtName")
.IsNull()
.And("KtSimManagementInitialPoolNumbers", "KtMarketCodeId")
.IsEqual(Column.Parameter(cityForMarketCode));
InsertSelect insertSelectQuery = new InsertSelect(UserConnection)
.Into("KtJasperFullNumberPool")
.Set("KtRequestId", "ModifiedById", "CreatedById", "KtIccid", "KtImsi", "KtMsisdn", "KtName", "KtCityId", "KtNote", "KtReserveDate", "KtReserveToDate")
.FromSelect(selectQuery);
int numberCountInserted = insertSelectQuery.Execute();И все работает отлично, но на PostgreSQL, при установке на версию для Oracle ругается
"ERROR IIS APPPOOL\CreatioCRMOracle Terrasoft.Web.Common.ServiceModel.ErrorHandler ProvideFault - Псевдоним колонки запроса не может быть пустым".
Что бы понятно было - конфигурации полностью одинаковые, просто dev среда на PostgreSQL а Prod на Oracle. И вот найти проблему тут уже не как не выходит
А на какое именно место в коде ругается? Если просто Select, без Insert, то тоже? Попробуйте последовательно запускать Select без разных колонок, чтобы выяснить, в какой из них дело.