8.х Поле объекта недоступно для записи

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Dmitrij, 21 апр 2011.

  1. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Пытаюсь программно создать элемент справочника и при попытки изменить любое поле этого элемента выходит сообщение
    Поле объекта недоступно для записи (Наименование)
    ИнфКарта.Наименование=Прав(Стр.ШтрихКод,4);
    Код:
    Для Каждого Стр Из ТЗ Цикл
    ИнфКарта=Справочники.ИнформационныеКарты.СоздатьЭлемент();
    ИнфКарта.Наименование=Прав(Стр.ШтрихКод,4);
    ИнфКарта.ВидКарты=Перечисления.ВидыИнформационныхКарт.Штриховая;
    ИнфКарта.ТипШтрихКода=ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13;
    ИнфКарта.КодКарты=Стр.ШтрихКод;
    ИнфКарта.ТипКарты=Перечисления.ТипыИнформационныхКарт.Дисконтная;
    ИнфКарта.пдбРазовая=Истина;
    ИнфКарта.пдбСуммаСкидки=200;
    ИнфКарта.Записать();
    КонецЦикла;
    
  2. Максим
    Offline

    Максим Опытный в 1С

    Регистрация:
    28 фев 2008
    Сообщения:
    688
    Симпатии:
    8
    Баллы:
    29
    Может, что-то с правами
  3. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    полные, если не программно все нормально создается
  4. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    Может сначала следует записать элемент, т.к. некоторые реквизиты не доступны в новом, например, при контрагента, не доступны договора.
  5. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    Длина наименования справочника, случайно, не нулевая?
  6. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    нет говорю же вручную делаю нормально все
  7. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    Попробуйте вывести ОписаниеОшибки();

    Странно, сейчас попробовал у себя таким кодом:
    Код:
    ИнфКарта = Справочники.ИнформационныеКарты.СоздатьЭлемент();
    ИнфКарта.Наименование = "Смирнов";
    Попытка
    ИнфКарта.Записать();
    Исключение
    Сообщить(ОписаниеОшибки());
    КонецПопытки;
    
    Как ни странно, элемент создался.
  8. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    Ставьте точку остановки и смотрите что у вас в ИнфКарта (тип, значение), что в ИнфКарта.Наименование (тип, значение).

    P.S. Перепишите слово Наименование в коде (вручную).
  9. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    проблема не в записи элемента, проблема в том что программно не изменяется ни один реквизит этого элемента, причем любой реквизит.
  10. Requin
    Offline

    Requin Опытный в 1С

    Регистрация:
    10 май 2010
    Сообщения:
    1.911
    Симпатии:
    2
    Баллы:
    29
    На какой строчке кода возникает ошибка?
  11. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    в коде стоит первое наименование вот до него доходит и сразу выходит ошибка
    пробовал местами менять допустим сумму вбить тоже самое только ошибка выходит уже на сумме
  12. has
    Offline

    has Опытный в 1С

    Регистрация:
    18 июн 2009
    Сообщения:
    708
    Симпатии:
    0
    Баллы:
    26
    Тип значения ИнфКарта посмотри. Может переменная ИнфКарта еще где используется? Попробуй ИнфКарта123 например.
  13. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    точно переменная не обнулилась спасибо большое
  14. alexburn
    Offline

    alexburn Модераторы Команда форума Модератор

    Регистрация:
    5 янв 2009
    Сообщения:
    14.771
    Симпатии:
    509
    Баллы:
    204
    :D а слона мы и не заметили :angry:
  15. TopicStarter Overlay
    Dmitrij
    Offline

    Dmitrij Опытный в 1С

    Регистрация:
    6 май 2008
    Сообщения:
    844
    Симпатии:
    1
    Баллы:
    26
    Подскажите еще такой момент, элемент записался все нормально открываю форму элемента, а штрихкода в карточки нет меняю на магнитную код появляется

    Код:
    Для Каждого Стр Из ТЗ Цикл
    ИнфКарта=Справочники.ИнформационныеКарты.СоздатьЭлемент();
    ИнфКарта.Наименование=Прав(Стр.ШтрихКод,4);
    ИнфКарта.ВидКарты=Перечисления.ВидыИнформационныхКарт.Штриховая;
    ИнфКарта.ТипШтрихКода=ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13;
    ИнфКарта.ТипКарты=Перечисления.ТипыИнформационныхКарт.Дисконтная;
    ИнфКарта.КодКарты=Стр.Штрихкод;
    ИнфКарта.пдбРазовая=Истина;
    ИнфКарта.пдбСуммаСкидки=200;
    ИнфКарта.Записать();
    Форма=ИнфКарта.ПолучитьФорму();
    Форма.ЭлементыФормы.ТекущийКодКарты.Данные = "ШтрихКодКарты";
    Форма.ЭлементыФормы.ТекущийКодКарты.Значение=ИнфКарта.КодКарты;
    ИнфКарта.Записать();
    КонецЦикла;
    
    
  16. Святослав
    Offline

    Святослав

    Регистрация:
    20 окт 2011
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    Надо создать запись штрихкода для карты, тогда подгружаться "код карты" будет из РегистрыСведений.Штрихкоды в режиме Штрихкодов.
    Код:
    Для Каждого Стр Из ТЗ Цикл
    ИнфКарта=Справочники.ИнформационныеКарты.СоздатьЭлемент();
    ИнфКарта.Наименование=Прав(Стр.ШтрихКод,4);
    ИнфКарта.ВидКарты=Перечисления.ВидыИнформационныхКарт.Штриховая;
    ИнфКарта.ТипШтрихКода=ПланыВидовХарактеристик.ТипыШтрихкодов.EAN13;
    ИнфКарта.ТипКарты=Перечисления.ТипыИнформационныхКарт.Дисконтная;
    ИнфКарта.КодКарты=Стр.Штрихкод;
    ИнфКарта.пдбРазовая=Истина;
    ИнфКарта.пдбСуммаСкидки=200;
    ИнфКарта.Записать();
    Форма=ИнфКарта.ПолучитьФорму();
    Форма.ЭлементыФормы.ТекущийКодКарты.Данные = "ШтрихКодКарты";
    Форма.ЭлементыФормы.ТекущийКодКарты.Значение=ИнфКарта.КодКарты;
    ИнфКарта.Записать();
    
    // Добавляем штрихкод карты
    ЗаписьШтрихкода              = РегистрыСведений.Штрихкоды.СоздатьМенеджерЗаписи();
    ЗаписьШтрихкода.Владелец     = ИнфКарта.Ссылка;
    ЗаписьШтрихкода.ТипШтрихкода = ИнфКарта.ТипШтрихкода;
    ЗаписьШтрихкода.Штрихкод     = ИнфКарта.КодКарты;
    
    Попытка
    ЗаписьШтрихкода.Записать(Истина);
    Исключение
    Отказ = Истина;
    Сообщить(ОписаниеОшибки());
    КонецПопытки;
    
    КонецЦикла;
    
    
    

Поделиться этой страницей