Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Автоматическое заполнение поля документы при изменении другого поля
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование управляемых форм 1С 8.2
slon-genia
Здравствуйте. Я новичок в 1с. Пишу свою собственную учебную конфигурацию для себя. Прошу не пинать. Вопрос состоит в следующем:
Есть документ "НарядВРаботу", в документе есть поле "готова" (тип значения булево), и есть поле "дата начисления" (тип значения дата).
Нужно чтобы при изменении поля "готова" на "истину" в поле "дата" автоматически ставилось значение текущей даты.
Я так понимаю что в форме документа нужно прописать процедуру ПриИзменении поля "Готова".
Всем спасиба за ранее.
alexkhua
Процедура ГотоваПриИзменении(Элемент)
   Если Готова = Истина Тогда
      ДатаНачисления = ТекущаяДата();    
   КонецЕсли;
КонецПроцедуры
slon-genia
Прописал на форме документа
&НаКлиенте
Процедура ГотоваПриИзменении(Элемент)
      Если Готова = Истина Тогда
     ДатаНачисления = ТекущаяДата();    
  КонецЕсли;

КонецПроцедуры

Выдает ошибку: переменная не определена (Готова)


 ! 

Правила: 3, 12
 
logist
Если Объект.Готова = Истина Тогда

Учитесь думать, а не передирать код.
Vofka
slon-genia, ну так надо ж было в правильном разделе тему оформить, тогда бы и ответ сразу правильный получили.

Если Объект.Готова Тогда
...


Тема переезжает.
slon-genia
Спасиба что заставили подумать. Все получилось.
&НаКлиенте
Процедура ГотоваПриИзменении(Элемент)
      Если Объект.Готова = Истина Тогда
     Объект.ДатаНачисления = ТекущаяДата();
ИначеЕсли Объект.Готова=Ложь Тогда
     Объект.ДатаНачисления = NULL;
  КонецЕсли;

КонецПроцедуры


 ! 

Правила, п.6. Не в тему писать не надо.
 



 ! 

Правила, п.12 Последнее предупреждение!
 
logist
slon-genia, и еще надо бы взять за правило не писать избыточно и необдуманно.

Если Значение = Истина (сравнение Булево принимает только два варианта), то второй вариант Если уже будет окончательным, т.е. использовать ИначеЕсли в данном случае бессмысленно, оно будет, в данном контексте срабатывать всегда.
И об избыточности:
&НаКлиенте
Процедура ГотоваПриИзменении(Элемент)
     Объект.ДатаНачисления = ?(Объект.Готова = Истина,ТекущаяДата(),NULL);
КонецПроцедуры
Vofka
Цитата(logist @ 25.09.13, 13:01) необходимо зарегистрироваться для просмотра ссылки
еще надо бы взять за правило не писать избыточно

Не надо. Часто лучше написать избыточно, в силу лучшей понятности написанного. Конечно, есть исключения и "за" и "против" в обоих случаях, но брать одно из мнений за правило - не надо.
alex040269
в коде ТСа Объект.Готова может быть равна Неопределено ну или Null (если будет получено в запросе) и Объект.ДатаНачисления не изменится smile.gif

logist
Цитата(alex040269 @ 25.09.13, 15:30) необходимо зарегистрироваться для просмотра ссылки
(если будет получено в запросе)

Мы тут обсуждаем конкретный случай с работой в форме. Мы отслеживаем изменение самого флага в форме, и изменяем при этом дату. При чем тут запрос - не понятно.
Vofka
alex040269, я тоже, признаться, не понял причем тут запрос.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.