Табличная часть документа

  • Автор темы -
  • Дата начала

Гость
#1
Конф-ция: 1С Бухгалтерия 7.7
Имеется табличная часть в документе... Имеется реквизит Состояние, которые привязан к одноименному перечислению.. Может принимать 2 положения: Выкуплен, НеВыкуплен (по умолч)
Также имеется реквизит ДАтаВыкупа (по умол. пустое), надо сделать следующее:

После редактирования всех полей табличной части, пользовательно проставляет Состояние где надо в Выкуплен... При записи документа, необходимо пройтись по записям и в строках где появилось Выкуплен установить ДАтаВыкупа = ТекущаяДата();
 
H

Hryv

Гость
#2
В модуле формы

Код:
//*----*----*----*----*----*----*----*----*----*----*----*----*----*----*
Процедура ПриЗаписи()

ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
Если Состояние = Перечисление.Состояние.Выкуплен Тогда
ДАтаВыкупа = ТекущаяДата(); 
КонецЕсли;
КонецЦикла;

КонецПроцедуры //ПриЗаписи
Если ПриЗаписи() там уже есть, то просто в нее добавить фрагмент кода
 

vitfil

IT-интегратор
02.04.2004
2 062
0
44
Минск
#3
Зачем это делать при записи документа, можете пояснить?
Что будет при повторной записи документа?
Не проще ли повесить процедуру на колонку с состоянием? Не только проще, но и грамотней.
 
H

Hryv

Гость
#4
Не проще ли повесить процедуру на колонку с состоянием? Не только проще, но и грамотней.
;)

Что будет при повторной записи документа?
Если надо чтобы даты не менялись, то можно подправить

Код:
//*----*----*----*----*----*----*----*----*----*----*----*----*----*----*
Процедура ПриЗаписи()

ВыбратьСтроки();
Пока ПолучитьСтроку()=1 Цикл
Если (Состояние = Перечисление.Состояние.Выкуплен) и (ПустоеЗначение(ДАтаВыкупа)=1) Тогда
ДАтаВыкупа = ТекущаяДата(); 
КонецЕсли;
КонецЦикла;

КонецПроцедуры //ПриЗаписи
 

Гость
#5
Всем спасибо!!! В итоге воспользовался вашим советом и повесил процедуру на колонку...
 
H

Hryv

Гость
#6
Кстати, по колонке тоже можно несколько раз пощелкать и дату испортить, если в процедуре не предусмотреть обработку этой ситуации
 

vitfil

IT-интегратор
02.04.2004
2 062
0
44
Минск
#7
Hryv, ну, я не приводил текста процедуры - думаю сам догадается. А вообще, я бы поставил не проверку, но
ВыполнятьФормулуТолькоПриИзменении(...)