как сделать отладку внешней скидки уф?

1. Raideres 8 29.07.20 21:58 Сейчас в теме
как сделать отладку внешней скидки уф?
По теме из базы знаний
Найденные решения
9. UstinovVA 287 30.07.20 10:18 Сейчас в теме
Возвращаемый результат не по формату, должно выдаваться не булево, а число, см. ниже

// Выполняет проверку выполнения условия предоставления (Проверка осуществляется алгоритмически)
//
// Параметры:
// Настройки - Структура - Настройки, заданные пользователем в форме настроек внешней обработки
// ПараметрыРасчета - Структура - Параметры расчета скидок (наценок)
//
// Возвращаемое значение:
// Число - Кратность выполнения условия
// -1: Условие выполнено, но не влияет на результирующую кратность
// 0: Условие не выполнено
// > 1: Условие выполнено, влияет на результирующую кратность
//
Функция ПроверитьУсловие(Настройки, ПараметрыРасчета) Экспорт

Возврат -1;

КонецФункции
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. andy_zhav 197 30.07.20 07:56 Сейчас в теме
(1) Если это подключаемая внешняя обработка БСП - то в подключенном режиме отладку сделать не получиться, т.к. внешние обработки подключаются в объектном режиме. Т.е. из двоичных данных обработки, в которых она хранится в структуре базы, создается объект обработки и через этот объект вызываются экспортные методы обработки.

Чтобы отладить - нужно выгрузить обработку и запустить ее отдельно через файл-открыть. Возможно прийдется создать в ней отладочную форму
5. loki03 30.07.20 08:03 Сейчас в теме
(4) можно. 1с сохраняет обработку в каталог временных файлов и потом запускает.
можно в конфигураторе в этом временном файле поставить стопку и смотреть в отладчике.

но проще сохранить...
6. andy_zhav 197 30.07.20 08:50 Сейчас в теме
(5) Если это толстый клиент обычного приложения - так и есть. Двоичные данные из хранилища значений записываются во временный файл. Но если это тонкий клиент - то тут все по другому. Тут используется команда Подключить, где в качестве параметров используется адрес временного хранилища обработки. В этом случае объект внешней обработки создается без предварительного сохранения ее на диск
Функция ПодключитьВнешнююОбработку(Ссылка) Экспорт
	
.....
	// Подключение
	#Если ТолстыйКлиентОбычноеПриложение Тогда
		ИмяОбработки = ПолучитьИмяВременногоФайла();
		ХранилищеОбработки = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "ХранилищеОбработки");
		ДвоичныеДанные = ХранилищеОбработки.Получить();
		ДвоичныеДанные.Записать(ИмяОбработки);
		Возврат ИмяОбработки;
	#КонецЕсли
....
	ПараметрыЗапуска = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(Ссылка, "БезопасныйРежим, ХранилищеОбработки");
	АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(ПараметрыЗапуска.ХранилищеОбработки.Получить());
....
	ИмяОбработки = Менеджер.Подключить(АдресВоВременномХранилище, , БезопасныйРежим);
	
	Возврат ИмяОбработки;
	
КонецФункции
Показать
7. SlavaKron 30.07.20 08:55 Сейчас в теме
(5) Это работает, возможно, в конфигурациях на обычных формах. В управляемых — внешняя обработка подключается через временное хранилище. После подключения двоичные данные обработки удаляются из временного хранилища. Отладка подключенных обработок на УФ возможна, если в параметрах регистрации указать БезопасныйРежим = Ложь и перед запуском подключенной команды открыть внешнюю обработку через Файл - Открыть.
2. BackinSoda 29.07.20 22:14 Сейчас в теме
(0) может внешней обработки ?) Зайти в конфигуратор - оттуда запустить отладку (f5) и в коде поставить точку останова (f9)
3. Raideres 8 30.07.20 07:03 Сейчас в теме
(2) если быть точным внешней обработки условия предоставления скидок, думаю вы мало знакомы с таким(((
8. Raideres 8 30.07.20 10:09 Сейчас в теме
Ребят хоть убейте не получается вот эту обработку отладить и не пойму где ошибка

ут 11 пытаюсь сделать условие скидки по контрагенту
////////////////////////////////////////////////////////////////////////////////
// ПРОГРАММНЫЙ ИНТЕРФЕЙС

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

	Возврат ПарамметрыВнешнейОбработки; 
КонецФункции

// Возвращает способ применения скидки (наценки)
//
// Возвращаемое значение:
//	Перечисления.СпособыПримененияСкидокНаценок - способ применения скидки (наценки)
//
Функция СпособПрименения() Экспорт
	
	Возврат Неопределено;
	
КонецФункции

// Выполняет расчет скидки (наценки)
//
// Параметры:
//	СкидкаНаценка - Строка дерева скидок (наценок). Включает результаты проверки условий, способы совместного применения
//	Настройки - Структура - Настройки, заданные пользователем в форме настроек внешней обработки
//	Товары - Коллекция товаров, для которых требуется применить скидку (наценку)
//	ПараметрыРасчета - Структура - Параметры расчета скидок (наценок)
//
// Возвращаемое значение:
//	РезультатРасчета - ТаблицаЗначений - результат расчета
//
Функция ПроверитьУсловие(Условие, СтрокаДереваСкидок, ПараметрыВнешнейОбработки, ПараметрыРасчета) Экспорт

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

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

// Возвращает имя формы внешней обработки,
// предназначенной для настройки условия предоставления 
//
// Возвращаемое значение:
//	Строка - Имя формы
//
Функция ИмяФормыНастроек() Экспорт
	
	Возврат "Настройки";
	
КонецФункции

// Возвращает расширенное описание условия предоставления с учетом настроек
//
// Параметры:
//	Настройки - Структура - Значения настроек условия предоставления
//
// Возвращаемое значение:
//	Строка - Расширенное описание
//
Функция ОписаниеДействия(Настройки) Экспорт
	
	Попытка
		Если Настройки <> Неопределено Тогда
			Описание = НСтр("ru = 'Предоставляется скидка по указанному контрагенту'")+" "+Настройки.Контрагент;
		Иначе
			Описание = НСтр("ru = 'Не заданы настройки скидки'");
		КонецЕсли;
	Исключение
		Описание = НСтр("ru = 'Настройки не загружены.
		|При загрузке настроек скидки произошла ошибка:
		|'") + ОписаниеОшибки();
	КонецПопытки;
	
	Возврат Описание;
	
КонецФункции

// Возвращает заголовок условия предоставления с учетом настроек
//
// Параметры:
//	Настройки - Структура - Значения настроек условия предоставления
//
// Возвращаемое значение:
//	Строка - Наименование условия
//
Функция Автонаименование(Настройки) Экспорт
	
	Возврат НСтр("ru = 'Условие предоставления скидки по контрагенту'");
	
КонецФункции
Показать
Прикрепленные файлы:
Условие предоставления скидки по контрагенту.epf
9. UstinovVA 287 30.07.20 10:18 Сейчас в теме
Возвращаемый результат не по формату, должно выдаваться не булево, а число, см. ниже

// Выполняет проверку выполнения условия предоставления (Проверка осуществляется алгоритмически)
//
// Параметры:
// Настройки - Структура - Настройки, заданные пользователем в форме настроек внешней обработки
// ПараметрыРасчета - Структура - Параметры расчета скидок (наценок)
//
// Возвращаемое значение:
// Число - Кратность выполнения условия
// -1: Условие выполнено, но не влияет на результирующую кратность
// 0: Условие не выполнено
// > 1: Условие выполнено, влияет на результирующую кратность
//
Функция ПроверитьУсловие(Настройки, ПараметрыРасчета) Экспорт

Возврат -1;

КонецФункции
10. Raideres 8 30.07.20 11:59 Сейчас в теме
(9)неа попробовал жестко поставить всеравно не срабатывает(
Оставьте свое сообщение

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