Имя: Пароль:
1C
1С v8
Программный запрет снятия с проведения
,
0 prilforreal
 
05.07.18
11:38
Доброго, Миста! Как программно запретить снятие документа с проведения? В какой процедуре?
1 Бертыш
 
05.07.18
11:39
ПередЗаписью
2 prilforreal
 
05.07.18
11:59
(1) Разве перед записью вызывается при отмене проведения?
3 catena
 
05.07.18
12:00
ПередЗаписью при любом пуке вызывается. Не зря там в параметрах РежимЗаписи есть.
4 prilforreal
 
05.07.18
12:01
А это тогда зачем?

Процедура ОбработкаУдаленияПроведения(Отказ)
5 catena
 
05.07.18
12:03
(4)ПередЗаписью раньше стартует. Зачем заставлять пользователя ждать?
6 prilforreal
 
05.07.18
12:05
(5) Если о сути:
Нужно запретить снятие с проведения документ, если в связанных документах у него есть документ "монтаж"
7 prilforreal
 
05.07.18
12:54
Сделал так, но выдает ошибку что "Отказ"-неопознанный оператор

Процедура ПередЗаписью(Отказ, Режим)

    МассивСсылок = КритерииОтбора.СвязанныеДокументы.Найти(Документы.Монтаж);
    Для Каждого Ссылка Из МассивСсылок Цикл
        Если Ссылка = Null Тогда
    Записать(РежимЗаписиДокумента.ОтменаПроведения);
    Отказ;
    КонецЕсли;        ;
КонецЦикла;

КонецПроцедуры
8 ssh2006
 
05.07.18
12:55
(7) рукалицо
9 prilforreal
 
05.07.18
12:56
(8) Все так плохо?
10 prilforreal
 
05.07.18
13:00
Ошибка пропала, но снять с проведения по прежнему получается...

Процедура ПередЗаписью(Отказ, Режим)
    
КритерииОтбора.СвязанныеДокументы.Найти(Документы.Монтаж);
    Для Каждого Ссылка Из МассивСсылок Цикл
        Если Ссылка = Null Тогда
    Записать(РежимЗаписиДокумента.ОтменаПроведения);
    Отказ=Истина;
    Предупреждение("ЕстьМонтаж!");
    КонецЕсли;
    КонецЦикла;
КонецПроцедуры
11 HomoAlbus
 
05.07.18
13:02
(7)

МассивСсылок = КритерииОтбора.СвязанныеДокументы.Найти(Документы.Монтаж);

Если МассивСсылок.Количество() > 0 Тогда
Отказ = Истина;
Сообщить("Я обязательно прочту красно-желтую книгу!");
КонецЕсли;
12 novichok79
 
05.07.18
13:02
я бы сделал так, пишу сейчас на УТ 11, поэтому пример оттуда.

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    
    Если РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения
        И ЗначениеЗаполнено(Ссылка)
        И ОбщегоНазначения.ЕстьСсылкиНаОбъект(Ссылка) Тогда
        
        ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
        НСтр("ru = 'А пошто, боярин, документ изволил снять с проведения? Не могет такого быть!'"), , , , Отказ);

    КонецЕсли;

КонецПроцедуры
13 novichok79
 
05.07.18
13:03
(12) вот это наверное

    Если РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения
        И ЗначениеЗаполнено(Ссылка)
        И ОбщегоНазначения.ЕстьСсылкиНаОбъект(Ссылка) Тогда


даже можно заменить на это, Ссылка то будет всегда

    Если РежимЗаписи = РежимЗаписиДокумента.ОтменаПроведения
        И ОбщегоНазначения.ЕстьСсылкиНаОбъект(Ссылка) Тогда
14 HomoAlbus
 
05.07.18
13:04
(13) ОбщегоНазначения.ЕстьСсылкиНаОбъект(Ссылка) <> Есть связанный с документом Монтаж
15 FIXXXL
 
05.07.18
13:04
и лучше эту бубуйню в подписке сделать...
16 HomoAlbus
 
05.07.18
13:06
А еще надо обязательно разрешить это делать Администратору и проверочку на загрузку данных = истина сделать, а то потом плакать будешь.
17 bolobol
 
05.07.18
13:17
Скока всего знать нужно, нигде ж не написано... Когда уже мышкой программировать будем - галки расставил "Администратор: Разрешить", "Загрузке данных: Разрешить", "При обновлении конфы сохранять моё: Обязательно" и Ф5, Да, Демонически, Кеш очистить где сломается.
18 prilforreal
 
05.07.18
13:24
(11) При таком условии запрещает все, и проведение и отмену, не зависимо есть ли монтаж в связанных
19 novichok79
 
05.07.18
13:30
(14) а ну да, ты прав, там же могут быть не все галочки в составе проставлены.
20 novichok79
 
05.07.18
13:31
(16) да, групповой обработкой не установишь какие-нибудь реквизиты.
21 patapum
 
05.07.18
13:33
Записать(РежимЗаписиДокумента.ОтменаПроведения);
    Отказ=Истина;

Это классно! То есть отмену проведения выполним сами, а стандартную обработку пошлем далеко ))).
Процедура ПередЗаписью формы вызывается? Потому как, если в модуле объекта, вроде должна упасть в бесконечную рекурсию.
22 bolobol
 
05.07.18
14:15
(20) Точняк! "На групповой: Соглашаться"
23 HomoAlbus
 
05.07.18
14:19
(18) Блин, ну отбор по режиму записи добавь
24 prilforreal
 
05.07.18
14:59
(23) Условие по режиму записи работает, не работает по наличию монтажа в связанных, уже фляга свистит...
25 Вафель
 
05.07.18
15:03
(24) у тебя связь первого уровня?
26 Малыш Джон
 
05.07.18
15:04
(24) потому что способ "буду что-нибудь менять, когда-нибудь да угадаю" - очень трудоемкий

ты сядь разберись, чего ты хочешь
потом сядь разберись, каких знаний тебе не хватает
потом сядь, найди и усвой весь нужный материал
потом - выстрой одну логическую схему работы в голове
и только потом - садись за написание кода
27 bolobol
 
05.07.18
15:08
Тем не менее - самый эффективный при наличии множества многократно превышающего целевую группу, где целевая группа, в данном случае - понимание, а множество - возможности.
28 yavasya
 
05.07.18
15:59
(13) а РС "Статусы проверки документов" для слабаков ?
29 novichok79
 
05.07.18
16:45
(28) если в метаданных УТ 11.4.5.32 он каким-то образом у вас появился, то я вас поздравляю. вот в ERP он есть, да.