Имя: Пароль:
1C
1С v8
Перезаписать все элементы справочника
,
0 Casper211
 
24.03.17
13:37
УТ3.1 УФ
Это очень долго делает. А можно как-то это другим методом сделать, чтобы продуктивнее было.
Мне необходимо, чтобы все элементы перезаписались

&НаСервере
Процедура НоменклатураНаСервере()
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |    Номенклатура.Ссылка
    |ИЗ
    |    Справочник.Номенклатура КАК Номенклатура
    |ГДЕ
    |    Номенклатура.ЭтоГруппа = ЛОЖЬ";
    РезультатЗапроса = Запрос.Выполнить().Выгрузить();
    Для каждого СтрокаРезультата Из РезультатЗапроса Цикл
        Попытка
            СтрокаРезультата.ссылка.ПолучитьОбъект().Записать();
        Исключение
            Сообщить(ОписаниеОшибки());
        КонецПопытки;
    КонецЦикла;
КонецПроцедуры
1 Amra
 
24.03.17
13:39
Начнем по порядку. Зачем надо?
2 Волшебник
 
модератор
24.03.17
13:39
Запрос тут не нужен
3 DrShad
 
24.03.17
13:39
в транзакции по 1000 штук к примеру
4 Cumpuciy
 
24.03.17
13:39
Во первых не .выгрузить() а выбрать()
5 DrShad
 
24.03.17
13:40
(2) +1
или хотябы не выгружать результат в ТЗ, а идти выборкой
6 Волшебник
 
модератор
24.03.17
13:40
(5) надо сразу делать выборку по справочнику, чтобы не забивать всю память целым справочником
7 Волшебник
 
модератор
24.03.17
13:41
Выборка = Справочники.Номенклатура.Выбрать();
Пока Выборка.Следующий() Цикл
8 HardBall
 
24.03.17
13:42
ОбменДанными.Загрузка = Истина;

Как вариант.
9 DrShad
 
24.03.17
13:45
(8) какой в этом будет смысл?
10 1dvd
 
24.03.17
13:45
(9) При записи никаких лишних проверок и действий не будет
11 DrShad
 
24.03.17
13:47
(10) и смысл тогда ее перезаписывать? )))
12 Casper211
 
24.03.17
13:48
(7) создали новый реквизит. И при записи номенклатуры он что-то себе заполняет
13 1dvd
 
24.03.17
13:48
(11) это у ТС ещё в (1) спросили, но он не ответил
Он просил быстрее, ему посоветовали
14 DrShad
 
24.03.17
13:49
(12) заполнять при записи реквизиты это не кошерно и за такое надо руки отрубать
15 Casper211
 
24.03.17
13:52
Всем спасибо за методы
16 Волшебник
 
модератор
24.03.17
13:53
можно ещё сделать несколько параллельных процессов
17 Casper211
 
24.03.17
13:54
(16) разделить справочник на пару частей? и одновременно там что-то сделать?
18 Волшебник
 
модератор
24.03.17
13:55
(17) Да. Например, упорядочить по кодам, наименованиям и каждый процесс обрабатывает свою часть
19 1dvd
 
24.03.17
13:56
(17) да. ещё, как вариант, самому заполнить этот реквизит и записывать только если он реально изменился. Не делать двойную работу
20 Casper211
 
24.03.17
16:20
(7) сделал этим вариантом, достаточно не долго. Спасибо