Вопрос

Массовая загрузка данных в Контрагентов

Здравствуйте, что-то я запутался((

Есть колонка(дробное число) необходимо её заполнить одинаковым значением - 1000000 для всех контрагентов, как это сделать не импортом... Пробовал  БП, он вроде проходит, но не заполняет(

Нравится

11 комментариев
Лучший ответ

Колосов Алексей,

Если Вам нужно это выполнить единоразово, то проще всего cделать, действительно, sql-запросом вида:

update Account

set Field1 = value

where IsNull(Field1, 0) = 0

где Field1 - это название Вашего поля, value - его значение.

А выполнить этот запрос можно либо предложенным в первом комментарии способом, либо установив бесплатное расширение SQL Executor.

 

Выполнять прямой запрос к БД или через Microsoft Management Studio если у вас On-Site или через SQL Script в Админки BPM'Online. Нужна помощь в написании SQL скрипта пишите поможем.

а средствами BPM?

В С#-коде можно сформировать и запустить Update-запрос. Пример запроса:

Query update = new Update(UserConnection, "SysEntitySchemaRecordDefRight")
	.Set("AuthorSysAdminUnitId", Column.Parameter(authorId))
	.Where("Id").IsEqual(Column.Parameter(RedactedRecordId));
update.Execute();

В Вашем случае будет ещё и без условия Where.

Зверев Александр,

Данная конструкция на C# может не сработать, так как ключевые входные данные это 1 миллион записей. Есть вероятность что по Таймауту ошибка выйдет.

Здесь лучше чтобы Автор поста описал свои знания и от этого лучше отталкиваться чтобы дать совет.

Если много записей, можно порциями, where Id in select top 1000 Id from...

1000000 это не записи, а значение в колонку... Знаний на уровня С# нету....(( Хотелось бизнес-процессом...

В  БП есть элемент «Изменить данные», который делает примерно то же.  Возможно, медленнее, за счёт отрабатывания событий сохранения по каждой записи.

Зверев Александр, этим элементом можно только значения из справочника передать, а у меня дробное число((

Числовые тоже можно.

Колосов Алексей,

Если Вам нужно это выполнить единоразово, то проще всего cделать, действительно, sql-запросом вида:

update Account

set Field1 = value

where IsNull(Field1, 0) = 0

где Field1 - это название Вашего поля, value - его значение.

А выполнить этот запрос можно либо предложенным в первом комментарии способом, либо установив бесплатное расширение SQL Executor.

 

Спасибо, разобрался... наверное - понедельник был)))

Показать все комментарии