powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Получить старое значение контрола
13 сообщений из 13, страница 1 из 1
Получить старое значение контрола
    #36867638
Taekwonder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Товарищи опытные 1С-ники, возник вопрос. Версия 7.7
Возможно ли каким-нибудь образом получить значение контрола до его изменения?
Типа как в VBA - controls(X).oldValue

Суть задачи такова, что есть контрол ДатаДок. При его изменении вызывается обработка, делаются опр.дейст. И вот в некоем случаем нужно будет отменить изменение этого контрола(т.е. вернуть старое значение)

8.0 - можно было бы сделать через ДоОбновления, а 7.7 вопрос??? Т.к. 7.7 событий контролов нет.

В общем кто что знает поделитесь, возможно у кого была такая проблема.
...
Рейтинг: 0 / 0
Получить старое значение контрола
    #36867661
Reder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Taekwonder, ну если документ не новый, т.е. уже сохранен в базе просто, прочитать из базы значение.
...
Рейтинг: 0 / 0
Получить старое значение контрола
    #36867685
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
запоминай перед открытием формы текущее значение в переменную и если что-то не так - восстанавливай из неё
...
Рейтинг: 0 / 0
Получить старое значение контрола
    #36867696
Taekwonder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Reder,

Спс за совет.
А если будет новый? В документах ДатаДок создаётся автоматом, поэтому пользователь при создании документа может поменять его дату.

Думал сделать так:
1. Завести некое "свойство" в форме.
2. При открытии записывать его, и в самом конце ПриИзменении.
Тогда, если к нему обратиться, можно было бы получить "прошлое" значение. Но, мне, почему-то, данный метод показался не очень изящным. Решил поинтересоваться, может есть какое-нибудь стандартное решение.
...
Рейтинг: 0 / 0
Получить старое значение контрола
    #36867703
Taekwonder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Last1Cmen,

Ну, если других вариантов нет, то придётся именно так.
...
Рейтинг: 0 / 0
Получить старое значение контрола
    #36867747
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaekwonderLast1Cmen,

Ну, если других вариантов нет, то придётся именно так.

зачем заводить реквизит в форме ? плодим ненужные сущности увеличиваем размер таблиц

актуальность значение имеет только при открытой форме следовательно нет необходимости его запоминать и следовательно достаточно переменно локального контекста живущей только при открытой форме
...
Рейтинг: 0 / 0
Получить старое значение контрола
    #36867788
Taekwonder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Last1Cmen,

Ну так я именно это и имел ввиду.))) Я 1С-ник совсем зелёный ещё. Раньше кодил на VBA, поэтому когда писал свойство имел ввиду:

Создать переменную уровня доступности модуля.
В форме обращаться к ней через
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Function LetDateDoc(Val Value)
MDateDoc = Value; 
EndFunction

Function GetDateDoc()
Return MDateDoc;
endfunction

Конечно же, никаких реквизитов заводить не нужно, я с вами абсолютно согласен.
...
Рейтинг: 0 / 0
Получить старое значение контрола
    #36867857
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
ПолеВвода (TextBox)
ОбработкаВыбора (ChoiceProcessing)
Синтаксис:
ОбработкаВыбора(<Выбранное значение>, <Стандартная обработка>) 
Параметры:
<Выбранное значение>
Тип: Произвольный. Выбранное значение, которое будет установлено как значения поля ввода. 
<Стандартная обработка>
Тип: Булево. В данный параметр передается признак выполнения стандартной (системной) обработки
 события. Если в теле процедуры-обработчика установить данному параметру значение Ложь, 
стандартная обработка события производиться не будет. Фактически это означает, что выбор 
произведен не будет.
Значение по умолчанию: Истина 
Описание:
Возникает после выполнения выбора при: обработке выбора из списка выбора; обработке выбора из 
всех модальных диалогов выбора (например, календаря, калькулятора); обработке немодального 
выбора (например, из списка справочника). 

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
ПолеВвода (TextBox)
ОкончаниеВводаТекста (TextEditEnd)
Синтаксис:
ОкончаниеВводаТекста(<Текст>, <Значение>, <Стандартная обработка>) 
Параметры:
<Текст>
Тип: Строка. Строка текста, введенная в поле ввода. 
<Значение>
Тип: Значение; СписокЗначений. Параметр может содержать значение для размещения в поле 
ввода или список значений для последующего выбора одного из них и размещения в поле ввода. 

Параметр заполняется списком значений для последующего выбора одного из них и размещения 
его в поле ввода. Если список содержит единственное значение система автоматически подставит 
его в поле ввода. Пометки элементов этого списка значений могут использоваться для отметки 
значений, соответствующих помеченным на удаление объектам. В том случае, если пользователь 
выберет одно из помеченных значений, система выдаст стандартное предупреждение о выборе 
помеченного на удаление объекта. 
<Стандартная обработка>
Тип: Булево. В данный параметр передается признак выполнения стандартной (системной) 
обработки события. Если в теле процедуры-обработчика установить данному параметру значение 
Ложь, стандартная обработка события производиться не будет.
Значение по умолчанию: Истина 
Описание:
Возникает при формировании значения по отредактированному тексту. Например, в момент 
перехода на другой элемент управления формы, при закрытии формы и т.д. 
...
Рейтинг: 0 / 0
Получить старое значение контрола
    #36867894
Taekwonder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leaf,

Вы уверены, что это для 7.7? А что то я не нашёл в конфигураторе ни описания, ни как этим пользоваться.
...
Рейтинг: 0 / 0
Получить старое значение контрола
    #36867901
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leaf - 7ка
...
Рейтинг: 0 / 0
Получить старое значение контрола
    #36867987
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Процедура ПриИзмененииВремениДокумента(<?>)
КонецПроцедуры
Синтаксис:
ПриИзмененииВремениДокумента(<Докум>)
Назначение:
Предопределенная процедура при интерактивном изменении времени документа.
Параметры:
<Докум> - обрабатываемый документ.
Замечание:
Данная процедура может располагаться только в глобальном программном модуле.
Подробнее см. в документации, глава 'Системные предопределенные процедуры'

тогда не знаю
это наверное тоже не поможет
...
Рейтинг: 0 / 0
Получить старое значение контрола
    #36868008
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как то меня все равно коробит ...

вариант ... запретить редактирование убрать кнопку выбора
поставить свою кнопку в функции обработки использовать :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
ВвестиДату(<?>,)
Синтаксис:
ВвестиДату(<Дата>,<Подсказка>,<Таймаут>)
Назначение:
Вызов диалога для ввода даты.
Возвращает:
 1  - если в диалоге нажата кнопка ОК;
 0  - если нажата кнопка Отмена;
- 1   - если закончилось время ожидания ответа.
Параметры:
<Дата> - имя переменной, объявленной в модуле для приема вводимого значения;
<Подсказка> - текст заголовка окна диалога ввода;
<Таймаут> - число секунд времени ожидания ответа (если опущен или  0 , то без ограничения).

потом анализ введенного
...
Рейтинг: 0 / 0
Получить старое значение контрола
    #36868104
Taekwonder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
leaf,

Спс за материал. Всем спасибо за участие в теме.
Сделал через "свойства" формы.
По текущемуДокументу не вышло так как если меняют второй раз, то на значение при первом изменении попасть было невозможно.
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Получить старое значение контрола
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]