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

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

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ Не удается активизировать строку выбора в документе в 1с 7.7 конф 7.7.003

Автор: ZUBR 03.03.20, 23:07

Здравствуйте!
Мне никак не удается активизировать строку выбора из справочника Симптомы в созданном мною документе АктПриема. Привожу кусок кода

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


Код расположен в модуле формы. При работе выдает ошибку:
Активизировать("Симптомы");
{Документ.АктПриема.Форма.Модуль(116)}: В данной формуле не может быть вызвана эта процедура(функция)

Почему так? В чем причина? Ведь данный метод я вызываю, как и положено, из модуля формы документа. Спасибо.

У меня два поля диалога.
"Заявлено" - обычная строка для ввода
и "Симптомы" - строка с типом значений "Справочник.Симптомы" и с кнопкой ввода элементов из справочника.

Автор: volodya1122 04.03.20, 12:56

Активизировать работает только в штатних процедурах 1С (типу ПриОткрытии, ПриЗакрытии....
Поэтому нужно инициировать так-называемое ложное закрытие формы чтобы в нем отработало Активизировать.
Вот что нужно дописать

Перем МожноЗакрыть;

Процедура ПриОткрытии()
    МожноЗакрыть = 1;
КонецПроцедуры    

Процедура ПриЗакрытии()
    Если МожноЗакрыть = 0 Тогда  
        МожноЗакрыть = 1;
        Активизировать("Контрагенты1", 0);
        СтатусВозврата(0);
        Возврат;
    КонецЕсли;
КонецПроцедуры


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

    МожноЗакрыть = 0;
    Форма.Закрыть(0);
КонецПроцедуры


Автор: ZUBR 10.03.20, 23:40

volodya1122 @ 04.03.20, 12:56 * ,
Не согласен. В документе РасходнаяНакладная я прописал Активизировать не в "штатной" процедуре, и все работает. Поэтому, думаю, проблема в чем-то другом.

Процедура Виконав()                                              
    
    Если ((ПустаяСтрока(Причина)=1)и(СтатусЗаказа<>Перечисление.Статусы.Акс)) Тогда
        Предупреждение("Вкажіть ПРИЧИНУ!");
        СтатусВозврата(1);
        Активизировать("Причина");
        Возврат;
    КонецЕсли;
    
    Если ((ПустаяСтрока(КН)=1)и(СтатусЗаказа<>Перечисление.Статусы.Акс)и(ПустаяСтрока(НомерМодели)=0)) Тогда
        Предупреждение("Вкажіть КОД НЕСПРАВНОСТІ!");
        СтатусВозврата(0);
        Активизировать("КН");
        Возврат;
    Иначе    Форма.КН.Доступность(0);
    КонецЕсли;

// и т.д.....................................................................


Просто Активизирует работает в штатном документе РасходнаяНакладная и не работает в созданном мной документе АктПриема. Не понятно, почему.

Автор: volodya1122 11.03.20, 9:52

ZUBR @ Вчера, 23:40 * ,

Действительно. Проверил. Активизировать() с кнопки работает, а с "поля ввода" нет. Поєтому тут выход или так как я написал, или в порядке обхода поставить "Симптомы" сразу после реквизита "Заявлено".

Автор: mut 12.03.20, 16:57

Может попробовать АктивизироватьОбъект() ? Это ж у вас список справочника? А то что вы пробуете - для других мест.

АктивизироватьОбъект(<?>);
Синтаксис:
АктивизироватьОбъект(<Объект>)
Назначение:
Активизировать объект в форме списка.


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