|   |   | 
| 
 | вопрос по управляемому приложению | ☑ | ||
|---|---|---|---|---|
| 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) да, конечно, но задача тут сведена к простому наличию подчиненного документа. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |