Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Персональная скидка для каждого контрагента в бухгалтерии 8.2
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
EritikWoW
Скидка по контрагентам

Справочник.Контрагенты

новый реквезит «СкидкаПоКонтрагенту»
Тип – Строка Длина – 4

ФормаЭлемента – Новое поле ввода «Скидка»

Процедура ПриОткрытии()    

Если НЕ РольДоступна("Просмотр")
Тогда ЭлементыФормы.Скидка.РедактированиеТекста = ТолькоПросмотр=Истина
КонецЕсли;


Документы.РеализацияТоваровУслуг

Новый реквизит «Скидка»
Тип – Строка Длина – 4

ТабличныеЧасти.Товары реквезит «СуммаСкидки»
Тип – Число Длина – 6 Точность - 2

ФормаДокумента – Новое поле ввода данные -«Скидка»
Процедура ПриОткрытии()
    
Скидка = Контрагент.СкидкаПоКонтрагенту;

Процедура ОбновлениеОтображения()

Тогда Скидка = Контрагент.СкидкаПоКонтрагенту;

Процедура КонтрагентПриИзменении(Элемент)
    

ЭлементыФормы.Товары.ТекущиеДанные.СуммаСкидки =(ЭлементыФормы.Товары.ТекущиеДанные.СуммаБезСкидки/100)*Скидка;


Процедура ТоварыПриНачалеРедактирования(Элемент, НоваяСтрока)
    
ЭлементыФормы.Товары.ТекущиеДанные.СуммаСкидки =(ЭлементыФормы.Товары.ТекущиеДанные.СуммаБезСкидки/100)*Скидка;
    
ЭлементыФормы.Товары.ТекущиеДанные.Сумма =(ЭлементыФормы.Товары.ТекущиеДанные.СуммаБезСкидки-ЭлементыФормы.Товары.ТекущиеДанные.СуммаСкидки);



Процедура ТоварыПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    
ЭлементыФормы.Товары.ТекущиеДанные.СуммаСкидки =(ЭлементыФормы.Товары.ТекущиеДанные.СуммаБезСкидки/100)*Скидка;
ЭлементыФормы.Товары.ТекущиеДанные.Сумма =(ЭлементыФормы.Товары.ТекущиеДанные.СуммаБезСкидки-ЭлементыФормы.Товары.ТекущиеДанные.СуммаСкидки);



Процедура ТоварыНоменклатураПриИзменении(Элемент)

ЭлементыФормы.Товары.ТекущаяСтрока.СуммаСкидки =(ЭлементыФормы.Товары.ТекущиеДанные.СуммаБезСкидки/100)*Скидка;
    
ЭлементыФормы.Товары.ТекущиеДанные.Сумма =(ЭлементыФормы.Товары.ТекущиеДанные.СуммаБезСкидки-ЭлементыФормы.Товары.ТекущиеДанные.СуммаСкидки);

Процедура ТоварыЦенаПриИзменении(Элемент)
    
Если ЭлементыФормы.Товары.ТекущиеДанные.Цена >=0
Тогда ЭлементыФормы.Товары.ТекущиеДанные.СуммаСкидки =(ЭлементыФормы.Товары.ТекущиеДанные.СуммаБезСкидки/100)*Скидка;
КонецЕсли;


Единственная проблема пока не обновляеться строчка = СуммаНДС


 i 

Не надо выделять и увеличивать шрифт без особой надобности
 
EritikWoW
Вот Боллее грамотное решение !

Скидка по контрагентам

Справочник.Контрагенты

новый реквезит «СкидкаПоКонтрагенту»
Тип – Строка Длина – 4

ФормаЭлемента – Новое поле ввода «Скидка»
Процедура ПриОткрытии()    

Если НЕ РольДоступна("Просмотр")
Тогда ЭлементыФормы.Скидка.РедактированиеТекста = ТолькоПросмотр=Истина
КонецЕсли;

Документы.РеализацияТоваровУслуг

Новый реквизит «Скидка»
Тип – Строка Длина – 4

ТабличныеЧасти.Товары реквезит «СуммаСкидки»
Тип – Число Длина – 6 Точность - 2

ФормаДокумента – Новое поле ввода данные -«Скидка»
Процедура ПриОткрытии()
    
Скидка = Контрагент.СкидкаПоКонтрагенту;

Процедура ОбновлениеОтображения()

Тогда Скидка = Контрагент.СкидкаПоКонтрагенту;

Процедура КонтрагентПриИзменении(Элемент)
    

ЭлементыФормы.Товары.ТекущиеДанные.СуммаСкидки =(ЭлементыФормы.Товары.ТекущиеДанные.СуммаБезСкидки/100)*Скидка;


Процедура ТоварыПриНачалеРедактирования(Элемент, НоваяСтрока)
    
ЭлементыФормы.Товары.ТекущиеДанные.СуммаСкидки =(ЭлементыФормы.Товары.ТекущиеДанные.СуммаБезСкидки/100)*Скидка;
    
ЭлементыФормы.Товары.ТекущиеДанные.Сумма =(ЭлементыФормы.Товары.ТекущиеДанные.СуммаБезСкидки-ЭлементыФормы.Товары.ТекущиеДанные.СуммаСкидки);



Процедура ТоварыПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    
ЭлементыФормы.Товары.ТекущиеДанные.СуммаСкидки =(ЭлементыФормы.Товары.ТекущиеДанные.СуммаБезСкидки/100)*Скидка;
ЭлементыФормы.Товары.ТекущиеДанные.Сумма =(ЭлементыФормы.Товары.ТекущиеДанные.СуммаБезСкидки-ЭлементыФормы.Товары.ТекущиеДанные.СуммаСкидки);


Процедура ТоварыНоменклатураПриИзменении(Элемент)

ЭлементыФормы.Товары.ТекущаяСтрока.СуммаСкидки =(ЭлементыФормы.Товары.ТекущиеДанные.СуммаБезСкидки/100)*Скидка;
    
ЭлементыФормы.Товары.ТекущиеДанные.Сумма =(ЭлементыФормы.Товары.ТекущиеДанные.СуммаБезСкидки-ЭлементыФормы.Товары.ТекущиеДанные.СуммаСкидки);

Процедура ТоварыЦенаПриИзменении(Элемент)
    
Если ЭлементыФормы.Товары.ТекущиеДанные.Цена >=0
Тогда ЭлементыФормы.Товары.ТекущиеДанные.СуммаСкидки =(ЭлементыФормы.Товары.ТекущиеДанные.СуммаБезСкидки/100)*Скидка;
КонецЕсли;


Если ЭлементыФормы.Товары.ТекущиеДанные.Цена >=0
Тогда ЭлементыФормы.Товары.ТекущиеДанные.СуммаБезСкидки= (ЭлементыФормы.Товары.ТекущиеДанные.Количество * ЭлементыФормы.Товары.ТекущиеДанные.Цена)
КонецЕсли;
alex040269
Цитата(EritikWoW @ 30.12.12, 12:06) необходимо зарегистрироваться для просмотра ссылки
Новый реквизит «Скидка»Тип – Строка Длина – 4ТабличныеЧасти.Товары реквезит «СуммаСкидки» Тип – Число Длина – 6 Точность - 2

где логика? почему скидка в контрагенте - строка?
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.