Имя: Пароль:
1C
1C 7.7
v7: Категории цен
0 mcwolf
 
24.02.14
02:22
Добрый вечер ув. Форумчане!
Как можно определить существует ли категория цены у товара?
Например: Есть 2 товара у одного есть закупочная и розничная цены, а у второго есть только розничная. Как это можно определить программно?
1 ikea
 
24.02.14
02:52
Смотри справочник цены, по идее, он будет подчиненным справочнику номенклатура. Выбираешь товар, делаешь по нему выборку из подчиненного справочника, подсчитываешь количество типов цен.
2 mcwolf
 
24.02.14
18:32
СпрЦены.ИспользоватьВладельца(НайдТовар);  // ограничили цены принадлежащие выб номенклатуре
      СпрЦены.ВыбратьЭлементы(); // перебираем их
      Пока СпрЦены.ПолучитьЭлемент() = 1 Цикл //получаем очередной элемент из выборки
              Если СпрЦены.КатегорияЦены = ТекКатЦены тогда //каждую сравниваем на тип нужной цены    
                                                         // если получили тип цены тогда работаем с ней
                  СпрЦены.Цена.Установить(ТекущаяДата(),ЦенаРознТМЦ); //устанавливаем на ТекДату нужное значение
                  СпрЦены.Записать(); //Записываем
                  сообщить ("Розничная цена товара " +НайдТовар+  " изменена");
                  //==================================    
              КонецЕсли;
      КонецЦикла;

Вот часть кода перебора, но как мне узнать что например нет закупочной цены у товара, или как узнать есть ли она вообще(эта категория) у данного товара?
3 Азазель
 
24.02.14
21:00
(0) У меня нет украинских конфигураций, но предполагаю, что для реквизита КатегорияЦены установлены признаки сортировки и отбора.

Поэтому выборку цен можно ускорить, выбрав по значению реквизита КатегорияЦен.

То есть вместо
СпрЦены.ВыбратьЭлементы()
целесообразно использовать
Если СпрЦены.ВыбратьЭлементыПоРеквизиту("КатегорияЦены", ТекКатЦены)=1 Тогда// текущая категория у товара есть, и более, того есть значения цен с той категорией.

Но, по аналогии с российскими конфигами, категории цен- самостоятельный справоочник и никому не подчинен. Поэтому ( при верноости моего предположений) проверять категорию цен нужно не у товара, в конфигурации в целом. У товаров же ищем не категории, а лишь значения цен с такой категорией.
4 ikea
 
25.02.14
01:17
(2). Как узнать: очень просто).
Перед выборкой подчиненных документов объяви переменные каждая соответствует нужному типу цены, например,:
ЕстьЗакупочнаяЦена=0;
Потом в условии  Если СпрЦены.КатегорияЦены = Закупочная цена Тогда
присваиваешь значение ЕстьЗакупочнаяЦена=1;
Таким образом после перебора всех цен товара, ты по переменным определишь есть та или иная цена.
5 Злопчинский
 
25.02.14
03:50
Сначала перебрать справочник "Категории цен" - по нужным критерям отобрать в список значений нужные типы. далее в цикле обработки цен - в СЗ устанавливать флажок=1 для встретившегося типа цены. незафлажкованные типы цен - отсутсвуют для товара
6 mcwolf
 
28.02.14
01:01
Спасибо всем за участие, информация оказалась весьма полезная!
7 Злопчинский
 
28.02.14
01:03
(6) и вам не болеть!!
Закон Брукера: Даже маленькая практика стоит большой теории.