![]() |
![]() |
![]() |
|
Как найти нужную ГТД программно? | ☑ | ||
---|---|---|---|---|
0
olafbond
23.04.10
✎
17:49
|
Приходит товар по одной ГТД, но различных стран происхождения.
Нужно произвести поиск среди имеющихся ГТД по двум полям: - Наименование - стандартное для всех справочников (НайтиПоНаименованию). - Страна происхождения (НайтиПоРеквизиту). Подскажите, как организовать поиск по двум полям одновременно? |
|||
1
Aleksey_3
23.04.10
✎
17:50
|
Запрос?
|
|||
2
Чайник Рассела
23.04.10
✎
17:55
|
(0) а как так? одна ГТД и две страны происхождения?
|
|||
3
olafbond
23.04.10
✎
17:58
|
Aleksey_3: Похоже, где посмотреть? Ни разу не пользовал.
Чайник Рассела: именно так. |
|||
4
Kreont
23.04.10
✎
18:05
|
Де то так:
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РегистрацияВходящегоНалоговогоДокумента.Ссылка КАК Док, | РегистрацияВходящегоНалоговогоДокумента.Дата КАК ДатаДок, | РегистрацияВходящегоНалоговогоДокумента.СуммаДокумента КАК СумаЗПДВ, | РегистрацияВходящегоНалоговогоДокумента.ПометкаУдаления |ИЗ | Документ.РегистрацияВходящегоНалоговогоДокумента КАК РегистрацияВходящегоНалоговогоДокумента |ГДЕ | РегистрацияВходящегоНалоговогоДокумента.Код = &Номер | И РегистрацияВходящегоНалоговогоДокумента.Организация = &Организация"; Запрос.УстановитьПараметр("Номер", НовийКод); Запрос.УстановитьПараметр("Организация", Организация); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Если Выборка.Следующий() Тогда //Значит нашли Сообщить(Выборка.Док); Иначе // Ненашли КонецЕсли; |
|||
5
zak555
23.04.10
✎
18:17
|
только найти по наименованию
|
|||
6
zak555
23.04.10
✎
18:17
|
хотя что за конфа ?
|
|||
7
olafbond
23.04.10
✎
18:21
|
Kreont: Пытаюсь что-то такое изобразить.
Предвижу следующую проблему: найденную ГТД нужно вставить в документ поступления, а запрос - это же что-то другое. Он выдает текст или число. А как получить ссылку на нужный элемент справочника? У которого даже уникального номера нет. |
|||
8
olafbond
23.04.10
✎
18:26
|
Можно, конечно, в цикле перебрать весь справочник...
|
|||
9
zak555
23.04.10
✎
18:29
|
ты конфу назовёшь или как ?
|
|||
10
olafbond
23.04.10
✎
18:36
|
zak555: 7.70.025
|
|||
11
olafbond
23.04.10
✎
18:37
|
1С Предприятие 7.70.025 БУ 7.70.512
|
|||
12
zak555
23.04.10
✎
18:40
|
смотри счёт ГТД
|
|||
13
olafbond
23.04.10
✎
18:47
|
zak555: эм... куда смотреть? ;)
|
|||
14
Хряк
23.04.10
✎
19:35
|
иди уже полы мой, не надо это тебе
|
|||
15
olafbond
23.04.10
✎
20:01
|
Хряк: весело?
|
|||
16
olafbond
23.04.10
✎
20:18
|
ока как-то так:
[code]ТекстЗапроса = " |Код = Справочник.ГТД.Код; |Имя = Справочник.ГТД.Наименование; |Страна = Справочник.ГТД.СтранаПроисхождения; |Условие (Имя = НомерГТД); |Условие (Страна = Страна); |"; Результат = Запрос.Выполнить(ТекстЗапроса); Если Запрос.ПолучитьАтрибут("Код") > 0 Тогда ГТД.НайтиПоКоду(Запрос.ПолучитьАтрибут("Код")); Иначе // создать новую[/code] Не находит нужную ГТД |
|||
17
olafbond
23.04.10
✎
20:22
|
ТекстЗапроса = "
|Код = Справочник.ГТД.Код; |Имя = Справочник.ГТД.Наименование; |Стр = Справочник.ГТД.СтранаПроисхождения; |Условие (Имя = НомерГТД); |Условие (Стр = Страна); |"; Результат = Запрос.Выполнить(ТекстЗапроса); Если Запрос.ПолучитьАтрибут("Код") > 0 Тогда ГТД.НайтиПоКоду(Запрос.ПолучитьАтрибут("Код")); Иначе // создать новую Код всегда = 0 |
|||
18
Cthulhu
23.04.10
✎
21:32
|
(17): добей переменную НомерГТД пробелами справа до длины кода справочника.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |