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

Обработка для Контрагента(доступ к справочнику номенклатура)

Автор c_andrey, 15 сен 2015, 16:19

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

c_andrey

Добрый день.
1С 8.2 обычный интерфейс. файловая. УТ.

Пишу обработку.
Цель найти в справочнике "Контрагентов" реквизит (ДатаТек -тип дата) и сравнит его с другой датой. Если условие выполняется то другому реквизиту(Тест - тип строка) в этом справочнике присвоить текст "Да".

При написании его форме списка этого справочника. Код работает.
А через обработку не хочет. Подскажите как изменить.
сам код



текущий = (ТекущаяДата())-5184000;

ПредыщущийМесяц = текущий;    

   
Если ДатаТек<=ПредыщущийМесяц
  Тогда   тест= "Нет"
иначе
  тест= "Да"
 
  конецесли;
   
    КонтрагентОбъект.Записать();




Дмитрий@


c_andrey


дфтын

Цитата: c_andrey от 15 сен 2015, 17:30
т.е сначало надо получить объект?

А этот код нормально отрабатывает? без ошибок?

c_andrey

В форме элемента в справочнике контрагенты первоначальный код работает.

дфтын

А тут какую ошибку дает? КонтрагентОбъект  - не определен?

c_andrey

код в обработке
КонтрагентОбъект = справочники.Контрагенты.ПолучитьОбъект();
               
           текущий = (ТекущаяДата())-5184000;

             ПредыщущийМесяц = текущий;


               
                 Если КонтрагентОбъект.ДатаПоследнегоЗаказа <=ПредыщущийМесяц
                   Тогда
       КонтрагентОбъект.тест= "Нет"
   иначе
      КонтрагентОбъект.тест= "Да"
       


             конецесли;
   
                 КонтрагентОбъект.Записать();


ошибку выдает

{Обработка.Неак.Форма.Форма.Форма(77)}: Метод объекта не обнаружен (ПолучитьОбъект)
         КонтрагентОбъект = справочники.Контрагенты.ПолучитьОбъект();

дфтын

Ясно.
справочники.Контрагенты.ПолучитьОбъект(); бессмысленное выражение.
ПолучитьОбъект() можно применять только к конкретному элементу справочника.
т.е. например:
Спр = Справочники.Контрагенты.ВЫбрать()
Пока Спр.Следующий() Цикл
КонтрагентОбъект = Спр.ПОлучитьОбъект(); // т.е. мы получаем объект каждого конкретного контрагента
КонецЦикла;


c_andrey

Спасибо Вам дфтын за подсказку.
Данный код работает как нужно
       
Спр = Справочники.Контрагенты.ВЫбрать();
Пока Спр.Следующий() Цикл
КонтрагентОбъект = Спр.ПОлучитьОбъект();
текущий = (ТекущаяДата())-5184000;

ПредыщущийМесяц = текущий;

Если КонтрагентОбъект.ДатаПоследнегоЗаказа <=ПредыщущийМесяц
    Тогда
    КонтрагентОбъект.тест= "Нет"
   иначе
      КонтрагентОбъект.тест= "Да"
    конецесли;
   
КонтрагентОбъект.Записать();

КонецЦикла;

Подскажите данный код можно в отчет вставить по кнопке?
Тема закрыта

дфтын


Теги:

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

Рейтинг@Mail.ru

Поиск