Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Запись данных в периодический реквизит справочника-владельца
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
andrew76
Всем доброго вечера !

Возникла следующая проблема:
При записи данных в подчинённом справочнике нужно заполнять периодический реквизит Справочника-владельца.
При обработке события в ПриЗаписи (в подчиненном справочнике)-при попытке сохранить значение реквизита Справочника-владельца вылетает ошибка:

Объект заблокирован !

Чем лечить ?

Процедура ПриЗаписи()

Влад=СоздатьОбъект("Справочник.Владелец");
Влад.Разряд.Установить(Дата,НовыйРазряд);
Влад.Записать();  //ошибка

КонецПроцедуры
igmig65
Это значит, что объект, который пытаются записать, открыт.
И что ЭТО -
Цитата
Влад=СоздатьОбъект("Справочник.Владелец");

первый раз такой справочник встречаю...
andrew76
Справочник конечно называется по другому.Есть ли способ записать в реквизит спрaвочника-владельца?
Sanyk
А в чому проблема? Створіть об'єкт з типом цього довідника, знайдіть об'єкт і пишіть в нього що завгодно.
andrew76
Ошибка ! - не выбран элемент


Спр=СоздатьОбъект("Справочник.Владелец"); //название условное
Спр.ИспользоватьДату(ДатаСдачи,0);
    
Таб_н=Владелец.Код;
найд=Спр.НайтиПоКоду("Таб_н);

Если найд=1 тогда
       Спр.Разряд.Установить(ДатаСдачи,Разряд);
       Спр.Записать();      //Ошибка ! - не выбран элемент
КонецЕсли;
Sanyk
Навіщо шукати по коду, якщо є сам елемент? Використовуйте НайтиЭлемент()! В вашому випадку буде так:

Спр=СоздатьОбъект("Справочник.Владелец"); //название условное
Спр.ИспользоватьДату(ДатаСдачи,0);

//найд=Спр.НайтиПоКоду("Таб_н);

найд=Спр.НайтиЭлемент(Владелец);

Если найд=1 тогда
       Спр.Разряд.Установить(ДатаСдачи,Разряд);
       Спр.Записать();      //Ошибка ! - не выбран элемент
КонецЕсли;
andrew76
Ошибка !

{Справочник.ПроизводственноеОбучение.ФормаСписка.ФормаСписка.Модуль(18)}: Значение не представляет агрегатный объект (Установить)


Спр=СоздатьОбъект("Справочник.Владелец"); //название условное
Спр.ИспользоватьДату(ДатаСдачи,0);

Спр.НайтиЭлемент(Владелец);
Спр.Разряд.Установить(ДатаСдачи,Разряд); // Ошибка !
Спр.Записать();



Sanyk
Використовувати одночасно
ИспользоватьДату()
і
Уставноить()
неможна. Щось одне
andrew76
1-й вариант

Спр=СоздатьОбъект("Справочник.Владелец"); //название условное
//Спр.ИспользоватьДату(ДатаСдачи,0);

Спр.НайтиЭлемент(Владелец);
Спр.Разряд.Установить(ДатаСдачи,Разряд);
Спр.Записать();



2-й вариант
Спр=СоздатьОбъект("Справочник.Владелец"); //название условное
Спр.ИспользоватьДату(ДатаСдачи,0);

Спр.НайтиЭлемент(Владелец);
Спр.Разряд=Разряд;
Спр.Записать();


при обеих вариантах ошибка уже не появляется,но в справочнике-владельце реквизит разряд не обновляется.
Sanyk
Тут же відкривайте "Отладчик" і дивіться. Причин може бути чимало. Не тей тип данних присвоюється, не так дивишся на значення періодичних реквізитів, ...
andrew76
Работает.Спасибо,объект блокировался,потому-что перед открытием подчиненного справочника ПроизводственноеОбучение,
открывается форма элемента Справочника-Владельца (способ редактирования- в Диалоге).Поэтому и блокировки пёрли...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.