Внешняя обработка условия предоставления скидки в Рознице как?

1. user1470505 29.09.20 15:10 Сейчас в теме
Помогите разобраться с созданием внешней обработки условия предоставления скидки.

Условие не важно, так как его впишу сам. Для простоты пусть будет - если код номенклтуры = 1, то скидка будет применена.

Что нужно вписать в модуль объекта обработки?

Пока что вписал следующее

Функция СведенияОВнешнейОбработке() Экспорт	
	ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке();
	
	ПараметрыРегистрации.Вид = Перечисления.ВидыДополнительныхОтчетовИОбработок.ПроверкаУсловияПредоставленияСкидки;
	//ПараметрыРегистрации.Назначение.Добавить("Документ.*");
	
	НоваяКоманда = ПараметрыРегистрации.Команды.Добавить();
	НоваяКоманда.Представление = "Условие Годен";
	НоваяКоманда.Идентификатор = "УсловиеГоден";
	НоваяКоманда.Использование = ДополнительныеОтчетыИОбработкиКлиентСервер.ТипКомандыВызовСерверногоМетода();
	
	Возврат ПараметрыРегистрации;	
КонецФункции
Показать


Какова должна быть функция или процедура которая выполнит "полезную нагрузку"?
Какие параметры она принимает и отдает?
Имя должно соответсвовать команде?

По идее это должен быть простой фильтр, который в зависимости от заданого алгоритма должен ответить да или нет (в смысле проходит скидка для данной строки или нет).

Форма с настройками пока не нужна. Для начала пока разберусь, впишу все в тело функции.
EvgeniyOlxovskiy; +1 Ответить
По теме из базы знаний
Найденные решения
4. independ 1520 29.09.20 16:00 Сейчас в теме
(3) в дистрибутиве розницы есть каталог Discount, там 2 обработки
СкидкаНаПроизвольныйКомплект.epf
УсловиеПредоставленияПоНомеруСтроки.epf
dance000; wraithik; SagittariusA; Pipapalamm; +4 Ответить
6. user1470505 30.09.20 13:30 Сейчас в теме
Если кому еще понадобится решение то минимальный код будет следующим

Функция СведенияОВнешнейОбработке() Экспорт
	
	Возврат СкидкиНаценкиСервер.ПараметрыРегистрацииВнешнейОбработкиУсловияПредоставленияСки­докНаценок(
		НСтр("ru = 'Условие скидки...'"),
		НСтр("ru = 'Условие скидки...'"));
	
КонецФункции

Функция ПроверитьУсловие(Условие, СтрокаДереваСкидок, ПараметрыВнешнейОбработки = Неопределено, ПараметрыРасчета) Экспорт
	
	РезультатПроверки = Новый Структура;
	ТекущееУсловиеВыполнено = Ложь;
	
	Для Каждого СтрокаТовара Из СтрокаДереваСкидок.СтруктураДополнительныхДанных.ТаблицаТоваровПоСегментам Цикл

		//В СтрокаТовара имеем доступ к таб.части. Например СтрокаТовара.Характеристика
   	
		Если УсловиеВыполняется Тогда

			СтрокаТовара.УсловиеПоСтрокеВыполнено = Истина;
			ТекущееУсловиеВыполнено = Истина;

		КонецЕсли;
	КонецЦикла;
	РезультатПроверки.Вставить("ТекущееУсловиеВыполнено", ТекущееУсловиеВыполнено);
	
	Возврат РезультатПроверки;
	
КонецФункции
Показать


Только надо убрать <wbr> - который непонятно почему вписался в код. БАГ
Pipapalamm; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. malikov_pro 1293 29.09.20 15:24 Сейчас в теме
Скачать https://infostart.ru/public/555733/, посмотреть как сделано и сделать как нужно.
Клиентам обработку подключал, полет нормальный.
3. user1470505 29.09.20 15:57 Сейчас в теме
Да я бы с удовольствием. Ради этого ответа я и зарегистрировался сегодня. Только старт мани нету.

П.С. Обычно я такие вещи сам ищу в документации. Работаю я и с другими языкам программирования. Но еще не встречал чтобы документация была "не для всех". Это всю мотивацию изучать 1С далее убивает.
4. independ 1520 29.09.20 16:00 Сейчас в теме
(3) в дистрибутиве розницы есть каталог Discount, там 2 обработки
СкидкаНаПроизвольныйКомплект.epf
УсловиеПредоставленияПоНомеруСтроки.epf
dance000; wraithik; SagittariusA; Pipapalamm; +4 Ответить
5. user1470505 29.09.20 16:05 Сейчас в теме
Спасибо добрый человек. Да там можно увидеть как все устроено.
6. user1470505 30.09.20 13:30 Сейчас в теме
Если кому еще понадобится решение то минимальный код будет следующим

Функция СведенияОВнешнейОбработке() Экспорт
	
	Возврат СкидкиНаценкиСервер.ПараметрыРегистрацииВнешнейОбработкиУсловияПредоставленияСки­докНаценок(
		НСтр("ru = 'Условие скидки...'"),
		НСтр("ru = 'Условие скидки...'"));
	
КонецФункции

Функция ПроверитьУсловие(Условие, СтрокаДереваСкидок, ПараметрыВнешнейОбработки = Неопределено, ПараметрыРасчета) Экспорт
	
	РезультатПроверки = Новый Структура;
	ТекущееУсловиеВыполнено = Ложь;
	
	Для Каждого СтрокаТовара Из СтрокаДереваСкидок.СтруктураДополнительныхДанных.ТаблицаТоваровПоСегментам Цикл

		//В СтрокаТовара имеем доступ к таб.части. Например СтрокаТовара.Характеристика
   	
		Если УсловиеВыполняется Тогда

			СтрокаТовара.УсловиеПоСтрокеВыполнено = Истина;
			ТекущееУсловиеВыполнено = Истина;

		КонецЕсли;
	КонецЦикла;
	РезультатПроверки.Вставить("ТекущееУсловиеВыполнено", ТекущееУсловиеВыполнено);
	
	Возврат РезультатПроверки;
	
КонецФункции
Показать


Только надо убрать <wbr> - который непонятно почему вписался в код. БАГ
Pipapalamm; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот