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

Отчет

Автор djvjv, 26 июн 2012, 08:33

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

СветланаCC

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

djvjv

Спасибо. Получилось. Но с отчетом я еще не закончил, скорее всего еще будут глупые вопросы.

djvjv

Как из 2 запросов один сделать?

СветланаCC

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


а затем ее вызывать -
Процедура КнопкаСформироватьНажатие(Кнопка)
ТЗнач = ПроверитьЗаполнениеКонтактнойИнформации(Контрагент);
НовСтрока = ТабЗнач.Добавить();
НовСтрока.Контрагент = КарточкаКлиента.ССылка;
Если ТЗнач.Количество()>0 Тогда
Для Каждого строка из ТЗнач Цикл
Если Строка.Представление <> "" Тогда
Если Строка.Тип = Перечисления.ТипыКонтактнойИнформации.Адрес Тогда
Если Строка.Вид = Справочники.ВидыКонтактнойИнформации.ФактАдресКонтрагента Тогда
//адрес 1
ИначеЕсли Строка.Вид = Справочники.ВидыКонтактнойИнформации.ЮрАдресКонтрагента Тогда
//адрес2
КонецЕсли;
ИначеЕсли Строка.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон Тогда
Если Строка.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента Тогда
// вот вам телефон
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецПроцедуры

а не много бы почитать что нибудь)))
Тазовод)

djvjv

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

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

djvjv

Продолжаю делать все этот же отчет. Надо бы его наконец-то осилить. Сейчас выложу строки кода не понятные мне как они выглядят на 7-ке, мне надо переделать под 8-ую версию. Надеюсь на вашу помощь надеюсь.
В 7-ой версии есть у справочника периодический реквизит, как быть в 8-ой версии, мало представляю. Догадываюсь что используются регистры, но как будет выглядеть код не понимаю.

ипр = ?(Пустоезначение(спрАмб.ипр.получить(датадок)) = 1,"",сокрлп(спрАмб.ипр.получить(датадок))+" от "+строка(глДатаНаКоторуюУстановленоЗначение(спрамб.текущийэлемент(), "ипр", датадок)));
направление = ?(Пустоезначение(спрАмб.направление.получить(датадок)) = 1,"",сокрлп(спрАмб.направление.получить(датадок))+" от "+строка(глДатаНаКоторуюУстановленоЗначение(спрамб.текущийэлемент(), "направление", датадок)));

таблицазначений.новаяколонка("Спецификация","документ.__Спецификация"); - вроде бы и понятно, но я тип документ в 8-ой версии не встречал
пытался сделать ТаблицаЗначений.Колонки.Добавить("Спецификация",Новый ОписаниеТипов("документы__Спецификация"));
а получил ошибку  {Документ.__ЗаказНаПротез.МодульОбъекта(267)}: Ошибка при вызове конструктора (ОписаниеТипов)

Как выглядят на 8-ке эти строки кода - и что они означают. Мои догадки что тут создается таблица, указывается исходная и вывлдятся строки. А вот как сделать не понимаю
        Таб=СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("ФормаЗаказа");
   Таб.ВывестиСекцию("Шапка");
   тз.выбратьстроки();
   пока тз.получитьстроку()=1 цикл
      Таб.ВывестиСекцию("Строка");
   конеццикла;
   итого=тз.итог("стоимость");



СветланаCC

Просто пишите ТаблицаЗначений.Колонки.Добавить("Спецификация")
Тазовод)

djvjv

как это будет на 8-ке выглядеть?

ипр = ?(Пустоезначение(спрАмб.ипр.получить(датадок)) = 1,"",сокрлп(спрАмб.ипр.получить(датадок))+" от "+строка(глДатаНаКоторуюУстановленоЗначение(спрамб.текущийэлемент(), "ипр", датадок)));
направление = ?(Пустоезначение(спрАмб.направление.получить(датадок)) = 1,"",сокрлп(спрАмб.направление.получить(датадок))+" от "+строка(глДатаНаКоторуюУстановленоЗначение(спрамб.текущийэлемент(), "направление", датадок)));


Таб=СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("ФормаЗаказа");
   Таб.ВывестиСекцию("Шапка");
   тз.выбратьстроки();
   пока тз.получитьстроку()=1 цикл
      Таб.ВывестиСекцию("Строка");
   конеццикла;
   итого=тз.итог("стоимость");

Теги:

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

Рейтинг@Mail.ru

Поиск