Bio Frode
21 - 17.07.2009 - 12:01
|
перем Док; Перем СписокСубк; Процедура ПриВыбореСчДт() Если Док.СчетДт.Выбран()=1 Тогда Для i=3 По Док.СчетДт.КоличествоСубконто() Цикл Док.НазначитьТип("СубконтоДт"+i,Док.СчетДт.ВидСубконто(i)); Атрибут=Док.СписокСубк.Получить(Док.ПолучитьАтрибут("СубконтоДт"+i).Вид()); Если ПустаяСтрока(Атрибут)=0 Тогда Форма.ПолучитьАтрибут("СубконтоДт"+i); Иначе Форма.ПолучитьАтрибут("СубконтоДт"+i).Доступность(1-Форма.ТолькоПросмотр()); КонецЕсли; КонецЦикла; Для i=Док.СчетДт.КоличествоСубконто()+1 По 5 Цикл Док.НазначитьТип("СубконтоДт"+Строка(i),""); КонецЦикла; Иначе Док.НазначитьТип("СубконтоДт3",""); Док.НазначитьТип("СубконтоДт4",""); Док.НазначитьТип("СубконтоДт5",""); КонецЕсли; ДОк.УстановитьЗначенияСубконо(1,0); ДОк.УстановитьОГС(1,0); Док.УстановитьЗначенияФКР(1,0); КонецПроцедуры
Процедура Сформировать() Док = СоздатьоБЪЕКТ("Документ.СписаниеСоСчета"); НачатьТранзакцию(); Док.ВыбратьДокументы(НачДата,КонДата); Пока Док.ПолучитьДокумент() = 1 Цикл Док.ТекущийДокумент(); Док.СчетКт = счетпокоду("304.05.1"); если док.комментарий = сокрлп("Авансы") тогда Док.ВыбратьСтроки(); Пока док.ПолучитьСтроку()= 1 Цикл Если док.ЭКР.Код="261" Тогда Док.УстановитьАтрибут("СчетДт",счетпокоду("206.15.1")); // Док.Записать(); ПриВыбореСчДт() иначеЕсли док.ЭКР.Код="262" Тогда Док.УстановитьАтрибут("СчетДт",счетпокоду("206.16.1")); ПриВыбореСчДт() иначеЕсли док.ЭКР.Код="263" Тогда Док.УстановитьАтрибут("СчетДт",счетпокоду("206.17.1")); ПриВыбореСчДт() иначеЕсли док.ЭКР.Код="290" Тогда Док.УстановитьАтрибут("СчетДт",счетпокоду("206.18.1")); иначеЕсли док.ЭКР.Код="226" Тогда Док.УстановитьАтрибут("СчетДт",счетпокоду("206.09.1")); иначеЕсли док.ЭКР.Код="221" Тогда Док.УстановитьАтрибут("СчетДт",счетпокоду("206.04.1")); иначеЕсли док.ЭКР.Код="251" Тогда Док.УстановитьАтрибут("СчетДт",счетпокоду("206.12.1")); конецесли; Док.Записать(); Док.Провести(); конеццикла; иначе Док.ВыбратьСтроки(); Пока док.ПолучитьСтроку()=1 Цикл Если док.ЭКР.Код="261" Тогда Док.УстановитьАтрибут("СчетДт",счетпокоду("302.15.1")); // Док.Записать(); ПриВыбореСчДт() иначеЕсли док.ЭКР.Код="262" Тогда Док.УстановитьАтрибут("СчетДт",счетпокоду("302.16.1")); ПриВыбореСчДт() иначеЕсли док.ЭКР.Код="263" Тогда Док.УстановитьАтрибут("СчетДт",счетпокоду("302.17.1")); ПриВыбореСчДт() иначеЕсли док.ЭКР.Код="290" Тогда Док.УстановитьАтрибут("СчетДт",счетпокоду("302.18.1")); иначеЕсли док.ЭКР.Код="226" Тогда Док.УстановитьАтрибут("СчетДт",счетпокоду("302.09.1")); иначеЕсли док.ЭКР.Код="221" Тогда Док.УстановитьАтрибут("СчетДт",счетпокоду("302.04.1")); иначеЕсли док.ЭКР.Код="251" Тогда Док.УстановитьАтрибут("СчетДт",счетпокоду("302.12.1")); конецесли; // Док.ПриВыбореСчДТ(); Док.Записать(); Док.Провести(); конеццикла; Конецесли; КонецЦикла; // Док.ПриВыбореСчДТ(); ЗафиксироватьТранзакцию(); Сообщить("Готово"); КонецПроцедуры вот так правильно? |