Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
17 Дек 2017, 13:06
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Помогите заставить работать отчёт  (Прочитано 1182 раз)

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

Оффлайн joystik

  • *
  • Сообщений: 5
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-11-10
  • Сайт: 
  • Профессия: Программист 7.7
Доброго времени суток! Программа 1с 7.7 ПУБ 329. Есть внешний отчёт от которого требуется делать запрос с 2х документов, и выводить по контрагентам или по подразделениям. Проблемма: не получается выдернуть информацию о подразделении из документа "Авансы торгового дома" (документ самописный в эксплуотации давно) по причине "неопределённого" типа данных реквизита хранящего информацию о подразделении. (СубконтоКред1 и СубконтоКред2 имеют неопределённый тип данных)
Перем Запрос, ТекстЗапроса, Таб, Справочник, Договор, СубконтоКред1, СубконтоКред2;
//*******************************************
// Процедура генерации запроса Сформировать.
//
   
Процедура Сформировать()
ПериодДляШапкиОтчета = ПериодСтр(ВыбНачПериода, ВыбКонПериода);
    Заголовок="";

    // Выводим заголовок "ПОДРАЗДЕЛЕНИЯ", если идет отбор по Подразделению.
    Если ВыбПодразделение.Выбран()=1 Тогда
   
// оао "пмцз" --------------------------------------------------------- 
     // Заголовок=Заголовок+"По подразделению:"+ВыбПодразделение;
        Заголовок=Заголовок+"По подразделению:"+" "+ВыбПодразделение;

    // Выводим заголовок "КОНТРАГЕНТА", если идет отбор по Контрагенту.
ИначеЕсли ВыбКонтрагент.Выбран()=1 Тогда
Заголовок=Заголовок+"По контрагенту:"+" "+ВыбКонтрагент;
КонецЕсли;

    // Выводим заголовок "ПОДРАЗДЕЛЕНИЯ и КОНТРАГЕНТА", если идет отбор по Подразделению и Контрагенту.
Если (ВыбПодразделение.Выбран()=1) и (ВыбКонтрагент.Выбран()=1) тогда
    Заголовок=Заголовок+" "+" "+" "+" "+" "+"По контрагенту:"+" "+ВыбКонтрагент;
КонецЕсли;

     
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
    |Контрагент = Документ.АвансыТорговогоДома.СубконтоКред1,Документ.СписаниеДенежныхСредствРасчеты.Контрагент;
    |ДатаДок = Документ.АвансыТорговогоДома.ДатаДок,Документ.СписаниеДенежныхСредствРасчеты.ДатаДок;
    |Сумма = Документ.АвансыТорговогоДома.Сумма,Документ.СписаниеДенежныхСредствРасчеты.Сумма;
|ПП = Документ.АвансыТорговогоДома.ТекущийДокумент,Документ.СписаниеДенежныхСредствРасчеты.ТекущийДокумент;
|НазначениеПлатежа = Документ.СписаниеДенежныхСредствРасчеты.НазначениеПлатежа,Документ.АвансыТорговогоДома.НазначениеПлатежа;
|Договор = Документ.АвансыТорговогоДома.СубконтоКред2,Документ.СписаниеДенежныхСредствРасчеты.Договор;
    |Подразделение = Документ.АвансыТорговогоДома.СубконтоКред2.Подразделение,Документ.СписаниеДенежныхСредствРасчеты.Договор.Подразделение;
|Функция СуммаСумма = Сумма(Сумма);
// оао "пмцз" ---------------------------------------------------------
|Группировка Контрагент без групп; 
    |Группировка ПП  без групп;
                      //упорядочить по ПП.Комментарий;
   
// конец. оао "пмцз" --------------------------------------------------
|
|";
       
    // Выводим информацию по выбранному Подразделению.
Если ВыбПодразделение.Выбран()=1 Тогда

ТекстЗапроса =  ТекстЗапроса+
"Условие(Подразделение = ВыбПодразделение);
|"//}}ЗАПРОС
;   
// оао "пмцз" ---------------------------------------------------------
    // Выводим информацию по выбранному Контрагенту.
ИначеЕсли ВыбКонтрагент.Выбран()=1 Тогда

ТекстЗапроса =  ТекстЗапроса+
"Условие(Контрагент = ВыбКонтрагент);
|"//}}ЗАПРОС
;
    КонецЕсли;

    // Выводим информацию по выбранным Подразделению и Контрагенту.
    Если (ВыбПодразделение.Выбран()=1) и (ВыбКонтрагент.Выбран()=1) тогда

ТекстЗапроса =  ТекстЗапроса+
"Условие(Подразделение = ВыбПодразделение);
|"//}}ЗАПРОС
"Условие(Контрагент = ВыбКонтрагент);
|"//}}ЗАПРОС
        ;   
// конец. оао "пмцз" ---------------------------------------------------

    КонецЕсли;

// Если ошибка в запросе, то выход из процедуры
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;

// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
 

Если ВыбКонтрагент.Выбран()=1 Тогда
Пока Запрос.Группировка(1) = 1 Цикл 
Пока Запрос.Группировка(2) = 1 Цикл
Таб.ВывестиСекцию("Контрагент");
КонецЦикла;
    КонецЦикла;
Иначе
Пока Запрос.Группировка(1) = 1 Цикл
Таб.ВывестиСекцию("Посумме");
  Пока Запрос.Группировка(2) = 1 Цикл
   Таб.ВывестиСекцию("Контрагент");
  КонецЦикла;
    КонецЦикла;
КонецЕсли;

// Заполнение полей "Итого"
Таб.ВывестиСекцию("Итого");
// Вывод заполненной формы
    Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
КонецПроцедуры

Процедура ПриОткрытии()
  //****ОАО ПМЦЗ( Проверка прав *************** 
//Кому можно формировать:
СписокПрав = СоздатьОбъект("СписокЗначений");
СписокПрав.ДобавитьЗначение("Администратор");
СписокПрав.ДобавитьЗначение("Аудит");
СписокПрав.ДобавитьЗначение("ЗамГлБухгалтера");
СписокПрав.ДобавитьЗначение("ЗамНачальникаФО"); 
СписокПрав.ДобавитьЗначение("НачальникФО");
СписокПрав.ДобавитьЗначение("ЭкономистФО1");
СписокПрав.ДобавитьЗначение("ЭкономистФО2");
СписокПрав.ДобавитьЗначение("ЭкономистФО3");

ПраваТекущПользователя = НазваниеНабораПрав();

  Если СписокПрав.НайтиЗначение (ПраваТекущПользователя) = 0  Тогда
        Предупреждение("У Вас нет прав на формирование данного отчета.");
      Форма.Закрыть(0);     
КонецЕсли;
//****)ОАО ПМЦЗ******************
КонецПроцедуры


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
145 Сообщений
ilyay ilyay
63 Сообщений
AIFrame
55 Сообщений
alex0402
50 Сообщений
andron81_81
44 Сообщений
oleg-x
42 Сообщений
BuhRust
32 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
Golickoff Golickoff
28 Сообщений
alexandr_ll
24 Сообщений

* Кто онлайн

  • Точка Гостей: 274
  • Точка Скрытых: 0
  • Точка Пользователей: 7
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal