Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
15 Дек 2017, 18:46
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Получить банковский счет контрагента  (Прочитано 15890 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Yuri_T

  • *
  • Сообщений: 9
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-04-09
  • Сайт: 
  • Профессия: Программист 1С
Всем доброго времени суток!!!
Версия 8.2.
Есть справочник Контрагенты и справочник "БанковскиеСчета"
У него есть реквизит "ОсновнойБанковскийСчет" - ссылка на справочник "БанковскиеСчета".
Еще в этом справочнике контрагентов есть форма "ФормаЭлемента".
У этой формы один из реквизитов называется "БанковскиеСчета" и тип у него  "СправочникСписок.БанковскиеСчета"
На форме расположена таблица, у которой свойство "Данные" имеет значение
"БанковскиеСчета"
В ней расположены все банковские счета данного контрагента.
Если в таблице заполнена одна строка,
то поле "ОсновнойБанковскийСчет" может быть пустым.
Как, не открывая формы, программно получить банковский счет контрагента, у которого не заполнено поле "ОсновнойБанковскийСчет"
(к базе подключаюсь извне)
Заранее всем спасибо!!!

С уважением, Юрий


Оффлайн Новенькая

  • ****
  • Сообщений: 250
  • РЕПУТАЦИЯ: 21
  • КПД: 8%
  • Регистрация: 2011-02-21
  • Сайт: 
  • Профессия: Программист 1С
Может как-то так:
ВЫБРАТЬ
   Контрагенты.Ссылка КАК Контрагент,
   МИНИМУМ(БанковскиеСчета.Ссылка) КАК Счет
ИЗ
   Справочник.Контрагенты КАК Контрагенты
      ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.БанковскиеСчета КАК БанковскиеСчета
      ПО Контрагенты.Ссылка = БанковскиеСчета.Владелец
ГДЕ
   Контрагенты.ОсновнойБанковскийСчет = &ПустойБС

СГРУППИРОВАТЬ ПО
   Контрагенты.Ссылка

функция МИНИМУМ(БанковскиеСчета.Ссылка) - берет первый счет, если счетов несколько в табличной части...Если вы уверены что у вас там всегда один счет, то можно просто:

ВЫБРАТЬ
   Контрагенты.Ссылка КАК Контрагент,
   БанковскиеСчета.Ссылка КАК Счет
ИЗ
   Справочник.Контрагенты КАК Контрагенты
      ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.БанковскиеСчета КАК БанковскиеСчета
      ПО Контрагенты.Ссылка = БанковскиеСчета.Владелец
ГДЕ
   Контрагенты.ОсновнойБанковскийСчет = &ПустойБС

Оффлайн Yuri_T

  • *
  • Сообщений: 9
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-04-09
  • Сайт: 
  • Профессия: Программист 1С
Большое спасибо за ответ, но в отладчике показывает
Контрагент и Счет - Ошибка чтения значения...

Оффлайн Besart

  • *****
  • Сообщений: 678
  • РЕПУТАЦИЯ: 142
  • КПД: 21%
  • Регистрация: 2012-12-10
    • Skype: artfa.a
  • Компания: Фрилансер
  • Профессия: Программист 8.1
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Контрагенты.Ссылка  Как Контрагент,
| Контрагенты.ОсновнойБанковскийСчет Как Счет
|ИЗ
| Справочник.Контрагенты КАК Контрагенты";

РезультатЗапроса = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Если ВыборкаДетальныеЗаписи.Счет = Справочники.БанковскиеСчета.ПустаяСсылка()Тогда
     Сообщить(ВыборкаДетальныеЗаписи.Контрагент)

КонецЕсли; КонецЦикла;

КонецПроцедуры
делается ч\з внешнюю обарботку, выдает список контрагентов у к\х не задан основной банковский счет

Оффлайн Yuri_T

  • *
  • Сообщений: 9
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-04-09
  • Сайт: 
  • Профессия: Программист 1С
На самом деле, неважно, пустой ли основной банковский счет или нет. Эту информацию я привел лишь для того, чтобы показать, что пользователь не всегда обращает внимание на это свойство у контрагента - основной банковский счет. Если он один, то пользователь считает, что он по умолчанию "основной". И "добыть" его можно уже только через список банковских счетов. Поэтому мне нужно вытащить информацию из этой табличной части на форме у справочника контрагентов. Вот непонятно, где физически она хранится? В вышеприведенных примерах идет связь по полю ссылка-владелец:
Контрагенты.Ссылка = БанковскиеСчета.Владелец
Но как это соотносится с таблицей банковских счетов на форме контрагента?
"ОсновнойБанковскийСчет" - это реквизит самого справочника контрагентов
А "БанковскиеСчета" - это данные ->табличного элемента-> формы "ФормаЭлемента" справочника контрагентов
у которого тип значения ="СправочникСписок.БанковскиеСчета"

Оффлайн Besart

  • *****
  • Сообщений: 678
  • РЕПУТАЦИЯ: 142
  • КПД: 21%
  • Регистрация: 2012-12-10
    • Skype: artfa.a
  • Компания: Фрилансер
  • Профессия: Программист 8.1
Но как это соотносится с таблицей банковских счетов на форме контрагента?
через ссылку

Вот непонятно, где физически она хранится
хранятся в соответствующих таблицах для данного объекта


Оффлайн Yuri_T

  • *
  • Сообщений: 9
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-04-09
  • Сайт: 
  • Профессия: Программист 1С
Если через ссылку,
тогда почему не работает такая конструкция:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Контрагенты.Ссылка КАК Контрагент,
|БанковскиеСчета.Ссылка КАК Счет
|ИЗ
| Справочник.Контрагенты КАК Контрагенты
|     ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.БанковскиеСчета КАК |БанковскиеСчета
|     ПО Контрагенты.Ссылка = БанковскиеСчета.Владелец";
Выборка = Запрос.Выполнить().Выбрать();

Оффлайн Besart

  • *****
  • Сообщений: 678
  • РЕПУТАЦИЯ: 142
  • КПД: 21%
  • Регистрация: 2012-12-10
    • Skype: artfa.a
  • Компания: Фрилансер
  • Профессия: Программист 8.1
У него есть реквизит "ОсновнойБанковскийСчет" - ссылка на справочник "БанковскиеСчета".
у вас же вроде реквизит называется ОсновнойБанковскийСчет, а почему в запросе тогда |БанковскиеСчета.Ссылка КАК Счет, вы запрос конструктором писали или руками

Добавлено: 09 Апр 2013, 20:37

забыл добавить, в запросе нужно делать полное соединение, а не внутреннее

Последний раз редактировалось: Besart; 09 Апр 2013, 20:37. Причина: Объединение сообщений

Оффлайн Yuri_T

  • *
  • Сообщений: 9
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2013-04-09
  • Сайт: 
  • Профессия: Программист 1С
У него есть реквизит "ОсновнойБанковскийСчет" - ссылка на справочник "БанковскиеСчета".
у вас же вроде реквизит называется ОсновнойБанковскийСчет, а почему в запросе тогда |БанковскиеСчета.Ссылка КАК Счет, вы запрос конструктором писали или руками

Добавлено: 09 Апр 2013, 20:37

забыл добавить, в запросе нужно делать полное соединение, а не внутреннее


Я извиняюсь, просто я сам запутал, наверное этим реквизитом - не нужно было его сюда, вообще, привлекать. Вот перефразировал:


Есть справочник "Контрагенты" и справочник "БанковскиеСчета"
 В этом справочнике контрагентов есть форма "ФормаЭлемента".
 У этой формы один из реквизитов называется "БанковскиеСчета" и тип у него "СправочникСписок.БанковскиеСчета"
 На форме расположена таблица, у которой свойство "Данные" имеет значение
 "БанковскиеСчета"
 В ней расположены все банковские счета данного контрагента.
 Как программно получить банковские счета (любую запись) контрагента
 (к базе подключаюсь извне).
В обычной реляционной базе все просто - есть таблица контрагент, есть таблица БанковскиеСчета. А есть таблица КонтрагентСчета, в которой есть два поля - СчетчикКонтрагент (ключ таблицы Контрагент) и СчетчикБанковскийСчет (счетчик таблицы БанковскиеСчета). К примеру, на созданной форме в любом клиентском приложении,  выбранного контрагента - таблица с его банковскими счетами имеет источник записи  простой запрос к этой таблице, в котором фильтруются записи: WHERE СчетчикКонтрагент=Заданный контрагент на форме. Здесь-то как? Ведь данные формы нигде не хранятся... К ней не обратишься так, как к справочнику или документу, если она не открыта? Или я ошибаюсь...

Оффлайн Besart

  • *****
  • Сообщений: 678
  • РЕПУТАЦИЯ: 142
  • КПД: 21%
  • Регистрация: 2012-12-10
    • Skype: artfa.a
  • Компания: Фрилансер
  • Профессия: Программист 8.1
скрин формы и скрин где указан тип можете показать


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
180 Сообщений
ilyay ilyay
69 Сообщений
alex0402
54 Сообщений
oleg-x
48 Сообщений
AIFrame
46 Сообщений
andron81_81
44 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
Golickoff Golickoff
31 Сообщений
BuhRust
30 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 348
  • Точка Скрытых: 0
  • Точка Пользователей: 5
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal