Имя: Пароль:
1C
 
Как найти нужную ГТД программно?
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): добей переменную НомерГТД пробелами справа до длины кода справочника.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.