Как правильно написать условие при выборе покупателя

Как правильно написать условие при выборе покупателя

Измененные места я пометил символами //** и то, что убрал или добавил из типового. Можете пользоваться поиском. Можете потом открыть Модуль менеджера счет на оплату и Обработка.ПечатьСчетовНаОплату и посмотреть что я изменил. Возможно вам пригодится

  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти

У вас есть ДанныеПечати. Там есть Контрагент и Организация (ДанныеПечати.Контрагент и ДанныеПечати.Организация )

Эти 2 строки для Контрагент и Организация заполняют разные структуры.

СведенияОПокупателе должны содержать данные счета именно по контрагенту.

Или я чего-то не понимаю.

Приведите свой код, куда хотите вставить и что.

  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти

(13) Зайдем с другого конца. Как получили ДанныеПечати? Обычно это результат запроса. Если организация так получает свои реквизиты, то так написан запрос.

Если не хотите кроить запрос, то пишите

или куда вам нужно это

  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти

(14) Уже ближе, хотя бы понятно откуда взяли.

Так обрабатывается организация, потому что все нужные реквизиты есть в запросе, который вернул ДанныеПечати. С контрагентом можно сделать так, как я написал выше

  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти

(17) Мне за вас написать? Вот

  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти

Кажется БанковскийСчетКонтрагента (там где ругается) не обязательно указывать. Если он не заполнен, то подтянется основной.

  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти

(23) В режиме отладки доходите до нужной точки в коде, выделяете в коде значение которое хотите проверить и правой кнопкой мыши щелкаете по нему, в контекстном меню выбираете ВычислитьВыражение, вам вываливается окно в котором можно подробно изучить то значение которое вы выделили, например таблицу значений просмотреть именно в виде таблицы.

Можно просто когда дойдете до нужной точки в главном меню выбрать отладка->ВычислитьВыражение и там руками набрать имя любого значения которое вы хотите изучить подробнее, можно вообще начать копать от ЭтаФорма или Объект и полностью изучить текущее окружение в нужный момент, можно даже интерактивно команды короткие выполнить например Запрос.Выполнить.Выгрузить()[0].Контрагент и посмотреть какое значение в этом месте программы будет получено.

  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти

пример только там на числовой переменной это скучно, попробуйте открыть для изучения например ЭтаФорма - вот где раздолье :)

  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти

(27) Кстати иногда чтобы не искать на какую конкретно строку ставить точку отладки, помогает Отладка->Остановка по ошибке. там поставить птичку "Останавливаться по ошибке"

Поверьте если разберетесь и начнете использовать ВычислитьВыражение то программирование в 1с станет намного праздничнее :)

  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти

(31) У выборки результата запроса есть свойство Владелец в котором лежит Результат запроса, а у результата запроса есть метод Выгрузить который вернет ТЗ Я бы попробовал что-то такое В окне ВычислитьВыражение вбить ДанныеПечати.Владелец.Выгрузить() нажать Рассчитать и изучить полученную таблицу значений. Работает?

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

  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти

(35) Там где ругается Напишите

СведенияОПокупателе = ФормированиеПечатныхФорм.СведенияОЮрФизЛице(ДанныеПечати.Контрагент, ДанныеПечати.Дата);

  • Скопировать ссылку
  • Перейти
  • Скопировать ссылку
  • Перейти

(39) Банковские реквизиты будут в СведенияОПокупателе.

Чтобы не мучиться долго, можешь прямо в ВычислитьВыражение писать свой текст и смотреть на результат. Еще Отладка - Табло полезная штука. Там можно смотреть на несколько переменных и писать даже функции.

Т.е запускаешь отладку. Останавливаешься на точке остановки, открываешь Табло. В 1 строку пишешь

Смотришь результат. Если не устраивает прям в табло меняешь что считаешь нужным, и смотришь что получается. Упростит жизнь.

📎📎📎📎📎📎📎📎📎📎