Имя: Пароль:
1C
 
Редактирование реквизита в закрытом периоде
Ø (Волшебник 02.08.2024 16:19)
0 bebibo
 
01.08.24
20:53
Всем добрый день!
Нужно в документе, который закрыт на редактирование, редактировать дату документа.
В модуле формы есть проверка(ДатыЗапретаИзменения.ИзменениеЗапрещено...), и если он закрыт, тогда Форма.ТолькоПросмотр = Истина

Соответственно далее я не могу редактировать реквизит Дата.

Если же я комментирую эту проверку и далее просто если период закрыт, тогда цикл: Для каждого эл из Элементы цикл
            эл.Доступность = Ложь;    
        КонецЦикла;

Но не у всех есть свойство "Доступность" и вылетает с ошибкой. Заменил на свойство "ТолькоПросмотр" - та же ситуация.

Подскажите, как лучше сделать?
1 Garykom
 
гуру
01.08.24
19:33
По типу элемента
2 bebibo
 
01.08.24
19:39
(1) Делал.
Просто интересует, только такой нубский вариант есть и всё?
По другому не сделать? Красиво..))
3 craxx
 
01.08.24
19:40
Нужно в документе, который закрыт на редактирование редактировать дату документа.

Очень плохая идея
4 Волшебник
 
01.08.24
20:00
(0) Попытку добавь
5 Волшебник
 
01.08.24
20:53
(0) >> Нужно в документе, который закрыт на редактирование, редактировать дату документа.

Не нужно.
6 Hans
 
01.08.24
21:39
что даст редактирование даты? Дальше у тебя при записи ругнется.
7 Волшебник
 
01.08.24
21:46
(6) Не ругнётся, а выдаст сообщение о недостатке прав доступа. Учите русский язык!
8 Мультук
 
гуру
02.08.24
08:57
(0)

1)
В этом случае ответственный человек открывает данному пользователю период редактирования.

Пользователь редактирует дату, затем период закрывают.

Ответственный человек несколько позже перезакрывает период
или проводит другие мероприятия.

Иногда ответственный человек, оценивая объем проблем, посылает инициативных людей в дальнее эротическое путешествие

2) >>>По другому не сделать? Красиво..))

Менять даты c помощью написанной обработки. При перепроведении документа сообщать данному объекту документа для БСП "Волшебное свойство".
Но еще раз - это путь в ад.

P.S.
Ради интереса спрошу, что это за конфигурация и что за документ.
9 d4rkmesa
 
02.08.24
09:11
(0) Дурная работа, но можно посмотреть, например, как в типовой ERP 2.5 это сделано в этапах производства. Тут надо учесть, что от реквизита Дата зависят практически все движения, обычно. Придется обходить сначала типовой механизм, который для формы "Только просмотр" устанавливает, а затем при записи движений еще проверяет (при условии что не отключена проверка по дате запрета, а отключать ее нужно точечно при изменении _только_ нужного реквизита). Плюс, если используется отражение в регл. учете, нужно там кое-что также учесть.
Для размышлений в ERP можно посмотреть процедуру ДатыЗапретаИзмененияУТ.ПередПроверкойЗапретаИзменения
10 craxx
 
02.08.24
08:56
(9) Обычно всякие там корректирующие документы вводят, в человеческом учете.
11 Serg_1960
 
02.08.24
09:00
Контекстное меню в списке документов на изменение даты, а далее по классике - "ОбменДанными.Загрузка..." для документа и его движений.

PS: неладное что-то затеяли, прогнило что-то в Датском государстве.
12 Serg_1960
 
02.08.24
09:04
Дай юзверю волю - обязательно кто-нибудь вынесет документ через границу месяца/года.
13 Мультук
 
гуру
02.08.24
09:07
(11)

>> а далее по классике - "ОбменДанными.Загрузка..." для документа и его движений.

Т.е. допустим в ЕРП нужно поменять дату РТУ (РеализацияТоваровУслуг).
Вместо простейшего кода


об = ссылкаРТУ.ПолучитьОбъект()
Об.Дата = пНоваяДата;
об.ДополнительныеСвойства.Вставить("ПропуститьПроверкуЗапретаИзменения"); //Волшебные слова для БСП
об.Запись(РежимЗаписиДокумета.Проведение);




Вы предлагаете разбираться и менять самостоятельно даты в механизме взаиморасчетов?
Серьезно? Зачем ?
Про прочие движения, хрен с ним, хотя там имхо тоже совсем не тривиально (ордера, даты ордерных складов и т.п.)
14 craxx
 
02.08.24
09:17
(13) Повторюсь - в человеческом учете все делается корректировками, и дата документа не двигается, иначе нарушается непрерывность учета.
15 Irbis
 
02.08.24
09:19
(0)
Подскажите, как лучше сделать?

тот частый случай, когда лучше не делать
16 Serg_1960
 
02.08.24
09:20
(13) Во-первых, ТС не озвучил конфигурацию. Во-вторых, вопрос не адресу. А в-третьих, право выбора за ним. Как мне кажется, всяк, кому не лень, уже попинали ТС за плохую идею. И я в том числе.
17 d4rkmesa
 
02.08.24
09:24
(14) Исправления документов в ERP аля ЗУП только недавно сравнительно появились.
18 Serg_1960
 
02.08.24
09:47
Похвалю собеседников автора вопроса про форму документа. Они заглянули дальше за горизонт и сразу же пресекли последующие вопросы автора :)
19 Homer
 
02.08.24
10:16
Обычные формы, делал так            

Если мЧтение Тогда
    Для Каждого мСтрока из ВыбФормаОтчета.ЭлементыФормы Цикл
        Если мСтрока.Имя = "ОсновнаяПанель" Тогда
            Продолжить;
        КонецЕсли;
        мДоступность = ЕстьСвойство(мСтрока,"Доступность");
        мТолькоПросмотр = ЕстьСвойство(мСтрока,"ТолькоПросмотр");
        
        ЕСли мДоступность и мТолькоПросмотр Тогда
            мСтрока.ТолькоПросмотр = Истина;
        ИначеЕсли мДоступность тогда
            мСтрока.Доступность = Ложь;
        КонецЕсли;
    КонецЦикла;
КонецЕсли;



Функция ЕстьСвойство(Объект, ИмяСвойства) Экспорт
    РезультатФункции = Ложь;
    НачальноеЗНачение = Новый УникальныйИдентификатор();
    ЗначениеРеквизита = Новый Структура(ИмяСвойства, НачальноеЗНачение);
    ЗаполнитьЗначенияСвойств(ЗначениеРеквизита, Объект);
    Если ЗначениеРеквизита[ИмяСвойства] <> НачальноеЗНачение Тогда
        РезультатФункции = Истина;
    КонецЕсли;
    Возврат РезультатФункции;
КонецФункции
20 Масянька
 
02.08.24
10:44
(0) Самый первый вопрос - ЗАЧЕМ?!
21 stix2010
 
02.08.24
11:41
(0)  у Вас проблема с учетом. Никогда так не делайте.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший