|
Выбор всех элементов справочника | ☑ | ||
---|---|---|---|---|
0
amaderassy
23.01.16
✎
00:51
|
Доброй ночи)Ситуация такая, нужно отобрать все элементы справочника номенклатура(сами папки не нужны, только элементы), которых нету в ТЧ документа Оприходования. Вылетает с критом "Операция не может быть выполнена из-за несоответствия версии или отсутствия записи базы данных (возможно, запись была изменена или удалена)!" и криво отрабатывает... Подскажите, как отобрать правильно и записать это дело...
Процедура Данные() //Создаем Таблицу значений НоменклатураДок = Новый ТаблицаЗначений; НоменклатураДок.Колонки.Добавить("Номенклатура"); //Заполняем ее по периоду наименованиями из документа оприходования Выборка = Документы.ОприходованиеТоваров.Выбрать(Начало,Конец); Пока Выборка.Следующий()цикл Если Выборка.Проведен тогда Док = Выборка.Ссылка; Для каждого строка Из Док.Товары Цикл НоваяСтрока = НоменклатураДок.Добавить(); НоваяСтрока.Номенклатура = строка.Номенклатура.Наименование; КонецЦикла; КонецЕсли; КонецЦикла; выборкаСпр = Справочники.Номенклатура.Выбрать(); //Выбираем справочник номенклатура Пока выборкаСпр.Следующий() цикл //перебираем Справочник Для Каждого ТекущаяСтрока Из НоменклатураДок Цикл //перебираем ТЗ Если выборкаСпр.Наименование = ТекущаяСтрока.Номенклатура Тогда //Сравниваем значие справочника со значеем из таблицы значений, полученной выше //ничего не делаем Иначе Если выборкаСпр.ПометкаУдаления = Истина Тогда //проверка на удаление элемнта справочника //ничего не делаем Иначе выборкаСпр.ПолучитьОбъект().Разблокировать(); выборкаСпр.ПолучитьОбъект().УстановитьПометкуУдаления(Истина,Ложь); //помечаем на удаление выборкаСпр.ПолучитьОбъект().Записать(); выборкаСпр.ПолучитьОбъект().Заблокировать(); Сообщить("Поментка установлена:"+выборкаСпр.Наименование); КонецЕсли; КонецЕсли; КонецЦикла; КонецЦикла; КонецПроцедуры |
|||
1
kubik_live
23.01.16
✎
00:57
|
А что, запросы отменили?
|
|||
2
Defender aka LINN
23.01.16
✎
00:58
|
(1) Видимо, у них за такое сразу отлучение
|
|||
3
Zamestas
23.01.16
✎
01:00
|
(2) 1C Анафема?
|
|||
4
kubik_live
23.01.16
✎
01:01
|
(0) "...нужно отобрать все элементы справочника номенклатур"
Если не секрет, зачем? |
|||
5
amaderassy
23.01.16
✎
01:05
|
(4) Чтобы пометить на удаление, если их нету в оприходованиях.
|
|||
6
amaderassy
23.01.16
✎
01:06
|
(1) Запросом пробовал, не вышло...видать я не дорос до них еще...
|
|||
7
kubik_live
23.01.16
✎
01:08
|
(5) Типа... свёртку базы замутил?
|
|||
8
Zamestas
23.01.16
✎
01:08
|
(6) Пометить на удаление все элементы, удалить все что получилось, снять пометку - не предалагаю.
|
|||
9
amaderassy
23.01.16
✎
01:15
|
(7) Чищу базу от мусора, вернее пытаюсь.
|
|||
10
GreatOne
23.01.16
✎
02:26
|
(9) бугага))
|
|||
11
amaderassy
23.01.16
✎
02:46
|
(10) Я немного нетрезв) но допер как правильно:
выборкаСпр = Справочники.Номенклатура.Выбрать(); Пока выборкаСпр.Следующий() Цикл Если выборкаСпр.ЭтоГруппа = Истина Тогда Иначе НайденнаяСтрока=НоменклатураДок.Найти(выборкаСпр.Наименование); Если НайденнаяСтрока = Неопределено Тогда выборкаСпр.ПолучитьОбъект().УстановитьПометкуУдаления(Истина,Ложь); Сообщить("Поментка установлена:"+выборкаСпр.Наименование); КонецЕсли; КонецЕсли; КонецЦикла; |
|||
12
amaderassy
23.01.16
✎
02:51
|
Можно закрывать этот стыд))))
|
|||
13
Zamestas
23.01.16
✎
03:20
|
(11) Я понимаю пятница (была), но это мощно... Я х.з. чем мощнее (8), но что то в этом есть...
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |