Не работает метод Записать()
☑
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
После того как закомментировал это:
ВыборкаТипы = Справочники.Отправители.Выбрать();
Пока ВыборкаТипы.Следующий() Цикл
СпрОбъект = ВыборкаТипы.ПолучитьОбъект();
СпрОбъект.Удалить();
КонецЦикла;
Все заработало.
Ступил я, процедура это несколько раз вызывается просто.
Прошу прощения за беспокойство.
Закон Брукера: Даже маленькая практика стоит большой теории.