8.х Контактная Информация Контрагентов

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем LABUH, 5 май 2010.

  1. TopicStarter Overlay
    LABUH
    Offline

    LABUH

    Регистрация:
    5 май 2010
    Сообщения:
    35
    Симпатии:
    0
    Баллы:
    1
    Профы, подскажите плиз как это сделать начинающему юзеру. Нуна сделать простенький маршрутный лист. Не получается вытянуть контактную информацию для шести контрагентов. Для одного получается.
    Где копать. Может есть готовый код. Помогите Бога ради.
  2. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    На фруме не раз обсуждалось. Просто воспользуйтесь поиском по форуму. Данные беруться из Регистра сведенйи контактная информация.Найдете и когды выложенные и обработки то же были
  3. TopicStarter Overlay
    LABUH
    Offline

    LABUH

    Регистрация:
    5 май 2010
    Сообщения:
    35
    Симпатии:
    0
    Баллы:
    1
    Все, что удалось найти, так это вывод одного контрагента и его адреса. А чтобы выводилась контактная информация сразу по нескольким контрагентам - не видел. Плиз, помощь!!!
  4. Stack_G
    Offline

    Stack_G Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    26
    Покажите что именно хотите получить в итоге.
  5. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Ну вы там видели запрос или как? в запросе параметр на контрагента, можно же туда передать и список контрагентов. Я точно помню что недавно разбирался пример года человек брал Обороты за период по взаиморасчетам с контрагентами и ем надо было еще и их адреса... там даже обработку выкладывали
  6. TopicStarter Overlay
    LABUH
    Offline

    LABUH

    Регистрация:
    5 май 2010
    Сообщения:
    35
    Симпатии:
    0
    Баллы:
    1
    Хочу чтобы в печатную форму выводилось:

    Контрагент - адрес доставки
    Контрагент - адрес доставки
    Контрагент - адрес доставки
    Контрагент - адрес доставки
    Контрагент - адрес доставки
    Контрагент - адрес доставки

    Но только не весь справочник контрагенты, а те которые нужны.
    Виноват, что плохо объясняю желаемое. Я чайник в этом деле.

    Я не знаю как передать список контрагентов. Подскажите плиз.
  7. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    С запросами работать умеете создавали запросы сами?
  8. Stack_G
    Offline

    Stack_G Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    26
    Показывайте запрос, который вы нашли на форуме, желательно уже с отбором по контрагенту и по типу, виду контактной информации.
  9. TopicStarter Overlay
    LABUH
    Offline

    LABUH

    Регистрация:
    5 май 2010
    Сообщения:
    35
    Симпатии:
    0
    Баллы:
    1
    Нет
  10. TopicStarter Overlay
    LABUH
    Offline

    LABUH

    Регистрация:
    5 май 2010
    Сообщения:
    35
    Симпатии:
    0
    Баллы:
    1
    Код:
    Процедура КнопкаВыполнитьНажатие(Кнопка)
    ТабДокумент = ЭлементыФормы.ТабДок;
    ТабДокумент.Очистить();
    
    Запрос = Новый Запрос;
    ЗапросПоКонтактнымЛицам = Новый Запрос;
    Запрос.УстановитьПараметр("ВидЮрАдрес",Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента);
    Запрос.УстановитьПараметр("ВидФактАдрес",Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента);
    Запрос.УстановитьПараметр("ВидТелефон",Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента);
    
    Запрос.УстановитьПараметр("ВыбКонтр",ВыбКонтр);
    Запрос.УстановитьПараметр("ВыбКонтр1",ВыбКонтр1);
    
    Запрос.УстановитьПараметр("ПустЮр",ФлагЮрАдрес);
    Запрос.УстановитьПараметр("ПустФакт",ФлагФактАдрес);
    Запрос.УстановитьПараметр("ПустИНН",ФлагИНН);
    Запрос.УстановитьПараметр("ПустКПП",ФлагКПП);
    Запрос.УстановитьПараметр("ПустВСЕ",ФлагВсе);
    
    
    Запрос.Текст =
    "ВЫБРАТЬ
    |	Контакты.ЮрАдрес КАК ЮрАдрес,
    |	Контакты.ФактАдрес КАК ФактАдрес,
    |	Контакты.Ссылка,
    |	Контакты.ИНН КАК ИНН,
    |	Контакты.КПП КАК КПП,
    |	Контакты.Наименование КАК Наименование,
    |	Контакты.Телефон
    |ИЗ
    |	(ВЫБРАТЬ
    |		МАКСИМУМ(ВЫРАЗИТЬ(ВЫБОР
    |					КОГДА КонтактнаяИнформация.Вид = &ВидЮрАдрес
    |						ТОГДА КонтактнаяИнформация.Представление
    |					ИНАЧЕ NULL
    |				КОНЕЦ КАК СТРОКА(200))) КАК ЮрАдрес,
    |		МАКСИМУМ(ВЫРАЗИТЬ(ВЫБОР
    |					КОГДА КонтактнаяИнформация.Вид = &ВидФактАдрес
    |						ТОГДА КонтактнаяИнформация.Представление
    |					ИНАЧЕ NULL
    |				КОНЕЦ КАК СТРОКА(200))) КАК ФактАдрес,
    |		Контрагенты.Ссылка КАК Ссылка,
    |		МАКСИМУМ(Контрагенты.ИНН) КАК ИНН,
    |		МАКСИМУМ(Контрагенты.КПП) КАК КПП,
    |		МАКСИМУМ(Контрагенты.Наименование) КАК Наименование,
    |		МАКСИМУМ(ВЫРАЗИТЬ(ВЫБОР
    |					КОГДА КонтактнаяИнформация.Вид = &ВидТелефон
    |						ТОГДА КонтактнаяИнформация.Представление
    |					ИНАЧЕ NULL
    |				КОНЕЦ КАК СТРОКА(200))) КАК Телефон
    |	ИЗ
    |		Справочник.Контрагенты КАК Контрагенты
    |			ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
    |			ПО (КонтактнаяИнформация.Объект = Контрагенты.Ссылка)
    |	
    |	СГРУППИРОВАТЬ ПО
    |		Контрагенты.Ссылка) КАК Контакты
    |ГДЕ
    |	Контакты.Ссылка.ЭтоГруппа = ЛОЖЬ
    |	И Контакты.Ссылка В ИЕРАРХИИ(&ВыбКонтр)
    |   И Контакты.Ссылка В ИЕРАРХИИ(&ВыбКонтр1)
    |	И ВЫБОР
    |			КОГДА &ПустЮр = ИСТИНА
    |					И Контакты.ЮрАдрес ЕСТЬ NULL 
    |				ТОГДА ИСТИНА
    |			ИНАЧЕ ВЫБОР
    |					КОГДА &ПустФакт = ИСТИНА
    |							И Контакты.ФактАдрес ЕСТЬ NULL 
    |						ТОГДА ИСТИНА
    |					ИНАЧЕ ВЫБОР
    |							КОГДА &ПустИНН = ИСТИНА
    |									И Контакты.ИНН = """"
    |								ТОГДА ИСТИНА
    |							ИНАЧЕ ВЫБОР
    |									КОГДА &ПустКПП = ИСТИНА
    |											И Контакты.КПП = """"
    |										ТОГДА ИСТИНА
    |									ИНАЧЕ ВЫБОР
    |											КОГДА &ПустВсе = ИСТИНА
    |												ТОГДА ИСТИНА
    |											ИНАЧЕ ЛОЖЬ
    |										КОНЕЦ
    |								КОНЕЦ
    |						КОНЕЦ
    |				КОНЕЦ
    |		КОНЕЦ";
    
    Результат = Запрос.Выполнить();
    Если Результат.Пустой() Тогда
    Возврат;
    КонецЕсли;
    Макет = ПолучитьМакет("Макет");
    
    ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
    ОбластьСтрока 	 = Макет.ПолучитьОбласть("Строка");
    
    ТабДокумент.Вывести(ОбластьЗаголовок);
    
    НомерПП=1;
    Выборка=Результат.Выбрать();
    
    Пока Выборка.Следующий() Цикл
    ОбластьСтрока.Параметры.Заполнить(Выборка);
    ОбластьСтрока.Параметры.НомерПП = НомерПП;
    ОбластьСтрока.Параметры.ЮрАдрес = СокрЛП(Выборка.ЮрАдрес);
    ОбластьСтрока.Параметры.ФактАдрес = СокрЛП(Выборка.ФактАдрес);
    ОбластьСтрока.Параметры.Телефон = СокрЛП(Выборка.Телефон);
    ОбластьСтрока.Параметры.КонтактноеЛицо = "";
    
    
    ЗапросПоКонтактнымЛицам.УстановитьПараметр("ВыбКонтр",Выборка.Ссылка);
    ЗапросПоКонтактнымЛицам.УстановитьПараметр("ВыбКонтр1",Выборка.Ссылка);
    //ЗапросПоКонтактнымЛицам.УстановитьПараметр("ВидТелефон",Справочники.ВидыКонтактнойИнформации.ТелефонКонтактногоЛица);
    
    ЗапросПоКонтактнымЛицам.Текст =
    "ВЫБРАТЬ
    |	МАКСИМУМ(КонтактныеЛица.Должность) КАК Должность,
    |	МАКСИМУМ(КонтактныеЛица.Наименование) КАК Наименование,
    |	МАКСИМУМ(ВЫРАЗИТЬ(ВЫБОР
    |				КОГДА КонтактнаяИнформация.Вид = &ВидТелефон
    |					ТОГДА КонтактнаяИнформация.Представление
    |				ИНАЧЕ NULL
    |			КОНЕЦ КАК СТРОКА(200))) КАК Телефон,
    |	КонтактныеЛица.Ссылка
    |ИЗ
    |	Справочник.КонтактныеЛица КАК КонтактныеЛица
    |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК КонтактнаяИнформация
    |		ПО (КонтактнаяИнформация.Объект = КонтактныеЛица.Ссылка)
    |ГДЕ
    |	КонтактныеЛица.ОбъектВладелец = &ВыбКонтр
    |Где
    |	КонтактныеЛица.ОбъектВладелец = &ВыбКонтр1
    |
    |СГРУППИРОВАТЬ ПО
    |	КонтактныеЛица.Ссылка";
    
    //РезультатКонтакты = ЗапросПоКонтактнымЛицам.Выполнить();
    //Если РезультатКонтакты.Пустой() Тогда
    
    //Иначе
    //ВыборкаКонтакты=РезультатКонтакты.Выбрать();
    
    //Пока ВыборкаКонтакты.Следующий() Цикл
    //ОбластьСтрока.Параметры.КонтактноеЛицо = ОбластьСтрока.Параметры.КонтактноеЛицо + СокрЛП(ВыборкаКонтакты.Должность) + " "+ СокрЛП(ВыборкаКонтакты.Наименование);
    //Если ЗначениеЗаполнено(ВыборкаКонтакты.Телефон) Тогда
    //ОбластьСтрока.Параметры.КонтактноеЛицо =ОбластьСтрока.Параметры.КонтактноеЛицо +" телефон " + СокрЛП(ВыборкаКонтакты.Телефон) +", ";
    //Иначе	
    //ОбластьСтрока.Параметры.КонтактноеЛицо =ОбластьСтрока.Параметры.КонтактноеЛицо +", ";
    //КонецЕсли;	
    //КонецЦикла;	
    //ОбластьСтрока.Параметры.КонтактноеЛицо = Лев(ОбластьСтрока.Параметры.КонтактноеЛицо,СтрДлина(ОбластьСтрока.Параметры.КонтактноеЛицо)-2);
    
    
    //КонецЕсли;
    
    
    
    
    
    
    ТабДокумент.Вывести(ОбластьСтрока);
    НомерПП = НомерПП + 1;
    
    
    КонецЦикла;	
    
    ТабДокумент.ТолькоПросмотр = Истина;	
    
    КонецПроцедуры
    
  11. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.649
    Симпатии:
    948
    Баллы:
    204
    Вот держите заполняйте параметры и будет что вы хотели
    И учите запросы без них никуда

    Вложения:

  12. TopicStarter Overlay
    LABUH
    Offline

    LABUH

    Регистрация:
    5 май 2010
    Сообщения:
    35
    Симпатии:
    0
    Баллы:
    1
    Ай да кудесник, ай да колдун :unsure: :smile: :aua:

    Супер, то что нужно. Спасибо огромное, выручил.
  13. Stack_G
    Offline

    Stack_G Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    26
    Жми кнопку "СПАСИБО" товарищу Draco!

Поделиться этой страницей