|
Кодинг в 1С 8 | ☑ | ||
---|---|---|---|---|
0
1Смучитель
11.05.12
✎
14:40
|
Как правильно установить значение в качестве результата?
В приведенной функции значение не устанавливается Функция НайтиИлиСоздатьБанковскийСчет(Владелец, НомСчета, БИК) Экспорт БанкСсылка = Справочники.Банки.НайтиПоКоду(БИК); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | БанковскиеСчета.НомерСчета КАК НомерСчета |ИЗ | Справочник.БанковскиеСчета КАК БанковскиеСчета | |ГДЕ | БанковскиеСчета.Владелец = &Владелец И | БанковскиеСчета.НомерСчета = &НомСчета И | БанковскиеСчета.Банк = &БанкСсылка"; Запрос.УстановитьПараметр("Владелец", Владелец); Запрос.УстановитьПараметр("НомСчета", НомСчета); Запрос.УстановитьПараметр("БанкСсылка", БанкСсылка); Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Следующий() Тогда // Расчетный счет у текущего контрагента найден //Счет = Выборка.Выбрать(НомерСчета); Возврат Выборка.НомерСчета; Иначе КонецЕсли; КонецФункции |
|||
1
Dzenn
гуру
11.05.12
✎
14:43
|
Результат = Запрос.Выполнить();
Если НЕ Результат.Пустой() Тогда Выборка = Результат.Выбрать(); Выборка.Следующий(); Возврат Выборка.НомерСчета; Иначе Возврат Неопределено; КонецЕсли; |
|||
2
Jofa
11.05.12
✎
14:44
|
Если Выборка.Следующий() Тогда // Расчетный счет у текущего контрагента найден
Счет = Выборка.НомерСчета; Возврат Выборка.НомерСчета; Иначе КонецЕсли; |
|||
3
Fragster
гуру
11.05.12
✎
14:44
|
Если Выборка.Следующий() Тогда // Расчетный счет у текущего контрагента найден
Возврат Выборка.НомерСчета; Иначе Возврат "Интересно, почему функция называется НайтиИлиСоздатьБанковскийСчет?"; КонецЕсли; |
|||
4
Fragster
гуру
11.05.12
✎
14:45
|
БанковскиеСчета.Ссылка КАК НомерСчета
|
|||
5
Fragster
гуру
11.05.12
✎
14:45
|
(4)+ в запросе
|
|||
6
1Смучитель
11.05.12
✎
14:56
|
Функция НайтиИлиСоздатьБанковскийСчет(Владелец, НомСчета, БИК) Экспорт
БанкСсылка = Справочники.Банки.НайтиПоКоду(БИК); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | БанковскиеСчета.НомерСчета КАК НомерСчета |ИЗ | Справочник.БанковскиеСчета КАК БанковскиеСчета | |ГДЕ | БанковскиеСчета.Владелец = &Владелец И | БанковскиеСчета.НомерСчета = &НомСчета И | БанковскиеСчета.Банк = &БанкСсылка"; Запрос.УстановитьПараметр("Владелец", Владелец); Запрос.УстановитьПараметр("НомСчета", НомСчета); Запрос.УстановитьПараметр("БанкСсылка", БанкСсылка); Результат = Запрос.Выполнить(); Если НЕ Результат.Пустой() Тогда Выборка = Результат.Выбрать(); Выборка.Следующий(); Возврат Выборка.НомерСчета; Иначе Возврат Неопределено; КонецЕсли; КонецФункции вызываю: РасчетныйСчет = НайтиИлиСоздатьБанковскийСчет(Контрагент, РасчСч, БИК); Значения у параметров: Контрагент, РасчСч, БИК есть, а сама функция = Неопределено, а должно быть значение = РасчСч ??? |
|||
7
Fragster
гуру
11.05.12
✎
14:59
|
пздц.
|
|||
8
Fragster
гуру
11.05.12
✎
14:59
|
замени функцию на
Функция НайтиИлиСоздатьБанковскийСчет(Владелец, НомСчета, БИК) Экспорт Возврат НомСчета; КонецФункции |
|||
9
Infsams654
11.05.12
✎
15:00
|
Видимо (3)(6) потому, что
Иначе СчетОбъект = Справочники.БанковскиеСчета.СоздатьЭлемент(); СчетОбъект.Владелец = Владелец; СчетОбъект.НомерСчета = НомСчета; СчетОбъект.Банк = БанкСсылка; СчетОбъект.Записать(); Возврат СчетОбъект.Ссылка; КонецЕсли; |
|||
10
Fragster
гуру
11.05.12
✎
15:01
|
(9) весело будет в случае RLS по банкам, например
|
|||
11
Fragster
гуру
11.05.12
✎
15:01
|
(10)+ или по контрагентам
|
|||
12
Infsams654
11.05.12
✎
15:06
|
Если бы мучитель 1С про RLS слышал, то такие вопросы не задавал ...
|
|||
13
1Смучитель
11.05.12
✎
15:10
|
В таком варианте:
Функция НайтиИлиСоздатьБанковскийСчет(Владелец, НомСчета, БИК) Экспорт БанкСсылка = Справочники.Банки.НайтиПоКоду(БИК); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ | БанковскиеСчета.Ссылка КАК НомерСчета |ИЗ | Справочник.БанковскиеСчета КАК БанковскиеСчета | |ГДЕ | БанковскиеСчета.Владелец = &Владелец И | БанковскиеСчета.НомерСчета = &НомСчета И | БанковскиеСчета.Банк = &БанкСсылка"; Запрос.УстановитьПараметр("Владелец", Владелец); Запрос.УстановитьПараметр("НомСчета", НомСчета); Запрос.УстановитьПараметр("БанкСсылка", БанкСсылка); Результат = Запрос.Выполнить(); Если НЕ Результат.Пустой() Тогда Выборка = Результат.Выбрать(); Выборка.Следующий(); Возврат НомСчета; Иначе //Создание новой записи //Возврат Неопределено; КонецЕсли; КонецФункции ничего не поменялось, значение функцией не возвращается |
|||
14
1Смучитель
11.05.12
✎
15:11
|
(11)А в чем криминал? Записи о не найденных контрагентах создаются по данным из внешнего файла
|
|||
15
Reset
11.05.12
✎
15:11
|
В (7) правильный ответ
|
|||
16
cViper
11.05.12
✎
15:40
|
(8)ахахахаа зачетно fragster потролил ТС
|
|||
17
1Смучитель
11.05.12
✎
16:43
|
(16)Трольчишко хотел мучителя затроллить..:)))
|
|||
18
Infsams654
11.05.12
✎
16:55
|
(17) зачем тебе возврат НомерСчета, он и так уже есть. Нужно иметь ссылку на счет - если найден, то существующий, если нет, то вновь созданный.
|
|||
19
1Смучитель
11.05.12
✎
17:19
|
(18)Согласен. Я уже перетёр этот вопрос.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |