Имя: Пароль:
1C
1С v8
Альфа-Авто Процедура ОрганизацияПодразделениеПриИзменении(Элемент)
0 Mikhail Volkov
 
17.11.19
15:31
В формах документов Альфа-Авто есть элемент для открытия формы общих реквизитов: Организация, подразделение компании, документа-основания, менеджер и автор документа. Его тип значения СписокЗначений: СправочникСсылка.Организации, СправочникСсылка.ПодразделенияКомпании. Имеется событие при изменении и Процедура ОрганизацияПодразделениеПриИзменении(Элемент), но она срабатывает только при изменении Организации или подразделении компании. А при изменении документа-основания нет. Как сделать чтобы срабатывала?
1 Mikhail Volkov
 
18.11.19
08:06
В СписокЗначений добавлял основание ДокументСсылка.ЗаказНаряд - не помогло.
2 _stay true_
 
18.11.19
08:15
(1) Вангую: вывести на форму этот реквизит и определить ему событие "ПриИзменении"?
3 Mikhail Volkov
 
18.11.19
09:23
(2) Это самое простое. Но не хотелось бы, тогда придется его убрать (запретить доступ) с формы общих реквизитов.
Почему событие "ПриИзменении" не срабатывает при изменении элемента формы ОрганизацияПодразделение, по которому открывается форма общих реквизитов?
4 hhhh
 
18.11.19
09:53
(3) наверно потому что в элементе формы ОрганизацияПодразделение прописано это событие. ПОэтому оно срабатывает.
5 HawkEye
 
18.11.19
10:27
(0) определить событие ПриИзменении документаОснования, в чем проблема то?
6 Mikhail Volkov
 
18.11.19
10:45
(5) Реквизита ДокументОснование нет на форме, он на форме общих реквизитов.
(4) Срабатывает только при изменении реквизитов Организация и Подразделение, а при изменении других общих реквизитов нет.
7 hhhh
 
18.11.19
11:15
(6) значит там прописано это событие. чудес не бывает
8 HawkEye
 
18.11.19
11:17
(6) я в курсе, за тебя открыл и посмотрел...
9 Mikhail Volkov
 
18.11.19
11:31
(7) Вопрос: почему событие "ПриИзменении" не срабатывает при изменении элемента формы ОрганизацияПодразделение? Ставлю в процедуру ОрганизацияПодразделениеПриИзменении(Элемент) точку останова, и никакой реакции!?
10 HawkEye
 
18.11.19
12:03
(9) может потому, что ПриНачалеИзменения стоит СтандартнаяОбработка = Ложь;?
11 Mikhail Volkov
 
18.11.19
13:06
(10) Да, процедуре дкОрганизацияПодразделениеНачалоВыбора(Элемент, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Но при изменении Организации или подразделении компании она же срабатывает!?
12 Kondarat
 
18.11.19
13:09
(11) А общую форму "ВыборОбщихРеквизитов" уже смотрел?
13 HawkEye
 
18.11.19
13:09
(11) ну так у тебя же есть отладчик )))
14 Mikhail Volkov
 
18.11.19
14:25
(12) Да, по нажатию ОК измененные общие реквизиты передаются в документ. Но мне еще кое что надо сделать при изменении ДокументОснование, при чем только в этом типе документа.
(13) Им и смотрю (9).
15 Ёпрст
 
18.11.19
14:28
расширения есть ?
16 Ёпрст
 
18.11.19
14:29
события в свойствах формы назначены хоть ?
17 Kondarat
 
18.11.19
14:32
(14) И в чем проблема?

    Попытка
        Если ВладелецФормыДокументОснование<>ДокументОснование Тогда
            ВладелецОбъект.ДокументОснование=ДокументОснование;
            ВладелецОбъект.ОбработкаРеквизита("ДокументОснование",,ВладелецФорма);
        КонецЕсли;
    Исключение КонецПопытки;

Сделай в модуле документа твоего типа в процедуре ОбработкаРеквизита(...) реакцию на ДокументОснование
18 Mikhail Volkov
 
18.11.19
14:56
(15) Нет
(16) События всей формы? Или только элемента формы ОрганизацияПодразделение: НачалоВыбора и ПриИзменении.
(17) Пришлось так и сделать, но вопрос остался...
19 Mikhail Volkov
 
19.11.19
11:04
(10) Значит основная причина СтандартнаяОбработка = Ложь в обработчике НачалоВыбора этого элемента формы? Но не смотря на это в других документах обработчик события ПриИзменении срабатывает, правда при изменении только организации или подразделении. Например, в Выписке:

// изменение "Организации" и "Подразделения"
Процедура ОрганизацияПодразделениеПриИзменении(Элемент)
    Если обЗначениеНеЗаполнено(БанковскийСчет) Тогда
        БанковскийСчет = Организация.ОсновнойБанковскийСчет;
    ИначеЕсли БанковскийСчет.Владелец <> Организация Тогда
        БанковскийСчет = Организация.ОсновнойБанковскийСчет;
    КонецЕсли;
КонецПроцедуры // ОрганизацияПодразделениеПриИзменении()
20 Mikhail Volkov
 
22.11.19
12:12
(10) Странно, во многих формах в обработчиках НачалоВыбора СтандартнаяОбработка = Ложь; например, при использовании Отбора, но обработчики ПриИзменении срабатывают!?
21 Mikhail Volkov
 
22.11.19
13:57
А еще вопрос: обработчике НачалоВыбора делаю отбор:
    СтандартнаяОбработка = Ложь;
    ФормаВыбора = Документы.ЗаказНаряд.ПолучитьФормуВыбора(,Элемент);
    ФормаВыбора.Отбор.Ссылка.Использование = Истина;
    ФормаВыбора.Отбор.Ссылка.ВидСравнения  = ВидСравнения.ВСписке;
    ФормаВыбора.Отбор.Ссылка.Значение      = СписокЗаказНарядов;
    ФормаВыбора.Открыть();
Как в ФормаВыбора отключить/включить видимость некоторых колонок?
22 Mikhail Volkov
 
22.11.19
18:07
Так работает:
    СтандартнаяОбработка = Ложь;
    ФормаВыбора = Документы.ЗаказНаряд.ПолучитьФормуВыбора(,Элемент);
    ФормаВыбора.ЭлементыФормы.Список.Колонки.Комментарий.Видимость = Ложь;
    ФормаВыбора.ЭлементыФормы.Список.Колонки.РаботыСтороннихОрганизаций.Видимость = Истина;
    ФормаВыбора.Отбор.Ссылка.Использование = Истина;
    ФормаВыбора.Отбор.Ссылка.ВидСравнения  = ВидСравнения.ВСписке;
    ФормаВыбора.Отбор.Ссылка.Значение      = СписокЗаказНарядов;
    ФормаВыбора.Открыть();
Но неприятность: отключенные колонки в ФормаВыбора остаются отключенными в ФормаСписка. Где-то эти настройки сохраняются? Надо бы сделать, чтобы после открытия ФормаВыбора не сохранялись...
23 Mikhail Volkov
 
23.11.19
09:30
Ответ v8: v8: Где хранятся настройки форм в серверной 1С ничего не дал. Отключать видимость колонок не обязательно, отключал для того, чтобы добавленная в конце колонка РаботыСтороннихОрганизаций видна была. Просто передвинул ее ближе к началу, и снял с нее Видимость, ИзменятьНастройку, ИзменятьВидимость. Теперь в ФормаСписка она не видна, только в ФормаВыбора.
24 Mikhail Volkov
 
27.11.19
12:13
(20) Все же, отчего зависит срабатывание обработчика ПриИзменении? Специально комментирую СтандартнаяОбработка = Ложь; в обработчике НачалоВыбора, но обработчик ПриИзменении не срабатывает!?
25 hhhh
 
27.11.19
12:30
(24) ОбработкаВыбора пробуйте. Вообще-то надо на оба события заморочиться
26 Mikhail Volkov
 
27.11.19
14:02
(25) ОбработкаВыбора в моем случае отсутствует.
27 Mikhail Volkov
 
28.11.19
07:39
А вот другой случай: документ Заказ-наряд имеет табличную часть Исполнители. Поле ввода Исполнитель имеет события: НачалоВыбора и ПриИзменении:

//Изменение исполнителя
Процедура ИсполнителиИсполнительПриИзменении(Элемент)
    Если обЗначениеНеЗаполнено(ЭлементыФормы.Исполнители.ТекущаяСтрока.Цех) Тогда
        Если НЕ обЗначениеНеЗаполнено(Элемент.Значение.Цех) Тогда
            ЭлементыФормы.Исполнители.ТекущаяСтрока.Цех=Элемент.Значение.Цех;
        Иначе
            ЭлементыФормы.Исполнители.ТекущаяСтрока.Цех=Цех;
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры

//Начало выбора исполнителя
Процедура ИсполнителиИсполнительНачалоВыбора(Элемент, СтандартнаяОбработка)
    СтандартнаяОбработка=Ложь;
    :
Не я их вставлял, Рарус! Процедура ИсполнителиИсполнительПриИзменении(Элемент) не работает, даже при комментировании СтандартнаяОбработка=Ложь; Тогда зачем она?
28 Mikhail Volkov
 
28.11.19
14:53
По поводу СтандартнаяОбработка = Ложь отключает обработку ответили на https://forum.infostart.ru/forum9/topic96591/ (18):
СтандартнаяОбработка=Ложь; подразумевает, что форма будет открыта через "ОткрытьФорму(.....) с какими нибудь доп.параметрами, при этом подразумевается, что параметр ВЛАДЕЛЕЦ будет заполнент т.е "ОткрытьФорму(ИмяФормы, Параметры, Элемент, .....)" , что бы система знала куда вернуться... Если ВЛАДЕЛЕЦ пустой то и вызова "ПриИзменении" не будет.
29 Mikhail Volkov
 
29.11.19
12:28
Сделал как подсказали https://forum.infostart.ru/forum9/topic96591/#message2341294, и процедура ИсполнителиИсполнительПриИзменении(Элемент) заработала!!! Не ожидал таких косяков от Раруса.
Но это одна из причин не срабатывания обработчика ПриИзменении. А как по 1-му вопросу (0), там нет никакого ВЛАДЕЛЕЦа. В одних документах процедура ОрганизацияПодразделениеПриИзменении(Элемент) работает, в других нет?