8.х УПП КА: Ошибка при изменении ЕдИзм

Тема в разделе ""1С:Управление производственным предприятием УПП"", создана пользователем Святослав, 21 окт 2011.

  1. TopicStarter Overlay
    Святослав
    Offline

    Святослав

    Регистрация:
    20 окт 2011
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    При выполнении этого:

    Код:
    	cntr1 = Новый COMObject("V82.COMConnector"); 
    connection1 = cntr1.Connect("Srvr="""";Ref="""";Usr="""";Pwd="""""); 	 
    СпрОпрТов = connection1.Документы.ОприходованиеТоваров; 	 
    СпрЕдИзм = connection1.Справочники.ЕдиницыИзмерения; 
    ЕдИзм = СпрЕдИзм.НайтиПоНаименованию("шт");  
    ДокОпрТовары = СпрОпрТов.Выбрать(); 
    Пока ДокОпрТовары.Следующий() Цикл 
    Сообщить(ДокОпрТовары.Номер); 
    Если ДокОпрТовары.Номер = "00000002" Тогда 
    Сообщить(ДокОпрТовары.Товары.Количество()); 
    Сч = 0; 
    Пока Сч < ДокОпрТовары.Товары.Количество() Цикл 
    ВыборТовара = ДокОпрТовары.Товары.Получить(Сч); 
    ВыборТовара.ЕдиницаИзмерения = ЕдИзм; 
    Сч = Сч + 1; 
    КонецЦикла; 	
    Сообщить("Ок"); 
    КонецЕсли 
    КонецЦикла
    
    выпадает такая ошибка:

    {Обработка.Обработка1.Форма.ФормаУправляемая.Форма(52)}: Ошибка при установке значения атрибута контекста (ЕдиницаИзмерения)
    ВыборТовара.ЕдиницаИзмерения = ЕдИзм;
    по причине:
    Произошла исключительная ситуация: Объект недоступен для изменения.

    Приоткройте завесу - как изменить в записи таблицы ссылочный данные? Что я делаю не так?
  2. Dmitriy_76
    Offline

    Dmitriy_76 Опытный в 1С Команда форума

    Регистрация:
    26 мар 2011
    Сообщения:
    2.175
    Симпатии:
    13
    Баллы:
    29
    где у тебя метод ПолучитьОбъект() ?

    cntr1 = Новый COMObject("V82.COMConnector");
    connection1 = cntr1.Connect("Srvr="""";Ref="""";Usr="""";Pwd=""""");
    СпрОпрТов = connection1.Документы.ОприходованиеТоваров;
    СпрЕдИзм = connection1.Справочники.ЕдиницыИзмерения;
    ЕдИзм = СпрЕдИзм.НайтиПоНаименованию("шт");
    ДокОпрТовары = СпрОпрТов.Выбрать();
    Пока ДокОпрТовары.Следующий() Цикл
    Сообщить(ДокОпрТовары.Номер);
    Если ДокОпрТовары.Номер = "00000002" Тогда
    Сообщить(ДокОпрТовары.Товары.Количество());
    Сч = 0;
    ДокОпрТоварыОбъект=ДокОпрТовары.ПолучитьОбъект();
    Для каждого Стр Из ДокОпрТоварыОбъект.Товары Цикл
    Стр.ЕдиницаИзмерения = ЕдИзм;
    КонецЦикла;
    Сообщить("Ок");
    КонецЕсли
    КонецЦикла
  3. TopicStarter Overlay
    Святослав
    Offline

    Святослав

    Регистрация:
    20 окт 2011
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    Спасибо огромное!
    С этим разобрался. Удивился, что данный вроде были изменены, но сохранения не произошло.
    Добавил: ДокОпрТоварыОбъект.Записать();
    И все получилось!

    Еще вопрос... после изменения, я не смог менять документ в только что измененном. Ошибка "Не удалось блокировать документ, он уже блокирован". Как правильно закрывать сессию connection1?
  4. Tiger86
    Offline

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

    Регистрация:
    24 мар 2011
    Сообщения:
    6.407
    Симпатии:
    108
    Баллы:
    104
    connection1 = Неопределено ???
  5. TopicStarter Overlay
    Святослав
    Offline

    Святослав

    Регистрация:
    20 окт 2011
    Сообщения:
    21
    Симпатии:
    0
    Баллы:
    1
    Нет. Он сам оказывается все за собой закрывает.
    Документ оказывается блокирует вчерашняя моя сессия.
    Интересно... как бы ее закрыть?
Похожие темы
  1. Sepegka
    Ответов:
    5
    Просмотров:
    1.148
  2. speed-x
    Ответов:
    1
    Просмотров:
    480
  3. She
    Ответов:
    7
    Просмотров:
    722
  4. Olya-lya
    Ответов:
    4
    Просмотров:
    515
  5. web-developer
    Ответов:
    0
    Просмотров:
    166
Загрузка...

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