|
вопрос по управляемому приложению | ☑ | ||
---|---|---|---|---|
0
Незнайка69
08.08.12
✎
12:52
|
Привет всем, я делаю новую конфигурацию. В которой на основании заявки делаю ПКО, мне необходимо чтобы после ввода на основании в заявке автоматически проставлялась галка оплачена. подскажите как это сделать?
|
|||
1
Wobland
08.08.12
✎
12:55
|
а факт введения на основании (даже не записи, не проведения) уже говорит о том, что оплачено?
|
|||
2
Smallrat
08.08.12
✎
12:56
|
В Модуле документа:
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка) Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументСсылка.Заявка") Тогда Оплачено = Истина; |
|||
3
Незнайка69
08.08.12
✎
12:57
|
нужно провести ПКО
|
|||
4
Wobland
08.08.12
✎
12:57
|
(2) это ты про ПКО сказал, а у ей в исходном документе хочется
|
|||
5
Wobland
08.08.12
✎
12:57
|
(3) даю пищу для размышлений: ДокументОснование
|
|||
6
Avganec
08.08.12
✎
12:58
|
(5) добавление: ПолучитьОбъект()
|
|||
7
Лоботряс
08.08.12
✎
12:59
|
В ПКО в процедуре "ПослеЗаписи" написать
Док = Основание.ПолучитьОбъект(); Док.Оплачено = истина; Док.Записать(); |
|||
8
Wobland
08.08.12
✎
13:00
|
(7) а я за проведение
|
|||
9
Avganec
08.08.12
✎
13:00
|
(7) не забудь еще проверку надо на тип основания
|
|||
10
Лоботряс
08.08.12
✎
13:00
|
(7)+ не забудь проверить что ПКО проведен, а не просто записан....
|
|||
11
Smallrat
08.08.12
✎
13:00
|
(4) аааааа )) невнимательно прочитал
(0) сделать запрос по проведенным документам, где основание = текущий документ, на форму воткнуть галку, которая при непустом результате запроса будет истиной, в противном случае ложью. перезаписывать документы-основания при проведении ПКО это неправильно. |
|||
12
Лоботряс
08.08.12
✎
13:01
|
(8) Может быть...
|
|||
13
Wobland
08.08.12
✎
13:02
|
(11) чем чревато отсутствие реквизита (размышляю вслух)? не так просто будет узнать, оплачена ли заявка...
|
|||
14
Wobland
08.08.12
✎
13:03
|
а как быть с частичной оплатой?
|
|||
15
Незнайка69
08.08.12
✎
13:03
|
Спасибо разбираюсь
|
|||
16
Лоботряс
08.08.12
✎
13:04
|
(11) а когда все это делать?
|
|||
17
Незнайка69
08.08.12
✎
13:06
|
При проведении документа ПКО должна ставиться галочка Оплачено в Заявке, я добавила новый реквизит ДокументОснование, попробую так.
Спасибо большое |
|||
18
Незнайка69
08.08.12
✎
13:07
|
Частичной оплаты быть не может
разовые услуги |
|||
19
Smallrat
08.08.12
✎
13:08
|
(13) реквизит дублирует логику - если для данной заявки есть проведенный документ ПКО, то док считается оплаченным (частичные оплаты не учитываем )).
Само наличие реквизита уже вероятный источник ошибок (например кто-то открыл/заблокировал заявку, а другой пользователь в это время снял с проведения ПКО - в итоге будет ошибка) (16) При СозданииНаСервере как минимум. дальше уже надо подумать - насколько актуальным надо видеть реквизит - обычно хватает этого. |
|||
20
Smallrat
08.08.12
✎
13:08
|
+(19) *актуальным надо видеть галку то есть
|
|||
21
Незнайка69
08.08.12
✎
13:09
|
а как в заявке увидеть что она оплачена?
|
|||
22
Wobland
08.08.12
✎
13:10
|
(21) без реквизита? поискать проведённые ПКО с таким основанием
|
|||
23
Smallrat
08.08.12
✎
13:13
|
(21) примерно так (у меня правда не галка, а надпись)
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) УстановитьТекстыНадписей(); КонецПроцедуры &НаСервере Процедура УстановитьТекстыНадписей() Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ДополнительноеСоглашение.Ссылка |ИЗ | Документ.ДополнительноеСоглашение КАК ДополнительноеСоглашение |ГДЕ | ДополнительноеСоглашение.Договор = &Ссылка"; Запрос.УстановитьПараметр("Ссылка", Объект.Ссылка); Результат = Запрос.Выполнить(); Если Результат.Пустой() Тогда ДопСоглашения = "У этого договора нет дополнительных соглашений"; Элементы.ДопСоглашения.Гиперссылка = Ложь; Иначе КоличествоДС = Результат.Выгрузить().Количество(); Если КоличествоДС = 1 Тогда НайденноеДС = Результат.Выгрузить().Получить(0).Ссылка; ДопСоглашения = "Добавлено: " + Строка(НайденноеДС); Иначе НайденноеДС = ПредопределенноеЗначение("Документ.ДополнительноеСоглашение.ПустаяСсылка"); ДопСоглашения = "Имеется: " + Строка(КоличествоДС) + ОбщегоНазначенияКлиентСервер.ФормаМножественногоЧисла(" дополнительное соглашение", " дополнительных соглашения", " дополнительных соглашений", КоличествоДС); КонецЕсли; Элементы.ДопСоглашения.Гиперссылка = Истина; КонецЕсли; КонецПроцедуры |
|||
24
Smallrat
08.08.12
✎
13:14
|
и далее
&НаКлиенте Процедура ДопСоглашенияНажатие(Элемент, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; Если НайденноеДС <> Неопределено Тогда Если Не НайденноеДС.Пустая()Тогда ОткрытьФорму("Документ.ДополнительноеСоглашение.ФормаОбъекта", Новый Структура("Ключ", НайденноеДС)); Иначе ОткрытьФорму("Документ.ДополнительноеСоглашение.ФормаСписка", Новый Структура("ОтборДоговор", Объект.Ссылка), ЭтаФорма); КонецЕсли; КонецЕсли; УстановитьТекстыНадписей(); КонецПроцедуры |
|||
25
Незнайка69
08.08.12
✎
13:20
|
Спасибо за советы, я попробую сделать
|
|||
26
Reset
08.08.12
✎
13:28
|
Идеологически верно при проведении заявки делать приход в какой-л РН с измерением Заявка, при проведении ПКО - расход с этим же измерением. Факт того что заявка оплачена - отсутвие остатков в РН.
|
|||
27
Smallrat
08.08.12
✎
13:31
|
(25) :) без реквизита правда будет сложнее впихнуть галку в форму списка.
(26) да, конечно, но задача тут сведена к простому наличию подчиненного документа. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |