Версия для печати темы (https://pro1c.org.ua/index.php?s=f556883c6a1dbdaf13342a3d72aa0cb2&showtopic=35334)

Нажмите сюда для просмотра этой темы в обычном формате

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

Автор: andrew76 16.02.17, 16:29

Всем доброго вечера !

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

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

Чем лечить ?

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

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

КонецПроцедуры

Автор: igmig65 16.02.17, 22:07

Это значит, что объект, который пытаются записать, открыт.
И что ЭТО -

Цитата
Влад=СоздатьОбъект("Справочник.Владелец");

первый раз такой справочник встречаю...

Автор: andrew76 17.02.17, 10:07

Справочник конечно называется по другому.Есть ли способ записать в реквизит спрaвочника-владельца?

Автор: Sanyk 17.02.17, 10:35

А в чому проблема? Створіть об'єкт з типом цього довідника, знайдіть об'єкт і пишіть в нього що завгодно.

Автор: andrew76 17.02.17, 12:23

Ошибка ! - не выбран элемент


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

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

Автор: Sanyk 17.02.17, 12:37

Навіщо шукати по коду, якщо є сам елемент? Використовуйте НайтиЭлемент()! В вашому випадку буде так:

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

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

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

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

Автор: andrew76 17.02.17, 15:05

Ошибка !

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


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

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




Автор: Sanyk 17.02.17, 15:33

Використовувати одночасно

ИспользоватьДату()
і
Уставноить()
неможна. Щось одне

Автор: andrew76 17.02.17, 16:05

1-й вариант

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

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



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

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


при обеих вариантах ошибка уже не появляется,но в справочнике-владельце реквизит разряд не обновляется.

Автор: Sanyk 17.02.17, 16:19

Тут же відкривайте "Отладчик" і дивіться. Причин може бути чимало. Не тей тип данних присвоюється, не так дивишся на значення періодичних реквізитів, ...

Автор: andrew76 17.02.17, 18:20

Работает.Спасибо,объект блокировался,потому-что перед открытием подчиненного справочника ПроизводственноеОбучение,
открывается форма элемента Справочника-Владельца (способ редактирования- в Диалоге).Поэтому и блокировки пёрли...

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua