Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Обработка для доступа к реквизиту справочника          
candrey Подменю пользователя
сообщение 15.09.15, 15:22
Сообщение #1

Завсегдатай
****
Группа: Пользователи
Сообщений: 155
Спасибо сказали: 6 раз
Рейтинг: 0

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

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

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

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

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

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

Petre Подменю пользователя
сообщение 15.09.15, 15:37
Сообщение #2

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2902
Из: Київ, Україна
Спасибо сказали: 1144 раз
Рейтинг: 1225

Попробуйте заменить "тест" на "КонтрагентОбъект.тест"

И соответственно "ДатаТек" на "КонтрагентОбъект.ДатаТек"


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

candrey Подменю пользователя
сообщение 15.09.15, 16:32
Сообщение #3

Завсегдатай
****
Группа: Пользователи
Сообщений: 155
Спасибо сказали: 6 раз
Рейтинг: 0

не хочет пишет
{Обработка.Неак.Форма.Форма.Форма(46,14)}: Переменная не определена (КонтрагентОбъект)
                 Если <<?>>КонтрагентОбъект.ДатаТек <=ПредыщущийМесяц  (Проверка: Толстый клиент (обычное приложение))
{Обработка.Неак.Форма.Форма.Форма(48,5)}: Переменная не определена (КонтрагентОбъект)

Petre Подменю пользователя
сообщение 15.09.15, 17:14
Сообщение #4

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2902
Из: Київ, Україна
Спасибо сказали: 1144 раз
Рейтинг: 1225

Как же у вас тогда на "КонтрагентОбъект.Записать();" не ругается в неизмененном коде?

Сообщение отредактировал Petre - 15.09.15, 17:15


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

Спасибо сказали: candrey,

candrey Подменю пользователя
сообщение 16.09.15, 9:35
Сообщение #5

Завсегдатай
****
Группа: Пользователи
Сообщений: 155
Спасибо сказали: 6 раз
Рейтинг: 0

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

Petre Подменю пользователя
сообщение 16.09.15, 10:03
Сообщение #6

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2902
Из: Київ, Україна
Спасибо сказали: 1144 раз
Рейтинг: 1225

В обработке приведенный вами код отрабатывает без системных ошибок?


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

candrey Подменю пользователя
сообщение 16.09.15, 10:38
Сообщение #7

Завсегдатай
****
Группа: Пользователи
Сообщений: 155
Спасибо сказали: 6 раз
Рейтинг: 0

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

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


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


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


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


Исправил
КонтрагентОбъект = справочники.Контрагенты.ПолучитьОбъект();



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


Решение найдено.
Спасибо всем за подсказки. icon_beer17.gif

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

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

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

КонецЦикла;

candrey Подменю пользователя
сообщение 17.09.15, 10:51
Сообщение #8

Завсегдатай
****
Группа: Пользователи
Сообщений: 155
Спасибо сказали: 6 раз
Рейтинг: 0

Код заработал.
Но его изменил т.к к справочнику Контрагенты каждый пользователь имеет "Группа доступа к контрагенты"
У нужна проверка перед запуском.

Сам код
 Спр = Справочники.Контрагенты.Выбрать();
Пока Спр.Следующий() Цикл

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

КонецПопытки;
КонецЦикла;


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

{Обработка.НеактивныеПокупатели.Форма.Форма.Форма(82,6)}: Переменная не определена (КонтрагентОбъект)
Если <<?>>КонтрагентОбъект.ДатаПоследнегоЗаказа <=ПредыщущийМесяц  (Проверка: Толстый клиент (обычное приложение)


Я так понял из того что реквизит "КонтрагентОбъект" выше не представлена в коде (в начале)....

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 28.03.24, 16:30
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!