Имя: Пароль:
1C
1С v8
Розница 2.2 автоматически подбирать оптовые цены
0 I_learn_1c
 
26.12.17
10:55
Доброе утро, подскажите пожалуйста

Розница 2.2, управляемые формы. торможу вот что то.

Документ Реализация товаров. Есть реквизит Магазин, у него ВидЦен какой-то (допустим Розничная) и Правило ценообразования (какое-то минимальная для продажи или что-то типа того).

Нужно чтобы при добавлении товаров в табличную часть им автоматически выставлялась оптовая цена, а не розничная. И через добавление "зеленым плюсиком", и через подбор товаров. Через "плюсик" сделала,написала в модуле формы функцию по аналогии со стандартной ЗапасыСервер.ПолучитьЦенуПродажи.

Через подбор не могу разобраться, вызывается обработка ПодборТоваров и по идее когда-то тоже в ней вызывается ЗапасыСервер.ПолучитьЦенуПродажи. Но менять что-то в обработке, или в этой функции в общем модуле не могу, так как в документе Чек все как раньше должно быть, а он же ее тоже использует.

Подбор открывается в форме документа реализации через
ОткрытьФорму("Обработка.ПодборТоваров.Форма", ПараметрыФормы, ЭтаФорма, УникальныйИдентификатор);

в параметры вставляется
ПараметрыФормы.Вставить("Магазин",Объект.Магазин );
вот пробовала создать копию объект.магазин, поменять у нее вид цен и правило ценообразования и ее вставить. но это как то странно и ошибки о доступе, что то клиентское, другое на сервере..

Как адекватно сделать подбор сразу оптовых цен в Реализации и чтоб в Чеке при этом все осталось как было?

По сути это то же что в форме реализации нажать кнопку Цены-По виду цен-Оптовая. Но надо чтоб сразу, и чтоб и в форме подбора цена сразу оптовая была для реализации
1 I_learn_1c
 
26.12.17
11:05
Сейчас вот думаю над Формой подбора над событием ПодборТаблицаНоменклатураВыбор.. отсюда как то можно вырулить на то что описала выше?
2 I_learn_1c
 
26.12.17
11:41
Как я поняла цена определяется в ходе этой процедуры, но где именно?

&НаКлиенте
Процедура ПодборТаблицаНоменклатураПриАктивизацииСтроки(Элемент)
    
    ПодборТекущаяНоменклатура                = Элемент.ТекущаяСтрока;
    Если Элемент.ТекущиеДанные <> Неопределено Тогда
        ПодборТекущаяНоменклатураТипНоменклатуры = Элемент.ТекущиеДанные.ТипНоменклатуры;
    Иначе
        ПодборТекущаяНоменклатураТипНоменклатуры = ПредопределенноеЗначение("Перечисление.ТипыНоменклатуры.Товар");
    КонецЕсли;       
    ПодборТекущаяХарактеристика = ПредопределенноеЗначение("Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка");    
    Если Элемент.ТекущиеДанные <> Неопределено Тогда        
        Если Элемент.ТекущиеДанные.ИспользованиеХарактеристик = ПредопределенноеЗначение("Перечисление.ВариантыВеденияДополнительныхДанныхПоНоменклатуре.ИндивидуальныеДляНоменклатуры")
            ИЛИ Элемент.ТекущиеДанные.ИспользованиеХарактеристик = ПредопределенноеЗначение("Перечисление.ВариантыВеденияДополнительныхДанныхПоНоменклатуре.ОбщиеДляВидаНоменклатуры") Тогда            
            Элементы.ПерейтиКСпискуХарактеристик.Доступность = Истина;            
        Иначе
            Элементы.ПерейтиКСпискуХарактеристик.Доступность = Ложь;
        КонецЕсли;        
    Иначе
        Элементы.ПерейтиКСпискуХарактеристик.Доступность = Ложь;
    КонецЕсли;
    
    ИнформацияОТовареПрочитана = Ложь;                  
    ПодключитьОбработчикОжидания("ПодборТаблицаПриАктивизацииСтрокиОбработчикОжидания",0.2,Истина);
    
КонецПроцедуры
3 FIXXXL
 
26.12.17
11:44
(1) смотри в форме, из которой вызываешь подбор, обработку оповещения
там по идее идет добавление строк в ТЧ из подбора
там и переопредели цену
4 I_learn_1c
 
26.12.17
11:57
вот в конце вышеприведенного кода вызывается
&НаКлиенте
Процедура ПодборТаблицаПриАктивизацииСтрокиОбработчикОжидания()

В ней есть

Если ЗначениеЗаполнено(ПодборТекущаяНоменклатура) Тогда
.....
     Если РежимПодбораВЗакупки Тогда
                    СтруктураИнформацииОТоваре = ПодборТоваровВызовСервера.ПолучитьЦенуЗакупки(ПодборТекущаяНоменклатура, ПодборТекущаяХарактеристика, Магазин, Контрагент, СсылкаНаПоступление);                        
Иначе
                    СтруктураИнформацииОТоваре = ПодборТоваровВызовСервера.ПолучитьЦенуПродажи(ПодборТекущаяНоменклатура, ПодборТекущаяХарактеристика, Магазин, РежимПодбораСУчетомМинимальныхЦен);
                КонецЕсли;

интересует так понимаю меня  ПолучитьЦенуПродажи(...) не меняя стандартную.
Вот можно передавать какой-то параметр в форму подбора вроде булевский "ПодборВРеализацию" и если да, то вызывать самописную функцию ПолучитьЦенуПродажи(...), которая например в модуле формы реализации описана, а если нет, то ту которая сейчас.

так можно или плохое решение?
5 FIXXXL
 
26.12.17
12:04
(4) оставь подбор в покое
ищи как строки в ТЧ документа попадают после завершения подбора
6 I_learn_1c
 
26.12.17
12:09
(5) во время подбора хотят видеть уже оптовую цену, которая и попадет в документ. подбор показывает же их и чтоб не было путаницы с разными.

но только для подбора из реализации
7 FIXXXL
 
26.12.17
12:16
(6) тогда в процедуру вызова подбора добавь еще параметр, типа (...,...,...,МоиЦены=Неопределено)
его в подборе читай и переопределяй цены как надо

     Если РежимПодбораВЗакупки Тогда
                    СтруктураИнформацииОТоваре = ПодборТоваровВызовСервера.ПолучитьЦенуЗакупки(ПодборТекущаяНоменклатура, ПодборТекущаяХарактеристика, Магазин, Контрагент, СсылкаНаПоступление);                        
Иначе

ЕСЛИ МоиЦены=Истина Тогда
******ТвойКод**********
ИНАЧЕ
                    СтруктураИнформацииОТоваре = ПодборТоваровВызовСервера.ПолучитьЦенуПродажи(ПодборТекущаяНоменклатура, ПодборТекущаяХарактеристика, Магазин, РежимПодбораСУчетомМинимальныхЦен);
КОНЕЦЕСЛИ
                КонецЕсли;
8 I_learn_1c
 
26.12.17
12:25
(7) ну вот что-то такое и пытаюсь сейчас сделать.. просто сомневалась, может так делать плохо и есть какие-то еще способы. спасибо, буду тогда так сейчас делать
9 gairat
 
27.12.17
12:42
(0) а юзеру установить вид цен по умолчанию ?
10 FIXXXL
 
27.12.17
12:44
(9) тут мякотка в том, что в разных документах разные виды цен нужны :)
11 gairat
 
27.12.17
12:46
(10) ааа , не уловил из описания проблемы