Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Подчиненные справочники  (Прочитано 7221 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Lusiko
Гость
« : 31-08-2004 17:37 » 

Не стреляйте в программиста от пишет как умеет!!!
Помогите пожалуйста начинающему.
Конфигурация Зарплата и кадры : релиз 7.70.247
Есть справочник сотрудников (СпрСотр)
Подчиненный справочник ВоинскаяОбязанность (СпрВО)
При открытии в первый раз данные берутся из  реквизита СпрСотр.ВоинскийУчет (если требуется корректировка то делаем ее) и сохраняем в справочнике СпрВО.
И теперь нужно откорректировать реквизит  СпрСотр.ВоинскийУчет в соответствии с введенными данными.(Для того чтобы в формеТ2 выводились правильные данные)

   СпрВО = СоздатьОбъект("Справочник.ВоинскаяОбязанность");
   СпрСотр= СоздатьОбъект("Справочник.Сотрудники");
  СпрВО.ИспользоватьВладельца(СпрСотр);
  Если СпрСотр.НайтиПоКоду(Владелец.ТекущийЭлемент().Код,0) = 1 тогда
     СпрСотр.ВоинскийУчет  = РазрядУчета.Наименование +СимволТабуляции+
                ВоинскоеЗвание.Наименование + СимволТабуляции+
                Состав.Наименование+","+
       ГруппаУчета.Наименование + СимволТабуляции+
       ВУС.Наименование+СимволТабуляции+
       КритерииГодности.Наименование+СимволТабуляции+
       Военкомат.Наименование+СимволТабуляции+
       ""+СимволТабуляции+
       СпецУч+СимволТабуляции+
       СнУч;
КонецЕсли;
СпрСотр.Записать();

В  СпрСотр.ВоинскийУчет присваивает то что нужно, а при попытке сохранить СпрСотр.Записать() пишется что запись Заблокирована.  
Например:
{Справочник.ВоинскаяОбязанность.ФормаСписка.ФормаСписка.Модуль(40)}: Объект заблокирован: АБРАМОВ ГЕННАДИЙ ИВАНОВИЧ

В чем ошибка?
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 02-09-2004 16:57 » new

В приведенном куске кода СпрВО не используется - зачем его создавать и назначать владельца?
В какой процедуре находится данный код? Случайно не ПриЗаписи()?
Тогда естественно объект заблокирован. Еще возможно ИспользоватьВладельца() блокирует объект.
А код я бы все же немножко преписал для большей универсальности (совсем чуть-чуть):
Код:
// СпрВО = СоздатьОбъект("Справочник.ВоинскаяОбязанность"); это вообще не надо
СпрСотр= СоздатьОбъект("Справочник."+Владелец.Вид());
// СпрВО.ИспользоватьВладельца(СпрСотр); тоже не надо
Если СпрСотр.НайтиЭлемент(Владелец) = 1 тогда
    СпрСотр.ВоинскийУчет = "..."; // ну то, что надо присвоить
КонецЕсли;
СпрСотр.Записать();
« Последнее редактирование: 01-12-2007 13:08 от Алексей1153++ » Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines