• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

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

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

Guest

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

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

Hryv

В модуле формы

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

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

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

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

vitfil

Зачем это делать при записи документа, можете пояснить?
Что будет при повторной записи документа?
Не проще ли повесить процедуру на колонку с состоянием? Не только проще, но и грамотней.
 
H

Hryv

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

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

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

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

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

Guest

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

Hryv

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

vitfil

Hryv, ну, я не приводил текста процедуры - думаю сам догадается. А вообще, я бы поставил не проверку, но
ВыполнятьФормулуТолькоПриИзменении(...)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!