Имя: Пароль:
1C
1С v8
Как лучше реализовать проверку "Статуса" В документе?
0 TDI
 
06.06.12
15:47
Есть такая задача,
нужно в документ РеализацияТиУ вставить механизм согласования.
Нужно добавить в документ реквизит "Статус" (Утвержден, подготовлен и пр.)
Как лучше это реализовать, через добавление реквизита в документ, или через регистр сведений?
Если через РС делать, будет геморно в журнале документов отбор делать по статусу..
Как рекомендуется делать такие задачи ?
1 х86
 
06.06.12
15:49
(0)Статус - эта инфа при проведении нужна будет? если нет то тогда можно писать в РС
2 TDI
 
06.06.12
15:51
нет, при проведении не нужна.
А как тогда отбор по статусам реализовывать в журнале документов ?
3 and2
 
06.06.12
15:52
я реквизитом всунул
4 Живой Ископаемый
 
06.06.12
15:52
характеристики точно не катят?
5 abitfrosty
 
06.06.12
15:53
РС И Упр формы
6 Stim
 
06.06.12
15:54
и реквизит и запись в РС. статус может быть получен через механизм в РС, а может быть изменен властной рукой директора/главбуха. приоритет у реквизита, конечно же
7 Cmyk32
 
06.06.12
15:54
Через реквизит документа.
1. Под один (относительно статичный реквизит) думаю не стоит создавать регистр. Он может меняться один-два раза, а не постоянно.
2. Упрощает отбор в динамических списках. Упрощает проверки при открытии формы документа.
3. В типовых (УТ 11) "Статус" у ЗаказаКлиента - реквизит документа.
8 and2
 
06.06.12
15:57
(0) если бы у тебя только малая толика документов имела бы этот реквизит - то можно и о РС задуматься.
а так - все ж документы или утверждены или подготовлены.
имхо, разницы нет - а реквизит проще.
9 abitfrosty
 
06.06.12
15:58
Ага, при изменении реквизита будет перепроводиться документ - очень грамотно. Предупреди босса, чтоб он еще с оперативным проведением потом не чудил, а то мало ли себестоимость начнет меняться.
10 Cmyk32
 
06.06.12
16:00
(9) "Статус" специфический параметр и обычно меняется программно:
- через бизнес-процессе
- через отчет
- через спец.команду на форме документа
11 Анатолий Никитин
 
06.06.12
16:01
(0) почему реквизит не влияет на проведение? Не утвержденная реализация будет проводиться?
12 Анатолий Никитин
 
06.06.12
16:01
или отгрузите товар, потом будете согласовывать?
13 TDI
 
06.06.12
16:05
(11)
При проведении не влияет,
влияет потом, на поведение документов которые вводятся на основании этого...
14 AAlexandra
 
06.06.12
16:06
я за реквизит + РС.
Потому что следующим вопросом будет "кто и когда статус поменял?", т.е. нужна история изменения.
15 TDI
 
06.06.12
17:09
(7)
А как в УТ11, если нужно изменить статус,
получается документ нужно неоперативно перепроводить ?
16 Cmyk32
 
06.06.12
17:16
(15) Да, программно. Там статус меняется в бизнес-процессе. И через доп.команды на форме списка документов.

Я часто в нетиповых работаю со статусами документов. Изменяю через бизнес-процесс и через отчеты в скд.
И на моей практике никому из пользователей не нужна была история - кто и когда менял статус. Может у меня задачи другие.
17 TDI
 
06.06.12
17:21
(16) Программно имеете ввиду изменить реквизит и Док.Записать(РежимЗаписиДокументы.Записть) ?

как через отчеты СКД менять ?
18 ILM
 
гуру
06.06.12
17:21
А свойства и категории у документов есть, это чтобы типовые не менять. Данные в отчете видно.

Что же вы всякую гадость в рот тянете?
19 Cmyk32
 
06.06.12
17:22
(17) Давай я тебе из УТ код кину. Это фрагмен команды списка - которая меняет статус на "Согласован".
   НачатьТранзакцию();
   
   Пока Выборка.Следующий() Цикл
       
       Попытка
           ЗаблокироватьДанныеДляРедактирования(Выборка.Ссылка);
       Исключение
           
           ОтменитьТранзакцию();
           
           ВызватьИсключение "Ошибка";
               
       КонецПопытки;
       
       Объект        = Выборка.Ссылка.ПолучитьОбъект();
       Объект.Статус = Статус;
       
       
       Попытка
           
           Объект.Записать(?(Объект.Проведен, РежимЗаписиДокумента.Проведение, РежимЗаписиДокумента.Запись));
           КоличествоОбработанных = КоличествоОбработанных + 1;
           
       Исключение

           ОтменитьТранзакцию();
           ВызватьИсключение "Ошибка";
           
       КонецПопытки
       
   КонецЦикла;
20 TDI
 
06.06.12
17:23
(19)
так это-же получается заново перепроводится документ..и взякие там контроли остатков проходят...
21 Cmyk32
 
06.06.12
17:23
(17) Через обработку расшифровки.
22 Cmyk32
 
06.06.12
17:26
(20) Да, на дату документа.
Но ты же прогер - сам можешь задать поведение системы.

Согласна с (18) - если не хочется менять типовую.
23 pavig
 
06.06.12
17:29
А если записывать типа:

ДокументОбъект.Записать()

то проведение не будет вызываться не зависимо от того проведен документ или нет
24 pavig
 
06.06.12
17:30
т.е. обработка проведения не вызовется, а новое значение реквизится запишется
25 mikecool
 
06.06.12
17:30
(19) при всем уважении - если статус не меняет ход проведения, то и проводить док не надо
26 Cmyk32
 
06.06.12
17:33
(25) Да.
Он спрашивал как в типовой.
А дальше надо переделать под себя.