Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
23 ноя 2024, 01:54

Обработка для изменения тарифной сетки с периодическими реквизитами

Автор gorelchik, 09 июл 2011, 07:56

0 Пользователей и 1 гость просматривают эту тему.

gorelchik

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

КонецЦикла;

КонецПроцедуры 


Такая ошибка:Пока пер.ПолучитьЗначение()=1 Цикл
{Обработка.ПересчетТС.Форма.Модуль(27)}: Перед выполнением операции нужно вызвать 'ИспользоватьОбъект'!

sergejK74

Скорее всего получил в качестве спр.ТекущийЭлемент() - группу. Добвавь в цикл условие - не обрабатывать группы. Сумеешь?
Кнопочка Спасибо - слева!

gorelchik

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

Выводит одни 0 <_<

sergejK74

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

Попробуй и напиши что выводится
Кнопочка Спасибо - слева!

gorelchik


gorelchik

Процедура Выполнить()

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

КонецПроцедуры

gorelchik


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск