Получить значение переодического реквизита в чем проблема

1. Lexx32 20 15.08.12 12:53 Сейчас в теме
Просьба подсказать в чем проблема ???
конфа смописка, справочник тарифы - реквизит ЦенаРаботы - переодический (изменяется документами + ручное изм)
Функция ПолучитьТариф(Конт)
    Трф=СоздатьОбъект("Справочник.Тарифы");    
    Ц=0;
    Если Трф.НайтиПоКоду(Число(Конт.ПолныйКод()),0)=1 Тогда
        Ц=Трф.ЦенаРаботы.Получить(); // сдесь только по 2 позициям есть значения остальные =0
                // хотя при просмотре истории значения >0
        Возврат(Строка(Ц));
    Иначе
        Возврат("");
    КонецЕсли;    
КонецФункции

Показать
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
21. Stivens 35 03.06.13 16:18 Сейчас в теме
// кусок моей древней 100% работавшей обработки по переносу цен из 77 в 8.1
ОлеНоменклатура=ОЛЕ.CreateObject("Справочник.Номенклатура");
ОлеЦены = ОЛЕ.CreateObject("Справочник.Цены");

ОлеНоменклатура.ВыбратьЭлементы(1);
Пока ОлеНоменклатура.ПолучитьЭлемент() = 1 Цикл
ОлеЦены.ИспользоватьДату(Дата); //после этой команды работаем
//как будто все реквизиты непериодические
ОлеЦены.ВыбратьЭлементы(1);
Пока ОлеЦены.ПолучитьЭлемент() = 1 Цикл
НоваяСтрока = ТЗЦен.Добавить();
НоваяСтрока.Ном = НайтиНоменклатуру(ОлеЦены.Владелец);
НоваяСтрока.Цена = ОлеЦены.Цена; //Этот реквизит периодический
КонецЦикла;
КонецЦикла;
23. Erhov_egor 01.07.13 06:53 Сейчас в теме
// кусок моей древней 100% работавшей обработки по переносу цен из 77 в 8.1
ОлеНоменклатура=ОЛЕ.CreateObject("Справочник.Номенклатура");
ОлеЦены = ОЛЕ.CreateObject("Справочник.Цены");

ОлеНоменклатура.ВыбратьЭлементы(1);
Пока ОлеНоменклатура.ПолучитьЭлемент() = 1 Цикл
ОлеЦены.ИспользоватьДату(Дата); //после этой команды работаем
//как будто все реквизиты непериодические
ОлеЦены.ВыбратьЭлементы(1);
Пока ОлеЦены.ПолучитьЭлемент() = 1 Цикл
НоваяСтрока = ТЗЦен.Добавить();
НоваяСтрока.Ном = НайтиНоменклатуру(ОлеЦены.Владелец);
НоваяСтрока.Цена = ОлеЦены.Цена; //Этот реквизит периодический
КонецЦикла;
КонецЦикла;
просто получить(дата) и все больше ничего не нужно у него
2. ПиН 15.08.12 13:00 Сейчас в теме
блин, 77 уже начал забывать, но покури СоздатьОбъект("Периодический")
3. Lexx32 20 15.08.12 13:01 Сейчас в теме
(2) спасибо щас попробую ...
4. Erhov_egor 15.08.12 13:28 Сейчас в теме
периодический реквизит можно получить на какую либо дату, например:
Ц=Трф.ЦенаРаботы.Получить(ДатаДок);
5. Lexx32 20 15.08.12 13:36 Сейчас в теме
(4) пробовал результат <0>

Вот еще вариант
Функция ПолучитьТариф(Конт)
    Трф=СоздатьОбъект("Справочник.Тарифы");    
    ЦТрф=СоздатьОбъект("Периодический");
    
    Ц=0;
    Если Трф.НайтиПоКоду(Число(Конт.ПолныйКод()),0)=1 Тогда
        ЦТрф.ИспользоватьОбъект("ЦенаРаботы",Трф.ТекущийЭлемент()); // сдесь если на некоторых позициях выкидывает на ЦенаРаботы не является константой или периодическим параметром!
        ЦТрф.выбратьзначения() ;
        Если ЦТрф.получитьзначение()=1 тогда
            Ц=строка(ЦТрф.значение);
            //Ц=ЦТрф.ЗначениеНаДату(ТекущаяДата());
            //Ц=Трф.ЦенаРаботы.Получить();
            Возврат(Строка(Ц));
        Иначе
            Возврат("");    
        КонецЕсли;
    Иначе
        Возврат("");
    КонецЕсли;    
КонецФункции

Показать

Может кто чего подскажет???
13. Lexx32 20 15.08.12 14:03 Сейчас в теме
(4) Это был самый первый вариант получения значения, после чего начал мудрить через объект Переодический
14. Erhov_egor 15.08.12 14:06 Сейчас в теме
(13)непонятно что ты хочешь сказать, ты просто хочешь получить значение и все,так пиши что написано в 4 и все получится
6. Lexx32 20 15.08.12 13:43 Сейчас в теме
Еще вычитал на других форумах возможно из-за Элемент-Группа, в справочнике нет Групп.
7. Crazy1CC 15.08.12 13:51 Сейчас в теме
Ц=Трф.ЦенаРаботы.Получить(ДатаДок);
9. Erhov_egor 15.08.12 13:54 Сейчас в теме
11. Crazy1CC 15.08.12 13:57 Сейчас в теме
12. Erhov_egor 15.08.12 13:58 Сейчас в теме
8. Erhov_egor 15.08.12 13:52 Сейчас в теме
еще раз повторюсь что периодический реквизит можно получить на дату,
если у тебя вышло 0 значит на эту дату было 0
10. Erhov_egor 15.08.12 13:56 Сейчас в теме
Метод можно использовать только для периодических реквизитов справочника и если для справочника еще не применялся метод ИспользоватьДату.
15. Erhov_egor 15.08.12 14:07 Сейчас в теме
у тебя если есть помощник почитай там все написано
16. Erhov_egor 15.08.12 14:08 Сейчас в теме
Либо учебник скачай там примеры есть
17. Erhov_egor 15.08.12 14:09 Сейчас в теме
ну так что плучилось у тебя или нет?
18. Lexx32 20 15.08.12 14:12 Сейчас в теме
(17) пока нет.
(14) Пишу обычную функцию чтения значения, сначала попробовал получить через Трф.ЦенаРаботы.Получить(ТекущаяДата()) , на куче позициях выкидывает, стал пробовать через объект переодический
19. Lexx32 20 15.08.12 14:14 Сейчас в теме
Все решилось !!! всем спасибо, сначала увеличил кол-во уровней с 1 до 2х сохранил, потом опять поставил на =1, и все заработало...
20. Lexx32 20 15.08.12 14:15 Сейчас в теме
Вчем косяк был так и не понял...
22. arc581 27.06.13 09:53 Сейчас в теме
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот