Editing prices in the RMK. 1C: Trade Management 11

In a typical configuration of the UT 11 there is no possibility in the RMK mode to change the price of the product, although such a need appears quite often. By making small changes to the configuration, you can achieve the desired functionality. The release 1C UT 11.4.5.135 was used on the 1C: Enterprise platform (8.3.13.1513).

Those who previously worked with the configurations of 1C Retail 2.2 and 1C UT 10.3, when confronted with UT 11, can be unpleasantly surprised to find that in the RMK mode one cannot change the price for the product (service) sold. In the above configurations, there are additional user settings, which are responsible for the right to change the price in the RMK. There is no such thing in UT 11. All prices must be assigned through the document “Setting prices of the nomenclature”, from where they will be substituted in the RMK at the sale. In practice, for various reasons, it is often necessary to change the price quickly in the RCC.

To obtain the desired result, it is necessary to make small changes in the configuration of the UT 11. For the RMK, the check-and-check document and the Form DKTF form are responsible.

image

First of all, in the properties of the “Price” column, remove the check from the “View only” item.

image

After this, you need to make changes to the module code: we find the procedure there

Procedure Add a Cart
&НаКлиентеПроцедураДобавитьВКорзину(ПараметрыТовара)
	Если ТолькоПросмотр ТогдаВозврат;
	КонецЕсли;
	НовыеСтроки = НовыйМассив;
	Если ЗапрашиватьКоличество Тогда
		ПараметрыФормы = НовыйСтруктура("Склад, Номенклатура, Характеристика, ВидЦены, Упаковка, Цена, |Дата, Валюта, РедактироватьЦену, РедактироватьВидЦены");
		ЗаполнитьЗначенияСвойств(ПараметрыФормы, ПараметрыТовара);
		ПараметрыФормы.Склад = Объект.Склад;
		ПараметрыФормы.Дата = Объект.Дата;
		ПараметрыФормы.Валюта = Объект.Валюта;
//{{MRG[ <-> ]
		ПараметрыФормы.РедактироватьЦену = Ложь;
//}}MRG[ <-> ]//{{MRG[ <-> ]//}}MRG[ <-> ]
		ПараметрыФормы.РедактироватьВидЦены = Ложь;
		ПараметрыФормы.ВидЦены = Объект.ВидЦены;
		Если ПараметрыТовара.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Набор") Тогда
			ИмяФормыЗапросаКоличества = "Документ.ЧекККМ.Форма.ЗапросКоличестваНабор";
		Иначе
			ИмяФормыЗапросаКоличества = "Документ.ЧекККМ.Форма.ЗапросКоличества";
		КонецЕсли;
		ДополнительныеПараметры = НовыйСтруктура;
		ДополнительныеПараметры.Вставить("НовыеСтроки", НовыеСтроки);
		ДополнительныеПараметры.Вставить("ПараметрыТовара", ПараметрыТовара);
		ОткрытьФорму(
			ИмяФормыЗапросаКоличества,
			ПараметрыФормы,
			ЭтотОбъект,
			УникальныйИдентификатор,,,
			Новый ОписаниеОповещения("ЗапросКоличестваЗавершение", ЭтотОбъект, ДополнительныеПараметры));
	ИначеЕсли ПараметрыТовара.ТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Набор") Тогда
			ПараметрыКомплектующих = ПодборТоваровКлиентСервер.ПараметрыТовара();
			ЗаполнитьЗначенияСвойств(ПараметрыКомплектующих, ПараметрыТовара);
			ПараметрыКомплектующих.НоменклатураНабора   = ПараметрыТовара.Номенклатура;
			ПараметрыКомплектующих.ХарактеристикаНабора = ПараметрыТовара.Характеристика;
			ПараметрыКомплектующих.Вставить("ВариантКомплектацииНоменклатуры", Неопределено);
			ДополнительныеПараметры = НовыйСтруктура;
			ДополнительныеПараметры.Вставить("Дата",    Объект.Дата);
			ДополнительныеПараметры.Вставить("Валюта",  Объект.Валюта);
			ДополнительныеПараметры.Вставить("ВидЦены", Объект.ВидЦены);
			ДополнительныеПараметры.Вставить("Цена",    ПараметрыТовара.Цена);
			ПодобранныеТовары = НаборыВызовСервера.Комплектующие(ПараметрыКомплектующих, ДополнительныеПараметры);
			ДляКаждого ПодобранныйТовар Из ПодобранныеТовары Цикл
				НовыеСтроки.Добавить(ПодобранныйТовар);
			КонецЦикла;
		ИначеЕслиНеЗначениеЗаполнено(ПараметрыТовара.Упаковка) Тогда
				ПараметрыТовара.Упаковка = ПодборТоваровВызовСервера.ПолучитьУпаковкуХранения(ПараметрыТовара.Номенклатура);	
			КонецЕсли;
			НовыеСтроки.Добавить(ПараметрыТовара);
		КонецЕсли;
		ПараметрыДанных = НовыйСтруктура;
		ПараметрыДанных.Вставить("НовыеСтроки", НовыеСтроки);
		ПараметрыДанных.Вставить("ПараметрыТовара", ПараметрыТовара);
		ДобавитьВКорзинуФрагмент(ПараметрыДанных);
	КонецЕсли;
КонецПроцедуры


and change the string

ПараметрыФормы.РедактироватьЦену = Ложь;

on

ПараметрыФормы.РедактироватьЦену = Истина;

In order for the check amount to be automatically recalculated when the price changes, it is necessary to add a procedure to the "Events" property "When changing"

image

Procedure ProductsPricePrice Changes
&НаКлиентеПроцедураТоварыЦенаПриИзменении(Элемент)
	ТекущаяСтрока = Элементы.Товары.ТекущиеДанные;	
	СтруктураДействий = НовыйСтруктура;
	ДобавитьВСтруктуруДействияПриИзмененииЦены(СтруктураДействий,Объект);
	ОбработкаТабличнойЧастиКлиент.ОбработатьСтрокуТЧ(ТекущаяСтрока, СтруктураДействий, КэшированныеЗначения);
	ПересчитатьДокументНаКлиенте();
КонецПроцедуры


And to the area

#Область ПриИзмененииРеквизитов

Function

Add a BOM structure when pricing changes
&НаКлиентеНаСервереБезКонтекстаФункцияДобавитьВСтруктуруДействияПриИзмененииЦены(СтруктураДействий,Объект)
	СтруктураДействий.Вставить("ПересчитатьСумму");	
КонецФункции


After the done manipulations, the field "price" in the RMK UT 11 becomes available for change:

image

Also popular now: