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

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

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

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

c_andrey

Мистика какая то..

код Спр=Справочники.Контрагенты.Выбрать();

Пока Спр.Следующий() Цикл
 
текущий=(ТекущаяДата())-5184000;
ПредыщущийМесяц=текущий;


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

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

на ровном месте пишет...потом пропускает

{Обработка.НеактивныеПокупатели.Форма.Форма.Форма(91)}: Поле объекта недоступно для записи (АктивныйКлиент)
    Спр.АктивныйКлиент= "Да"

vitasw

Действительно. с копипастом у вас явно какая-то мистика. Прям на лету пишет всякую фигню.
Я вам писал
Цитата: vitasw от 17 сен 2015, 09:29
...
Тогда        ТестКонтрагент= "Нет"    иначе       ТестКонтрагент = "Да"          конецесли; Попытка  КонтрагентОбъект = Спр.ПолучитьОбъект();     КонтрагентОбъект.тест=ТестКонтрагент;

а вы пишете:
Цитата: c_andrey от 17 сен 2015, 13:46Тогда       Спр.АктивныйКлиент= "Нет"    иначе     Спр.АктивныйКлиент= "Да"          конецесли; Попытка  КонтрагентОбъект = Спр.ПолучитьОбъект();     КонтрагентОбъект.АктивныйКлиент=КонтрагентОбъект.АктивныйКлиент;


Kironten


Спр=Справочники.Контрагенты.Выбрать();

Пока Спр.Следующий() Цикл

    Текущий =(ТекущаяДата())-5184000;
    ПредыщущийМесяц = Текущий;

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

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

КонецЦикла;

c_andrey

Цитата: Kironten от 17 сен 2015, 14:01

Спр=Справочники.Контрагенты.Выбрать();

Пока Спр.Следующий() Цикл

    Текущий =(ТекущаяДата())-5184000;
    ПредыщущийМесяц = Текущий;

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

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

КонецЦикла;


Всетаки есть мистика.. Под Админом все Ок.
А под юзером половина Контрагентов обработала и ошибка..доступа

{Обработка.НеактивныеПокупатели.Форма.Форма.Форма(109)}: Ошибка при вызове метода контекста (Следующий)
Пока Спр.Следующий() Цикл
по причине:
У пользователя недостаточно прав на исполнение операции над базой данных.

Kironten

Цитата: c_andrey от 17 сен 2015, 15:14
Всетаки есть мистика.. Под Админом все Ок.
А под юзером половина Контрагентов обработала и ошибка..доступа

{Обработка.НеактивныеПокупатели.Форма.Форма.Форма(109)}: Ошибка при вызове метода контекста (Следующий)
Пока Спр.Следующий() Цикл
по причине:
У пользователя недостаточно прав на исполнение операции над базой данных.


Вам же предлагали сделать через запрос. Так ведь нет, захотели через попытку - настраивайте права.
Естественно под полными правами будет все работать.

Короче:

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| Контрагенты.Ссылка,
|       Контрагенты.ДатаПоследнегоЗаказа
|ИЗ
| Справочник.Контрагенты КАК Контрагенты";

Выборка = Запрос.Выполнить().Выбрать();

Пока Выборка.Следующий() Цикл

    Текущий =(ТекущаяДата())-5184000;
    ПредыщущийМесяц = Текущий;

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

    Попытка
        КонтрагентОбъект = Выборка.Ссылка.ПолучитьОбъект();   
        КонтрагентОбъект.АктивныйКлиент = АктивныйКлиент;
        КонтрагентОбъект.Записать();
    Исключение
        Сообщить("А вот хрен вам, а не запись контрагента: " + Выборка.Ссылка);
    КонецПопытки;

КонецЦикла;

c_andrey

Спасибо Kironten.  Запрос есть запрос)) Выбрать разрешенные и все ОК!!!:befhbt:


Теги:

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

Рейтинг@Mail.ru

Поиск