Имя: Пароль:
1C
1С v8
заимствовать переменную в расширение?
0 tired
 
25.06.20
07:25
в начале модуля формы:

&НаКлиенте
Перем ОткрытаФормаВыбораИсполнителя;  // Признак того, что исполнитель выбирается из формы, а не быстрым вводом

эта переменная используется в том числе в одной из процедур этого же модуля.

пытаюсь изменить эту процедуру в расширении конфигурации, но вылазит ошибка:

Переменная не определена (ОткрытаФормаВыбораИсполнителя)

и как тут быть?
1 ASU_Diamond
 
25.06.20
07:56
Добавь префикс к имени переменной для расширения
2 Галахад
 
гуру
25.06.20
08:11
Код, наверное стоит показать.
3 Мимохожий Однако
 
25.06.20
08:18
Переменную размести не в процедуре, а в модуле.
4 Вафель
 
25.06.20
08:19
а если на переменой нажать пкм и добавить в расширение
5 Галахад
 
гуру
25.06.20
08:28
(4) Гм. А чо так можно было?
6 tired
 
25.06.20
08:28
(1) Переменная не определена (Правка_ОткрытаФормаВыбораИсполнителя)

Или переменную тоже надо каким-то образом заимствовать?
7 tired
 
25.06.20
08:31
(4) "Добавить в расширение" неактивно.
8 tired
 
25.06.20
08:35
(3) я переменную не размещаю. она - в основной конфигурации (только для чтения). я делаю изменения через расширение.
9 PuhUfa
 
25.06.20
08:39
(0) >>но вылазит ошибка: Переменная не определена (ОткрытаФормаВыбораИсполнителя)
Вылазит когда?
10 tired
 
25.06.20
08:51
(9) при попытке сохранения изменений в расширение. если я её игнорирую, и изменения всё равно сохраняю и обновляю конфигурацию, то и в обычном режиме при открытии формы жалуется на то же и форма не появляется.
11 PuhUfa
 
25.06.20
09:04
(10) Сделал сейчас у себя на 8.3.15.1830. Даже синтаксис не выдал ошибок.
12 tired
 
25.06.20
09:47
(11) у нас 8.3.16.1148
13 tired
 
25.06.20
10:26
(2) &Вместо("ИсполнителиИсполнительПриИзменении")
Процедура Правка_ИсполнителиИсполнительПриИзменении(Элемент)
    Если ОткрытаФормаВыбораИсполнителя = Истина Тогда
        Возврат;
    КонецЕсли;
    
    СтрокаТЧ = Элементы.ИсполнителиПроведенияМО.ТекущиеДанные;
    ОсновнойОбъектАдресации = Неопределено;
    ДополнительныйОбъектАдресации = Неопределено;
    
    Если ТипЗнч(СтрокаТЧ.Исполнитель) = Тип("СправочникСсылка.РолиИсполнителей") И ЗначениеЗаполнено(СтрокаТЧ.Исполнитель) Тогда
        Если ИспользуетсяСОбъектамиАдресации(СтрокаТЧ.Исполнитель) Тогда
            КонтекстВыбора = "ИсполнительПриИзменении";
            ПараметрыФормы = Новый Структура;
            ПараметрыФормы.Вставить("РольИсполнителя", СтрокаТЧ.Исполнитель);
            ПараметрыФормы.Вставить("ОсновнойОбъектАдресации", ОсновнойОбъектАдресации);
            ПараметрыФормы.Вставить("ДополнительныйОбъектАдресации", ДополнительныйОбъектАдресации);
            ОткрытьФорму("ОбщаяФорма.ВыборРолиИсполнителя", ПараметрыФормы, ЭтотОбъект);
            Возврат;
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры
14 tired
 
25.06.20
10:28
почему-то первая строка исчезла:

&Вместо("ИсполнителиИсполнительПриИзменении")
15 tired
 
25.06.20
11:39
кстати, ещё жалуется на это:

Процедура или функция с указанным именем не определена (ОткрытьФорму)
16 Галахад
 
гуру
25.06.20
12:01
А если вставить:
#Если Сервер Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Тут что-то не так;
Сообщение.Поле = Сообщить();
#КонецЕсли
17 tired
 
25.06.20
12:27
(16) Обращение к процедуре как к функции (Сообщить)
18 Галахад
 
гуру
25.06.20
12:43
(16) Прогнал.

#Если Сервер Тогда

Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Тут что-то не так;
Сообщение.Сообщить();
#КонецЕсли
19 tired
 
25.06.20
12:50
короче, я заимствовал обработчик как процедуру, а надо было на обработчике основной конфигурации из контекстного меню "добавить в расширение". проблема решена. всем - спасибо за участие!