Отправляет email-рассылки с помощью сервиса Sendsay

RFpro.ru: 1С для программиста

  Все выпуски  

RusFAQ.ru: 1С для программиста


Хостинг портала RFpro.ru:
Московский хостер
Профессиональный платный хостинг на базе Windows 2008

РАССЫЛКИ ПОРТАЛА RFPRO.RU

Чемпионы рейтинга экспертов в этой рассылке

Тимошенко Дмитрий
Статус: Студент
Рейтинг: 301
∙ повысить рейтинг >>
М.Денис
Статус: 7-й класс
Рейтинг: 198
∙ повысить рейтинг >>
Краюшкин Игорь Валерьевич
Статус: Студент
Рейтинг: 164
∙ повысить рейтинг >>

∙ / КОМПЬЮТЕРЫ И ПО / Языки программирования / 1С для программиста

Выпуск № 1040 от 27.06.2009, 10:05
Администратор рассылки: Калашников О.А., Руководитель
В рассылке: подписчиков - 522, экспертов - 114
В номере: вопросов - 1, ответов - 2

Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке:
оценить выпуск >>

Вопрос № 169705: Уважаемые эксперты! Подскажите, пожалуйста, как в 1С-7.7-Торговля и Склад-944 сделать так, чтобы избранные пользователи могли редактировать документы ранее установленной в системе даты запрета редактирования документов без изменения этой даты. Т.е. ч...



Вопрос № 169705:

Уважаемые эксперты! Подскажите, пожалуйста, как в 1С-7.7-Торговля и Склад-944 сделать так, чтобы избранные пользователи могли редактировать документы ранее установленной в системе даты запрета редактирования документов без изменения этой даты. Т.е. чтобы запрет редактирования документов не распространялся на этих избранных. Спасибо

Отправлен: 22.06.2009, 09:56
Вопрос задал: VladimirNick, Посетитель
Всего ответов: 2
Страница вопроса >>


Отвечает Краюшкин Игорь Валерьевич, Студент :
Здравствуйте, VladimirNick.

Необходимо в глобальную процедуру глПроверкаРазрешенияРедактирования() вставить следующие строки.
Вариант 1 - работать будет, если у данных пользователей один и тот же набор прав, дающий разрешение на редактирование необходимых документов.
Вариант 2 - через имя пользователя, но тоже должно соблюдаться условие, что данному пользователю в настройках прав доступа стоит разрешение на редактирование документов.

Приложение:

Ответ отправил: Краюшкин Игорь Валерьевич, Студент
Ответ отправлен: 22.06.2009, 11:32

Оценка ответа: 5
Комментарий к оценке:
Спасибо за быстрый и конкретный ответ. Всё работает!

Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 251308 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!


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

    В глобальном модуле:
    ***
    Функция глМожноЗаписатьДокумент(Конт) Экспорт
    Найден=0;
    Спр=СоздатьОбъект("Справочник.ЗапретРедактирования");
    Спр.Выбр атьЭлементы();
    Пока Спр.ПолучитьЭлемент()=1 Цикл
    Если Спр.Наименование=ИмяПользователя() Тогда
    Найден=1;
    Если (Конт.ДатаДок <= Спр.ДатаЗапрета) Тогда
    Предупреждение("Нельзя записывать документы с датой, более ранней, чем дата запрета редактирования документов!");
    Возврат 0;
    Иначе
    Возврат 1;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    Если Найден=0 Тогда //для совместимости оставлено
    Если НазваниеНабораПрав()<>"Администратор" Тогда //админам можно
    Если Конт.ДатаДок <= Константа.ДатаЗапретаРедактирования Тогда
    Предупреждение("Нельзя записывать документы с датой, более ранней, чем дата запрета редактирования документов!");
    Возврат 0;
    Иначе
    Возврат 1;
    КонецЕсли;
    КонецЕсли;
    КонецЕсли;
    КонецФункции

    ***
    Аналогично дополнить другие функции:

    глПроверкаРазрешенияРедактирования()
    ПриУдаленииДокумента()
    ПриОтменеУдаленияДокумента()
    и т.д.
    Во всех документах в процедуре "ПриЗаписи" должны быть строки:
    ***
    Процедура ПриЗаписи() // Предопределенная процедура
    Если глМожноЗаписатьДокумент(Контекст) = 0 Тогда
    СтатусВозврата(0);
    Возврат;
    КонецЕсли;
    КонецПроцедуры // ПриЗаписи
    ***
    Тогда у каждого пользователя будет своя дата запрета редактирования документов.
    Для удобства в справочнике "ЗапретРедактирования" можно сделать кнопку "Сбросить дату запрета у всех на" и поле типа дата.


    Если писать строки на обработку конкретного пользователя, то при смене пользователей (одни увольняются, другие приходят, меняются обязанности) нужно будет переделывать программный код. А это не совсем удобно.
    -----
    Если хорошенько подумать, - можно разобраться в чем угодно. Даже в устройстве летающей тарелки.

    Ответ отправил: Игорь К., Студент
    Ответ отправлен: 25.06.2009, 08:08

    Как сказать этому эксперту "спасибо"?
  • Отправить SMS #thank 251450 на номер 1151 (Россия) | Еще номера >>
  • Отправить WebMoney:
  • Вам помогли? Пожалуйста, поблагодарите эксперта за это!



    Нам очень важно Ваше мнение об этом выпуске рассылки. Вы можете оценить этот выпуск по пятибалльной шкале, пройдя по ссылке:
    оценить выпуск >>

    подать вопрос экспертам этой рассылки >>

    Скажите "спасибо" эксперту, который помог Вам!

    Отправьте СМС-сообщение с тестом #thank НОМЕР_ОТВЕТА
    на короткий номер 1151 (Россия)

    Номер ответа и конкретный текст СМС указан внизу каждого ответа.

    Полный список номеров >>

    * Стоимость одного СМС-сообщения от 7.15 руб. и зависит от оператора сотовой связи. (полный список тарифов)
    ** При ошибочном вводе номера ответа или текста #thank услуга считается оказанной, денежные средства не возвращаются.
    *** Сумма выплаты эксперту-автору ответа расчитывается из суммы перечислений на портал от биллинговой компании.


    © 2001-2009, Портал RFpro.ru, Россия
    Авторское право: ООО "Мастер-Эксперт Про"
    Автор: Калашников О.А. | Программирование: Гладенюк А.Г.
    Хостинг: Компания "Московский хостер"
    Версия системы: 2009.6.3 от 20.06.2009

    В избранное