powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / [игнор отключен] [закрыт для гостей] / Запрос через язык 1С. Что неправильно делаю?
8 сообщений из 8, страница 1 из 1
Запрос через язык 1С. Что неправильно делаю?
    #36700978
KononovAI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.

Подскажите, пожалуйста, где ошибся...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
Функция   ПолучитьБанковскийСчетКонтрагента (_Контрагент, _Счет) Экспорт
	Запрос = Новый Запрос();
	Запрос.Текст = "	
		|ВЫБРАТЬ
		|	Контрагенты.Ссылка,
		|	БанковскиеСчета.Ссылка КАК БанковскийСчет,
		|	Контрагенты.ОсновнойБанковскийСчет
		|ИЗ
		|	Справочник.БанковскиеСчета КАК БанковскиеСчета
		|		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
		|		ПО БанковскиеСчета.Владелец = Контрагенты.Ссылка
		|ГДЕ
		|	Контрагенты.Ссылка = &Контрагент
		|	И БанковскиеСчета.НомерСчета = &НомерСчета
		|";
	Запрос.УстановитьПараметр("Контрагент", _Контрагент);
	Запрос.УстановитьПараметр("НомерСчета", _Счет);
	
	Выборка = Запрос.Выполнить().Выбрать();
	Если      Выборка.Количество() =  0  Тогда
		Возврат Неопределено
	ИначеЕсли Выборка.Количество() =  1  Тогда
		Возврат Выборка.БанковскийСчет;
	Иначе
		Счет = Выборка.БанковскийСчет;
		Пока Выборка.Следующий() Цикл
			Если Выборка.БанковскийСчет = Выборка.ОсновнойБанковскийСчет Тогда 
				Счет = Выборка.БанковскийСчет;
			КонецЕсли;			
		КонецЦикла;			
		Возврат Счет;
	КонецЕсли;	
КонецФункции

В построителе запрос отрабатывается нормально. Через язык
Код: plaintext
Выборка = Запрос.Выполнить().Выбрать();
работать не хочет.


Вызываю так:

Код: plaintext
ПлательщикСчет = ПолучитьБанковскийСчетКонтрагента (Плательщик, _СчетПлательщика);

Плательщик - ссылка на контрагента
_СчетПлательщика - строка
...
Рейтинг: 0 / 0
Запрос через язык 1С. Что неправильно делаю?
    #36701088
Нет реги
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
ИначеЕсли Выборка.Количество() =  1  Тогда
Выборка.Следующий();
Возврат Выборка. БанковскийСчет;
...
Рейтинг: 0 / 0
Запрос через язык 1С. Что неправильно делаю?
    #36701196
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
запрос можно упростить до:

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

УПОРЯДОЧИТЬ ПО
ВЫБОР
КОГДА БанковскиеСчета.Владелец.ОсновнойБанковскийСчет = БанковскиеСчета.Ссылка
ТОГДА 0
ИНАЧЕ 1
КОНЕЦ
...
Рейтинг: 0 / 0
Запрос через язык 1С. Что неправильно делаю?
    #36701244
tiniji
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Безобразие какое то а не код...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
	Запрос = Новый Запрос;
	Запрос.Текст = "	
		|ВЫБРАТЬ
		|	БанковскиеСчета.Ссылка КАК БанковскийСчет,
		|	БанковскиеСчета.Владелец.ОсновнойБанковскийСчет КАК ОсновнойБанковскийСчет
		|ИЗ
		|	Справочник.БанковскиеСчета КАК БанковскиеСчета
		|ГДЕ
		|	БанковскиеСчета.Владелец = &Контрагент
		|	И БанковскиеСчета.НомерСчета = &НомерСчета
		|";
	Запрос.УстановитьПараметр("Контрагент", _Контрагент);
	Запрос.УстановитьПараметр("НомерСчета", _Счет);
	
	Выборка = Запрос.Выполнить().Выбрать();
	Если  Выборка.Следующий() Тогда
		Счет = ?(Выборка.ОсновнойБанковскийСчет.Пустая(), Выборка.БанковскийСчет, Выборка.ОсновнойБанковскийСчет);
		Возврат Счет;
	КонецЕсли;

	Возврат Неопределено;
...
Рейтинг: 0 / 0
Запрос через язык 1С. Что неправильно делаю?
    #36701259
tiniji
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Naf,

+ 1. Самый оптимизированный метод =)
...
Рейтинг: 0 / 0
Запрос через язык 1С. Что неправильно делаю?
    #36702411
Программист 1с
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Naf, А почему не

ТОГДА Истина
ИНАЧЕ Ложь
...
Рейтинг: 0 / 0
Запрос через язык 1С. Что неправильно делаю?
    #36711506
Фотография XenoX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а можно ведь и еще проще....
Код: plaintext
1.
возврат справочники.банковскиеСчета.найтиПо......
...
Рейтинг: 0 / 0
Запрос через язык 1С. Что неправильно делаю?
    #36711766
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
XenoX,

не совсем
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / [игнор отключен] [закрыт для гостей] / Запрос через язык 1С. Что неправильно делаю?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]