|
Цена по условию | ☑ | ||
---|---|---|---|---|
0
progaoff
22.06.15
✎
12:57
|
Необходимо выводить нулевую цену в определенные дни на определенную продукцию. Как это возможно реализовать. Создал документ, специальный регистр под это. Теперь надо как то все это реализовать в документе продажи. Подскажите как, заранее благодарен. Платформа 8.2 конфигурация не типовая
|
|||
1
butterbean
22.06.15
✎
12:59
|
Если ЭтоОпределнныйДень Тогда Цена = 0 КонецЕсли;
|
|||
2
shuhard_серый
22.06.15
✎
12:59
|
(0) [конфигурация не типовая]
и каких советов ты от форума ждёшь ? |
|||
3
mikecool
22.06.15
✎
12:59
|
привязать регистр в модуле подстановки цен и при условии совпадения - выводить 0
|
|||
4
Maniac
22.06.15
✎
13:00
|
скидка 100 процентов по условию по датам
|
|||
5
ЛисИзЛеса
22.06.15
✎
13:00
|
Определенные дни.. наверное дни недели?
Тогда можно использовать ДеньНедели(<Дата>) который выдаст номер дня в неделе |
|||
6
bootini
22.06.15
✎
13:00
|
Скидка 100%
|
|||
7
ЛисИзЛеса
22.06.15
✎
13:04
|
ВЫБОР КОГДА ДЕНЬНЕДЕЛИ(ТекДата)=7 ТОГДА 0 ИНАЧЕ ЦеныНоменклатуры.Цена КОНЕЦ КАК ЦенаТовара
|
|||
8
progaoff
22.06.15
✎
13:06
|
Я создал документ, в нем отобразил дату акции организацию так как у меня их много, и табличную часть с товарами, это все проводится по регистру сведений, документ, который делает реализацию, состоит из услуги и материалов, вот теперь не могу связать это все что бы выставить там скидку 100%.
|
|||
9
Maniac
22.06.15
✎
13:07
|
в товар повесить галку - сто процентов.
в процедуру ПолучитьЦенуНоменклатуры условие Если Номенклатура.РеквизитГалка = Истина Тогда Возврат 0; КонецЕсли; Все. |
|||
10
progaoff
22.06.15
✎
13:08
|
Я в документ эту галку запихнул.
|
|||
11
butterbean
22.06.15
✎
13:08
|
(9) ппц
|
|||
12
progaoff
22.06.15
✎
13:08
|
и как по дате еще условие создать????
|
|||
13
progaoff
22.06.15
✎
13:51
|
Больше нет вариантов???
|
|||
14
D_E_S_131
22.06.15
✎
14:29
|
Если нужно по дате, то вместо реквизита справочника используешь периодический РС.
|
|||
15
progaoff
22.06.15
✎
14:32
|
(14) так и есть. Есть регистр, есть документ который заносит в этот регистр данные. Я не пойму как реализовать саму процедуру проверку (Код программы)
|
|||
16
Бубка Гоп
22.06.15
✎
14:36
|
(15) запросом, например
|
|||
17
vicof
22.06.15
✎
14:56
|
(15) почитать книжки не предлагать?
|
|||
18
progaoff
22.06.15
✎
15:04
|
нет, спасибо, с книжками позже)
|
|||
19
D_E_S_131
22.06.15
✎
15:06
|
(15) Т.е. данные в регистр занес, а прочитать не можешь эти данные на определенную дату? Или чего вообще (хоть какой-то код нам дай)?
|
|||
20
progaoff
22.06.15
✎
15:10
|
В том то и проблема, кода нет.... есть конструкция а кода нет никакого....
|
|||
21
progaoff
22.06.15
✎
15:17
|
Есть регистр
---ИЗЕМРЕНИЯ--- Организация Номенклатура ---РЕСУРСЫ--- ДатаАкции - тип Дата БесплатныеМатреиалы - Булево и Документ "День Акции" -Организация -ДатаСобытия -БесплатныеМатериалы - Булево -Номенклатура ТабличнаяЧасть - Товары |
|||
22
D_E_S_131
22.06.15
✎
15:29
|
Т.е. данные в РС движениями документа не Вы писали?
|
|||
23
progaoff
22.06.15
✎
15:36
|
я писал движение...
|
|||
24
D_E_S_131
22.06.15
✎
15:46
|
(23) Т.е. Вы как бы не "читатель", в этом проблема? :)
Если у Вас при добавлении строки товара в накладную определяется цена, то ищете запросом данные по нужной организации, номенклатуре и дате документа. Если есть данные (накладная выписывается в дату акции), то обнуляете цену. |
|||
25
progaoff
22.06.15
✎
15:58
|
(24) можно хоть образно кусок кода???
|
|||
26
D_E_S_131
22.06.15
✎
16:40
|
Ну вот например так (взято за основу поле Номенклатура в РТУ конфигурации УТ 10.3):
|
|||
27
progaoff
22.06.15
✎
16:56
|
(26) Спасибо милый человек! Только хоть убей в упор не вижу на форме процедуру ПриИзменении.....
|
|||
28
mTema32
22.06.15
✎
17:01
|
(27) "ЭлементыФормы.Товары"
|
|||
29
VikingKosmo
22.06.15
✎
17:04
|
(27) может ее еще создать нужно?
|
|||
30
progaoff
22.06.15
✎
17:20
|
Нашел. Только решил товары в регистре не держать, а держать их в отдельном справочнике,
Поле1 это я так понимаю мы отбираем то что нам нужно???? |
|||
31
Бубка Гоп
22.06.15
✎
17:22
|
(30) ты точно движения сам делал?
|
|||
32
progaoff
22.06.15
✎
17:23
|
конструктором
|
|||
33
mTema32
22.06.15
✎
17:24
|
+(31) Не. Без книжек (хотя бы одной) точно не обойтись.
Я лично в целом вопрос ТС понимаю, а вот наводящие у меня ступор вызывают... чего надо? |
|||
34
progaoff
22.06.15
✎
17:29
|
Есть товары, которые находятся в определенном справочнике, есть документ, он устанавливает дату акции на определенной организации, Есть регистр который хранит информацию о дате проведения акции и организации. Надо что бы товар который находится в определенном справочнике выбивался с нулевой ценой в день который установит документ.
|
|||
35
D_E_S_131
22.06.15
✎
17:31
|
"Только решил товары в регистре не держать, а держать их в отдельном справочнике" — не понял к чему это написано.
Вообще нужно бы увидеть ваш код по установке какой-нибудь цены в документ, при хоть каком-то действии |
|||
36
mTema32
22.06.15
✎
17:34
|
(34) В процедуре установки цен в запросе цен поставить условия на дату и позицию номенклатуры.
|
|||
37
mTema32
22.06.15
✎
17:34
|
+(36) не установки, а получении цен конечно же
|
|||
38
progaoff
22.06.15
✎
17:37
|
Функция ОбработкаВыбораМатериала(ВыбраннаяСтрока, ЗапрашиватьКоличество, ЗапрашиватьЦену)
ТЗ_Услуги = АктВыполненныхРабот.Выгрузить(); МассивЭлементов = ТЗ_Услуги.ВыгрузитьКолонку("Номенклатура"); СписокЭлементов = Новый СписокЗначений; Для Каждого СтрокаМассива Из МассивЭлементов Цикл СписокЭлементов.Добавить(СтрокаМассива.Код); КонецЦикла; НоменклатураФормаВыбора = Справочники.Номенклатура.ПолучитьФормуВыбора(); НоменклатураФормаВыбора.ЭлементыФормы.СправочникСписок.ИерархическийПросмотр = Ложь; НоменклатураФормаВыбора.Отбор.Код.Использование = Истина; НоменклатураФормаВыбора.Отбор.Код.ВидСравнения = ВидСравнения.ВСписке; НоменклатураФормаВыбора.Отбор.Код.Значение = СписокЭлементов; НоменклатураФормаВыбора.Заголовок = "Выберите услугу, для которой добавляется материал"; НоменклатураФормаВыбора.ОткрытьМодально(); ВыбраннаяНоменклатура = НоменклатураФормаВыбора.ЭлементыФормы.СправочникСписок.ТекущаяСтрока; Если ВыбраннаяНоменклатура = Неопределено Тогда Возврат Неопределено; КонецЕсли; ЭлементыФормы.АктВыполненныхРабот.ТекущаяСтрока = АктВыполненныхРабот.Найти(ВыбраннаяНоменклатура, "Номенклатура"); Попытка Услуга = ЭлементыФормы.АктВыполненныхРабот.ТекущаяСтрока.Номенклатура; ТекДанные = ЭлементыФормы.АктВыполненныхРабот.ТекущиеДанные; КоличествоУслуги = ТекДанные.Количество * ТекДанные.ЕдИзм.Коэффициент; Исключение КонецПопытки; ЕдИзмеренияФормаВыбора = Справочники.ЕдиницыИзмерения.ПолучитьФормуВыбора(); ЕдИзмеренияФормаВыбора.Отбор.Владелец.Использование = Истина; ЕдИзмеренияФормаВыбора.Отбор.Владелец.Значение = ВыбраннаяСтрока; ЕдИзмеренияФормаВыбора.ОткрытьМодально(); ЕдИзмСсылка = ЕдИзмеренияФормаВыбора.ЭлементыФормы.СправочникСписок.ТекущаяСтрока; Если ЕдИзмСсылка = Неопределено Тогда Возврат Неопределено; КонецЕсли; НоменклатураМат = ВыбраннаяСтрока; Номенклатура = Услуга; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | СоставУслугиСрезПоследних.Материал, | ЕСТЬNULL(СоставУслугиСрезПоследних.Количество, 0) * ЕСТЬNULL(СоставУслугиСрезПоследних.ЕдиницаИзмерения.Коэффициент, 0) / ВЫБОР | КОГДА ЕСТЬNULL(&коэфф, 0) = 0 | ТОГДА 1 | ИНАЧЕ &коэфф | КОНЕЦ КАК Количество, | СоставУслугиСрезПоследних.ЕдиницаИзмерения |ИЗ | РегистрСведений.СоставУслуги.СрезПоследних КАК СоставУслугиСрезПоследних | ВНУТРЕННЕЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ ПЕРВЫЕ 1 | СоставУслуги.Регистратор КАК Регистратор, | СоставУслуги.Организация КАК Организация | ИЗ | РегистрСведений.СоставУслуги КАК СоставУслуги | ГДЕ | СоставУслуги.Период <= &Период | И СоставУслуги.Номенклатура = &Номенклатура | И (СоставУслуги.Организация = ЗНАЧЕНИЕ(справочник.Организации.пустаяСсылка) | ИЛИ СоставУслуги.Организация = &организация) | | УПОРЯДОЧИТЬ ПО | Организация УБЫВ) КАК Зап | ПО СоставУслугиСрезПоследних.Регистратор = Зап.Регистратор |ГДЕ | СоставУслугиСрезПоследних.Материал = &Материал"; Запрос.УстановитьПараметр("Номенклатура", Номенклатура); Запрос.УстановитьПараметр("Организация", Организация); Запрос.УстановитьПараметр("Период", ВремяПриемаС); Запрос.УстановитьПараметр("Материал", НоменклатураМат); Если ЗначениеЗаполнено(ЕдИзмСсылка) Тогда Запрос.УстановитьПараметр("Коэфф", ЕдИзмСсылка.Коэффициент); Иначе Запрос.УстановитьПараметр("Коэфф", Неопределено); КонецЕсли; Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда Количество = Выборка.Количество; ЕдиницаИзмерения = Выборка.ЕдиницаИзмерения; Иначе Количество = ?(НоменклатураМат.НормаРасхода <= 0, 1, НоменклатураМат.НормаРасхода); ЕдиницаИзмерения = НоменклатураМат.ОсновнаяЕдиницаИзмерения; КонецЕсли; Если ЗапрашиватьКоличество Или ЗапрашиватьЦену Тогда ФормаКоличества = Обработки.ПодборНоменклатуры.ПолучитьФорму("ВводКоличестваМатериала"); ФормаКоличества.Материал = ВыбраннаяСтрока; ФормаКоличества.ЕдиницаИзмерения = ЕдИзмСсылка; ФормаКоличества.Количество = Количество * ЕдиницаИзмерения.Коэффициент / ЕдИзмСсылка.Коэффициент; Попытка ФормаКоличества.Цена = ОбщегоНазначения.ПолучениеЦены(ВремяПриемаС, ВыбраннаяСтрока, ЕдиницаИзмерения, ЗаявленныйПрейскурант, Организация); Исключение КонецПопытки; ФормаКоличества.ОстаткиНа = ВремяПриемаС; ФормаКоличества.Услуга = Услуга; ФормаКоличества.ЭлементыФормы.Цена.Доступность = ЗапрашиватьЦену; ФормаКоличества.ЭлементыФормы.Прейскурант.Доступность = ЗапрашиватьЦену; ФормаКоличества.ЭлементыФормы.Количество.Доступность = ЗапрашиватьКоличество; ФормаКоличества.ЭлементыФормы.ЕдиницаИзмерения.Доступность = ЗапрашиватьКоличество; ФормаКоличества.Организация = Организация; ФормаКоличества.Прейскурант = ЗаявленныйПрейскурант; ФормаКоличества.СтароеКоличество = 1; ФормаКоличества.ПрейскурантПоСтрокам = Истина; СтруктураПодбора = ФормаКоличества.ОткрытьМодально(); СуммаПродажи = СтруктураПодбора.Цена * СтруктураПодбора.Количество / СтруктураПодбора.ЕдиницаИзмерения.Коэффициент; НоваяСтрока = Материалы.Добавить(); НоваяСтрока.СуммаПродажи = СуммаПродажи; НоваяСтрока.Прейскурант = СтруктураПодбора.Прейскурант; НоваяСтрока.ЕдИзм = СтруктураПодбора.Номенклатура.БазоваяЕдиницаИзмерения; НоваяСтрока.Количество = СтруктураПодбора.Количество * СтруктураПодбора.ЕдиницаИзмерения.Коэффициент; НоваяСтрока.Номенклатура = СтруктураПодбора.Услуга; НоваяСтрока.НоменклатураМат = СтруктураПодбора.Номенклатура; Иначе СуммаПродажи = ЗаполнитьСуммуПродажиМатериала(ВремяПриемаС, НоменклатураМат, ЗаявленныйПрейскурант, Количество) * Количество; НоваяСтрока = Материалы.Добавить(); НоваяСтрока.СуммаПродажи = СуммаПродажи; НоваяСтрока.Прейскурант = ЗаявленныйПрейскурант; НоваяСтрока.ЕдИзм = НоменклатураМат.БазоваяЕдиницаИзмерения; НоваяСтрока.Количество = Количество; НоваяСтрока.Номенклатура = Номенклатура; НоваяСтрока.НоменклатураМат = НоменклатураМат; КонецЕсли; Возврат СтруктураПодбора; |
|||
39
Chameleon1980
22.06.15
✎
17:40
|
"...Надо что бы товар который находится в определенном справочнике..."
Я не знаю как Вы, уважаемая аудитория - я запутался. Я задачу не понял |
|||
40
progaoff
22.06.15
✎
17:44
|
я ее сам не до конца понимаю, логичнее все держать в регистре а не в справочнике, и в документе в табличной части...
|
|||
41
progaoff
22.06.15
✎
17:48
|
Нужно что бы товары определенные в один прекрасный день, бились либо со 100% скидкой либо с нулевой ценой.
|
|||
42
Chameleon1980
22.06.15
✎
17:50
|
(40) опять.
конечная цель какая? "...Необходимо выводить нулевую цену в определенные дни на определенную продукцию..." куда выводить? определенные дни - это дни недели или какие другие критические (пардон) дни? причем тут регистры, документы? |
|||
43
D_E_S_131
22.06.15
✎
17:54
|
А вот это "Функция ОбработкаВыбораМатериала()" тоже Вы написали?
|
|||
44
mTema32
22.06.15
✎
17:54
|
(42) Перевожу:
ТС надо чтобы при создании документа (что-то типа РТиУ) при подстановке в табличную часть "Материалы" цена проставлялась по условию: если по конкретной организации, конкретной номенклатуре есть запись в РС (напр. Дни акции) и день акции совпадает с текущим, то на данную строку в тч проставлялась скидка 100%. А записи в этот РС делает документ "Дни акции". |
|||
45
mTema32
22.06.15
✎
17:55
|
(43)риторический вопрос?
|
|||
46
progaoff
22.06.15
✎
17:55
|
(42) Конечная цель что бы этот товар был просто бесплатным.
|
|||
47
progaoff
22.06.15
✎
17:56
|
(43) Это стандартная функция
|
|||
48
VikingKosmo
22.06.15
✎
17:57
|
(47) а кто ее, простите, стандартизировал?
|
|||
49
mTema32
22.06.15
✎
18:00
|
(48) Да ладно. Не напрягайте человека) Видно же что какая-то "нетленка".
|
|||
50
D_E_S_131
22.06.15
✎
18:00
|
Ну вот, судя по коду, у вас в ТЧ даже нет поля "Цена". Есть только расчет суммы по данным из подбора. Вот там можно и вставить код:
И ниже прописать саму функцию ТоварПоАкции() как я Вам в (26) написал. |
|||
51
mTema32
22.06.15
✎
18:00
|
Хотя бы из-за таких вот конструкций:
Попытка бл-бла-бла Исключение КонецПопытки; |
|||
52
progaoff
22.06.15
✎
18:01
|
Сори ступил, функция написана, другим сотрудником
|
|||
53
mTema32
22.06.15
✎
18:02
|
(50)
А вот этот как же? ФормаКоличества.Цена = ОбщегоНазначения.ПолучениеЦены(ВремяПриемаС, ВыбраннаяСтрока, ЕдиницаИзмерения, ЗаявленныйПрейскурант, Организация); |
|||
54
progaoff
22.06.15
✎
18:03
|
(50) функция нужна полностью или только запрос????
|
|||
55
D_E_S_131
22.06.15
✎
18:10
|
(53) Это же используется для расчета СуммыПродажи. А в структуру подбора цена не передается.
(54)
|
|||
56
D_E_S_131
22.06.15
✎
18:11
|
Вместо "СтрокаТабличнойЧасти.Номенклатура" просто "Номенклатура".
|
|||
57
progaoff
23.06.15
✎
09:59
|
(56) Чет не работает...
|
|||
58
progaoff
23.06.15
✎
10:17
|
А если допустим, товары которые мне нужны с нулевой ценой, я помещу в папку с определенным названием, и потом от туда их получу, как это в коде будет выглядеть???
|
|||
59
D_E_S_131
23.06.15
✎
10:21
|
(57) Что именно?
|
|||
60
progaoff
23.06.15
✎
10:52
|
Запрос
|
|||
61
progaoff
24.06.15
✎
12:38
|
(59) Есть еще какие нибудь варианты???
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |