Имя: Пароль:
1C
1С v8
Удаление записей регистра сведений независимо от режима записи
, ,
0 Arms
 
07.04.13
21:29
Нужно написать обработку, которая будет очищать выбранный РегистрСведений. В цикле делаю проверку на РежимЗаписи выбранного регистра, в зависимости от результата удаляю записи. Но в задании указано, что РежимЗаписиРегистра для реализации не важен. Не могу сообразить как его можно обойти.. Кто знает, подскажите, пожалуйста.
1 Necessitudo
 
07.04.13
21:38
Первый!


НаборЗаписей = РегистрыСведений.ЦеныНоменклатуры.СоздатьНаборЗаписей();
НаборЗаписей.Записать();
2 Arms
 
07.04.13
21:39
(1) в этом случае регистры подчиненные регистратору не проходят - ошибка: не установлен отбор по регистратору
3 Necessitudo
 
07.04.13
21:44
(2) Черт...Ну тогда так:

НаборЗаписей = РегистрыСведений[ИмяРегистра].СоздатьНаборЗаписей();

Запрос = Новый Запрос("Выбрать РАЗРЕШЕННЫЕ НужныйДокумент.Ссылка Из Документ.НужныйДокумент Как НужныйДокумент Где НужныйДокумент.Проведен = Истина Упорядочить ПО НужныйДокумент.Дата");

Результат = Запрос.Выполнить();
Если Не Результат.Пустой() Тогда
Выборка=Результат.Выбрать()
Пока Выборка.Следующий() Цикл
НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Ссылка);
НаборЗаписей.Записать();
КонецЦикла;

КонецЕсли;
4 Arms
 
07.04.13
22:01
(3) в этом случае не подчиненные регистры с ошибкой - поле Регистратор не обнаружено
5 Arms
 
07.04.13
22:08
Как можно проверить, есть ли колонка Регистратор у выбранного регистра? сравнение типа
Регистратор = Неопределено
не проходит у независимых регистров.
6 DirecTwiX
 
07.04.13
22:13
Метаданные?
7 Arms
 
07.04.13
22:18
как через метаданные это прописать? у меня не получается - у независимых регистров ошибка об отсутствии поля и все
8 hhhh
 
07.04.13
22:43
ну напишите две обработки
9 Arms
 
07.04.13
22:46
(8) я так понимаю для независимых и подчиненных. по какому принципу определять, какую обработку выполнять? снова таки РежимЗаписи?
10 hhhh
 
07.04.13
23:02
ну проверяйте РежимЗаписи. Что тут сложного.
Если независимый регистр, то как в (1), иначе по регистраторам.
11 Arms
 
07.04.13
23:04
(10) все сложности в условии задачи )
12 hhhh
 
07.04.13
23:07
(11) там вообще непонятно. Есть регистр, у него режим записи. Зачем его проверять в цикле? Он же один.
13 Serg_1960
 
07.04.13
23:10
(0) Пиши алгоритм, который может обработать любой(!) регистр сведений, ибо именно про это сказано в задание - "режим записи регистра - не важен".

РежимЗаписи = Метаданные.РегистрыСведений.ТвойРегистр.РежимЗаписи;
Если РежимЗаписи = Метаданные.СвойстваОбъектов.РежимЗаписиРегистра...
14 Arms
 
07.04.13
23:20
(12) на форме обработки ПолеВыбора, где пользователь выбирает любой РС. проверять в цикле для того, чтобы определить какой РежимЗаписи у выбранного РС
15 Arms
 
07.04.13
23:21
(13) Вы пишите:
Если РежимЗаписи = Метаданные.СвойстваОбъектов.РежимЗаписиРегистра..

так ведь это и есть проверка РежимаЗаписи
16 hhhh
 
07.04.13
23:33
(14) берете выбранный регистр, у него берете режим записи. Зачем цикл?
17 Arms
 
07.04.13
23:44
(16) То, что у меня написано:
Если ВыбрРегистр.РежимЗаписи = Метаданные.СвойстваОбъектов.РежимЗаписиРегистра.Независимый Тогда

// серия действий

Иначе

// серия действий

КонецЕсли;

Т.е. в данном случае РежимЗаписи имеет значение
18 DirecTwiX
 
07.04.13
23:49
(17) Ты пишешь бред. Либо потому, что действительно не понимаешь, либо потому, что пытаешь скрыть непонимание
19 DirecTwiX
 
07.04.13
23:51
В каком задании? Клиент попросил так реализовать? Какой цикл для проверки режима записи?
20 DirecTwiX
 
07.04.13
23:53
Если с снята с поддержки, то можешь удалить РС, а потом создать такой же)
21 Arms
 
07.04.13
23:57
(19) Клиент здесь вообще ни при чем. У меня стоит задание, описанное выше.
в чем конкретно бред?
цикл не ДЛЯ ПРОВЕРКИ РежимаЗаписи, в зависимости от режима записи идет удаление в цикле
22 DirecTwiX
 
08.04.13
01:27
(21) Вот я и спрашиваю, откуда задание. А про проверку в цикле ты сам дважды сказал - в (0) и (14) - как минимум в этом бред. И задание тоже бредовое
23 Arms
 
08.04.13
01:55
(22) Значит неправильно мной донесено, но с (17) по-моему, суть должна быть ясна. Задания никто не выбирает, что имеем)
24 Necessitudo
 
08.04.13
08:12
Нам просто лень за тебя код писать:-)
25 NWsFF
 
08.04.13
08:18
Попытка
ВариантИз (1)
Исключение
ВариантИз (3)
КонецПопытки
Если уж нельзя использовать режим записи
26 НЕА123
 
08.04.13
09:01
хз.
может через выбрать(), менеджерзаписи?
но маразм, конечно.
27 Necessitudo
 
08.04.13
09:22
А в чем проблема-то? Обойти по метаданным регистры, для каждого свой режим очистки, профит. Не?
28 Широкий
 
08.04.13
09:30
(0) TRUNCATE TABLE MyTable
29 Serg_1960
 
08.04.13
09:50
Автор заблуждается что в задании на "РежимЗаписиРегистра" табу наложено. Можно, конечно, и без этого обращения написать алгоритм очистки, но цель задания - не в этом.
30 patric24
 
08.04.13
09:56
напиши 2 обработки..
31 Serg_1960
 
08.04.13
11:21
Хех, две обработки :) Алгоритм - пару минут на десяток строк.
32 Sword
 
08.04.13
11:53
Не знаю можно ли...
http://infostart.ru/public/67112/
33 Arms
 
08.04.13
11:54
(29) в том, что написано, заблуждаться сложно )
но все, вопрос снимаю - прошло с проверкой на РежимЗаписи.
Спасибо всем за попытки помочь :)
34 Sword
 
08.04.13
11:55
Обработка моя, удаляет как надо.