7.7 Обращение к элементам формы

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем KMC, 4 дек 2007.

  1. TopicStarter Overlay
    KMC
    Offline

    KMC Опытный в 1С

    Регистрация:
    21 фев 2007
    Сообщения:
    53
    Симпатии:
    0
    Баллы:
    26
    Как обратиться к элементам формы (Форма конкретного документа) из другой формы (Обработка), если этот элемент не является риквизитом документа? Иными словами, изменить параметр элемента
  2. ЧКДзержинский
    Offline

    ЧКДзержинский Опытный в 1С

    Регистрация:
    7 дек 2006
    Сообщения:
    487
    Симпатии:
    3
    Баллы:
    29
    Если обработка открывается из формы дока, то передай в форму обработки контекст дока, а из него вроде можно вытаскивать реквизиты формы.
  3. TopicStarter Overlay
    KMC
    Offline

    KMC Опытный в 1С

    Регистрация:
    21 фев 2007
    Сообщения:
    53
    Симпатии:
    0
    Баллы:
    26
    У меня вот такой код
    Код:
    ДокПр.ВыбратьДокументы();
    Пока ДокПр.ПолучитьДокумент() = 1 Цикл
    ДокПр.СделатьНеПроведенным(); //Делаем док непроведенным     
    ОткрытьФорму(ДокПр.ТекущийДокумент(),А,0); //Открываем форму в режиме редактирования
    С=А.Форма.ПолучитьАтрибут("рд_ФлагРазряд"); //Считываем элемент формы (не рикизит дока)    логический
    С=1;  //Ставим 1 или галку
    ДокПр.РазрядЕТС=СпрТариф.ТекущийЭлемент(); //Ставим реквизит дока
    
    А.Форма.Обновить();//Обнвляем
    А.Форма.Закрыть(0);//Закрываем
    [color=#FF0000]    ДокПр.Провести(); //[color="#CC0000"]Проводим и он пишет, что документ не доступен!!!!
    КонецЦикла;
    
    Не могу понять почему?
  4. ЧКДзержинский
    Offline

    ЧКДзержинский Опытный в 1С

    Регистрация:
    7 дек 2006
    Сообщения:
    487
    Симпатии:
    3
    Баллы:
    29
    Может я чего-то не понимаю, ты что пытаешься сохранить значение реквизита формы, который не является реквизитом документа?
  5. TopicStarter Overlay
    KMC
    Offline

    KMC Опытный в 1С

    Регистрация:
    21 фев 2007
    Сообщения:
    53
    Симпатии:
    0
    Баллы:
    26
    Да. Только этот реквизит документа зависит от реквизита формы. Поэтому такая проблема с обращением к основному реквизиту документа
  6. ЧКДзержинский
    Offline

    ЧКДзержинский Опытный в 1С

    Регистрация:
    7 дек 2006
    Сообщения:
    487
    Симпатии:
    3
    Баллы:
    29
    Значение реквизита формы, не являющегося реквизитом документа сохранить нельзя.
  7. TopicStarter Overlay
    KMC
    Offline

    KMC Опытный в 1С

    Регистрация:
    21 фев 2007
    Сообщения:
    53
    Симпатии:
    0
    Баллы:
    26
    Мне нужно изменить реквизит документа, но он сохраняется, когда реквизит формы стоит в TRUE. Код видели?? Там все ОК. Только проведение не получается.
  8. ЧКДзержинский
    Offline

    ЧКДзержинский Опытный в 1С

    Регистрация:
    7 дек 2006
    Сообщения:
    487
    Симпатии:
    3
    Баллы:
    29
  9. ЧКДзержинский
    Offline

    ЧКДзержинский Опытный в 1С

    Регистрация:
    7 дек 2006
    Сообщения:
    487
    Симпатии:
    3
    Баллы:
    29
    Условие, при котором документ не сохраняется при незаполненном реквизите формы, не являющимся реквизитом документа, будет выполняться только при попытке открыть документ и записать. Если же ты из кода обратишься к доку и без всякого открытия формы изменишь значение реквизита, а потом запишешь, то все будет нормально.
    Например, есть документ с Реквизитом "Рек", а на форме есть реквизит Флаг, который не является реквизитом документа. Если в процедуре ПриЗаписи ты пропишешь:
    Процедура ПриЗаписи()
    Если Флаг = 0 Тогда
    СтатусВозврата(0);
    КонецЕсли;
    КонецПроцедуры
    В этом случае ты не сможешь штатно (нажатием кнопки) записать документ с флагом=0. Но если ты сделаешь это обработкой:
    Док = СоздатьОбъект("Документ.Новый1");
    Док.НайтиПоНомеру("4");
    Док.Рек = 987987;
    Док.Записать()
    то все будет нормально, вне зависимости от значения реквизита формы Флаг.

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