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

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 Сейчас в теме
Оставьте свое сообщение

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