новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума
Форум

7.7. Заполнение поля на форме при условии

    • #1
    • 12.07.2015 20:16
    0
    Имеется в 1С 7.7 Комплексная документ ПКО, для упрощения работы бухгалтеру и во избежание ошибок, требуется автозаполнение в форме поля ДвижениеДенежныхСредст по условию: КодОперации = глКО.ОплатаОтПокупателя; Если КодОперации = глКО.ОплатаОтПокупателя Тогда СпрДДС = СоздатьОбъект("Справочник.ДвиженияДенежныхСредств"); // СпрДДС.ВыбратьЭлементы(); СпрДДС.НайтиПоНаименованию("REVENUE (Поступления от Покупателей)", 0, 1); ДвижениеДенежныхСредств = СпрДДС.ТекущийЭлемент(); Иначе ДвижениеДенежныхСредств = ""; КонецЕсли; Прописываю в Процедуре ВводНового(Скопирован) В таком виде в новом документе заполняет поле на форме, как REVENUE (Поступления от Покупателей). Т.е. то, что нужно, но ... при выборе других КодОпераций не очищает поле. И если документ копировать, то тоже пусто. Подскажите, где неправильно написано? Вроде все логично, но не работает, как надо (((
    • #2
    • 12.07.2015 20:21
    0
    После:
    КодОперации	 = глКО.ОплатаОтПокупателя

    условие:
    Если КодОперации = глКО.ОплатаОтПокупателя Тогда

    вообще не имеет смысла, т.к. оно всегда выполняется

    А если вы хотите, чтобы ДвижениеДенежныхСредств очищалось, при всех кодах операции, отличных от "ОплатаОтПокупателя"

    соответсвенно и процедуру проверки и очистки нужно вызывать не при вводе нового, а при изменении кода операции
    • #3
    • 12.07.2015 20:38
    0
    Сергей, т.е. если я // КодОперации =, то будет выполняться условие?
    • #4
    • 12.07.2015 20:53
    0
    Сергей! Огромное СПАСИБО за помощь!!!
    Заработало в таком виде:
    Процедура ПриВыбореВидаОплаты()
    	
    	КодОперации = СписокВидовОплаты.ПолучитьЗначение(СписокВидовОплаты.ТекущаяСтрока()); 
    
    //REVENUE (Поступления от Покупателей)                                          
    	Если КодОперации = глКО.ОплатаОтПокупателя Тогда
    		СпрДДС = СоздатьОбъект("Справочник.ДвиженияДенежныхСредств");
    		СпрДДС.ВыбратьЭлементы();		
    		СпрДДС.НайтиПоНаименованию("REVENUE (Поступления от Покупателей)", 0, 1);
    		ДвижениеДенежныхСредств = СпрДДС.ТекущийЭлемент();
    	Иначе
    		ДвижениеДенежныхСредств = "";
    	КонецЕсли;
    //REVENUE (Поступления от Покупателей)
    
    	УправлениеВидимостью();
    	УправлениеДоступностью();
    	РасчетТекущегоДолга();
    	
    КонецПроцедуры //ПриВыбореВидаОплаты() 
    • #5
    • 29.07.2015 22:28
    0
    Andrey
    СпрДДС.ВыбратьЭлементы();

    лишнее
    к тому же может быть не найдено по наименованию, поэтому будет пустое значение
Для участия в обсуждении Вам необходимо авторизоваться либо   зарегистрироваться