Имя: Пароль:
1C
 
Помогите Выбрать расчетный счет
0 Смешной 1С
 
27.04.10
12:56
Первый запрос получает контрагента:


Запрос = Новый Запрос;      
   Запрос.Текст =
       "ВЫБРАТЬ
       |    Контрагенты.Ссылка,
       |    Контрагенты.Наименование,
       |    Контрагенты.НаименованиеПолное,
       |    Контрагенты.ИНН,
       |    Контрагенты.КПП,
       |    Контрагенты.Код,
       |    Контрагенты.ЛицевойСчет
       |ИЗ
       |    Справочник.Контрагенты КАК Контрагенты
       |ГДЕ
   |    Контрагенты.Ссылка = &Контрагент";
   Запрос.УстановитьПараметр("Контрагент", Шапка.Грузополучатель);

       Выборка = Запрос.Выполнить().Выбрать();
       Выборка.Следующий();

Второй его счета и банки.

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

ВыборкаБанк = ЗапросБанк.Выполнить().Выбрать();

Нужно выбрать Основной расчетный счет:

    ВыборкаБанк.Следующий();

   СпрН = Выборка.Ссылка.ПолучитьОбъект();
   Если СпрН.ОсновнойБанковскийСчет = ВыборкаБанк.Ссылка Тогда
       БанкПлательщика = ВыборкаБанк.Банк;
       БИКПлательщика = "БИК " + Справочники.Банки.НайтиПоНаименованию(ВыборкаБанк.Банк).Код;
       РСПлательщика = "р/с " + ВыборкаБанк.НомерСчета;
   Иначе
       ВыборкаБанк.Следующий();
       КонецЕсли;


Но так не срабатывает. Если никакой не указан основным, то тогда выбирает. А если есть ОСНОВНОЙ, то ничего не выводит.
1 чувак
 
27.04.10
12:58
У контрагента есть реквизит "Основной банковский счет"
2 Смешной 1С
 
27.04.10
13:01
(1) Я использую его.
Если СпрН.ОсновнойБанковскийСчет = ВыборкаБанк.Ссылка Тогда

Но не работает
3 чувак
 
27.04.10
13:03
Провер в отладке эти два значения,типы совпадают?
4 Смешной 1С
 
27.04.10
13:06
Да, типы одинаковые.

Он первый раз зашел в цикл, увидел что банки не равны, по Иначе сделал Выборка.Следущий и все
5 Vitello
 
27.04.10
13:07
Ты что в итоге то хочешь сделать?
6 Шапокляк
 
27.04.10
13:08
ВыборкаБанк = ЗапросБанк.Выполнить().Выбрать();
Пока ВыборкаБанк.Следующий() Цикл
что хошь проверяй
КонецЦикла;
только зачем такой огород городить - Шапка.Грузополучатель.ОсновнойБанковскийСчет - и ты уже там. Если надо порюхать все счета кроме основного, бери второй запрос - банковские счета где владелец такой-то и ссылка не такая-то (основной банковский счет)
7 Prikum
 
27.04.10
13:11
(5) (6) Не спугните, мы к пятнице готовимся! На прошлой неделе, тоже самое было, тоже основные банковские счета искали! Это у него хобби такое!
8 Смешной 1С
 
27.04.10
13:21
(6) Да не работает так
9 Смешной 1С
 
27.04.10
13:24
Там значение по ВыборкаБанк.Ссылка у обоих банков стоит основной.

Надо как то по наименованию, типа

       Пока ВыборкаБанк.Следующий() Цикл
           Если СпрН.ОсновнойБанковскийСчет.Банк.Наименование = ВыборкаБанк.Наименование Тогда
               БанкПлательщика = ВыборкаБанк.Банк;
               БИКПлательщика = "БИК " + Справочники.Банки.НайтиПоНаименованию(ВыборкаБанк.Банк).Код;
               РСПлательщика = "р/с " + ВыборкаБанк.НомерСчета;
           КонецЕсли;
       КонецЦикла;

Но так тоже не работает
10 Mort
 
27.04.10
13:29
Это шутка или автор серьезно ?
11 Смешной 1С
 
27.04.10
13:29
(10)Это не шутка. Подскажите если знаете.
12 Prikum
 
27.04.10
13:32
(10) А ты подними ветки автора, только на прошлой неделе разбирали выборку с основным счетом контрагента.
13 Vitello
 
27.04.10
13:32
Ты автор главное на (5) не отвечай...
14 Смешной 1С
 
27.04.10
13:33
(13) Я проглядел ваш вопрос (5). Я хочу вывести банк, который является основным для контрагента
15 Vitello
 
27.04.10
13:34
Тебе же сказали что он лежит в реквизите ОсновнойБанковскийСчет
16 Vitello
 
27.04.10
13:34
у контрагента
17 Смешной 1С
 
27.04.10
13:35
(16) Я знаю это я пытаюсь его взять оттуда. Что в (0) у меня не так?
18 Vitello
 
27.04.10
13:36
(17)Все не так. Кури (6), глубоко затягиваясь.
19 hhhh
 
27.04.10
13:38
(17) ну так попробуй

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

       Выборка = Запрос.Выполнить().Выбрать();
       Выборка.Следующий();

        БанкПлательщика = Выборка.Банк;
        БИК = Быборка.БИК;
        НомерСчета = Выборка.НомерСчета;

второй запрос выкинь.
20 Смешной 1С
 
27.04.10
13:39
Пока ВыборкаБанк.Следующий() Цикл
Если СпрН.ОсновнойБанковскийСчет = ВыборкаБанк.Ссылка Тогда
       БанкПлательщика = ВыборкаБанк.Банк;
   БИКПлательщика = "БИК " + Справочники.Банки.НайтиПоНаименованию(ВыборкаБанк.Банк).Код;
   РСПлательщика = "р/с " + ВыборкаБанк.НомерСчета;
КонецЕсли;
КонецЦикла;

Всем Спасибо, заработало
21 Vitello
 
27.04.10
13:39
(19)Молодец, родил быдлокодера :))
22 Vitello
 
27.04.10
13:39
Мля, тут тока лоботомия поможет походу
23 hhhh
 
27.04.10
13:54
(21) в данном случае это не плохо.
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.