Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
15 Дек 2017, 22:53
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Дата запрета редактирования  (Прочитано 11305 раз)

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

Оффлайн user321123

  • *
  • Сообщений: 25
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-11
  • Сайт: 
  • Профессия: Разработчик 1С
Здравствуйте.
Как в 1с v 7.7 Бухгалтерия предприятия
Сделать, чтобы нельзя было изменять и перепроводить документы за прошлый месяц?
А за текущий, естественно, можно.
Есть константа ДатаЗапретаРедактирования - это оно?
Захожу через конфигуратор, выбираю ее, но не могу ввести значения. В появляющемся окне нет поля Значение. Куда нужно вводить значение?


Оффлайн prog1c7.7

  • Модератор
  • *****
  • Сообщений: 784
  • РЕПУТАЦИЯ: 260
  • КПД: 33%
  • ну - да , ну - да...
  • Регистрация: 2010-10-20
  • Сайт: 
  • Профессия: Программист 1С
в пользовательском режиме

Оффлайн user321123

  • *
  • Сообщений: 25
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-11
  • Сайт: 
  • Профессия: Разработчик 1С
Да, уже разобрался.
Но, кажется, это не то, что нужно.
Эту константу придется менять руками каждый месяц.
А нужно, чтобы весь процесс был автоматизированным.

Может дописать процедуру в глобальном месяце на установку константы, что-то вроде: если текущий месяц минус текущее значение месяца константы не равно единице, то устанавливаем константу равную значению текущего месяца минус один.

Оффлайн prog1c7.7

  • Модератор
  • *****
  • Сообщений: 784
  • РЕПУТАЦИЯ: 260
  • КПД: 33%
  • ну - да , ну - да...
  • Регистрация: 2010-10-20
  • Сайт: 
  • Профессия: Программист 1С
правильно думаешь

Оффлайн user321123

  • *
  • Сообщений: 25
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-11
  • Сайт: 
  • Профессия: Разработчик 1С
Уже понятнее, спасибо за подсказку )
Помогите, пожалуйста, теперь написать код.

Вот мой корявый вариант (только-только разбираюсь ) )

Процедура УстановитьЗапрет()
 Если ТекущаяДата()-Константа.ДатаЗапретаРедактирования.!=1 Тогда
    Константа.ДатаЗапретаРедактирования=ТекущаяДата()-1;
 Конецесли;
КонецПроцедуры

Оффлайн prog1c7.7

  • Модератор
  • *****
  • Сообщений: 784
  • РЕПУТАЦИЯ: 260
  • КПД: 33%
  • ну - да , ну - да...
  • Регистрация: 2010-10-20
  • Сайт: 
  • Профессия: Программист 1С
Процедура ПриНачалеРаботыСистемы()

    Если
    (ДобавитьМесяц(Константа.ДатаЗапретаРедактирования,"1") <> ТекущаяДата())
   тогда
    Константа.ДатаЗапретаРедактирования = Добавитьмесяц(ТекущаяДата(),"-1");   
     КонецЕсли;

Оффлайн user321123

  • *
  • Сообщений: 25
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-11
  • Сайт: 
  • Профессия: Разработчик 1С
Спасибо за код. Буду разбираться...

Правильно ли я понимаю логику:

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

Для этого я создаю пользователя с ограниченными правами ВасяПупкин, у которого для всех объектов задаюю права: чтение, использование, ввод новых, выбор.
А у документов помимо указанных прав добавляю: корректировка, выбор подчиненных документов, проведение.

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

Все верно?

И одно "НО" дата запрета редактирования выставляется следующая: 1 число прошлого месяца, а нужно последнее число прошлого месяца.
Меняю

Константа.ДатаЗапретаРедактирования = Добавитьмесяц(ТекущаяДата(),"-1");

на

Константа.ДатаЗапретаРедактирования = ТекущаяДата();

Выставляется первое число текущего месяца, а значит документы первого числа тоже "в запрете".

Как выставлять последнее число прошлого месяца или первое число текузего месяца, но не включая его?

Оффлайн user321123

  • *
  • Сообщений: 25
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-11
  • Сайт: 
  • Профессия: Разработчик 1С
Один из вопросов:

Как выставлять последнее число прошлого месяца или первое число текузего месяца, но не включая его?

снимается.

Сделал так:

Константа.ДатаЗапретаРедактирования = КонМесяца(Добавитьмесяц(ТекущаяДата(),"-1"));

вместо

Константа.ДатаЗапретаРедактирования = Добавитьмесяц(ТекущаяДата(),"-1");

Теперь выставляется последнее число прошлого месяца.

Первая часть вопроса в силе.


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
180 Сообщений
ilyay ilyay
69 Сообщений
alex0402
54 Сообщений
oleg-x
48 Сообщений
AIFrame
46 Сообщений
andron81_81
44 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
Golickoff Golickoff
31 Сообщений
BuhRust
30 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 218
  • Точка Скрытых: 0
  • Точка Пользователей: 4
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal