Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Отловить нажатие кнопки
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование управляемых форм 1С 8.2
VolandMaster
Доброго времени суток. Может кто знает как можно отловить нажатие кнопки(мной созданной) на сервере?
logist
Никак.
VolandMaster
Значит у меня не верный подход к задаче.При проводке есть контроль остатка, мне нужно создать кнопочку которая делает проводку минуя контроль остатков. Отдельные движения писать не хочеться, при модификации кода будет не удобно. Я хотел отловить нажатие кнопки и если была нажата пропустить контроль.
Как еще можно решить задачу?
logist
Цитата(VolandMaster @ 29.01.13, 12:48) необходимо зарегистрироваться для просмотра ссылки
Как еще можно решить задачу?

Сделать реквизит булево "не контролировать остатки" и разместить его на форме, при проведении учитывать его значение.
Vofka
В модуле объекта завести переменную ОтключитьКонтрольОстатков. При нажатии на кнопку делать

ОтключитьКонтрольОстатков = Истина;


В месте, где происходит контроль - проверяйте
Если ОтключитьКонтрольОстатков <> Истина Тогда
   // контроль остатков
КонецЕсли;
VolandMaster
Цитата(logist @ 29.01.13, 13:22) необходимо зарегистрироваться для просмотра ссылки
Сделать реквизит булево "не контролировать остатки" и разместить его на форме, при проведении учитывать его значение.

Думал но нужна именно кнопочка.

Цитата(Vofka @ 29.01.13, 13:25) необходимо зарегистрироваться для просмотра ссылки
В модуле объекта завести переменную ОтключитьКонтрольОстатков. При нажатии на кнопку делать

ОтключитьКонтрольОстатков = Истина;


В месте, где происходит контроль - проверяйте
Если ОтключитьКонтрольОстатков <> Истина Тогда
   // контроль остатков
КонецЕсли;

Кнопочка в модуле формы, если я объявлю экспортную перемену в модуле объекта, как изменить ее в модуле формы?
Vofka
Цитата(VolandMaster @ 29.01.13, 13:52) необходимо зарегистрироваться для просмотра ссылки
Кнопочка в модуле формы, если я объявлю экспортную перемену в модуле объекта, как изменить ее в модуле формы?

А, это же УГ УФ faceoff.gif .

&НаКлиенте
Процедура ПровестиПереопределенная(Команда)
    
    ПровестиПереопределеннаяНаСервере();
    
КонецПроцедуры

Процедура ПровестиПереопределеннаяНаСервере()
    
    ДокументОбъект = РеквизитФормыВЗначение("Объект");
    ДокументОбъект.Тест = Истина; // Тест - экспортная переменная модуля объекта
    ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
    
КонецПроцедуры


После этого в обработке проведения можете получить значение переменной Тест.
VolandMaster
Цитата(Vofka @ 29.01.13, 14:32) необходимо зарегистрироваться для просмотра ссылки
А, это же УГ УФ faceoff.gif .

&НаКлиенте
Процедура ПровестиПереопределенная(Команда)
    
    ПровестиПереопределеннаяНаСервере();
    
КонецПроцедуры

Процедура ПровестиПереопределеннаяНаСервере()
    
    ДокументОбъект = РеквизитФормыВЗначение("Объект");
    ДокументОбъект.Тест = Истина; // Тест - экспортная переменная модуля объекта
    ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);
    
КонецПроцедуры


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

Так пробовал, глобальная переменная в модуле объекта все равно не получает значение.
logist
Цитата(VolandMaster @ 29.01.13, 13:52) необходимо зарегистрироваться для просмотра ссылки
Думал но нужна именно кнопочка.

Сделайте кнопочку которая будет устанавливать реквизит в Исттину, в чем проблема?
Vofka
Цитата(VolandMaster @ 29.01.13, 15:23) необходимо зарегистрироваться для просмотра ссылки
Так пробовал, глобальная переменная в модуле объекта все равно не получает значение.

Я перед тем как написал - проверил. Всё получает.
VolandMaster
Модуль формы

&НаКлиенте
Процедура ПровестиБезКонтроля(Команда)
    НавигационнаяСсылка = ПолучитьНавигационнуюСсылку(Объект.ссылка);
    ПровестиБезКонтроляНаСервере();
    Прочитать();
    ПоказатьОповещениеПользователя("Документ проведен",НавигационнаяСсылка,Строка(Объект.Ссылка));
КонецПроцедуры


&НаСервере
Функция ПровестиБезКонтроляНаСервере()
    Тест = РеквизитФормыВЗначение("Объект");
    Тест.ОтключитьКонтрольОстатка = Истина;
    Док = Объект.Ссылка.ПолучитьОбъект();
    Док.Записать(РежимЗаписиДокумента.Проведение);
КонецФункции


В модуле объекта объявил переменную

Перем ОтключитьКонтрольОстатка Экспорт;


В процедуре обработка проведения ОтключитьКонтрольОстатка не имеет значения.

В переменной Тест есть перемена ОтключитьКонтрольОстатка ,она изменяется ,но в модуле объекта не получает значение.
pablo
Мне одному кажется, что Ваш код отличается от Вовкиного?
VolandMaster
Понял,все заработало, спасибо!!
Vofka
VolandMaster, скажите, пожалуйста, всегда хотел понять чем руководствуется человек, когда ему говоришь сделай "так", он делает "не так" и говорит "не работает"?
logist
Мне вот чисто из любопытства, вот я пользователь, нажму я эту кнопочку "провести без контроля", а потом нажму "провести и закрыть" и если остатка не будет получу сообщение о том что нельзя провести, я попытаюсь закрыть форму а она у меня еще спросит сохранить изменения или нет, а я хз, что я там менял, ну нажму "да", опять ошибка проведения, опять нажму закрыть, опять вопрос о сохранении, и я уже начну нервничать, что за нафик, почему эта куча вопросов... И опять же наличие такой кнопочки обязует постоянно помнить, что в случае ее использования документ надо закрывать нажатием "на крестик" а не в коем случае кнопкой "провести и закрыть", и я ж еще должен помнить что я провел его этой кнопочкой а не обычной кнопкой "провести"...

Я к чему - юзабилити такого решения - просто ужасное.
VolandMaster
Цитата(Vofka @ 29.01.13, 16:24) необходимо зарегистрироваться для просмотра ссылки
VolandMaster, скажите, пожалуйста, всегда хотел понять чем руководствуется человек, когда ему говоришь сделайте "так", он делает "не так" и говорит "не работает"?

Код был уже написан до совета, а что вызывал обработку не так просто не заметил.
Vofka
Цитата(logist @ 29.01.13, 16:34) необходимо зарегистрироваться для просмотра ссылки
Я к чему - юзабилити такого решения - просто ужасное.

Называем кнопку "Провести и закрыть (без контроля)" в процедуре кнопки дописываем Закрыть();
А с какой радости при закрытии система будет спрашивать о сохранении данных?
VolandMaster
Цитата(logist @ 29.01.13, 16:34) необходимо зарегистрироваться для просмотра ссылки
Мне вот чисто из любопытства, вот я пользователь, нажму я эту кнопочку "провести без контроля", а потом нажму "провести и закрыть" и если остатка не будет получу сообщение о том что нельзя провести, я попытаюсь закрыть форму а она у меня еще спросит сохранить изменения или нет, а я хз, что я там менял, ну нажму "да", опять ошибка проведения, опять нажму закрыть, опять вопрос о сохранении, и я уже начну нервничать, что за нафик, почему эта куча вопросов... И опять же наличие такой кнопочки обязует постоянно помнить, что в случае ее использования документ надо закрывать нажатием "на крестик" а не в коем случае кнопкой "провести и закрыть", и я ж еще должен помнить что я провел его этой кнопочкой а не обычной кнопкой "провести"...

Я к чему - юзабилити такого решения - просто ужасное.

Это лишь решение обучающего задания, что описано в задании то и сделано.
Vofka
Я выше что ещё хотел сказать: когда вопрос задается на техническом уровне и не говорится зачем и почему так делается - нельзя говорить о неэффективности какого-либо решения. Давать какие-либо комментарии о варианте с добавлением реквизита я не буду.
logist
Цитата(VolandMaster @ 29.01.13, 16:51) необходимо зарегистрироваться для просмотра ссылки
Это лишь решение обучающего задания, что описано в задании то и сделано.

Можно дать задание "Удалить гланды", а если их удалят через жопу, то получить ответ - задание было удалить - удалили.
VolandMaster
Цитата(logist @ 29.01.13, 17:02) необходимо зарегистрироваться для просмотра ссылки
Можно дать задание "Удалить гланды", а если их удалят через жопу, то получить ответ - задание было удалить - удалили.

Если пациент будет под наркозом то ему все равно как их удалят smile.gif Если у вас есть более коректные варианты как отловить кнопочку буду благодарен за информацию.
logist
Цитата(VolandMaster @ 29.01.13, 17:11) необходимо зарегистрироваться для просмотра ссылки
Если у вас есть более коректные варианты как отловить кнопочку

Более конкретные чем я уже предложил? Вряд ли.
Vofka
Цитата(logist @ 29.01.13, 17:02) необходимо зарегистрироваться для просмотра ссылки
Можно дать задание "Удалить гланды", а если их удалят через жопу, то получить ответ - задание было удалить - удалили.

Если пациент на следующий день чувствует себя хорошо - то пусть хоть через ухо удаляют, главное результат.

И я для себя так и не могу понять следующее. Не я, не вы не знали для чего это требовалось ТС. Как оказалось, есть некое задание, которое делается так, как написано: в лоб. И то, что тут создание реквизита это даже не просто излишне, а неправильно, я надеюсь, понятно всем. Но несмотря на это, вы продолжаете выдумывать какие-то варианты, почему решение без создания реквизита плохое. Лично меня вы не убедили и не убедите. Поэтому, в контексте этой темы, как раз вариант с добавлением реквизита - это удаление гланд через заднее место.
logist
Цитата(Vofka @ 29.01.13, 17:18) необходимо зарегистрироваться для просмотра ссылки
Если пациент на следующий день чувствует себя хорошо - то пусть хоть через ухо удаляют, главное результат.

Тогда прошу прощения, дальше развивать свою точку зрения нет смысла.
Vofka
Цитата(logist @ 29.01.13, 17:24) необходимо зарегистрироваться для просмотра ссылки
Тогда прошу прощения, дальше развивать свою точку зрения нет смысла.

Я ещё попрошу обратить внимание на то, что ниже написано в том посте, откуда вы предоставили цитату.
logist
Цитата(Vofka @ 29.01.13, 17:26) необходимо зарегистрироваться для просмотра ссылки
Я ещё попрошу обратить внимание

Обратил конечно.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.