|
Удаление записей из непериодического независимого регистра сведений. | ☑ | ||
---|---|---|---|---|
0
Румата
20.03.18
✎
17:03
|
Написал вот такой код :
ТипыДокументов = Новый Массив; Для каждого метаДок Из Метаданные.Документы Цикл ТипыДокументов.Добавить(Тип("ДокументСсылка." + метаДок.Имя)); КонецЦикла; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Штрихкоды.Штрихкод, | Штрихкоды.Владелец, | Штрихкоды.ТипШтрихкода, | Штрихкоды.ЕдиницаИзмерения, | Штрихкоды.ХарактеристикаНоменклатуры, | Штрихкоды.СерияНоменклатуры, | Штрихкоды.Качество, | Штрихкоды.УдалитьКод, | Штрихкоды.УдалитьТипШтрихкода, | Штрихкоды.УдалитьШтрихкод, | Штрихкоды.УдалитьВладелец, | Штрихкоды.УдалитьЕдиницаИзмерения, | Штрихкоды.УдалитьХарактеристикаНоменклатуры, | Штрихкоды.УдалитьСерияНоменклатуры, | Штрихкоды.УдалитьКачество, | Штрихкоды.ПредставлениеШтрихкода |ИЗ | РегистрСведений.Штрихкоды КАК Штрихкоды |ГДЕ | ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(Штрихкоды.Владелец) В (&ТипыДокументов) | ТОГДА ВЫБОР | КОГДА Штрихкоды.Владелец.Дата > &ДатаСвертки | ТОГДА ИСТИНА | ИНАЧЕ ЛОЖЬ | КОНЕЦ | ИНАЧЕ ИСТИНА | КОНЕЦ"; Запрос.УстановитьПараметр("ТипыДокументов", ТипыДокументов); Запрос.УстановитьПараметр("ДатаСвертки", ДатаСвертки); ТаблицаОставляемыхЗаписей = Запрос.Выполнить().Выгрузить(); Сообщить("После удаления записей в регистре "+Строка(ТаблицаОставляемыхЗаписей.Количество())); //ТаблицаОставляемыхЗаписей.ВыбратьСтроку(); НаборЗаписей = РегистрыСведений.Штрихкоды.СоздатьНаборЗаписей(); НаборЗаписей.Загрузить(ТаблицаОставляемыхЗаписей); НаборЗаписей.Записать(); ======================= Код не отрабатывает, вылетает с ошибкой. Подскажите пожалуйста, как подправить, чтобы заработало. |
|||
1
Румата
20.03.18
✎
17:25
|
Пишет не однократно :
Штрих код : ХХХ уже имеет владельца YYY А в самом конце: НаборЗаписей.Записать(); по причине: Не удалось записать: "Штрихкоды"! |
|||
2
Cyberhawk
20.03.18
✎
17:26
|
Это прикладной код конфигурации
|
|||
3
Cyberhawk
20.03.18
✎
17:26
|
Подписка или модуль набора записей
|
|||
4
Cyberhawk
20.03.18
✎
17:26
|
Режим загрузки может поможет, если прикладной код умеет его понимать
|
|||
5
Румата
20.03.18
✎
17:28
|
Процедура ПередЗаписью(Отказ, Замещение)
Если ОбменДанными.Загрузка Тогда Возврат; КонецЕсли; Для Каждого ТекущаяЗапись Из ЭтотОбъект Цикл Если ТипЗнч(ТекущаяЗапись.Владелец) = Тип("СправочникСсылка.Номенклатура") И Не ЗначениеЗаполнено(ТекущаяЗапись.Качество) Тогда Сообщить("Для товара """ + СокрЛП(ТекущаяЗапись.Владелец) + """ со штрихкодом: " + ТекущаяЗапись.ШтрихКод + " не заполнено качество."); Отказ = Истина; КонецЕсли; КонецЦикла; Если мНеРазрешитьНеуникальныеШтрихкоды Тогда Для Каждого ТекущаяЗапись Из ЭтотОбъект Цикл Если ЗначениеЗаполнено(ТекущаяЗапись.ШтрихКод) Тогда Запрос = Новый Запрос(" |ВЫБРАТЬ ПЕРВЫЕ 1 | РегШтрихкоды.Владелец КАК Владелец, | РегШтрихкоды.ШтрихКод КАК Штрихкод |ИЗ | РегистрСведений.Штрихкоды КАК РегШтрихкоды |ГДЕ | РегШтрихкоды.ШтрихКод = &ШтрихКод |"); Запрос.УстановитьПараметр("ШтрихКод", ТекущаяЗапись.ШтрихКод); РезультатЗапроса = Запрос.Выполнить(); Если Не РезультатЗапроса.Пустой() Тогда Выборка = РезультатЗапроса.Выбрать(); Выборка.Следующий(); Сообщить("Штрихкод: " + Выборка.ШтрихКод + " уже имеет владельца """ + СокрЛП(Выборка.Владелец) + """."); Отказ = Истина; КонецЕсли; КонецЕсли; КонецЦикла; КонецЕсли; КонецПроцедуры // ПередЗаписью() |
|||
6
Румата
20.03.18
✎
17:28
|
(Cyberhawk) НаборЗаписей.ОбменДанными.Загрузка = Истина ?
|
|||
7
Cyberhawk
20.03.18
✎
17:29
|
Да
|
|||
8
Румата
20.03.18
✎
17:30
|
(Cyberhawk)
НаборЗаписей = РегистрыСведений.Штрихкоды.СоздатьНаборЗаписей(); НаборЗаписей.Прочитать(); НаборЗаписей.Очистить(); НаборЗаписей.Записать(); НаборЗаписей.Загрузить(ТаблицаОставляемыхЗаписей); НаборЗаписей.Записать(); Вот так вроде прокатило. Нормальный код ? Если на копии базы делать ? ) |
|||
9
Cyberhawk
20.03.18
✎
17:31
|
Нет, код избыточный и на большом объеме данных может никогда не выполниться
|
|||
10
Румата
20.03.18
✎
17:32
|
(Cyberhawk) Спасибо !
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |