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

Автор Тема: Ребят нужна ваша помощь!  (Прочитано 3177 раз)

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

Оффлайн SpiritDark

  • *
  • Сообщений: 21
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-11-08
  • Сайт: 
  • Профессия: Программист 8.1
Скажите пожалуйста как в Отчете в переменную положить данные из запроса. Например "Поле: сумма продаж". В 1с 7 это делалось легко: просто во время цикла в переменную закидывал поле из запроса. А в 1с 8.2 (Обычная форма) так не выходит. Просто не показывает что лежит в переменной. Заранее огромное, человеческое спасибо! :dfbbdrfb: :dfbbdrfb: :dfbbdrfb: :dfbbdrfb: :dfbbdrfb: :dfbbdrfb:


Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Запостите хотя бы как вы это делаете в 8.2...

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

Оффлайн SpiritDark

  • *
  • Сообщений: 21
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-11-08
  • Сайт: 
  • Профессия: Программист 8.1
Код самописный! Дела такое: Идет колонка "Наши долги" И "Долги контрагентов". Надо сделать 3 колонку в которой будет складываться по дням итог колонки "Долги контрагентов".

Перем ИтогКонтр

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

   ВыборкаОбщийИтог.Следующий();      // Общий итог
   ОбластьОбщийИтог.Параметры.Заполнить(ВыборкаОбщийИтог);
   ТабДок.Вывести(ОбластьОбщийИтог, ВыборкаОбщийИтог.Уровень());

   ВыборкаФирма = ВыборкаОбщийИтог.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
                       
     Если ФирмаБ = Истина Тогда
   Пока ВыборкаФирма.Следующий() Цикл
      ОбластьФирма.Параметры.Заполнить(ВыборкаФирма);
      

      ТабДок.Вывести(ОбластьФирма, ВыборкаФирма.Уровень());
                   ВыборкаКонтрагенты = ВыборкаФирма.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
                   
      Пока ВыборкаКонтрагенты.Следующий() Цикл
         ОбластьКонтрагенты.Параметры.Заполнить(ВыборкаКонтрагенты);
         ТабДок.Вывести(ОбластьКонтрагенты, ВыборкаКонтрагенты.Уровень());

         ВыборкаДетальныеЗаписи = ВыборкаКонтрагенты.Выбрать();
                         
                         ИтогКонтр = 0;

         Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
            ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
            Если ДокДвижение = Истина Тогда
                                ИтогКонтр = ИтогКонтр + ДолгКонтрагента;
            ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
            КонецЕсли
         КонецЦикла;
      КонецЦикла;
   КонецЦикла;
Иначе
     ВыборкаКонтрагенты = ВыборкаОбщийИтог.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

      Пока ВыборкаКонтрагенты.Следующий() Цикл
         ОбластьКонтрагенты.Параметры.Заполнить(ВыборкаКонтрагенты);
         ТабДок.Вывести(ОбластьКонтрагенты, ВыборкаКонтрагенты.Уровень());

         ВыборкаДетальныеЗаписи = ВыборкаКонтрагенты.Выбрать();

         Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
            ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
            Если ДокДвижение = Истина Тогда

            ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
            КонецЕсли
         КонецЦикла;
      КонецЦикла;

   КОнецЕсли;
   

   ТабДок.ЗакончитьАвтогруппировкуСтрок();
   ТабДок.Вывести(ОбластьПодвалТаблицы);
   ТабДок.Вывести(ОбластьПодвал);

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
К полям запроса обращаются не просто по имени
не

ДолгКонтрагента

а

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

Оффлайн SpiritDark

  • *
  • Сообщений: 21
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-11-08
  • Сайт: 
  • Профессия: Программист 8.1
Все равно не выводит в отчет :trhregerhg: :trhregerhg: :trhregerhg: :trhregerhg: :trhregerhg:. Блин что за фигня. Может какое правило есть для создания переменной. Даже я просто уже создал переменную, и присвоил текст "123". Не выводит в отчете. В макете поставил переменную и дал заполнение "параметр". Где проблема??? :trhregerhg: :trhregerhg: :trhregerhg: :trhregerhg:

Оффлайн SpiritDark

  • *
  • Сообщений: 21
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-11-08
  • Сайт: 
  • Профессия: Программист 8.1
Вот быстро для примера создал отчет

Перем ПП;         
ПРоцедура ТТ(ТабДок) Экспорт   
         //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
   // Данный фрагмент построен конструктором.
   // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
   
   Макет = Отчеты.ВедомостьПоКонтрагентам.ПолучитьМакет("Макет2");
   Запрос = Новый Запрос;
   Запрос.Текст =
      "ВЫБРАТЬ
      |   ОстаткиТоваровОстаткиИОбороты.Номенклатура КАК Номенклатура,
      |   ПРЕДСТАВЛЕНИЕ(ОстаткиТоваровОстаткиИОбороты.Номенклатура),
      |   ОстаткиТоваровОстаткиИОбороты.Партия,
      |   ПРЕДСТАВЛЕНИЕ(ОстаткиТоваровОстаткиИОбороты.Партия),
      |   ОстаткиТоваровОстаткиИОбороты.КоличествоКонечныйОстаток
      |ИЗ
      |   РегистрНакопления.ОстаткиТоваров.ОстаткиИОбороты КАК ОстаткиТоваровОстаткиИОбороты";

   Результат = Запрос.Выполнить();
   

   ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
   ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
   ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы");
   ОбластьПодвалТаблицы = Макет.ПолучитьОбласть("ПодвалТаблицы");
   ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали");
   
   ТабДок.Очистить();
   ТабДок.Вывести(ОбластьЗаголовок);
   ТабДок.Вывести(ОбластьШапкаТаблицы);
   ТабДок.НачатьАвтогруппировкуСтрок();
     
   ВыборкаДетальныеЗаписи = Результат.Выбрать();

   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
      ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи);
      ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень());
      ПП = "123";
   КонецЦикла;

   ТабДок.ЗакончитьАвтогруппировкуСтрок();
   ТабДок.Вывести(ОбластьПодвалТаблицы);
   ТабДок.Вывести(ОбластьПодвал);

   //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
к параметрам области таб документа обращаться в виде:

<<ИмяОбласти>>.Параметры.<<ИмяПараметра>>

например

ОбластьДетальныхЗаписей.Параметры.ПП = "123";

ЗЫ и это естественно перед выводом области должно делаться, т.е.
перед

ТабДок.Вывести(ОбластьДетальныхЗаписей);
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн SpiritDark

  • *
  • Сообщений: 21
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-11-08
  • Сайт: 
  • Профессия: Программист 8.1
cska-fanat-kz :ooifh: Спасибо дружище работает.   :zebzdr: :zebzdr: :zebzdr:

Оффлайн SpiritDark

  • *
  • Сообщений: 21
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-11-08
  • Сайт: 
  • Профессия: Программист 8.1
Еще вопросик:
вот отрезок кода

ПП1 = ВыборкаДетальныеЗаписи.УменьшениеДолга;
               ПП2 = ПП2 + ПП1;
               ОбластьДетальныхЗаписей.Параметры.ПП = ПП2;
Но при выводе пишет что (Преобразование к типу число не может быть выполнено).
Как сделать ПП1 числом???

Оффлайн SpiritDark

  • *
  • Сообщений: 21
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-11-08
  • Сайт: 
  • Профессия: Программист 8.1
Еще вопросик:
вот отрезок кода

ПП1 = ВыборкаДетальныеЗаписи.УменьшениеДолга;
               ПП2 = ПП2 + ПП1;
               ОбластьДетальныхЗаписей.Параметры.ПП = ПП2;
Но при выводе пишет что (Преобразование к типу число не может быть выполнено).
Как сделать ПП1 числом???



Все вопрос решен спасибо!


Теги:
 


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

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

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


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

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
178 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
39 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
34 Сообщений
BuhRust
29 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

  • Точка Гостей: 192
  • Точка Скрытых: 0
  • Точка Пользователей: 0

Нет пользователей онлайн.

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal