Думаю интересно не только одному мне. Необходимо сделать чтобы при редактировании цены в реализации товаров - типы цен устанавливались значение произвольная.
Как это сделать в конфигураторе?
в форме, колонка цена при изменении?
---
Нужно в конфигураторе, обработка подбор товаров в документ продажи,
В форме запрос количества
В модуле формы, в процедуре при создании на сервере.
Закоментировать (// перед строкой) строки //
```1c
    Элементы.Цена.ТолькоПросмотр = ЗначениеЗаполнено(ВидЦены);
    //Элементы.Цена.ПропускатьПриВводе = ЗначениеЗаполнено(ВидЦены);
```

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

    ВидЦены = Неопределено;

    КонецПроцедуры
```

 В форме по поле ввода "цена"
---
так вроде ситуация от обратного

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

а вот теперь вопрос: А нафига менять устоявшийся регламент изменения Цены?
---
есть клиенты которым хозяин хочет дать скидку
либо иногда цена "договорная" ))
---
Чем не устраивает ручная скидка?
---
да, запрет в процедуре,
как же сделать?

```1c
    Процедура ТоварыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)

    Если Поле = Элементы.ТоварыПроцентАвтоматическойСкидки
    Или Поле = Элементы.ТоварыСуммаАвтоматическойСкидки Тогда

    СтандартнаяОбработка = Ложь;
    ТекущиеДанные = Элементы.Товары.ТекущиеДанные;

    Если Не Объект.РеализацияПоЗаказам ИЛИ РеализацияСверхЗаказа И ТекущиеДанные.КодСтроки = 0 Тогда

    Если Не Объект.СкидкиРассчитаны Тогда
    Результат = Вопрос(НСтр("ru='Скидки (наценки) не рассчитаны, рассчитать?';uk='Знижки (націнки) не розраховані, розрахувати?'"), РежимДиалогаВопрос.ДаНет);
    Если Результат = КодВозвратаДиалога.Нет Тогда
    Возврат;
    Иначе

    СтруктураПараметры = Новый Структура;
    СтруктураПараметры.Вставить("ПрименятьКОбъекту", Истина);
    СтруктураПараметры.Вставить("ТолькоПредварительныйРасчет", Ложь);
    СтруктураПараметры.Вставить("ВосстанавливатьУправляемыеСкидки", Истина);
    СтруктураПараметры.Вставить("УправляемыеСкидки", УправляемыеСкидки);
    СтруктураПараметры.Вставить("РеализацияСверхЗаказа", РеализацияСверхЗаказа И Объект.РеализацияПоЗаказам);

    СтруктураСообщений = РассчитатьСкидкиНаценкиНаСервере(СтруктураПараметры);
    Если СтруктураСообщений.Сообщения.Количество() > 0 И СтруктураСообщений.АвтоматическиОткрывать Тогда
    ОткрытьФорму("ОбщаяФорма.СообщенияСкидокНаценок", СтруктураСообщений, ЭтаФорма, УникальныйИдентификатор);
    КонецЕсли;

    КонецЕсли;
    КонецЕсли;

    Если НЕ ЗначениеЗаполнено(АдресПримененныхСкидокВоВременномХранилище) Тогда
    РассчитатьСкидкиБезПримененияКОбъекту();
    КонецЕсли;

    ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
    СкидкиНаценкиКлиент.ОткрытьФормуПримененныеСкидки(ТекущиеДанные, Объект, ЭтаФорма);

    КонецЕсли;

    ИначеЕсли Поле = Элементы.ТоварыЗаказКлиента Тогда

    Если ЗначениеЗаполнено(Элементы.Товары.ТекущиеДанные.ЗаказКлиента) Тогда
    ОткрытьЗначение(Элементы.Товары.ТекущиеДанные.ЗаказКлиента);
    ИначеЕсли ЗначениеЗаполнено(Объект.ЗаказКлиента) Тогда
    ОткрытьЗначение(Объект.ЗаказКлиента);
    КонецЕсли;

    ИначеЕсли Поле = Элементы.ТоварыЦена Тогда

    ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
    Если ПравоНаЧтениеВидаЦены Тогда
    Если ЗначениеЗаполнено(ТекущиеДанные.ВидЦены) И НЕ Объект.Согласован Тогда
    ОчиститьСообщения();
    ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
    НСтр("ru='Для редактирования цены выберите вид цены "<произвольная>"';uk='Для редагування ціни виберіть вид ціни "<довільна>"'"),
    Объект.Ссылка,
    ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("Объект.Товары", ТекущиеДанные.НомерСтроки, "ВидЦены"),);
    КонецЕсли;
    КонецЕсли;

    ИначеЕсли НаборыКлиент.БлокируемыйЭлемент(Поле) Тогда

    ТекущаяСтрока = Объект.Товары.НайтиПоИдентификатору(ВыбраннаяСтрока);
    Если ЗначениеЗаполнено(ТекущаяСтрока.НоменклатураНабора) И ТекущаяСтрока.КодСтроки = 0 Тогда

    ПараметрОповещения = Новый Структура;
    ПараметрОповещения.Вставить("НоменклатураНабора", ТекущаяСтрока.НоменклатураНабора);
    ПараметрОповещения.Вставить("ХарактеристикаНабора", ТекущаяСтрока.ХарактеристикаНабора);
    ПараметрОповещения.Вставить("ФормаВладелец", УникальныйИдентификатор);
    ПараметрОповещения.Вставить("СверхЗаказа", Истина);

    Оповестить("РедактироватьНабор", ПараметрОповещения, ЭтаФорма);

    КонецЕсли;

    ИначеЕсли Поле = Элементы.ТоварыНоменклатураНабора Тогда

    ОткрытьЗначение(Элементы.Товары.ТекущиеДанные.НоменклатураНабора);

    КонецЕсли;

    КонецПроцедуры
```
---
проблема в плагине скорее всего, ищу варианты
---
работает в форме

```1c
    ИначеЕсли Поле = Элементы.ТоварыЦена Тогда

    ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
    // +++++++++++
    Элементы.Товары.ТекущиеДанные.ВидЦены = Неопределено;
    //-----------
    Если ПравоНаЧтениеВидаЦены Тогда
    Если ЗначениеЗаполнено(ТекущиеДанные.ВидЦены) И НЕ Объект.Согласован Тогда
    ОчиститьСообщения();
    ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
    НСтр("ru='Для редактирования цены выберите вид цены "<произвольная>"';uk='Для редагування ціни виберіть вид ціни "<довільна>"'"),
    Объект.Ссылка,
    ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("Объект.Товары", ТекущиеДанные.НомерСтроки, "ВидЦены"),);

    КонецЕсли;
    КонецЕсли;

    ИначеЕсли НаборыКлиент.БлокируемыйЭлемент(Поле) Тогда

    ТекущаяСтрока = Объект.Товары.НайтиПоИдентификатору(ВыбраннаяСтрока);
    Если ЗначениеЗаполнено(ТекущаяСтрока.НоменклатураНабора) И ТекущаяСтрока.КодСтроки = 0 Тогда

    ПараметрОповещения = Новый Структура;
    ПараметрОповещения.Вставить("НоменклатураНабора", ТекущаяСтрока.НоменклатураНабора);
    ПараметрОповещения.Вставить("ХарактеристикаНабора", ТекущаяСтрока.ХарактеристикаНабора);
    ПараметрОповещения.Вставить("ФормаВладелец", УникальныйИдентификатор);
    ПараметрОповещения.Вставить("СверхЗаказа", Истина);

    Оповестить("РедактироватьНабор", ПараметрОповещения, ЭтаФорма);

    КонецЕсли;

    ИначеЕсли Поле = Элементы.ТоварыНоменклатураНабора Тогда

    ОткрытьЗначение(Элементы.Товары.ТекущиеДанные.НоменклатураНабора);

    КонецЕсли;

    КонецПроцедуры
```

как сделать так в подборе?
---
чтото глюкнуло, перед этим пост не в тему
---
Нужно в конфигураторе, обработка подбор товаров в документ продажи,
В форме запрос количества
В модуле формы, в процедуре при создании на сервере.
Закоментировать (// перед строкой) строки //
```1c
    Элементы.Цена.ТолькоПросмотр = ЗначениеЗаполнено(ВидЦены);
    //Элементы.Цена.ПропускатьПриВводе = ЗначениеЗаполнено(ВидЦены);
```

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

    ВидЦены = Неопределено;

    КонецПроцедуры
```

 В форме по поле ввода "цена"