Предварительный расчет бонусов в УНФ

У клиента перестала работать кнопка «Предварительный расчет бонусов»:

Выдает ошибку:

Ошибка при установке значения атрибута контекста (БезналичнаяОплата)
{Документ.ЧекККМ.Форма.ФормаДокумента.Форма(2796)}:		Если ЕстьОплатаБонусами(Объект.БезналичнаяОплата) Тогда
{Документ.ЧекККМ.Форма.ФормаДокумента.Форма(2765)}:	РассчитатьБонусыНаКлиенте();
по причине:
Нельзя изменять поле, содержащее объект данных формы

Из РМК начисление бонусов работает, но мне-то нужно было проверять в форме чека, там был вопрос по начислению бонусов.

Цепочка вызовов простая:

Проблема в типовом коде. Они настолько увлечены оптимизацией, что пытаются передать данные формы в клиент-серверный модуль. Видимо, не тестировалось.

Сначала хотел заменить так, но 1с плохо переваривает экранирование части составного оператора:

	Если РеквизитыБП.НеНачислятьПриОплатеБонусами Тогда
#Удаление    
		//Осипов - делаю вызов корретным
		Если ЕстьОплатаБонусами(Объект.БезналичнаяОплата) Тогда
#КонецУдаления
#Вставка
		Если дор_ЕстьОплатаБонусамиНаСервере() Тогда
#КонецВставки
			Если Не Объект.БонусныеБаллыКНачислению.Количество() = 0 Тогда
				Объект.БонусныеБаллыКНачислению.Очистить();				
			КонецЕсли;
			Возврат;
		КонецЕсли;
	КонецЕсли;

Пришлось копировать-вставлять:

#Удаление
	Если РеквизитыБП.НеНачислятьПриОплатеБонусами Тогда
		Если ЕстьОплатаБонусами(Объект.БезналичнаяОплата) Тогда
			Если Не Объект.БонусныеБаллыКНачислению.Количество() = 0 Тогда
				Объект.БонусныеБаллыКНачислению.Очистить();				
			КонецЕсли;
			Возврат;
		КонецЕсли;
	КонецЕсли;
#КонецУдаления 
#Вставка
	Если РеквизитыБП.НеНачислятьПриОплатеБонусами Тогда
		Если дор_ЕстьОплатаБонусамиНаСервере() Тогда
			Если Не Объект.БонусныеБаллыКНачислению.Количество() = 0 Тогда
				Объект.БонусныеБаллыКНачислению.Очистить();				
			КонецЕсли;
			Возврат;
		КонецЕсли;
	КонецЕсли;

После этого заработало.

Среда: УНФ 3.0.13.374. Объем: 0.5 час

image_pdfimage_print

fixin

Программирую на 1С с 1999 года. В 1С просто Гений. В 2020 году ушел из офиса на вольные хлеба фриланса. Принимаю заказы.

Вам может также понравиться...

комментария 2

  1. rzd:

    «но 1с плохо переваривает экранирование части составного оператора»
    Может всё-таки почитать документацию, а не гнать на 1с?

  2. rzd:

    Покажи для полноты картины метод дор_ЕстьОплатаБонусамиНаСервере

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *