Имя: Пароль:
1C
 
Статусы документов
0 YoungMan
 
14.05.08
17:59
Добрый день!

Возникла необхоидмость ввести в некоторый перечень документов, например заказ покупаетля, Акт об оказании производственных услуг, статусы. Статусы для каждого документа могут иметь свои значения и должны иметь возможность пополняться.
Каким образом лучше реализовать данную задачу?

Как я вижу: в формы документы, в которые необходимо внести статусы добавляется только метка и действие в командную панель формы:
1. метка отображает текущее значение статуса (само же значение хранится в регистре сведений)
2. через действие вызываются процедуры(функции) общего модуля, в котором прописан механиз обработки.
3. насколько я также понимаю необхоидмо использование плана видов характеристик, но опять же задача как именно грамотно им воспользоваться....
1 GenV
 
14.05.08
18:10
(0) По плану видов характеристик можно посмотреть в УТ или ЗУП(там проще) - категории. Можно просто нужные объекты последовательно от туда скопировать и немного подправить :) Удобно в СКД отчеты использовать.

Можно и просто через справочник сделать. Зависит где будешь их использовать.
2 shuhard
 
14.05.08
18:12
(0)[Статусы для каждого документа могут иметь свои значения и должны иметь возможность пополняться. ]
а где вторая половина ТЗ, а именно:
- сочетание статусов
- сторно статусов
- и коронка - отчетность по оным
3 YoungMan
 
14.05.08
18:26
(1,2) Категории не подойдут, поскольку, например у заказа покупателя может быть статус "создан", "в работе", "завершен" (а так же любой другой статус); а для документа счет: "отправлен", "подписан", "получен" (а так же любой другой статус)...
т.е. получается что регистр сведений, в котором будут храниться данные о статусах документов будет выглядеть так:
Измерения:
- Документ, тип ДокументСсылка или Список ДокументСсылка.ЗаказПокупателя, ДокументСсылка.Счет, ...(поскольку перечень документов будет все таки определен заранее, хотя можно построить и для произвольного числа документов, только в этом случае формы документов придется не трогать, а в данной задаче как раз на формах и должно быть текущее отображение статуса)
- ТипСтатуса, тип либо Перечисление(поскольку статусы документов имеют связь со списком используемых документов как N к N), либо Справочник, в том случае если использовать для произвольного числа документов, тогда в этом справочнике задавать список ТиповСтатусов
Ресурсы:
- ЗначениеСтатуса, тип СправочникСсылка.Статусы

Но каким образом (использовать ли план видов характеристик, и если использовать то как), лучше организовать заполнение этого регистра и какую структуру данных в конечном итоге лучше выбрать, вот в чем вопрос...
4 shuhard
 
14.05.08
18:40
(3) исчо раз - архитектура без отчетности хуже йада, статус не самоцель, а средство управления.
5 YoungMan
 
14.05.08
18:48
(4) В качестве отчета может использоваться список документов с их текущими статусами. Условия отбора(по документу, по типу статуса, по статусу), как вариант.
6 IronDemon
 
14.05.08
18:50
7 YoungMan
 
14.05.08
18:52
(6) причем здесь это?
8 IronDemon
 
14.05.08
18:53
Притом, что отобрать по статусу, который хранится в РС, не так просто.
9 IronDemon
 
14.05.08
18:56
У меня сделано через РС ЗначенияСвойствОбъектов. Новый регистр не добавлял. В отчетах выбирается нормально.

//Производит запись свойств объекта связанных с формой
//
Процедура ЗаписатьСвойстваОбъекта(Отказ)
   
   Если БыстраяОтгрузка <> мБыстраяОтгрузка Тогда
       МенеджерЗаписи = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
       МенеджерЗаписи.Объект = Ссылка;
       МенеджерЗаписи.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.БыстраяОтгрузка;
       МенеджерЗаписи.Значение = БыстраяОтгрузка;
       Попытка
           МенеджерЗаписи.Записать(Истина);
           мБыстраяОтгрузка = БыстраяОтгрузка;
       Исключение
           Отказ = Истина;
           Сообщить("Не удалось записать значения свойств по данному документу. По причине " + ОписаниеОшибки());
       КонецПопытки;
   КонецЕсли;
   
   Если Самовывоз <> мСамовывоз Тогда
       МенеджерЗаписи = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
       МенеджерЗаписи.Объект = Ссылка;
       МенеджерЗаписи.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.Самовывоз;
       МенеджерЗаписи.Значение = Самовывоз;
       Попытка
           МенеджерЗаписи.Записать(Истина);
           мСамовывоз = Самовывоз;
       Исключение
           Отказ = Истина;
           Сообщить("Не удалось записать значения свойств по данному документу. По причине " + ОписаниеОшибки());
       КонецПопытки;
   КонецЕсли;
   
КонецПроцедуры
Ошибка? Это не ошибка, это системная функция.