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

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 Сейчас в теме
Нужно в конфигураторе, обработка подбор товаров в документ продажи,
В форме запрос количества
В модуле формы, в процедуре при создании на сервере.
Закоментировать (// перед строкой) строки //
Элементы.Цена.ТолькоПросмотр = ЗначениеЗаполнено(ВидЦены);
  //Элементы.Цена.ПропускатьПриВводе = ЗначениеЗаполнено(ВидЦены);


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

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

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

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