Заполнение формы документа

  • Автор темы Butty
  • Дата начала
Статус
Закрыто для дальнейших ответов.
B

Butty

#1
Такая вот проблема.
В форме документа (табличная часть) вводятся два счета - д*цензура* и кредит (реквизиты табличной части). Причем один из них (или д*цензура* или кредит) может повторяться в следующих строках. Например, д-т "01", кр-т "00", далее д-т "10", кр-т "00"; д-т "41", кр-т "00" и т.д. Может быть наоборот д-т "00", кредит "02" и т.д. Подскажите, как и где сохранить этот счет (в моем примере "00"), чтобы он по умолчанию использовался в следующей строке. Причем этот счет может меняться: быть и в д*цензура*е и в кредите (но счет один - "00"). Т.О. если в д*цензура*е выбран другой счет (не "00"), то в кредит счет "00" должен ставиться автоматически.
Спасибо за ответы.
 
L
#2
Используй СчетПоКоду("00")
На счет д*цензура*а и счет кредита (колонки в табл. части) повесь процедуру, которая будет анализировать текущую колонку, и, если это д*цензура* - автоматом в реквизит счет кредита записывать СчетПоКоду("00"), и наоборот.
примерно так:

Процедура ПриВыбореСчетаДК()
Если Форма.ТекущаяКолонка() = "СчетД*цензура*" Тогда
СчетКредит = СчетПоКоду("00");
ИначеЕсли Форма.ТекущаяКолонка() = "СчетКредит" Тогда
СчетД*цензура* = СчетПоКоду("00");
КонецЕсли;
КонецПроцедуры
 
B

Butty

#3
Спасибо, попробовала - не работает. Вернее, так как надо не работает. Возможно, проблему сформулировала не ясно. :) Дело в том, что мне надо, чтобы в следующей строчке были те же счета д*цензура*а и кредита, что и в предыдущей. В 1С 6.0 у меня это очень просто получалось. Хочу тоже и в 7.7. - а не выходит :D . Буду пробовать другие варианты. Вот например:
Процедура ПриРедактированииНовойСтроки ().
Может посоветуете как ее применить? Спасибо за ответы.
 
L
#4
Хех, как формулируете, так и отвечем. :)

А процедуру в вашем случае применить просто:

Код:
Процедура ПриРедактированииНовойСтроки()
Если НомерСтроки = 1 Тогда
Возврат; //чтобы при вводе первой строки не было ошибок
КонецЕсли;
ПолучитьСтрокуПоНомеру(НомерСтроки-1); //позиционируемся на предыдущ. строку
БылСчД = Счетд*цензура*;
БылСчК = СчетКредит; //или как там эти реквизиты у вас называются
ПолучитьСтрокуПоНомеру(НомерСтроки+1); //возвращаемся на свою строку
СчетД*цензура* = БылСчетД; //присваиваем
СчетКредит = БылСчетК;
КонецПроцедуры
 
B

Butty

#5
LSH, большое спасибо! Действительно, очень просто (о чем я и догадывалась) :)
Пойду переделывать следующий документ. Еще раз спасибо за помощь. Просто хочу сделать свою настойку, "с нуля". А опыта маловато. :)
Пока
 
Статус
Закрыто для дальнейших ответов.