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

Запрос с условием, внешняя печатная форма

Автор d_liliya, 02 ноя 2014, 16:09

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

d_liliya

Разрабатываю внешнюю печатную форму, к документу Реализация. Нужно из регистра сведений КонтактнаяИнформация "достать" адрес конкретного контрагента,который лежит в Представление и вывести в ячейку. Для этого нужно сделать запрос и как-то условием задать выбор по контрагенту. (Код неправильный)

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

ЗапросАдрес = Запрос.Выполнить().Выгрузить();
ОбластьМакета.Параметры.Адрес = ЗапросАдрес;


Подскажите, как это сделать?

Besart

если конфа типовая, например УТ11 , то в ней есть общий модуль ФормированиеПечатныхФорм, там есть много чего интересного, в т.ч. функция ПолучитьАдресИзКонтактнойИнформации(Объект, ТипАдреса = ""), на вход передается Объект - ссылка, ТипАдрес - Фактический, Регистрации или Юридический,
в ващем случае это будет выглядеть так:
Адрес = ФормированиеПечатныхФорм.ПолучитьАдресИзКонтактнойИнформации(Ссылка, "Юридический"); //Ссылка - СправочникСсылка.Контрагенты

cska-fanat-kz

Загляните в код печати счет-фактуры.
Там есть готовая функция получения данных по контрагенту, включая и адрес...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

d_liliya

Цитата: Besart от 02 ноя 2014, 23:52
если конфа типовая, например УТ11 , то в ней есть общий модуль ФормированиеПечатныхФорм, там есть много чего интересного, в т.ч. функция ПолучитьАдресИзКонтактнойИнформации(Объект, ТипАдреса = ""), на вход передается Объект - ссылка, ТипАдрес - Фактический, Регистрации или Юридический,
в ващем случае это будет выглядеть так:
Адрес = ФормированиеПечатныхФорм.ПолучитьАдресИзКонтактнойИнформации(Ссылка, "Юридический"); //Ссылка - СправочникСсылка.Контрагенты

В общем модуле формированиеПечатныхФорм есть только функция ОписаниеОрганизации с таким кодом:
Функция ОписаниеОрганизации(СписокСведений, Список = "", СПрефиксом = Истина) Экспорт

Если ПустаяСтрока(Список) Тогда
Список = "ПолноеНаименование,ИНН,Свидетельство,ЮридическийАдрес,Телефоны,НомерСчета,Банк,БИК,КоррСчет";
КонецЕсли;

Результат = "";

СоответствиеПараметров = Новый Соответствие();
СоответствиеПараметров.Вставить("ПолноеНаименование", " ");
СоответствиеПараметров.Вставить("ИНН", " ИНН ");
СоответствиеПараметров.Вставить("КПП", " КПП ");
СоответствиеПараметров.Вставить("Свидетельство", " ");
СоответствиеПараметров.Вставить("СвидетельствоДатаВыдачи", " от ");
СоответствиеПараметров.Вставить("ЮридическийАдрес", " ");
СоответствиеПараметров.Вставить("ФактическийАдрес", " ");
СоответствиеПараметров.Вставить("Телефоны", " тел.: ");
СоответствиеПараметров.Вставить("НомерСчета", " р/с ");
СоответствиеПараметров.Вставить("Банк", " в банке ");
СоответствиеПараметров.Вставить("БИК", " БИК ");
СоответствиеПараметров.Вставить("КоррСчет", " к/с ");
СоответствиеПараметров.Вставить("КодПоОКПО", " Код по ОКПО ");

Список = Список + ?(Прав(Список, 1) = ",", "", ",");
ЧислоПараметров = СтрЧислоВхождений(Список, ",");

Для Счетчик = 1 По ЧислоПараметров Цикл

ПозЗапятой = Найти(Список, ",");

Если ПозЗапятой > 0 Тогда
ИмяПараметра = Лев(Список, ПозЗапятой - 1);
Список = Сред(Список, ПозЗапятой + 1, СтрДлина(Список));

Попытка
СтрокаДополнения = "";
СписокСведений.Свойство(ИмяПараметра, СтрокаДополнения);

Если ПустаяСтрока(СтрокаДополнения) Тогда
Продолжить;
КонецЕсли;

Префикс = СоответствиеПараметров[ИмяПараметра];
Если НЕ ПустаяСтрока(Результат) Тогда
Результат = Результат + ",";
КонецЕсли;

Результат = Результат + ?(СПрефиксом = Истина, Префикс, "") + СтрокаДополнения;
Исключение
Сообщить("Не удалось определить значение параметра организации: " + ИмяПараметра, СтатусСообщения.Внимание);
КонецПопытки;

КонецЕсли;
КонецЦикла;
Возврат СокрЛП(Результат);

КонецФункции // ОписаниеОрганизации()


Как отсюда достать Юридический адрес?

cska-fanat-kz

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

Теги:

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

Рейтинг@Mail.ru

Поиск