|
1C Составной тип | ☑ | ||
---|---|---|---|---|
0
pele
05.06.12
✎
11:21
|
Есть Код:
Процедура ОкончанияВводаТекстаДляРеквизитовСоставногоТипа(Элемент, Текст, Значение) // Окончания ввода текста для реквизита Физические лица составного типа Если ЭлементыФормы.ФИО Тогда Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ФизическиеЛица.Наименование, | ФизическиеЛица.Ссылка |ИЗ | Справочник.ФизическиеЛица КАК ФизическиеЛица |ГДЕ | ФизическиеЛица.Наименование ПОДОБНО &Буква"; Запрос.УстановитьПараметр("Буква",Текст+"%" ); ВыборкаФизЛиц = Запрос.Выполнить().Выбрать(); Если ВыборкаФизЛиц.Количество() > 15 Тогда Возврат; КонецЕсли; Если ВыборкаФизЛиц.Количество() = 1 Тогда ВыборкаФизЛиц.Следующий(); Если ВыборкаФизЛиц.Наименование = Текст Тогда ФизическоеЛицо = ВыборкаФизЛиц.Ссылка; КонецЕсли; Возврат; КонецЕсли; сзФизлица = Новый СписокЗначений; Пока ВыборкаФизЛиц.Следующий() Цикл сзФизлица.Добавить(ВыборкаФизЛиц.Ссылка); КонецЦикла; Если ВыборкаФизЛиц.Ссылка = Неопределено тогда возврат; КонецЕсли; ВыбраннаяСтрока = ВыбратьИзСписка(сзФизлица, Элемент); Если ВыбраннаяСтрока <> Неопределено тогда ФизическоеЛицо =ВыбраннаяСтрока.Значение; КонецЕсли; ИНАЧЕ //Окончания ввода текста для реквизита Контрагенты составного типа Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Контрагенты.Ссылка, | Контрагенты.Наименование |ИЗ | Справочник.Контрагенты КАК Контрагенты |ГДЕ | Контрагенты.Наименование ПОДОБНО &Буква" ; Запрос.УстановитьПараметр("Буква",Текст+"%" ); ВыборкаКонтрагент = Запрос.Выполнить().Выбрать(); Если ВыборкаКонтрагент.Количество() > 15 Тогда Возврат; КонецЕсли; Если ВыборкаКонтрагент.Количество() = 1 Тогда ВыборкаКонтрагент.Следующий(); Если ВыборкаКонтрагент.Наименование = Текст Тогда Контрагент = ВыборкаКонтрагент.Ссылка; КонецЕсли; Возврат; КонецЕсли; сзКонтрогентов = Новый СписокЗначений; Пока ВыборкаКонтрагент.Следующий() Цикл сзКонтрогентов.Добавить(ВыборкаКонтрагент.Ссылка); КонецЦикла; Если ВыборкаКонтрагент.Ссылка = Неопределено тогда возврат; КонецЕсли; ВыбраннаяСтрока = ВыбратьИзСписка(сзКонтрогентов, Элемент); Если ВыбраннаяСтрока <> Неопределено тогда Контрагент =ВыбраннаяСтрока.Значение; КонецЕсли; КонецЕсли; КонецПроцедуры ////////////////////////////////////////// когда вызываю процедуру, для поля ввода конрагент- не работает только для физические лица! помогите???!!! |
|||
1
Нуф-Нуф
05.06.12
✎
11:25
|
что значит не работает
|
|||
2
mkanaev
05.06.12
✎
11:28
|
Если ЭлементыФормы.ФИО Тогда - чего ты сдеся проверяешь?
|
|||
3
cViper
05.06.12
✎
11:29
|
(0) Код одинаковый по сути. Сделай переменную с именем справочника и присваивай ей значение в зависимости от ЭлементыФормы.ФИО. И передавай динамически в запрос. не надо дублировать код.
|
|||
4
cViper
05.06.12
✎
11:29
|
(2) по-моему это флаг на форме.
|
|||
5
cViper
05.06.12
✎
11:30
|
+(4) физлица
|
|||
6
mkanaev
05.06.12
✎
11:30
|
(4) с типом булево?
|
|||
7
cViper
05.06.12
✎
11:32
|
(6)думаю тчо да. По которому он определяет справочник поиска.
|
|||
8
mkanaev
05.06.12
✎
11:33
|
(7) а я думаю что у него структурируемый сложный тип для описания элемента формы!!! а вот ЭлементыФормы.ФИО.Значение - наверно булево.
|
|||
9
mkanaev
05.06.12
✎
11:35
|
кстате УФ или обычные?
|
|||
10
cViper
05.06.12
✎
11:38
|
(9) из (0) понятно что обычыне
|
|||
11
mkanaev
05.06.12
✎
11:56
|
и что же даёт ЭлементыФормы.ФИО в условии?
|
|||
12
pele
05.06.12
✎
12:41
|
Я написала вот этот код:
Процедура ОкончанияВводаТекстаДляРеквизитовСоставногоТипа(Элемент, Текст, Значение) // Окончания ввода текста для реквизита Физические лица составного типа Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ФизическиеЛица.Наименование, | ФизическиеЛица.Ссылка |ИЗ | Справочник.ФизическиеЛица КАК ФизическиеЛица |ГДЕ | ФизическиеЛица.Наименование ПОДОБНО &Буква"; Запрос.УстановитьПараметр("Буква",Текст+"%" ); ВыборкаФизЛиц = Запрос.Выполнить().Выбрать(); Если ВыборкаФизЛиц.Количество() > 15 Тогда Возврат; КонецЕсли; Если ВыборкаФизЛиц.Количество() = 1 Тогда ВыборкаФизЛиц.Следующий(); Если ВыборкаФизЛиц.Наименование = Текст Тогда ФизическоеЛицо = ВыборкаФизЛиц.Ссылка; КонецЕсли; Возврат; КонецЕсли; сзФизлица = Новый СписокЗначений; Пока ВыборкаФизЛиц.Следующий() Цикл сзФизлица.Добавить(ВыборкаФизЛиц.Ссылка); КонецЦикла; Если ВыборкаФизЛиц.Ссылка = Неопределено тогда возврат; КонецЕсли; ВыбраннаяСтрока = ВыбратьИзСписка(сзФизлица, Элемент); Если ВыбраннаяСтрока <> Неопределено тогда ФизическоеЛицо =ВыбраннаяСтрока.Значение; КонецЕсли; //Окончания ввода текста для реквизита Контрагенты составного типа Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Контрагенты.Ссылка, | Контрагенты.Наименование |ИЗ | Справочник.Контрагенты КАК Контрагенты |ГДЕ | Контрагенты.Наименование ПОДОБНО &Буква" ; Запрос.УстановитьПараметр("Буква",Текст+"%" ); ВыборкаКонтрагент = Запрос.Выполнить().Выбрать(); Если ВыборкаКонтрагент.Количество() > 15 Тогда Возврат; КонецЕсли; Если ВыборкаКонтрагент.Количество() = 1 Тогда ВыборкаКонтрагент.Следующий(); Если ВыборкаКонтрагент.Наименование = Текст Тогда Контрагент = ВыборкаКонтрагент.Ссылка; КонецЕсли; Возврат; КонецЕсли; сзКонтрогентов = Новый СписокЗначений; Пока ВыборкаКонтрагент.Следующий() Цикл сзКонтрогентов.Добавить(ВыборкаКонтрагент.Ссылка); КонецЦикла; Если ВыборкаКонтрагент.Ссылка = Неопределено тогда возврат; КонецЕсли; ВыбраннаяСтрока = ВыбратьИзСписка(сзКонтрогентов, Элемент); Если ВыбраннаяСтрока <> Неопределено тогда Контрагент =ВыбраннаяСтрока.Значение; КонецЕсли; КоронецПроцедуры И мне теперь нужно вызвать эту процедуру : Вот-> Процедура ФИООкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка) ОкончанияВводаТекстаДляРеквизитовСоставногоТипа(Элемент, Текст, Значение); КонецПроцедуры Процедура КонтрагентОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка) ОкончанияВводаТекстаДляРеквизитовСоставногоТипа(Элемент, Текст, Значение) КонецПроцедуры Работает только Физические лица для контрагентов не работает((((( |
|||
13
mkanaev
05.06.12
✎
12:53
|
зайди под отладкой посмотри условие, удивись...
|
|||
14
pele
05.06.12
✎
12:59
|
не удивилась..я понимаю что тут ошибка но не знаю как исправить(
|
|||
15
pele
05.06.12
✎
13:32
|
Пасиб за помощь разобралась!)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |