|
Установить цену произвольная при изменении цены. | ☑ | ||
---|---|---|---|---|
0
seregapplk
11.08.21
✎
12:09
|
Думаю интересно не только одному мне. Необходимо сделать чтобы при редактировании цены в реализации товаров типы цен устанавливались значение произвольная.
Как это сделать в конфигураторе? |
|||
1
polosov
11.08.21
✎
12:19
|
(0) Это сложно. Надо программиста звать.
|
|||
2
mistеr
11.08.21
✎
12:27
|
(0) Событие ПриИзменении поля с ценой.
|
|||
3
Галахад
гуру
11.08.21
✎
12:28
|
Ну, там наверное и поле "цена" недоступно пока тип не тот.
|
|||
4
seregapplk
11.08.21
✎
12:38
|
Событие ПриИзменении поля с ценой.
пробовал Элементы.ТоварыВидЦены = "<произвольная>"; или Элементы.ТоварыВидЦены = ""; |
|||
5
acanta
11.08.21
✎
12:42
|
Кстати да. Обработка выбора строки, если текущая колонка = цена, то вид цены = произвольная и привыборевидацены вероятно..
|
|||
6
acanta
11.08.21
✎
12:46
|
Но чаще всего скидка = ценапотипу()*количество-ценапофакту*количество. Чтобы в отчете потом собрать можно было итого по пользователям.
|
|||
7
seregapplk
11.08.21
✎
12:50
|
запрет на редактирование в процедуре,
так что скорее через скидку Процедура ТоварыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) Если Поле = Элементы.ТоварыПроцентАвтоматическойСкидки Или Поле = Элементы.ТоварыСуммаАвтоматическойСкидки Тогда СтандартнаяОбработка = Ложь; ТекущиеДанные = Элементы.Товары.ТекущиеДанные; Если Не Объект.РеализацияПоЗаказам ИЛИ РеализацияСверхЗаказа И ТекущиеДанные.КодСтроки = 0 Тогда Если Не Объект.СкидкиРассчитаны Тогда Результат = Вопрос(НСтр("ru='Скидки (наценки) не рассчитаны, рассчитать?';uk='Знижки (націнки) не розраховані, розрахувати?'"), РежимДиалогаВопрос.ДаНет); Если Результат = КодВозвратаДиалога.Нет Тогда Возврат; Иначе СтруктураПараметры = Новый Структура; СтруктураПараметры.Вставить("ПрименятьКОбъекту", Истина); СтруктураПараметры.Вставить("ТолькоПредварительныйРасчет", Ложь); СтруктураПараметры.Вставить("ВосстанавливатьУправляемыеСкидки", Истина); СтруктураПараметры.Вставить("УправляемыеСкидки", УправляемыеСкидки); СтруктураПараметры.Вставить("РеализацияСверхЗаказа", РеализацияСверхЗаказа И Объект.РеализацияПоЗаказам); СтруктураСообщений = РассчитатьСкидкиНаценкиНаСервере(СтруктураПараметры); Если СтруктураСообщений.Сообщения.Количество() > 0 И СтруктураСообщений.АвтоматическиОткрывать Тогда ОткрытьФорму("ОбщаяФорма.СообщенияСкидокНаценок", СтруктураСообщений, ЭтаФорма, УникальныйИдентификатор); КонецЕсли; КонецЕсли; КонецЕсли; Если НЕ ЗначениеЗаполнено(АдресПримененныхСкидокВоВременномХранилище) Тогда РассчитатьСкидкиБезПримененияКОбъекту(); КонецЕсли; ТекущиеДанные = Элементы.Товары.ТекущиеДанные; СкидкиНаценкиКлиент.ОткрытьФормуПримененныеСкидки(ТекущиеДанные, Объект, ЭтаФорма); КонецЕсли; ИначеЕсли Поле = Элементы.ТоварыЗаказКлиента Тогда Если ЗначениеЗаполнено(Элементы.Товары.ТекущиеДанные.ЗаказКлиента) Тогда ОткрытьЗначение(Элементы.Товары.ТекущиеДанные.ЗаказКлиента); ИначеЕсли ЗначениеЗаполнено(Объект.ЗаказКлиента) Тогда ОткрытьЗначение(Объект.ЗаказКлиента); КонецЕсли; ИначеЕсли Поле = Элементы.ТоварыЦена Тогда ТекущиеДанные = Элементы.Товары.ТекущиеДанные; Если ПравоНаЧтениеВидаЦены Тогда Если ЗначениеЗаполнено(ТекущиеДанные.ВидЦены) И НЕ Объект.Согласован Тогда ОчиститьСообщения(); ОбщегоНазначенияКлиентСервер.СообщитьПользователю( НСтр("ru='Для редактирования цены выберите вид цены ""<произвольная>""';uk='Для редагування ціни виберіть вид ціни ""<довільна>""'"), Объект.Ссылка, ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("Объект.Товары", ТекущиеДанные.НомерСтроки, "ВидЦены"),); КонецЕсли; КонецЕсли; ИначеЕсли НаборыКлиент.БлокируемыйЭлемент(Поле) Тогда ТекущаяСтрока = Объект.Товары.НайтиПоИдентификатору(ВыбраннаяСтрока); Если ЗначениеЗаполнено(ТекущаяСтрока.НоменклатураНабора) И ТекущаяСтрока.КодСтроки = 0 Тогда ПараметрОповещения = Новый Структура; ПараметрОповещения.Вставить("НоменклатураНабора", ТекущаяСтрока.НоменклатураНабора); ПараметрОповещения.Вставить("ХарактеристикаНабора", ТекущаяСтрока.ХарактеристикаНабора); ПараметрОповещения.Вставить("ФормаВладелец", УникальныйИдентификатор); ПараметрОповещения.Вставить("СверхЗаказа", Истина); Оповестить("РедактироватьНабор", ПараметрОповещения, ЭтаФорма); КонецЕсли; ИначеЕсли Поле = Элементы.ТоварыНоменклатураНабора Тогда ОткрытьЗначение(Элементы.Товары.ТекущиеДанные.НоменклатураНабора); КонецЕсли; КонецПроцедуры |
|||
8
seregapplk
11.08.21
✎
12:54
|
как взять "ценапофакту" если он не дает менять значение?
|
|||
9
Мультук
гуру
11.08.21
✎
13:17
|
(4) Метод псевдослучайного программирования ?
P.S. Элементы.Товары.ТекущиеДанные.ВидЦены = Неопределено; |
|||
10
seregapplk
11.08.21
✎
13:45
|
не получается, все равно цену менять не дает
|
|||
11
Мультук
гуру
11.08.21
✎
14:13
|
(0) Ищем в модуле формы строку "Для редактирования цены выберите"
Читаем. Думаем. Комментируем ненужное. Вписываем нужное: Элементы.Товары.ТекущиеДанные.ВидЦены = Неопределено; Проверяем. Почти работает. Но нужно кликать дважды. Поиск условного оформления, чтобы не кликать дважды - самостоятельно. |
|||
12
seregapplk
11.08.21
✎
14:49
|
мозг дымится
ну ткните носом пожалуйста |
|||
13
seregapplk
11.08.21
✎
14:49
|
ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
Если ПравоНаЧтениеВидаЦены Тогда Если ЗначениеЗаполнено(ТекущиеДанные.ВидЦены) И НЕ Объект.Согласован Тогда ОчиститьСообщения(); ОбщегоНазначенияКлиентСервер.СообщитьПользователю( НСтр("ru='Для редактирования цены выберите вид цены ""<произвольная>""';uk='Для редагування ціни виберіть вид ціни ""<довільна>""'"), Объект.Ссылка, ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("Объект.Товары", ТекущиеДанные.НомерСтроки, "ВидЦены"),); КонецЕсли; КонецЕсли; ИначеЕсли НаборыКлиент.БлокируемыйЭлемент(Поле) Тогда ТекущаяСтрока = Объект.Товары.НайтиПоИдентификатору(ВыбраннаяСтрока); Если ЗначениеЗаполнено(ТекущаяСтрока.НоменклатураНабора) И ТекущаяСтрока.КодСтроки = 0 Тогда ПараметрОповещения = Новый Структура; ПараметрОповещения.Вставить("НоменклатураНабора", ТекущаяСтрока.НоменклатураНабора); ПараметрОповещения.Вставить("ХарактеристикаНабора", ТекущаяСтрока.ХарактеристикаНабора); ПараметрОповещения.Вставить("ФормаВладелец", УникальныйИдентификатор); ПараметрОповещения.Вставить("СверхЗаказа", Истина); Оповестить("РедактироватьНабор", ПараметрОповещения, ЭтаФорма); КонецЕсли; ИначеЕсли Поле = Элементы.ТоварыНоменклатураНабора Тогда ОткрытьЗначение(Элементы.Товары.ТекущиеДанные.НоменклатураНабора); КонецЕсли; |
|||
14
seregapplk
11.08.21
✎
15:23
|
все работает,
теперь как в подборе так сделать |
|||
15
seregapplk
12.08.21
✎
14:50
|
сделел
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |