Как получить номер платежного поручения из документа «Выписка банка» в 1С 7.7?

Программист 1С v7.7 1C:Бухгалтерия Бухгалтерский учет
← На главную

При разработке отчетов по задолженности в конфигурации 1С:Бухгалтерия 7.7 часто возникает задача вывести номер конкретного платежного поручения, на основании которого была сформирована проводка. Использование объекта БухгалтерскиеИтоги позволяет быстро получить ссылки на документы, однако сам по себе объект Ит.Операция.Документ является лишь ссылкой, а не развернутым контекстом строк документа. Разберем по шагам, как правильно работать с табличной частью выписки, чтобы извлечь нужные реквизиты.

Понимание проблемы: почему не видны строки?

Когда мы получаем документ через Ит.Операция.Документ.ТекущийДокумент(), мы работаем с объектом документа. Ошибка многих начинающих разработчиков заключается в попытке обратиться к номеру строки или содержанию проводки без инициализации табличной части. Метод ТекущийДокумент() дает нам только «шапку», а для доступа к списку платежей, находящихся внутри выписки, необходимо явно перевести документ в режим работы с табличной частью.

Решение: алгоритм перебора строк

Чтобы получить данные о платежках, нам необходимо выполнить следующие действия:

  1. Проверить вид документа, чтобы убедиться, что мы работаем именно с «Выпиской».
  2. Вызвать метод ВыбратьСтроки() для инициализации выборки.
  3. Организовать цикл Пока ПолучитьСтроку() = 1 для обхода всех строк документа.
  4. Проанализировать реквизиты текущей строки, обращаясь к ПервичныйДокумент или полям НомерДокВходящий.

Рассмотрим пример реализации данного алгоритма:


Док = Ит.Операция.Документ.ТекущийДокумент();
Если Док.Вид() = "Выписка" Тогда
    Если Док.ВыбратьСтроки() = 1 Тогда
        Пока Док.ПолучитьСтроку() = 1 Цикл 
            // Проверяем, есть ли привязанный первичный документ
            Если Док.ПервичныйДокумент.Выбран() = 0 Тогда 
                // Если документа нет, берем реквизиты из самой строки
                НомерПлатежки = Док.НомерДокВходящий;
                ДатаПлатежки  = Док.ДатаДокВходящий;
            Иначе    
                // Если первичный документ привязан, берем данные из него
                НомерПлатежки = Док.ПервичныйДокумент.НомерДок;
                ДатаПлатежки  = Док.ПервичныйДокумент.ДатаДок;
            КонецЕсли;
            // Здесь мы можем выводить полученные данные в отчет
            Сообщить("Найдена платежка № " + НомерПлатежки);
        КонецЦикла;
    КонецЕсли;
КонецЕсли;

Важные рекомендации по работе с данными

При реализации данного подхода проанализируем важные нюансы:

Анализ структуры документа

В типовых конфигурациях 1С 7.7 структура может различаться. Если вы видите, что поле НомерДокВходящий пустое, проверьте, не заполняется ли номер платежки в привязанном ПервичныйДокумент. Мы рекомендуем использовать комбинацию проверок: сначала смотрим, заполнен ли первичный документ, и если нет — обращаемся к реквизитам самой строки Док.НомерДокВходящий. Такой подход делает отчет универсальным и отказоустойчивым.

Следуя этим рекомендациям, вы сможете корректно выводить данные о платежных поручениях в любом отчете, использующем бухгалтерские итоги, обеспечивая полноту и достоверность информации о взаиморасчетах.

← На главную