Имя: Пароль:
1C
1C 7.7
v7: Цена товара
0 Толмачев
 
01.11.11
13:38
ТИС 77. Подскажите, как получить цену товара?

ВыбратьСтроки();
Пока ПолучитьСтроку() = 1 Цикл
   СпрЦен.ИспользоватьВладельца(Товар);
   Если СпрЦен.НайтиПоНаименованию("Закупочная")=1 Тогда;
     Если СпрЦен.Единица.Получить(ДатаДок).Коэффициент=0 Тогда
       Цена=СпрЦен.Цена.Получить(ДатаДок);
   Иначе
Цена=СпрЦен.Цена.Получить(ДатаДок)/СпрЦен.Единица.Получить(ДатаДок).Коэффициент;
КонецЕсли;
               
   Цена=Цена*Единица.Коэффициент;
   
           Иначе
       Сообщить("Не найдена цена для номенклатуры "+Товар,);
           КонецЕсли;
       КонецЦикла;
1 filh
 
01.11.11
13:40
так вроде получаешь, что еще надо?
2 Толмачев
 
01.11.11
13:41
Не получаю. Все время выпадаю в Цена не найдена. Меняю наименование на "Розничная", "Оптовая". Результат тот же. У каждого товара все 3 вида цен есть в справочнике.
3 filh
 
01.11.11
13:46
СпрЦен.ИспользоватьВладельца(Товар.ТекущийЭлемент());
и в НайтиПоНаименованию есть еще параметры.
4 palpetrovich
 
01.11.11
13:49
а так найдет?
   СпрЦен.ИспользоватьВладельца(Товар);          
   СпрЦен.ВыбратьЭлементы();
   Пока СпрЦен.ПолучитьЭлемент()=1 Цикл
       Если Найти(СпрЦен.Наименование,"Закупочная")=1 Тогда
5 Vladal
 
01.11.11
13:52
ТИС 7.7... Там это из коробки.
6 Vladal
 
01.11.11
13:53
надо посмотреть глобальную процедуру по получению цены - её используют различные отчеты, документы и форма подбора товаров.
7 Толмачев
 
01.11.11
13:58
(4) Всё равно не найдена цена
8 filh
 
01.11.11
13:59
СпрЦен.ВыбратьЭлементы();
   Пока СпрЦен.ПолучитьЭлемент()=1 Цикл
       Сообщить(СпрЦен.Наименование);
   КонецЦикла
9 filh
 
01.11.11
13:59
а так что показывает?
10 palpetrovich
 
01.11.11
14:01
а так:
   СпрТовары = СоздатьОбъект("Справочник.Номенклатура");
   СпрЦены = СоздатьОбъект("Справочник.Цены");
   СпрЦены.ИспользоватьДату(ТекущаяДата());
   СпрТовары.ВыбратьЭлементы();
   Пока СпрТовары.ПолучитьЭлемент() = 1 Цикл
       Если СпрТовары.ЭтоГруппа()=1 Тогда
           Продолжить;
       КонецЕсли;
       СпрЦены.ИспользоватьВладельца(СпрТовары.ТекущийЭлемент());
       Если СпрЦены.НайтиПоНаименованию("диллерская")=1 Тогда
           Сообщить(""+ СпрТовары.ТекущийЭлемент() +"   " + СпрЦены.Цена);    
       КонецЕсли;
   КонецЦикла;
11 palpetrovich
 
01.11.11
14:02
+10 подставь только свои справочники, если они отличаются, ну и "диллерская" замени на какую тебе нужно
12 Ёпрст
 
01.11.11
14:05
(0)
глВернутьЦену
глПолучиьтЦену

смотри в глобальнике, наслаждайся
13 Толмачев
 
01.11.11
14:06
(8) в цикл не попадает вообще
14 Толмачев
 
01.11.11
14:11
(10)Список товаров выводит, конечно, но нужных мне там нет. Хотя открываю справочник Цены - там все типы заданы
15 palpetrovich
 
01.11.11
14:12
(14) что значит список выводит?
16 palpetrovich
 
01.11.11
14:14
+15 если "Сообщить" отрабатывает - значит тип цены находит, а если цены нет, то на нет и не ответ :)
17 filh
 
01.11.11
14:17
(13) Значит нет там цен
18 ДенисЧ
 
01.11.11
14:18
ВыбратьЭлементы(1);
19 palpetrovich
 
01.11.11
14:19
автор, ты справочники не путаешь? ТипыЦен и Цены?
20 Ёпрст
 
01.11.11
14:19
(18) по-умолчанию, там всегда 1.
21 Толмачев
 
01.11.11
14:33
(19) В типах цен заданы розничная, оптовая, закупочная. Открываю элемент справочника Номенклатура, перехожу в подчиненный справочник Цены(Цены товаров). Все три типа цен заданы, на каждый есть запись цены в рублях. Но тем не менее пишет "Не найдена цена".
22 Толмачев
 
01.11.11
14:38
(10) в твоем коде проходим по всему справочнику Номенклатура и сообщаем все найденные товары с розничной (поменял) ценой. Выводится список товаров, но не всех.
23 filh
 
01.11.11
14:40
(22) значит _нет_там_цен!
ну что непонятного то?
24 Толмачев
 
01.11.11
14:41
(23) как их там нет! Открываю каждый товар, просматриваю цены по каждому. Есть они там.
25 filh
 
01.11.11
14:44
значит что то ты не договариваешь!
26 palpetrovich
 
01.11.11
14:49
(24) на какую дату там выставлены цены и на какую проверяешь?
27 Толмачев
 
01.11.11
14:50
(24) Из твоего примера. Проверяю на текущую дату. Все цены устанавливались одним документом от 31.10.11
28 palpetrovich
 
01.11.11
14:58
(27) тогда остается только одно - поверить в чудо :) ...ну можно еще индексы снести и переиндексировать, мало-ли что
29 Толмачев
 
01.11.11
15:06
(28) Наверное, все таки дело не в чуде.
Документ Акт переоценки. Открываем, выбираем тип цен - розничные. Заполняем номенклатурой. Все красиво - у всего товара цена находится. Есть столбец Допцена, при необходимости нажатием кнопки его заполняем. Если попробовать заполнить опять-таки розничными ценами - то уже ни на один товар цена не находится.
30 filh
 
01.11.11
15:13
блин, ща
31 filh
 
01.11.11
15:18
на, тренируйся
http://webfile.ru/5640350
32 Толмачев
 
01.11.11
15:23
Всем спасибо. Исправил. ЦенаТовара = глВернутьЦену(ВыбТовар, ВыбКатегорииЦен);
33 filh
 
01.11.11
15:35
бугага, больше часа надо было, чтоб прочитать (12)
А истину так и не узнаешь теперь!
34 viktor_vv
 
01.11.11
15:41
(33) Истинна в том, что у справочника Цены в типовой ТиС длина наименования 0 :), а он ищет по наименованию. А надо искать по реквизиту "ТипЦен".
35 palpetrovich
 
01.11.11
15:44
(34) бугага ...хотя, а как-же (22)?
36 viktor_vv
 
01.11.11
15:49
(35) Это я не знаю, как такое у ТС получилось :).
37 viktor_vv
 
01.11.11
15:51
По крайней мере в 9.2 наименование = 0 . Может в ранних релизах было по другому.
38 filh
 
01.11.11
15:54
(35) да врал, ибо (8) и (13) говорят обратное!