Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
15 дек 2024, 13:56

Запрос к регистру сведений, не могу вытащить данные

Автор djvjv, 04 дек 2012, 15:10

0 Пользователей и 1 гость просматривают эту тему.

djvjv

Надо вытащить из регистра сведений телефон контрагента. 
В регистре: Обьект-организация, Вид-телефон, адрес и т.д. контрагента, Представление-номер телефона, адрес и т.д.   Конфа УТ 10.3.
Запрос = Новый Запрос ( "ВЫБРАТЬ |    КонтактнаяИнформация.Представление |ИЗ |    РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация |ГДЕ |    КонтактнаяИнформация.Объект = &КонтактноеЛицо" ); Запрос.УстановитьПараметр("КонтактноеЛицо",КонтактноеЛицо); Результат=запрос.Выполнить().Выгрузить(); КТелефонЛогистика=Результат.ВыгрузитьКолонку("представление");

djvjv

Помогите, а то у меня эта задача мертвым грузом повисла!

Salmishskay2516


djvjv

Спасибо за внимание. Я сам сделал.
Интересовало что у меня не получается:
смотрите 1-ый вариант кода выше
2-й что получилось и заработало:
Запрос = Новый Запрос;
      Запрос.Текст = "ВЫБРАТЬ
                  |   КонтактнаяИнформация.Поле3
                  |ИЗ
                  |   РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация";
      Результат = Запрос.Выполнить();
      Выборка = Результат.Выбрать();
      Пока Выборка.Следующий() Цикл
         ОбластьМакета.Параметры.Телефон = Выборка.Поле3;
      КонецЦикла;

cska-fanat-kz

а где отбор по объекту?
где отбор по типу?

перебирается весь регистр чтобы вывести в макет последнее значение из Поле3!
жееееесть!
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

djvjv

Цитата: cska-fanat-kz от 05 дек 2012, 09:59
а где отбор по объекту?
где отбор по типу?

перебирается весь регистр чтобы вывести в макет последнее значение из Поле3!
жееееесть!
а как правильнее код выглядет будет?
Добавлено: 05 дек 2012, 12:28


Цитата: djvjv от 05 дек 2012, 11:28
Цитата: cska-fanat-kz от 05 дек 2012, 09:59
а где отбор по объекту?
где отбор по типу?

перебирается весь регистр чтобы вывести в макет последнее значение из Поле3!
жееееесть!
а как правильнее код выглядет будет?
И я еще добалю что значений параметров объект и тип у меня не задано. Теперь жду отредактированный код правильный. Спасибо.
Добавлено: 05 дек 2012, 12:54


Сам сделал. Спасибо.
Запрос = Новый Запрос;
      Запрос.Текст = "ВЫБРАТЬ
                     |   КонтактнаяИнформация.Поле3
                     |ИЗ
                     |   РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
                  |ГДЕ
                  |    КонтактнаяИнформация.Объект = &Объект
                  |И
                     |    КонтактнаяИнформация.Тип = &Тип";
      Запрос.УстановитьПараметр("Объект", СсылкаНаОбъект.Ответственный);             
      Запрос.УстановитьПараметр("Тип", Перечисления.ТипыКонтактнойИнформации.Телефон);
      Выборка = Запрос.Выполнить().Выбрать();
      Пока Выборка.Следующий() Цикл
         ОбластьМакета.Параметры.Телефон = Выборка.Поле3;
      КонецЦикла;

Slin

Цитата: djvjv от 05 дек 2012, 11:28Пока Выборка.Следующий() Цикл
         ОбластьМакета.Параметры.Телефон = Выборка.Поле3;
      КонецЦикла;
лучше будет
Если Выборка.Следующий() Тогда
     ОбластьМакета.Параметры.Телефон = Выборка.Поле3;
КонецЕсли;
skype: slin-dev

djvjv

Цитата: Slin от 05 дек 2012, 14:31
Цитата: djvjv от 05 дек 2012, 11:28Пока Выборка.Следующий() Цикл
         ОбластьМакета.Параметры.Телефон = Выборка.Поле3;
      КонецЦикла;
лучше будет
Если Выборка.Следующий() Тогда
     ОбластьМакета.Параметры.Телефон = Выборка.Поле3;
КонецЕсли;

В моем случае просто всегда телефон будет. Моя база самописная, делаю на основе УТ 10.3. Так сказать учусь азам программирования.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск