Opis dodania do programu mechanizmu automatycznie ustawiającego datę zakazu edycji.
Ta metoda raz na zawsze rozwiązuje problem kontroli daty zakazu edycji.
Pewnie wszyscy wiedzą, czym jest data zakazu edycji. Wiedzą, jak się ją ustawia i gdzie. Pytanie tylko w tym, że ktoś musi stale ją kontrolować i ustawiać.
Zazwyczaj dla większości użytkowników program powinien automatycznie
codziennie zabraniać cofania zmian wstecz.
Głównym problemem w wersji 8 jest to, że data zakazu musi być ustawiona przed rozpoczęciem pracy użytkowników,
inaczej po ustawieniu nie zostanie zastosowana, dopóki użytkownicy nie zrestartują programu.
To znaczy, że ktoś rano, jako pierwszy, musi wejść do systemu i natychmiast ustawić zakaz.
Pomyślcie tylko, co by to oznaczało?
Oto rozwiązanie (uwaga: czynności muszą być wykonywane przez specjalistę)
Moduł ogólny - Pełne uprawnienia - Procedura
Procedura UstawParametrGranicyZakazuZmianyDanych() Eksport
Na początku procedury kod:
//Mania1C
Próba
OdpowiedzialnośćGranicyZakazu = ParametrySesji.GraniceZakazuZmianyDanych.Pobierz();
GranicaOkresu = OdpowiedzialnośćGranicyZakazu["OgólnaDataZakazuEdycji"];
Wczoraj = PoczątekDnia(PoczątekDnia(BieżącaData())-1);
Przedwczoraj = PoczątekDnia(PoczątekDnia(Wczoraj)-1);
Jeśli GranicaOkresu < Przedwczoraj To
Rej = RejestryWiedzy.GraniceZakazuZmianyDanych;
Zbiór = Rej.UtwórzZbiórZapisów();
BieżąceDane = Rej.Zaznacz();
Dopóki BieżąceDane.Następny() Cykl
Jeśli WartośćWypełniona(BieżąceDane.Organizacja) To
Kontynuuj;
KoniecJeśli;
Zapis = Zbiór.Dodaj();
Zapis.Organizacja = BieżąceDane.Organizacja;
Zapis.Użytkownik = BieżąceDane.Użytkownik;
Zapis.GranicaZakazuZmian = Przedwczoraj;
KoniecCyklu;
Zbiór.Zapisz();
KoniecJeśli;
Wyjątek
Komunikat(OpisBłędu());
KoniecPróby;
To wszystko. Po dodaniu tego kodu, każdego dnia przy wejściu pierwszego użytkownika program automatycznie ustawia datę zakazu edycji dla wszystkich kolejnych użytkowników. (w moim przykładzie data jest automatycznie ustawiana dla wszystkich użytkowników na dzień przedwczorajszy).
