Установить цену произвольная при изменении цены.

1. seregapplk 11.08.21 12:08 Сейчас в теме
Думаю интересно не только одному мне. Необходимо сделать чтобы при редактировании цены в реализации товаров - типы цен устанавливались значение произвольная.
Как это сделать в конфигураторе?
в форме, колонка цена при изменении?
По теме из базы знаний
Найденные решения
9. seregapplk 12.08.21 14:48 Сейчас в теме
Нужно в конфигураторе, обработка подбор товаров в документ продажи,
В форме запрос количества
В модуле формы, в процедуре при создании на сервере.
Закоментировать (// перед строкой) строки //
Элементы.Цена.ТолькоПросмотр = ЗначениеЗаполнено(ВидЦены);
  //Элементы.Цена.ПропускатьПриВводе = ЗначениеЗаполнено(ВидЦены);


И создать
&НаКлиенте
Процедура ЦенаПриИзменении(Элемент)
  

  ВидЦены = Неопределено;
  
КонецПроцедуры

В форме по поле ввода "цена"
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. soft_wind 11.08.21 12:38 Сейчас в теме
так вроде ситуация от обратного

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

а вот теперь вопрос: А нафига менять устоявшийся регламент изменения Цены?
3. seregapplk 11.08.21 12:41 Сейчас в теме
есть клиенты которым хозяин хочет дать скидку
либо иногда цена "договорная" ))
4. FatPanzer 11.08.21 12:49 Сейчас в теме
Чем не устраивает ручная скидка?
5. seregapplk 11.08.21 12:49 Сейчас в теме
да, запрет в процедуре,
как же сделать?
Процедура ТоварыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
	
	Если Поле = Элементы.ТоварыПроцентАвтоматическойСкидки
		Или Поле = Элементы.ТоварыСуммаАвтоматическойСкидки Тогда
		
		СтандартнаяОбработка = Ложь;
		ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
		
		Если Не Объект.РеализацияПоЗаказам ИЛИ РеализацияСверхЗаказа И ТекущиеДанные.КодСтроки = 0 Тогда
			
			Если Не Объект.СкидкиРассчитаны Тогда
				Результат = Вопрос(НСтр("ru='Скидки (наценки) не рассчитаны, рассчитать?';uk='Знижки (націнки) не розраховані, розрахувати?'"), РежимДиалогаВопрос.ДаНет);
				Если Результат = КодВозвратаДиалога.Нет Тогда
					Возврат;
				Иначе
					
					СтруктураПараметры = Новый Структура;
					СтруктураПараметры.Вставить("ПрименятьКОбъекту",                Истина);
					СтруктураПараметры.Вставить("ТолькоПредварительныйРасчет",      Ложь);
					СтруктураПараметры.Вставить("ВосстанавливатьУправляемыеСкидки", Истина);
					СтруктураПараметры.Вставить("УправляемыеСкидки", УправляемыеСкидки);
					СтруктураПараметры.Вставить("РеализацияСверхЗаказа", РеализацияСверхЗаказа И Объект.РеализацияПоЗаказам);
					
					СтруктураСообщений = РассчитатьСкидкиНаценкиНаСервере(СтруктураПараметры);
					Если СтруктураСообщений.Сообщения.Количество() > 0 И СтруктураСообщений.АвтоматическиОткрывать Тогда
						ОткрытьФорму("ОбщаяФорма.СообщенияСкидокНаценок", СтруктураСообщений, ЭтаФорма, УникальныйИдентификатор);
					КонецЕсли;
					
				КонецЕсли;
			КонецЕсли;
			
			Если НЕ ЗначениеЗаполнено(АдресПримененныхСкидокВоВременномХранилище) Тогда
				РассчитатьСкидкиБезПримененияКОбъекту();
			КонецЕсли;
			
			ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
			СкидкиНаценкиКлиент.ОткрытьФормуПримененныеСкидки(ТекущиеДанные, Объект, ЭтаФорма);
			
		КонецЕсли;
				
	ИначеЕсли Поле = Элементы.ТоварыЗаказКлиента Тогда
		
		Если ЗначениеЗаполнено(Элементы.Товары.ТекущиеДанные.ЗаказКлиента) Тогда
			ОткрытьЗначение(Элементы.Товары.ТекущиеДанные.ЗаказКлиента);
		ИначеЕсли ЗначениеЗаполнено(Объект.ЗаказКлиента) Тогда
			ОткрытьЗначение(Объект.ЗаказКлиента);
		КонецЕсли;
		
	ИначеЕсли Поле = Элементы.ТоварыЦена Тогда
		
		ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
		Если ПравоНаЧтениеВидаЦены Тогда
			Если ЗначениеЗаполнено(ТекущиеДанные.ВидЦены) И НЕ Объект.Согласован Тогда
				ОчиститьСообщения();
				ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
					НСтр("ru='Для редактирования цены выберите вид цены ""<произвольная>""';uk='Для редагування ціни виберіть вид ціни ""<довільна>""'"),
					Объект.Ссылка,
					ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("Объект.Товары", ТекущиеДанные.НомерСтроки, "ВидЦены"),);
			КонецЕсли;
		КонецЕсли;
		
	ИначеЕсли НаборыКлиент.БлокируемыйЭлемент(Поле) Тогда
		
		ТекущаяСтрока = Объект.Товары.НайтиПоИдентификатору(ВыбраннаяСтрока);
		Если ЗначениеЗаполнено(ТекущаяСтрока.НоменклатураНабора) И ТекущаяСтрока.КодСтроки = 0 Тогда
			
			ПараметрОповещения = Новый Структура;
			ПараметрОповещения.Вставить("НоменклатураНабора",   ТекущаяСтрока.НоменклатураНабора);
			ПараметрОповещения.Вставить("ХарактеристикаНабора", ТекущаяСтрока.ХарактеристикаНабора);
			ПараметрОповещения.Вставить("ФормаВладелец",        УникальныйИдентификатор);
			ПараметрОповещения.Вставить("СверхЗаказа",          Истина);
			
			Оповестить("РедактироватьНабор", ПараметрОповещения, ЭтаФорма);
			
		КонецЕсли;
		
	ИначеЕсли Поле = Элементы.ТоварыНоменклатураНабора Тогда
		
		ОткрытьЗначение(Элементы.Товары.ТекущиеДанные.НоменклатураНабора);
		
	КонецЕсли;
	
КонецПроцедуры
Показать
6. seregapplk 11.08.21 15:26 Сейчас в теме
проблема в плагине скорее всего, ищу варианты
7. seregapplk 11.08.21 15:39 Сейчас в теме
работает в форме
ИначеЕсли Поле = Элементы.ТоварыЦена Тогда
		
		ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
		//  +++++++++++
		 Элементы.Товары.ТекущиеДанные.ВидЦены = Неопределено;  
		//----------- 
		Если ПравоНаЧтениеВидаЦены Тогда
			Если ЗначениеЗаполнено(ТекущиеДанные.ВидЦены) И НЕ Объект.Согласован Тогда
				ОчиститьСообщения();
				ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
					НСтр("ru='Для редактирования цены выберите вид цены ""<произвольная>""';uk='Для редагування ціни виберіть вид ціни ""<довільна>""'"),
					Объект.Ссылка,
					ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("Объект.Товары", ТекущиеДанные.НомерСтроки, "ВидЦены"),);
					    
			КонецЕсли;
		КонецЕсли;
		   
	ИначеЕсли НаборыКлиент.БлокируемыйЭлемент(Поле) Тогда
		
		ТекущаяСтрока = Объект.Товары.НайтиПоИдентификатору(ВыбраннаяСтрока);                                            
		Если ЗначениеЗаполнено(ТекущаяСтрока.НоменклатураНабора) И ТекущаяСтрока.КодСтроки = 0 Тогда
			
			ПараметрОповещения = Новый Структура;
			ПараметрОповещения.Вставить("НоменклатураНабора",   ТекущаяСтрока.НоменклатураНабора);
			ПараметрОповещения.Вставить("ХарактеристикаНабора", ТекущаяСтрока.ХарактеристикаНабора);
			ПараметрОповещения.Вставить("ФормаВладелец",        УникальныйИдентификатор);
			ПараметрОповещения.Вставить("СверхЗаказа",          Истина);
			
			Оповестить("РедактироватьНабор", ПараметрОповещения, ЭтаФорма);
			
		КонецЕсли;
		
	ИначеЕсли Поле = Элементы.ТоварыНоменклатураНабора Тогда
		
		ОткрытьЗначение(Элементы.Товары.ТекущиеДанные.НоменклатураНабора);
		
	КонецЕсли;
	
КонецПроцедуры
Показать


как сделать так в подборе?
8. seregapplk 11.08.21 15:57 Сейчас в теме
чтото глюкнуло, перед этим пост не в тему
9. seregapplk 12.08.21 14:48 Сейчас в теме
Нужно в конфигураторе, обработка подбор товаров в документ продажи,
В форме запрос количества
В модуле формы, в процедуре при создании на сервере.
Закоментировать (// перед строкой) строки //
Элементы.Цена.ТолькоПросмотр = ЗначениеЗаполнено(ВидЦены);
  //Элементы.Цена.ПропускатьПриВводе = ЗначениеЗаполнено(ВидЦены);


И создать
&НаКлиенте
Процедура ЦенаПриИзменении(Элемент)
  

  ВидЦены = Неопределено;
  
КонецПроцедуры

В форме по поле ввода "цена"
Оставьте свое сообщение

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