Консультация № 179830
01.09.2010, 08:48
45.00 руб.
0 11 2
Здравствуйте, уважаемые эксперты! 1С:Предприятие 8.1 (8.1.13.41). Конфигурация нетиповая Управление производственным предприятием, редакция 1.1 (1.1.9.3), доступ через терминал. Требуется создать отчет, в котором выводится информация по контрагентам (наименование, ИНН, КПП, адрес, телефон, банковские реквизиты). Отчет построил через конструктор. Все поля выводятся в отчет, кроме банковского счета. Если в графе банковские счета у контрагента счет не выделен как основной, то он не выводится, хотя есть. Помогите сделать условие чтобы при выведении отчета в отдельном поле выводилось стоит пометка основной либо не стоит.

Обсуждение

Неизвестный
01.09.2010, 08:58
общий
Владимир45:
подскажите еще как добавить дополнительно поле в отчет и поместить этот код к примеру в него. Я еще новичек, еле-еле конструктор осилил
давно
Студент
218854
56
01.09.2010, 09:02
общий
05.09.2010, 15:09
это ответ
Здравствуйте, mapat89.
Смотрю по УПП 1.2.7 (релиза ниже у меня нет): справочник БанковскиеСчета подчинен справочнику Контрагенты. В справочнике Контрагенты есть реквизит ОсновнойБанковскийСчет, в котором сохраняется основной банковский счет из справочника БанковскиеСчета.

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


Добавил из мини-форума:
После слов "ВЫБРАТЬ РАЗЛИЧНЫЕ" надо добавить "БанковскиеСчета.Ссылка КАК БанковскийСчет," и в поля построителя также добавить.

Вот, что получается:
Код:
ВЫБРАТЬ РАЗЛИЧНЫЕ
Контрагенты.Код КАК Код,
Контрагенты.Ссылка КАК Наименование,
Контрагенты.ИНН,
Контрагенты.КПП,
Контрагенты.ОсновнойМенеджерПокупателя,
ПРЕДСТАВЛЕНИЕ(Контрагенты.ОсновнойМенеджерПокупателя),
Контрагенты.ОсновнойБанковскийСчет.Банк,
ПРЕДСТАВЛЕНИЕ(Контрагенты.ОсновнойБанковскийСчет.Банк),
Контрагенты.ОсновнойДоговорКонтрагента.Ссылка,
Контрагенты.ОсновнойДоговорКонтрагента.Представление,
Контрагенты.Представление,
Контрагенты.ОсновноеКонтактноеЛицо,
ПРЕДСТАВЛЕНИЕ(Контрагенты.ОсновноеКонтактноеЛицо),
Контрагенты.ОсновнойБанковскийСчет,
ПРЕДСТАВЛЕНИЕ(Контрагенты.ОсновнойБанковскийСчет),
БанковскиеСчета.Ссылка КАК БанковскийСчет,
// В этом поле будет пометка - основной счет (истина) или нет (ложь)
ВЫБОР
КОГДА БанковскиеСчета.Ссылка = БанковскиеСчета.Владелец.ОсновнойБанковскийСчет
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ КАК Пометка_основной
{ВЫБРАТЬ
Код,
Наименование.*,
ИНН,
КПП,
Пометка_основной,
ОсновнойМенеджерПокупателя.*,
ОсновнойБанковскийСчет.*,
ОсновнойБанковскийСчетБанк.*,
ОсновнойДоговорКонтрагентаСсылка.*,
ОсновноеКонтактноеЛицо.*,
БанковскийСчет.*,
Пометка_основной}
ИЗ
Справочник.Контрагенты КАК Контрагенты
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.БанковскиеСчета КАК БанковскиеСчета
ПО Контрагенты.Ссылка = БанковскиеСчета.Владелец

УПОРЯДОЧИТЬ ПО
Код
{УПОРЯДОЧИТЬ ПО
Код,
Наименование.*,
ИНН,
КПП,
Пометка_основной,
ОсновнойМенеджерПокупателя.*,
ОсновнойБанковскийСчет.*,
ОсновнойБанковскийСчетБанк.*,
ОсновнойДоговорКонтрагентаСсылка.*,
ОсновноеКонтактноеЛицо.*}
ИТОГИ ПО
Наименование
Неизвестный
01.09.2010, 09:03
общий
кнопочка добавить в третей часта первой закладки - и тот код который я дал - закинуть туда
предварительно поменять

БанковскийСчет -- на реквизит контрагента (УПП под рукой нет)

Справочник.БанковскиеСчета - название справочника счетов (Опять таки нет УПП под рукой)
Неизвестный
01.09.2010, 11:20
общий
Баранова Ирина Николаевна:
при установки связи, чтобы я не выбирал для выборки, всё равно выводится только один расчетный счет который указан как основной. Даже если их есть два, один основной - выводится только основной.
давно
Студент
218854
56
01.09.2010, 11:29
общий
mapat89:
Вот такой текст запроса получился у меня. Проверьте в своем запросе выбрали ли вы в поля ссылку на банковский счет

ВЫБРАТЬ
Контрагенты.Ссылка КАК Контрагент,
БанковскиеСчета.Ссылка КАК БанковскийСчет
ИЗ
Справочник.Контрагенты КАК Контрагенты
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.БанковскиеСчета КАК БанковскиеСчета
ПО Контрагенты.Ссылка = БанковскиеСчета.Владелец
ИТОГИ ПО
Контрагент
Неизвестный
01.09.2010, 11:54
общий
Баранова Ирина Николаевна:
Проверил как Вы писали. В поле ОсновнойБанковский счет выводит только один счет - основной. Вот мой полный запрос

ВЫБРАТЬ РАЗЛИЧНЫЕ
Контрагенты.Код КАК Код,
Контрагенты.Ссылка КАК Наименование,
Контрагенты.ИНН,
Контрагенты.КПП,
Контрагенты.ОсновнойМенеджерПокупателя,
ПРЕДСТАВЛЕНИЕ(Контрагенты.ОсновнойМенеджерПокупателя),
Контрагенты.ОсновнойБанковскийСчет.Банк,
ПРЕДСТАВЛЕНИЕ(Контрагенты.ОсновнойБанковскийСчет.Банк),
Контрагенты.ОсновнойДоговорКонтрагента.Ссылка,
Контрагенты.ОсновнойДоговорКонтрагента.Представление,
Контрагенты.Представление,
Контрагенты.ОсновноеКонтактноеЛицо,
ПРЕДСТАВЛЕНИЕ(Контрагенты.ОсновноеКонтактноеЛицо),
Контрагенты.ОсновнойБанковскийСчет,
ПРЕДСТАВЛЕНИЕ(Контрагенты.ОсновнойБанковскийСчет),
ВЫБОР
КОГДА Контрагенты.ОсновнойБанковскийСчет <> ЗНАЧЕНИЕ(Справочник.БанковскиеСчета.ПустаяСсылка)
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ КАК Пометка_основной
{ВЫБРАТЬ
Код,
Наименование.*,
ИНН,
КПП,
Пометка_основной,
ОсновнойМенеджерПокупателя.*,
ОсновнойБанковскийСчет.*,
ОсновнойБанковскийСчетБанк.*,
ОсновнойДоговорКонтрагентаСсылка.*,
ОсновноеКонтактноеЛицо.*}
ИЗ
Справочник.Контрагенты КАК Контрагенты
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.БанковскиеСчета КАК БанковскиеСчета
ПО Контрагенты.Ссылка = БанковскиеСчета.Владелец

УПОРЯДОЧИТЬ ПО
Код
{УПОРЯДОЧИТЬ ПО
Код,
Наименование.*,
ИНН,
КПП,
Пометка_основной,
ОсновнойМенеджерПокупателя.*,
ОсновнойБанковскийСчет.*,
ОсновнойБанковскийСчетБанк.*,
ОсновнойДоговорКонтрагентаСсылка.*,
ОсновноеКонтактноеЛицо.*}
ИТОГИ ПО
Наименование
давно
Студент
218854
56
01.09.2010, 12:27
общий
mapat89:
Соединение вы выполнили верно, только вот в выборку полей не добавили выбор данных из справочника БанковскиеСчета.
После слов "ВЫБРАТЬ РАЗЛИЧНЫЕ" надо добавить "БанковскиеСчета.Ссылка КАК БанковскийСчет," и в поля построителя также добавить.

Вот что получается:
Код:
ВЫБРАТЬ РАЗЛИЧНЫЕ
Контрагенты.Код КАК Код,
Контрагенты.Ссылка КАК Наименование,
Контрагенты.ИНН,
Контрагенты.КПП,
Контрагенты.ОсновнойМенеджерПокупателя,
ПРЕДСТАВЛЕНИЕ(Контрагенты.ОсновнойМенеджерПокупателя),
Контрагенты.ОсновнойБанковскийСчет.Банк,
ПРЕДСТАВЛЕНИЕ(Контрагенты.ОсновнойБанковскийСчет.Банк),
Контрагенты.ОсновнойДоговорКонтрагента.Ссылка,
Контрагенты.ОсновнойДоговорКонтрагента.Представление,
Контрагенты.Представление,
Контрагенты.ОсновноеКонтактноеЛицо,
ПРЕДСТАВЛЕНИЕ(Контрагенты.ОсновноеКонтактноеЛицо),
Контрагенты.ОсновнойБанковскийСчет,
ПРЕДСТАВЛЕНИЕ(Контрагенты.ОсновнойБанковскийСчет),
БанковскиеСчета.Ссылка КАК БанковскийСчет,
|// это устовие только выведет - заполнен реквизит "Основной счет" или нет
ВЫБОР
КОГДА Контрагенты.ОсновнойБанковскийСчет <> ЗНАЧЕНИЕ(Справочник.БанковскиеСчета.ПустаяСсылка)
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ КАК Пометка_основной
// а это условие - отметит, какой из перечисленных счетов основной (истина) или нет (ложь)
ВЫБОР
КОГДА БанковскиеСчета.Ссылка = БанковскиеСчета.Владелец.ОсновнойБанковскийСчет
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ КАК Пометка_основной
{ВЫБРАТЬ
Код,
Наименование.*,
ИНН,
КПП,
Пометка_основной,
ОсновнойМенеджерПокупателя.*,
ОсновнойБанковскийСчет.*,
ОсновнойБанковскийСчетБанк.*,
ОсновнойДоговорКонтрагентаСсылка.*,
ОсновноеКонтактноеЛицо.*,
БанковскийСчет.*,
Пометка_основной}
ИЗ
Справочник.Контрагенты КАК Контрагенты
ЛЕВОЕ СОЕДИНЕНИЕ Справочник.БанковскиеСчета КАК БанковскиеСчета
ПО Контрагенты.Ссылка = БанковскиеСчета.Владелец

УПОРЯДОЧИТЬ ПО
Код
{УПОРЯДОЧИТЬ ПО
Код,
Наименование.*,
ИНН,
КПП,
Пометка_основной,
ОсновнойМенеджерПокупателя.*,
ОсновнойБанковскийСчет.*,
ОсновнойБанковскийСчетБанк.*,
ОсновнойДоговорКонтрагентаСсылка.*,
ОсновноеКонтактноеЛицо.*}
ИТОГИ ПО
Наименование


Правка: Владимир Лазурко
Неизвестный
02.09.2010, 05:31
общий
это ответ
Здравствуйте, mapat89. Как вариант - плясать от справочника банковских счетов:

ВЫБРАТЬ
БанковскиеСчета.Владелец.Ссылка КАК Контрагент,
БанковскиеСчета.Владелец.ИНН КАК ИНН,
БанковскиеСчета.Владелец.КПП КАК КПП,
// сюда воткнуть остальные необходимые реквизиты контрагента из поля владелец справочника БанковскиеСчета
БанковскиеСчета.Ссылка КАК Счет,
ВЫБОР
КОГДА БанковскиеСчета.Ссылка = БанковскиеСчета.Владелец.ОсновнойБанковскийСчет.Ссылка
ТОГДА "Основной" //тут любая строка
ИНАЧЕ ""
КОНЕЦ КАК Признак
ИЗ
Справочник.БанковскиеСчета КАК БанковскиеСчета
ИТОГИ ПО
ОБЩИЕ,
Контрагент // здесь группируем по контрагентам
Неизвестный
04.09.2010, 09:32
общий
Полозов Олег aka Asher:
Если плясать от БанковскихСчетов, то в выборку не попадут контрагенты, у которых нет банковских счетов.

Пока лучший вариант у Барановой Ирины.
Неизвестный
04.09.2010, 10:22
общий
да, способ Ирины подошел. Спасибо! Тему можно закрыть
Неизвестный
05.09.2010, 14:24
общий
Владимир45:
Ваше условие в данной ситуации не подходит. По сути проверяется на заполненность реквизита.

Правильно сделать так:
ВЫБОР
КОГДА БанковскиеСчета.Ссылка = БанковскиеСчета.Владелец.ОсновнойБанковскийСчет
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ КАК Пометка_основной
Форма ответа