Skip to content

Instantly share code, notes, and snippets.

@PlugFox
Created February 26, 2019 20:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save PlugFox/f05efeeba17198b175ec00e8d6c34666 to your computer and use it in GitHub Desktop.
Save PlugFox/f05efeeba17198b175ec00e8d6c34666 to your computer and use it in GitHub Desktop.
Создать новые элементы в справочнике из таблицы значений
// Получаешь свою табличку с колонками Наименование, Артикул, Код
ТЗ = ПолучитьТаблицуЗначений();
Запрос = Новый Запрос("
|ВЫБРАТЬ *
|ПОМЕСТИТЬ ВТ
|ИЗ &ТЗ КАК тз
|;
|ВЫБРАТЬ
| вт.Наименование КАК Наименование
| , вт.Код КАК Код
| , вт.Артикул КАК Артикул
| , ВЫБОР
| КОГДА ном.Ссылка ЕСТЬ null
| ТОГДА ЛОЖЬ
| ИНАЧЕ ИСТИНА
| КОНЕЦ КАК Существует
|ИЗ
| ВТ КАК вт
| ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Номенклатура КАК ном
| ПО вт.Артикул = ном.Артикул
| И вт.Наименование ПОДОБНО ""%Наименование%""
|");
Запрос.УстановитьПараметр("ТЗ", ТЗ);
Выборка = Запрос.Выполнить().Выбрать();
// ТРАНЗАКЦИЯ +
НачатьТранзакцию();
Попытка
// ОПЕРАЦИЯ +
Пока Выборка.Следующий() Цикл
Если Выборка.Существует Тогда Продолжить КонецЕсли;
нОбъект = Справочник.Номенклатура.Создать();
ЗаполнитьЗначениеСвойств(нОбъект, Выборка);
нОбъект.Записать();
КонецЦикла;
// ОПЕРАЦИЯ -
ЗафиксироватьТранзакцию();
Исключение
Если ТранзакцияАктивна() Тогда
ОтменитьТранзакцию();
КонецЕсли;
ВызватьИсключение СтрШаблон("Во время транзакции произошла ошибка.
|Описание ошибки: %1", ОписаниеОшибки());
КонецПопытки;
// ТРАНЗАКЦИЯ -
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment