|
Как в БП программно изменить договор в "Поступлении на расчетный счет" и "Списании с | ☑ | ||
---|---|---|---|---|
0
lukinskiy
20.02.21
✎
20:02
|
Как в БП 3.0 программно изменить обработкой договор в "Поступлении на расчетный счет" и "Списании с расчетного счета"?
Для этого, как я понимаю, надо как-то правильно заполнить табличную часть РасшифровкаПлатежа. Не подскажете, как взять это заполнение из модуля формы этих документов? (в восьмерке не силен) Открываю процедуру РасшифровкаПлатежаДоговорКонтрагентаПриИзменении(), там вижу: ПоступлениеНаРасчетныйСчетФормыКлиент.ИнициализироватьСвойстваПлатежа(ЭтотОбъект); Если РасшифровкаПлатежаДоговорКонтрагента = СвойстваПлатежа.ДоговорКонтрагента Тогда Возврат; КонецЕсли; ДоговорКонтрагентаПриИзмененииНаСервере(); ПоступлениеНаРасчетныйСчетФормыКлиент.РасшифровкаПлатежаДоговорКонтрагентаПриИзменении(ЭтотОбъект, Элемент); ЭтотОбъект, как я понимаю - это открытая форма. В моей обработке есть объект нужного документа, полученного запросом. ДокОбъект = Выборка.Ссылка.ПолучитьОбъект(); Но это не то. Как тут правильно действовать? |
|||
1
lukinskiy
20.02.21
✎
20:03
|
Да, Элемент из строки "ПоступлениеНаРасчетныйСчетФормыКлиент.РасшифровкаПлатежаДоговорКонтрагентаПриИзменении(ЭтотОбъект, Элемент)" потом не используется, так что вопрос только про ЭтотОбъект в форме документа. Как его получить в обработке?
|
|||
2
Бишбармак
20.02.21
✎
20:05
|
Если делать НЕ регулярно, то встроенной обработкой "Групповое изменение реквизитов"
|
|||
3
lukinskiy
20.02.21
✎
20:06
|
Не, мне нужно из моей обработки это сделать, там хитрое изменение договоров.
|
|||
4
ГдеСобака Зарыта
20.02.21
✎
20:21
|
ДокОбъект.РасшифровкаПлатежа[0].ДоговорКонтрагента = ТвойДоговорСсылка;
|
|||
5
lukinskiy
20.02.21
✎
20:25
|
(4) Нет, этого мало, потом ошибки лезут.
|
|||
6
ГдеСобака Зарыта
20.02.21
✎
20:27
|
(5) Этого достачно, я считаю. Какие ошибки?
|
|||
7
lukinskiy
20.02.21
✎
20:39
|
Вот такая ошибка:
Преобразование значения к типу Булево не может быть выполнено {ВнешняяОбработка.ИсправлениеДоговоров.Форма.Форма.Форма(720)}: ДокОбъект.Записать(РежимЗаписиДокумента.Проведение); {ВнешняяОбработка.ИсправлениеДоговоров.Форма.Форма.Форма(29)}: ПолучитьИСравнитьДанныеНаСервере(); по причине: Ошибка при выполнении обработчика - 'ОбработкаПроведения' по причине: Преобразование значения к типу Булево не может быть выполнено {ОбщийМодуль.УчетВзаиморасчетов.Модуль(8722)}: Если Параметры.РасчетыВУсловныхЕдиницах Тогда {ОбщийМодуль.УчетВзаиморасчетов.Модуль(5094)}: СчетаРасчетов = СчетаРасчетовПоОтгрузке(СтрокаПлатежа); {ОбщийМодуль.УчетВзаиморасчетов.Модуль(1804)}: ОстаткиЗадолженности = ПолучитьОстаткиЗадолженности(Параметры.РасшифровкаПлатежа, Реквизиты, Отказ); {Документ.ПоступлениеНаРасчетныйСчет.МодульОбъекта(244)}: ТаблицаВзаиморасчетов = УчетВзаиморасчетов.ПодготовитьТаблицуВзаиморасчетовПогашениеЗадолженности( {ВнешняяОбработка.ИсправлениеДоговоров.Форма.Форма.Форма(720)}: ДокОбъект.Записать(РежимЗаписиДокумента.Проведение); Если не менять договор, а просто перепровести документ (изменив, допустим, комментарий), то все ок. |
|||
8
lukinskiy
20.02.21
✎
20:44
|
Если же выбрать нужный договор и провести документ руками, то все ок.
|
|||
9
ГдеСобака Зарыта
20.02.21
✎
20:58
|
Создай новый документ копированием, замени на свой договор, проведи. В консоли запросов выбери все поля этих двух документов, потом все поля табличных частей. Сравни и найди разницу
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |