Имя: Пароль:
1C
1C 7.7
v7: Помогите вывести на этикетку розн. цену
0 Паштет
 
04.12.12
00:00
Для СЦТовар = 1 По ТаблицаТоваров.КоличествоСтрок() Цикл
       ТекТовар=ТаблицаТоваров.ПолучитьЗначение(СЦТовар, "Номенклатура").ТекущийЭлемент();
       ПечНаименование=ТекТовар.ПолнНаименование;
       ПечРозн = ???
       Если ВыборЕдиницыИзмерения=1 Тогда
           ПечШтрихКод=СокрЛП(ТекТовар.БазоваяЕдиница.ШтрихКод);
       Иначе
           ПечШтрихКод=СокрЛП(ТекТовар.ОсновнаяЕдиница.ШтрихКод);
       КонецЕсли;

***************************************************
Помогите пожалуйста, как реализовать вывод розничной цены (ПечРОзн)
1 Паштет
 
04.12.12
00:01
Типовая ТиС
2 shag008
 
04.12.12
00:13
смотри в глобальном модуле функцию глВернутьЦену
Вроде так называется
3 Паштет
 
04.12.12
00:15
(2) да, есть такое
Функция глВернутьЦену(Номенклатура, ТипЦены, ДатаЦены = 0, ЦенаЦены = 0, ЕдЦены = 0, ВалЦены = 0, НаценкаЦены = 0, НайденнаяЦена = 0) Экспорт
   Перем ЦеныНоменклатуры;
   Перем Рассчетная;
   Перем НужныйТипЦен;
   Перем ЕстьУдаленные;
4 Zhuravlik
 
04.12.12
00:16
(0) Посмотрите на справочник "Цены", обратите внимание, что он подчинен справочнику "Номенклатура". У него есть периодический реквизит "Цена". Затем в программе найдите элемент справочника цены, запомните код нужного элемента, и потом как-то так:

   спрЦены = СоздатьОбъект("Справочник.Цены");    
   спрЦены.ИспользоватьВладельца(ТекТовар);
   спрЦены.НайтиПоКоду(КодНужногоЭлемента, 1);
   ПечРозн = спрЦены.Цена.Получить(ДатаНаКоторуюНужноПолучитьЦену);
5 Паштет
 
04.12.12
00:16
но как воспользоваться я не додумаю наверное сам
6 shag008
 
04.12.12
00:16
вот её и используй
7 shag008
 
04.12.12
00:17
(5) а чё там сложного? в качестве параметров передаёшь в неё свой товар, тип цен и дату - получаешь цену
8 Паштет
 
04.12.12
00:18
(6) так я не программер)))
9 Паштет
 
04.12.12
00:19
(7) подскажите пожалуйста поподробнее как это сделать
10 Паштет
 
04.12.12
00:21
(4) а как программа поймет что нужно именно розничную, а не закупочную цену?
11 Паштет
 
04.12.12
00:22
братцы, помогите пожалуйста!!!
12 Zhuravlik
 
04.12.12
00:23
(9)
Там надо найти элемент справочника "ТипыЦен". Найдите нужный элемент в базе, запомните его код, и поиск по коду. Например так:
спрТипыЦен = СоздатьОбъект("Справочник.ТипыЦен")
спрТипыЦен.НайтиПоКоду(КодЭлементаРозницы, 0);
ПечЦена = глВернутьЦену(ТекТовар, спрТипыЦен.ТекущийЭлемент(), ТекущаяДата());
13 BlackSeaCat
 
04.12.12
00:23
Зарплату пропить тоже помочь?
14 Паштет
 
04.12.12
00:25
(13) много не напьетесь на мою зарплату
15 Zhuravlik
 
04.12.12
00:26
(8) Если вы не программер, то может стоит дописать это тому, кто писал код в (0)?
16 BlackSeaCat
 
04.12.12
00:27
Да нам хоть бы понюхать вволю.
17 Паштет
 
04.12.12
00:31
(15) я скачал с интернета обработку, которая мне идеально подходит... все в ней хорошо, лишь бы только розничный тип цен добавить. Ребят, пожалуйста помогите, мне не просто понять когда вы пишите на проф. термины. Если возможно, пожалуйста, обьясните как чайнику как нужно дописать код. В справочнике цены есть 2 вида цен: оптовая и розничная, помогите, ну оооооч нужно!
18 Паштет
 
04.12.12
00:35
(12) пишет  "Переменная не определена (КодЭлементаРозничная)"
19 Zhuravlik
 
04.12.12
00:40
(18) см. (12) еще раз, и внимательно.
20 BlackSeaCat
 
04.12.12
00:40
(17) Закачай обратно.
21 Паштет
 
04.12.12
00:43
(19) выходит у розн цены есть код и мне его нужно найти и вставить в ваш код
22 Zhuravlik
 
04.12.12
00:48
(21) Только не у розничной цены, а у элемента справочника "ТипыЦен". Простой способ открыть любой справочник в программе: Операции - справочники - выбираем нужный вид. Но права пользователя должны позволять его открыть, и элемент меню "Операции" должен быть включен в интерфейсе пользователя.
23 Паштет
 
04.12.12
00:50
(22) - когда пытаюсь сформировать пишет розн цена 0
24 Паштет
 
04.12.12
00:50
что может быть?
25 Zhuravlik
 
04.12.12
00:53
(24) код покажите
26 Паштет
 
04.12.12
00:54
Для СЦТовар = 1 По ТаблицаТоваров.КоличествоСтрок() Цикл
       ТекТовар=ТаблицаТоваров.ПолучитьЗначение(СЦТовар, "Номенклатура").ТекущийЭлемент();  
       ПечНаименование=ТекТовар.ПолнНаименование;
       спрТипыЦен = СоздатьОбъект("Справочник.ТипыЦен");
спрТипыЦен.НайтиПоКоду(00004, 0);
ПечЦена = глВернутьЦену(ТекТовар, спрТипыЦен.ТекущийЭлемент(), ТекущаяДата());
27 Zhuravlik
 
04.12.12
00:54
спрТипыЦен.НайтиПоКоду("00004", 0); - кавычки
28 Паштет
 
04.12.12
00:55
На все товары пишет 0)))) ну хоть ошибки не выбивает и то уже для меня прогресс)))) Спасибо вам что откликнулись, вот если бы еще разобраться почему ноль пишет
29 Паштет
 
04.12.12
00:56
(27) теперь пишет 1
30 Паштет
 
04.12.12
01:00
Zhuravlik подумайте пожалуйста в чем еще может быть подвох... Ну оч нужно!!!
31 Zhuravlik
 
04.12.12
01:03
(29) Извините, давно юзал эту функцию, ее надо использовать несколько иначе. Вот так:

глВернутьЦену(ТекТовар, спрТипыЦен, ТекущаяДата(), ПечЦена);

И вместо ТекущаяДата() - можно ставит любую нужную дату, на которую надо вернуть значение цены.
32 Zhuravlik
 
04.12.12
01:05
+ т.е. в (26) - вместо строчки

ПечЦена = глВернутьЦену(ТекТовар, спрТипыЦен.ТекущийЭлемент(), ТекущаяДата());

поставьте

глВернутьЦену(ТекТовар, спрТипыЦен, ТекущаяДата(), ПечЦена);
33 Паштет
 
04.12.12
01:07
глВернутьЦену(ТекТовар, спрТипыЦен, ТекущаяДата(), ПечЦена<<?>>);
{Отчет.новый1.Форма.Модуль(450)}: Переменная не определена (ПечЦена)
34 Паштет
 
04.12.12
01:08
Для СЦТовар = 1 По ТаблицаТоваров.КоличествоСтрок() Цикл
       ТекТовар=ТаблицаТоваров.ПолучитьЗначение(СЦТовар, "Номенклатура").ТекущийЭлемент();  
       ПечНаименование=ТекТовар.ПолнНаименование;
       спрТипыЦен = СоздатьОбъект("Справочник.ТипыЦен");
спрТипыЦен.НайтиПоКоду("00004", 0);
глВернутьЦену(ТекТовар, спрТипыЦен, ТекущаяДата(), ПечЦена);
35 Zhuravlik
 
04.12.12
01:08
ПечЦена = "";
Перед строкой.
36 Zhuravlik
 
04.12.12
01:09
+ т.е.
ПечЦена = "";
глВернутьЦену(ТекТовар, спрТипыЦен, ТекущаяДата(), ПечЦена);
37 Паштет
 
04.12.12
01:11
Для СЦТовар = 1 По ТаблицаТоваров.КоличествоСтрок() Цикл
       ТекТовар=ТаблицаТоваров.ПолучитьЗначение(СЦТовар, "Номенклатура").ТекущийЭлемент();  
       ПечНаименование=ТекТовар.ПолнНаименование;
       спрТипыЦен = СоздатьОбъект("Справочник.ТипыЦен");
спрТипыЦен.НайтиПоКоду("00004", 0);  
ПечЦена = "";
глВернутьЦену(ТекТовар, спрТипыЦен, ТекущаяДата(), ПечЦена);
38 Паштет
 
04.12.12
01:11
блин, вообще пусто теперь...
39 Паштет
 
04.12.12
01:11
ничего не пишет...
40 Zhuravlik
 
04.12.12
01:11
спрТипыЦен.ТекущийЭлемент()
41 Паштет
 
04.12.12
01:13
Для СЦТовар = 1 По ТаблицаТоваров.КоличествоСтрок() Цикл
       ТекТовар=ТаблицаТоваров.ПолучитьЗначение(СЦТовар, "Номенклатура").ТекущийЭлемент();  
       ПечНаименование=ТекТовар.ПолнНаименование;
       спрТипыЦен = СоздатьОбъект("Справочник.ТипыЦен");
спрТипыЦен.ТекущийЭлемент("00004", 0);  
ПечЦена = "";
глВернутьЦену(ТекТовар, спрТипыЦен, ТекущаяДата(), ПечЦена);
42 Паштет
 
04.12.12
01:13
тож ошибка:(
43 Паштет
 
04.12.12
01:15
спрТипыЦен.ТекущийЭлемент("00004", 0);  
{Отчет.новый1.Форма.Модуль(449)}: Слишком много параметров передано при вызове функции/процедуры объекта
44 Zhuravlik
 
04.12.12
01:16
(42) Будьте внимательней.

спрТипыЦен.НайтиПоКоду("00004", 0);  
ПечЦена = "";
глВернутьЦену(ТекТовар, спрТипыЦен.ТекущийЭлемент(), ТекущаяДата(), ПечЦена);
45 Паштет
 
04.12.12
01:16
это по ходу не так просто как я себе мог представить...
46 BlackSeaCat
 
04.12.12
01:16
Ошибка там же, где всегда.
47 Паштет
 
04.12.12
01:18
(44) ВЫ БОГ!!!!!!! ПОЛУЧИЛОСЬ)))))
48 Паштет
 
04.12.12
01:20
вот только к примеру розн. цена 30, а оно почему-то 28 отображает))) эт наверное налог где-то высчитывает
49 Zhuravlik
 
04.12.12
01:24
(48) Да, там пересчитывает процент. Либо это ваша цена на Текущую дату.  Лучше используйте код в (4). Но это уж без меня, тут на страничке у нас с вами куча примеров. И посматривайте в ЖКК.
50 Паштет
 
04.12.12
01:27
(49) спасибо вам огромнейшее!!!
51 Zhuravlik
 
04.12.12
01:31
(50) В (4) неудачный пример, как-то так:

спрТипыЦен = СоздатьОбъект("Справочник.ТипыЦен");
спрТипыЦен.НайтиПоКоду("00004", 0);

   спрЦены = СоздатьОбъект("Справочник.Цены");    
   спрЦены.ИспользоватьВладельца(ТекТовар);
   спрЦены.НайтиПоРеквизиту("ТипЦен", спрТипыЦен.ТекущийЭлемент(), 0);
   ПечРозн = спрЦены.Цена.Получить(ДатаНаКоторуюНужноПолучитьЦену);

Не за что)