8.х Факт адреса контрагента!

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

  1. TopicStarter Overlay
    Romik
    Offline

    Romik Опытный в 1С

    Регистрация:
    27 июн 2008
    Сообщения:
    238
    Симпатии:
    0
    Баллы:
    26
    Существуют два Табл поля Контрагент и ФактАдреса...
    Как сделать так чтобы при выборе в верхнем поле контрагента..в нижнем полу выходили все его факт адреса.
    Подскажите пожалуйста.. :unsure:
  2. tunec
    Offline

    tunec Опытный в 1С

    Регистрация:
    2 июн 2008
    Сообщения:
    469
    Симпатии:
    0
    Баллы:
    26
    поставить связь по владельцу в табполе факт адреса в вкладке события выбрать табполе контрагентов процедура приАктивизацииСтроки...
  3. tunec
    Offline

    tunec Опытный в 1С

    Регистрация:
    2 июн 2008
    Сообщения:
    469
    Симпатии:
    0
    Баллы:
    26
    П.С. если табполе факт адреса регистр, то в табполе контрагент событие приАктивизацииСтроки прописать установку отбора по контрагенту для табполя факт адрес.
  4. TopicStarter Overlay
    Romik
    Offline

    Romik Опытный в 1С

    Регистрация:
    27 июн 2008
    Сообщения:
    238
    Симпатии:
    0
    Баллы:
    26
    Это всё понятно!
    Скажи каки путём выгрузить данные в эти табл Поля..Всех контрагентов с отбором и их факт дареса ( факт адреса - это регистр КонтатнаяИнформация)
    Туплю :unsure:
  5. tunec
    Offline

    tunec Опытный в 1С

    Регистрация:
    2 июн 2008
    Сообщения:
    469
    Симпатии:
    0
    Баллы:
    26
    ааааа.... так у тя еще и данных даже нету :)

    Контрагенты:
    1) запрос
    2) КонтрагентыСписок установить отборм программно

    Контакты:
    1) запрос при выборе строки
    2) отбор описаный 2 постами выше...
  6. TopicStarter Overlay
    Romik
    Offline

    Romik Опытный в 1С

    Регистрация:
    27 июн 2008
    Сообщения:
    238
    Симпатии:
    0
    Баллы:
    26
    Нет, информация у меня выведена!
    Мне необходимо сделать отбор, то есть мне нужно чтобы выводились только Контрагенты у которые несколько факт адресов и Основной не проставлен.
    Желателньно примером!!!!!
    Спасибо :unsure:
  7. tunec
    Offline

    tunec Опытный в 1С

    Регистрация:
    2 июн 2008
    Сообщения:
    469
    Симпатии:
    0
    Баллы:
    26
    хм... или это уже другая задача, или явное противоречие с другими постами?!!:

    а вообще все можно сделать запросом с выгрузкой результата в нужную табчасть. У тебя контрагенты это все контрагенты из справочника, или полученные некой выборкой? И нужно ли учитывать отборы в контрагентах?

    и все-таки нужно чтобы:
    а) выводились все фактАдреса для контрагентов из табконтрагентов удовлетворяющие условию
    б) выводились все фактАдреса текущего элемента табконтрагентов
    в) выводились все фактАдреса текущего элемента табконтрагентов если он удовлетворяет условию
    г) в все фактАдреса подбирались только удовлетворяющие условию и выводились все фактАдреса всех элементов табконтрагентов
    д) в все фактАдреса подбирались только удовлетворяющие условию и выводились все фактАдреса текущего элемента

    Формулируйте задачу. Очень трудно привести пример если не знаешь что же все-таки нужно...
  8. TopicStarter Overlay
    Romik
    Offline

    Romik Опытный в 1С

    Регистрация:
    27 июн 2008
    Сообщения:
    238
    Симпатии:
    0
    Баллы:
    26
    Формулировка задачи:
    1) Необходимо в поле табконтрагентов вывести только тех контрагентов у которых несколько факт адресов.
    2) выводились все фактАдреса для контрагентов из табконтрагентов удовлетворяющие условию.

    То есть при выводе табконтрагентов нужно условие какое-то, чтобы в список выводились только те которые нужны.
    А затем при активизации строки в табконтрагентов в фактАдреса выводили их ФактАдрес.
    ФактАдрес = РегистрСведенийСписок.КонтактнаяИнформация
  9. tunec
    Offline

    tunec Опытный в 1С

    Регистрация:
    2 июн 2008
    Сообщения:
    469
    Симпатии:
    0
    Баллы:
    26
    тогда так:
    1) запрос с нужным условием и выгрузить в табполе Контрагентов
    2) табполе фактАдрес тип РегистрСведенийСписок.КонтактнаяИнформация. Данные например "Адрес"
    3) для табполя контрагенты для события приактивизацииСтроки пишем примерно следующее:
    Процедура ДокументСписокПриАктивизацииСтроки(Элемент)
    адрес.Отбор.Объект.Установить(Элемент.ТекущаяСтрока);
    КонецПроцедуры


    вуаля :)
  10. TopicStarter Overlay
    Romik
    Offline

    Romik Опытный в 1С

    Регистрация:
    27 июн 2008
    Сообщения:
    238
    Симпатии:
    0
    Баллы:
    26
    Понимаешь терию я и так знаю:)))
    Мне бы пример на практике?
    Подобного....


    И в табполе Контрагентов выводятся все контрагенты!
    То есть необходиом условие при выводе.

    У меня сейчас написано тоже самое..но он выводит все Адреса, а мне нужно только ФАКТ, то есть нужно условие!
    "для табполя контрагенты для события приактивизацииСтроки пишем примерно следующее:
    Процедура ДокументСписокПриАктивизацииСтроки(Элемент)
    адрес.Отбор.Объект.Установить(Элемент.ТекущаяСтрока);
    КонецПроцедуры "
  11. tunec
    Offline

    tunec Опытный в 1С

    Регистрация:
    2 июн 2008
    Сообщения:
    469
    Симпатии:
    0
    Баллы:
    26
    ну а чего мешает проверить это условие сначала и потом сузить отбор:
    Код:
    Процедура ДокументСписокПриАктивизацииСтроки(Элемент)
    Если <Условие> тогда
    адрес.Отбор.Объект.Установить(Элемент.ТекущаяСтрока);
    адрес.Отбор.Вид.Установить(справочник.видыКонтактнойИнформации.НайтиПоНаименованию("Фактический адрес контрагента"));
    конецесли;
    КонецПроцедуры
    
  12. tunec
    Offline

    tunec Опытный в 1С

    Регистрация:
    2 июн 2008
    Сообщения:
    469
    Симпатии:
    0
    Баллы:
    26
    ну или даже так. ТабПоле факт адреса тип - таблица значений:

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

    П.С. ограничение в 1000 фактических адресов можно сузить/расширить :)
    П.П.С. нужные поля уж сам достанешь из запроса
    П.П.П.С. если достать нормально не получается или нужно редактировать их интерактивно, то можно скрестить способ 1 и 2, т.е. использовать именно набор регистра сведений...
  13. TopicStarter Overlay
    Romik
    Offline

    Romik Опытный в 1С

    Регистрация:
    27 июн 2008
    Сообщения:
    238
    Симпатии:
    0
    Баллы:
    26
    Зачем мне в списке лишние контргаенты..не к чему!
    Так что лучше будет если при выводе Контрагентов уже сортировать, а не при активизации строки!
    Блин..что ни кто не знает как автоматически проставить основные адреса контрагентам?
  14. tunec
    Offline

    tunec Опытный в 1С

    Регистрация:
    2 июн 2008
    Сообщения:
    469
    Симпатии:
    0
    Баллы:
    26
    я описал для полного списка справочника, при выделении строки если удовлетворяет условию, то появится. если те нужно при выводе в само табполе контрагенты отбирать, то немного измени запрос - поставь левое соединение со справочником контрагентов и убери одно условие...

    Если и с этим не справишься, то может тебе лучше обратиться к франчам... А еще лучше сразу пиши что надо подробно. Хотя сама задача у меня например занала 15 минут... А ты полдня потратил на то, чтобы объяснить что же тебе нужно... А еще хочешь помощи. Телепатов нет.

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