Установить цену произвольная при изменении цены.
По теме из базы знаний
- Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2/3.0
- Облачный каталог товаров на 1C
- Алгоритмы с решениями для экзамена Специалист УТ 11.1
- Выбор цены в РМК для УТ 11.3 и УТ 11.4 (расширение)
- Быстродействие типовой 1С
Найденные решения
Нужно в конфигураторе, обработка подбор товаров в документ продажи,
В форме запрос количества
В модуле формы, в процедуре при создании на сервере.
Закоментировать (// перед строкой) строки //
И создать
В форме по поле ввода "цена"
В форме запрос количества
В модуле формы, в процедуре при создании на сервере.
Закоментировать (// перед строкой) строки //
Элементы.Цена.ТолькоПросмотр = ЗначениеЗаполнено(ВидЦены);
//Элементы.Цена.ПропускатьПриВводе = ЗначениеЗаполнено(ВидЦены);
И создать
&НаКлиенте
Процедура ЦенаПриИзменении(Элемент)
ВидЦены = Неопределено;
КонецПроцедуры
В форме по поле ввода "цена"
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
так вроде ситуация от обратного
если у вас задан ВидЦены, то колонку Цены менять не можете
для того что бы изменить Цену, необходимо в ВидеЦены выбрать Произвольная, после этого дает менять Цену
а вот теперь вопрос: А нафига менять устоявшийся регламент изменения Цены?
если у вас задан ВидЦены, то колонку Цены менять не можете
для того что бы изменить Цену, необходимо в ВидеЦены выбрать Произвольная, после этого дает менять Цену
а вот теперь вопрос: А нафига менять устоявшийся регламент изменения Цены?
да, запрет в процедуре,
как же сделать?
как же сделать?
Процедура ТоварыВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Если Поле = Элементы.ТоварыПроцентАвтоматическойСкидки
Или Поле = Элементы.ТоварыСуммаАвтоматическойСкидки Тогда
СтандартнаяОбработка = Ложь;
ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
Если Не Объект.РеализацияПоЗаказам ИЛИ РеализацияСверхЗаказа И ТекущиеДанные.КодСтроки = 0 Тогда
Если Не Объект.СкидкиРассчитаны Тогда
Результат = Вопрос(НСтр("ru='Скидки (наценки) не рассчитаны, рассчитать?';uk='Знижки (націнки) не розраховані, розрахувати?'"), РежимДиалогаВопрос.ДаНет);
Если Результат = КодВозвратаДиалога.Нет Тогда
Возврат;
Иначе
СтруктураПараметры = Новый Структура;
СтруктураПараметры.Вставить("ПрименятьКОбъекту", Истина);
СтруктураПараметры.Вставить("ТолькоПредварительныйРасчет", Ложь);
СтруктураПараметры.Вставить("ВосстанавливатьУправляемыеСкидки", Истина);
СтруктураПараметры.Вставить("УправляемыеСкидки", УправляемыеСкидки);
СтруктураПараметры.Вставить("РеализацияСверхЗаказа", РеализацияСверхЗаказа И Объект.РеализацияПоЗаказам);
СтруктураСообщений = РассчитатьСкидкиНаценкиНаСервере(СтруктураПараметры);
Если СтруктураСообщений.Сообщения.Количество() > 0 И СтруктураСообщений.АвтоматическиОткрывать Тогда
ОткрытьФорму("ОбщаяФорма.СообщенияСкидокНаценок", СтруктураСообщений, ЭтаФорма, УникальныйИдентификатор);
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(АдресПримененныхСкидокВоВременномХранилище) Тогда
РассчитатьСкидкиБезПримененияКОбъекту();
КонецЕсли;
ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
СкидкиНаценкиКлиент.ОткрытьФормуПримененныеСкидки(ТекущиеДанные, Объект, ЭтаФорма);
КонецЕсли;
ИначеЕсли Поле = Элементы.ТоварыЗаказКлиента Тогда
Если ЗначениеЗаполнено(Элементы.Товары.ТекущиеДанные.ЗаказКлиента) Тогда
ОткрытьЗначение(Элементы.Товары.ТекущиеДанные.ЗаказКлиента);
ИначеЕсли ЗначениеЗаполнено(Объект.ЗаказКлиента) Тогда
ОткрытьЗначение(Объект.ЗаказКлиента);
КонецЕсли;
ИначеЕсли Поле = Элементы.ТоварыЦена Тогда
ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
Если ПравоНаЧтениеВидаЦены Тогда
Если ЗначениеЗаполнено(ТекущиеДанные.ВидЦены) И НЕ Объект.Согласован Тогда
ОчиститьСообщения();
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
НСтр("ru='Для редактирования цены выберите вид цены ""<произвольная>""';uk='Для редагування ціни виберіть вид ціни ""<довільна>""'"),
Объект.Ссылка,
ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("Объект.Товары", ТекущиеДанные.НомерСтроки, "ВидЦены"),);
КонецЕсли;
КонецЕсли;
ИначеЕсли НаборыКлиент.БлокируемыйЭлемент(Поле) Тогда
ТекущаяСтрока = Объект.Товары.НайтиПоИдентификатору(ВыбраннаяСтрока);
Если ЗначениеЗаполнено(ТекущаяСтрока.НоменклатураНабора) И ТекущаяСтрока.КодСтроки = 0 Тогда
ПараметрОповещения = Новый Структура;
ПараметрОповещения.Вставить("НоменклатураНабора", ТекущаяСтрока.НоменклатураНабора);
ПараметрОповещения.Вставить("ХарактеристикаНабора", ТекущаяСтрока.ХарактеристикаНабора);
ПараметрОповещения.Вставить("ФормаВладелец", УникальныйИдентификатор);
ПараметрОповещения.Вставить("СверхЗаказа", Истина);
Оповестить("РедактироватьНабор", ПараметрОповещения, ЭтаФорма);
КонецЕсли;
ИначеЕсли Поле = Элементы.ТоварыНоменклатураНабора Тогда
ОткрытьЗначение(Элементы.Товары.ТекущиеДанные.НоменклатураНабора);
КонецЕсли;
КонецПроцедуры
Показать
работает в форме
как сделать так в подборе?
ИначеЕсли Поле = Элементы.ТоварыЦена Тогда
ТекущиеДанные = Элементы.Товары.ТекущиеДанные;
// +++++++++++
Элементы.Товары.ТекущиеДанные.ВидЦены = Неопределено;
//-----------
Если ПравоНаЧтениеВидаЦены Тогда
Если ЗначениеЗаполнено(ТекущиеДанные.ВидЦены) И НЕ Объект.Согласован Тогда
ОчиститьСообщения();
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
НСтр("ru='Для редактирования цены выберите вид цены ""<произвольная>""';uk='Для редагування ціни виберіть вид ціни ""<довільна>""'"),
Объект.Ссылка,
ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("Объект.Товары", ТекущиеДанные.НомерСтроки, "ВидЦены"),);
КонецЕсли;
КонецЕсли;
ИначеЕсли НаборыКлиент.БлокируемыйЭлемент(Поле) Тогда
ТекущаяСтрока = Объект.Товары.НайтиПоИдентификатору(ВыбраннаяСтрока);
Если ЗначениеЗаполнено(ТекущаяСтрока.НоменклатураНабора) И ТекущаяСтрока.КодСтроки = 0 Тогда
ПараметрОповещения = Новый Структура;
ПараметрОповещения.Вставить("НоменклатураНабора", ТекущаяСтрока.НоменклатураНабора);
ПараметрОповещения.Вставить("ХарактеристикаНабора", ТекущаяСтрока.ХарактеристикаНабора);
ПараметрОповещения.Вставить("ФормаВладелец", УникальныйИдентификатор);
ПараметрОповещения.Вставить("СверхЗаказа", Истина);
Оповестить("РедактироватьНабор", ПараметрОповещения, ЭтаФорма);
КонецЕсли;
ИначеЕсли Поле = Элементы.ТоварыНоменклатураНабора Тогда
ОткрытьЗначение(Элементы.Товары.ТекущиеДанные.НоменклатураНабора);
КонецЕсли;
КонецПроцедуры
Показатькак сделать так в подборе?
Нужно в конфигураторе, обработка подбор товаров в документ продажи,
В форме запрос количества
В модуле формы, в процедуре при создании на сервере.
Закоментировать (// перед строкой) строки //
И создать
В форме по поле ввода "цена"
В форме запрос количества
В модуле формы, в процедуре при создании на сервере.
Закоментировать (// перед строкой) строки //
Элементы.Цена.ТолькоПросмотр = ЗначениеЗаполнено(ВидЦены);
//Элементы.Цена.ПропускатьПриВводе = ЗначениеЗаполнено(ВидЦены);
И создать
&НаКлиенте
Процедура ЦенаПриИзменении(Элемент)
ВидЦены = Неопределено;
КонецПроцедуры
В форме по поле ввода "цена"
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот