Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
ПьяныйАнгел
2 / 2 / 0
Регистрация: 05.08.2014
Сообщений: 28
1

Обработчик кнопки

26.05.2015, 16:11. Просмотров 944. Ответов 7
Метки нет (Все метки)

Вечер добрый.

Мой проект в универе подходит к логическому концу, сделал я его вообще без кода и вот уперся в потребность "немного покодить", но в синтаксисе 1с у меня ума-палата, даже не знаю с какой стороны подойти.

Суть вот в чем:
Есть перечисления "статус": Подтвердить; Отклонить; Новое;
Есть Документ, по-умолчанию в нем установил статус "Новое".
На форме документа есть поле "статус", ссылающееся на перечисление, конечно же. И должно быть две кнопки: Принять и Отклонить.
По нажатию кнопки статус должен меняться на соответствующий (Подтверждено\Отклонено) и форма документа должна закрыться.

Может кто-нибудь подсобит какой-нибудь информацией или кусочком кода? В гугле копался, ничего полезного не нашел... может плохо копался.

Заранее, спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2015, 16:11
Ответы с готовыми решениями:

Где перехватить стандартный обработчик "кнопки создать" в табличной части?
Где перехватить стандартный обработчик "кнопки создать" в табличной части типа...

Обработчик
Объясните пожалуйста доступным языком, что такое обработчик.

Обработчик ПриИзменении
Доброго времени суток. Суть проблемы: никак не получается написать обработчик....

Обработчик ПриИзменении 1с 7.7
Как вставить обработчик ПриИзменении реквизита на форме в семерке? в 8 все...

Обработчик на кнопку
Добрый день всем! Такой вопрос - как в 1С на форме документа назначить событе...

7
Tklwegsd
Эксперт 1С
695 / 503 / 173
Регистрация: 24.07.2013
Сообщений: 1,788
26.05.2015, 20:44 2
Может быть и дальше обойтись без кода
Пользователь просто выбирает нужное значение статуса и сохраняет документ.

Добавлено через 1 минуту
Версия платформы? Управляемые или обычные формы?
0
ПьяныйАнгел
2 / 2 / 0
Регистрация: 05.08.2014
Сообщений: 28
27.05.2015, 04:04  [ТС] 3
Это было бы слишком просто

8.2, управляемые
0
OrkVasya
о_____О
Эксперт 1С
219 / 219 / 36
Регистрация: 19.11.2010
Сообщений: 1,061
Завершенные тесты: 1
27.05.2015, 12:01 4
В процедуре нажатия кнопки что-нить вроде :

1C
1
2
3
4
5
6
7
8
9
10
11
&НаКлиенте
Процедура НажатиеКнопкиПодтвердить()
    ПодтвердитьНаСервере();
    Закрыть();
КонецПроцедуры
 
&НаСервере
Процедура ПодтвердитьНаСервере()
    Объект.Статус = Перечисления.Статус.Подтвердить;
    Записать();    
КонецПроцедуры
Добавлено через 1 час 43 минуты
Но вообще это не правильно.
Логику можно убить насмерть.
0
ПьяныйАнгел
2 / 2 / 0
Регистрация: 05.08.2014
Сообщений: 28
27.05.2015, 13:41  [ТС] 5
Спасибо)

Выдает такую ошибку:
{Документ.ИзвНаСозд.Форма.ФормаДокСозд.Форма(10,5)}: Недостаточно фактических параметров (Записать)
<<?>>Записать(); (Проверка: Сервер)


Что не так?)
0
OrkVasya
о_____О
Эксперт 1С
219 / 219 / 36
Регистрация: 19.11.2010
Сообщений: 1,061
Завершенные тесты: 1
27.05.2015, 13:49 6
Ну так в синтакс помощнике посмотрите как правильно.
0
ПьяныйАнгел
2 / 2 / 0
Регистрация: 05.08.2014
Сообщений: 28
27.05.2015, 16:06  [ТС] 7
Сделал вот так, заменив одну строку. Ошибки пропали. На кнопку не реагирует

1C
1
2
3
4
5
6
7
8
9
10
11
&НаКлиенте
Процедура НажатиеКнопкиПодтвердить()
    ПодтвердитьНаСервере();
    Закрыть();
КонецПроцедуры
 
&НаСервере
Процедура ПодтвердитьНаСервере()
    Объект.Статус = Перечисления.Статусы.Подтверждено;
    СтрокаДействийФормы = "Записать";  
КонецПроцедуры
Добавлено через 2 часа 10 минут
Одногруппник помозговал, получился такой код, но есть ошибки

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
&НаКлиенте
Процедура Команда1()
    Вернули=ПодтвердитьНаСервере();
    //ЭтаФорма.Прочитать(); //обновляет форму для измененного объекта                               
    ОповеститьОбИзменении(вернули);
    ЭтаФорма.Закрыть();
    //надо вызвать обновление или закрытие
    КонецПроцедуры
 
//&НаСервере
&НаСервереБезКонтекста 
Процедура ПодтвердитьНаСервере()
    Х= Объект.Ссылка.ПолучитьОбъект();
    Х.Статус = Перечисления.Статусы.Подтверждено;
    Х.Записать(РежимЗаписиДокумента.Проведение);
    //Записать(РежимЗаписиДокумента.Проведение);    
    //СтрокаДействийФормы = "Записать";  
     Возврат Х.Ссылка; 
    КонецПроцедуры
Ошибки:
{Документ.ИзвНаСозд.Форма.ФормаДокСозд.Форма(19,19)}: Процедура не может возвращать значение
Возврат Х.Ссылка<<?>>; (Проверка: Сервер)
{Документ.ИзвНаСозд.Форма.ФормаДокСозд.Форма(19,19)}: Процедура не может возвращать значение
Возврат Х.Ссылка<<?>>; (Проверка: Сервер)
{Документ.ИзвНаСозд.Форма.ФормаДокСозд.Форма(4,13)}: Обращение к процедуре как к функции (ПодтвердитьНаСервере)
Вернули=<<?>>ПодтвердитьНаСервере(); (Проверка: Тонкий клиент)
{Документ.ИзвНаСозд.Форма.ФормаДокСозд.Форма(19,19)}: Процедура не может возвращать значение
Возврат Х.Ссылка<<?>>; (Проверка: Тонкий клиент)
0
OrkVasya
о_____О
Эксперт 1С
219 / 219 / 36
Регистрация: 19.11.2010
Сообщений: 1,061
Завершенные тесты: 1
27.05.2015, 16:21 8
Вообще, вы какой-то бред пытаетесь сделать. Еще и не рабочий...
Если это все в документе, то проведение оставить лучше кнопке "Провести" иначе пользователь с ума сойдет, что документ проводится по ста кнопкам.
Если не хочется делать выбор перечисления, сделайте переключатель или тумблер (для "Такси"). В зависимости от значения присваивайте значение перечисления.

Цитата Сообщение от ПьяныйАнгел Посмотреть сообщение
Это было бы слишком просто
Согласен, вы пытаетесь сделать слишком сложно и слишком неправильно.

ЗЫ. Попросите одногруппника мозговать получше.

1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
&НаКлиенте
Процедура Команда1()
    Вернули=ПодтвердитьНаСервере(); 
    //ЭтаФорма.Прочитать(); 
    ОповеститьОбИзменении(вернули); // какие динамические списки вы хотите оповестить?
    ЭтаФорма.Закрыть();
    //надо вызвать обновление или закрытие
    КонецПроцедуры
 
//&НаСервере
&НаСервереБезКонтекста 
Процедура ПодтвердитьНаСервере()
    // круто, а если это новый документ, какую ссылку хотите получить?
    // и вообще, из объекта получать ссылку, чтобы получить объект - сильно!
    Х= Объект.Ссылка.ПолучитьОбъект(); 
    Х.Статус = Перечисления.Статусы.Подтверждено;
    Х.Записать(РежимЗаписиДокумента.Проведение);
    //Записать(РежимЗаписиДокумента.Проведение);    
    //СтрокаДействийФормы = "Записать";  
     Возврат Х.Ссылка; // процедура не умеет возвращать значения, о чем вам система и пишет. Функция умеет
    КонецПроцедуры
0
27.05.2015, 16:21
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2015, 16:21

Добавить обработчик события
Доброго времени суток. У меня есть форма элемента (Справочник ТМЦ). Я добавил...

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

ЗИК внешний обработчик
нужно вывести значения паспорта, должности и ФИО вместе накатал скрипт , но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru