Имя: Пароль:
1C
1С v8
Не работает метод Записать()
0 Dictum
 
15.01.15
22:45
Вот процедура

Процедура ЗаписатьСписокОтправителей(СписокОтправителей)
    ВыборкаТипы = Справочники.Отправители.Выбрать();
    Пока ВыборкаТипы.Следующий() Цикл
        СпрОбъект = ВыборкаТипы.ПолучитьОбъект();
        СпрОбъект.Удалить();
    КонецЦикла;
    Для Каждого Стр Из СписокОтправителей Цикл
        СпрОбъект = Справочники.Отправители.СоздатьЭлемент();
        СпрОбъект.Наименование = Стр.Наименование;
        СпрОбъект.ИД = Стр.ИД;
        СпрОбъект.Записать();        Сообщить("Загружен отправитель: "+Стр.Наименование+"");
    КонецЦикла;
    
КонецПроцедуры

Отладчиком проходит, сообщение выводит. А Справочник пустой, Даже кэш чистил уже. В чем проблема может быть?
1 Мимохожий Однако
 
15.01.15
22:52
В порядке эксперимента закомментируй первый блок с циклом:
ВыборкаТипы = Справочники.Отправители.Выбрать();
    Пока ВыборкаТипы.Следующий() Цикл
        СпрОбъект = ВыборкаТипы.ПолучитьОбъект();
        СпрОбъект.Удалить();
    КонецЦикла;
...
СписокОтправителей - это массив?
2 Мимохожий Однако
 
15.01.15
22:53
Если в массиве значений тот же справочник Отправители. То надо просто искать по наименованию и добавлять в случае отсутствия искомого элемента.
3 KishMish
 
15.01.15
23:01
1  Откуда знаешь что справочник пустой? В Форме списка отбор стоит?
2. Транзакции используешь?

3. Подчиненный справочник?
4 Dictum
 
15.01.15
23:02
После того как закомментировал это:

ВыборкаТипы = Справочники.Отправители.Выбрать();
    Пока ВыборкаТипы.Следующий() Цикл
        СпрОбъект = ВыборкаТипы.ПолучитьОбъект();
        СпрОбъект.Удалить();
КонецЦикла;

Все заработало.

Ступил я, процедура это несколько раз вызывается просто.

Прошу прощения за беспокойство.
Закон Брукера: Даже маленькая практика стоит большой теории.