Платформа 8.2 Как получить значение Реквизитов табличной части документов в МодулеОбъекта

Платформа 8.2 Как получить значение Реквизитов табличной части документов в МодулеОбъекта

В МодулеФормыДокумента значения этих реквизитов получить могу.

Но необходимо организавать перепроведение документов без открытия ФормДокументов

в фоновом режиме или интерактивно в журнале документов.

Хочу в МодулеОбъекта Документа.СписаниеСРасчетногоСчета установить условие на каждую суммуНДС

Как в МодулеОбъекта получить значения каждого из Реквизитов.ТабличнойЧасти.РасшифровкаПлатежа.СуммаНДС ?

Для случая если в в расшифровке платежа документа одна строка - подходит.

Если в документе несколько строк в Расшифровке платежа несколько строк, то как можно получить значение ?

Обход в цикле по строкам происходит в "родительской" процедуре, в искомой анализируется уже конкретная строка.

Как можно получить значение реквизита без организации цикла обхода ?

Для Каждого Стр Из РасшифровкаПлатежа Цикл СуммаДляОбработки = Стр.СуммаНДС; КонецЦикла;

но в Ваш вопрос звучал - Как в МодулеОбъекта получить значения каждого .

ищите конкретную строку, смотря, что у вас Выступает объектом поиска, можно номер, можно какой-то реквизит..

Проблема в следующем:

если не организовывать цикл обхода (в конкретном случае не нужен, он организован ранее в "родительской" процедуре), то у РасшифровкиПлатежа не видно реквизита СуммаНДС.

может быть организовать цикл не по тстрокам табличной части а по именам метаданных РасшифровкиПлатежа.

Тогда если находится реквизит с именем "СуммаНДС", можно получить его значение

Пожалуйста, посмотрите где у меня косяк:

Для Каждого Реквизит Из Метаданные[РасшифровкаПлатежа].Имя Цикл Если Реквизит.Имя = "СуммаНДС" тогда ПозицияСуммыНДС = Реквизит.СуммаНДС; ПРервать; КонецЕсли; КонецЦикла;

Сообщить("ПозицияСуммыНДС: " + ПозицияСуммыНДС+ " !!"); Если ПозицияСуммыНДС <> 0 Тогда.

При исполенении выдаёт такую ошибку:

Получение элемента по индексу для значения не определено

"если не организовывать цикл обхода (в конкретном случае не нужен, он организован ранее в "родительской" процедуре), то у РасшифровкиПлатежа не видно реквизита СуммаНДС" - если это реквизит таб части, то что-то вы не то говорите.

Текст "родительской" пожалуйста

Опишите, если можете Вашу задачу, что надо? Подозреваю, что Вы не то что-то делаете.

Сильно переделанная (собственный план счетов не Хозрасчётный и не Бюджетный), большинство счетов кроме 3-х уровней субконто ведутся так же ещё и по дополнительным реквизитам (ИсточникиФинаснирования, ВидыРасхода - не для НУ и ещё несколько).

В ряде документов (ПоступлениеТоваровИУслуг, АвансовыеОтчеты, ПоступлениеНаРасчетныйСчет, СписаниеСРасчетногоСчета, ПоступлениеДопРасходов и ещё несколько) при проведении в случае присутствия НДС в какой-либо строке НДС <> 0 (да бывает отрицательный) каждая проводка делается в две строки.

Первая строка по основному источнику финансирования на сумму минус НДС и вторая строка по источнику финансирования для НДС на сумму самого НДС.

Задачу ранее решил, но только при открытии форм документов.

Сейчас эксплуатируем две одинаковые базы данных, в одну вносится пользователями первичка - всё корректно проводится как требуется по две строки с различными источниками финансирования.

Во вторую базу по расписанию переливается первичка из первой базы корректно,

За тем документы во второй базе после импорта выполняются отложенные движения.

Поскольку формы документов не открываются, то необходимо переменные видимые в формах документа анализировать уже в модулях объектов.

передаю в ОбщийМодуль.УправлениеВзаиморасчетами параметры для формирования проводок.

для первой строки проводки передаю среди прочих реквизитов сумму минус суммуНДС и основной источник финансирования,

для второй строки проводки передаю среди прочих реквизитов только суммуНДС и источник финансирования для НДС.

При отрытии ФормыДокумента всё хорошо выполняется, а вот через модуль объекта "не вижу" СуммуНДС

"При отрытии ФормыДокумента всё хорошо выполняется" - где выполняется? Проводки, должны быть как раз модуле документа. У Вас они что, в модуле формы? Покажите, коротко код

В МодулеОбъекта документа объявляется переменная:

Перем ПозицияСуммыНДС Экспорт;

которая "видна" из МодуляФормыДокумента.

Когда выполняется отложенное движение форма документа не открывается и соответственно ПозицияСуммыНДС "не видна"

Соответственно в модуле документа проверяйте на заполненность этой переменной, если не заполнена - переопределяйте.

📎📎📎📎📎📎📎📎📎📎