Перейти к содержимому


Услуги программиста 1С
Профессиональные программисты 1С.
Весь комплекс услуг сопровождения 1С.

Курсы 1С
Бухгалтерам, менеджерам
и программистам.
Бесплатно!
Живое индивидуальное обучение по 1С.

Запрос и таблица значений


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 10

#1   Necrodamus

Necrodamus

      Рядовой

    • Пользователи
    • Сообщений: 5
    • Регистрация: 29-March 11
    • Откуда: , , Украина

Отправлено 29 March 2011 - 09:19

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

  • 0

#2   Valerka

Valerka

      Генералиссимус

    • Пользователи
    • PipPipPipPipPipPipPipPipPipPip
    • Сообщений: 1305
    • Регистрация: 03-April 08
    • Откуда:Каменец-Подольский

Отправлено 29 March 2011 - 09:55

В чем вопрос собственно?
  • 0
Можно ответить на любой вопрос, если вопрос задан правильно.
Если сообщение помогло Вам - не забудьте нажать на МАЛЕНЬКУЮ стрелочку справа снизу Изображение

#3   Necrodamus

Necrodamus

      Рядовой

    • Пользователи
    • Сообщений: 5
    • Регистрация: 29-March 11
    • Откуда: , , Украина

Отправлено 29 March 2011 - 10:09

Quote (Valerka)
В чем вопрос собственно?

Ошибки где-то в том,что я написал.Где именно я ошибся?
  • 0

#4   Valerka

Valerka

      Генералиссимус

    • Пользователи
    • PipPipPipPipPipPipPipPipPipPip
    • Сообщений: 1305
    • Регистрация: 03-April 08
    • Откуда:Каменец-Подольский

Отправлено 29 March 2011 - 10:10

А текст ошибки не судьба выложить? smile Или просто неправильно считает?
  • 0
Можно ответить на любой вопрос, если вопрос задан правильно.
Если сообщение помогло Вам - не забудьте нажать на МАЛЕНЬКУЮ стрелочку справа снизу Изображение

#5   Valerka

Valerka

      Генералиссимус

    • Пользователи
    • PipPipPipPipPipPipPipPipPipPip
    • Сообщений: 1305
    • Регистрация: 03-April 08
    • Откуда:Каменец-Подольский

Отправлено 29 March 2011 - 10:14

Quote (Necrodamus)
Если ТЗ.НайтиЗначение(Запрос1.Материал, "Материал") = 0 Тогда
НачОст = 0;
КонОст = 0;

тут неправильно, должно быть - ТЗ.НайтиЗначение(Запрос1.Материал, НомСТР, "Материал") = 0
  • 0
Можно ответить на любой вопрос, если вопрос задан правильно.
Если сообщение помогло Вам - не забудьте нажать на МАЛЕНЬКУЮ стрелочку справа снизу Изображение

#6   Necrodamus

Necrodamus

      Рядовой

    • Пользователи
    • Сообщений: 5
    • Регистрация: 29-March 11
    • Откуда: , , Украина

Отправлено 29 March 2011 - 10:15

Ошибок не выдает, но работает, только первая часть - выдает только список материалов без цифр...
  • 0

#7   Valerka

Valerka

      Генералиссимус

    • Пользователи
    • PipPipPipPipPipPipPipPipPipPip
    • Сообщений: 1305
    • Регистрация: 03-April 08
    • Откуда:Каменец-Подольский

Отправлено 29 March 2011 - 10:20

Читай выше smile
  • 0
Можно ответить на любой вопрос, если вопрос задан правильно.
Если сообщение помогло Вам - не забудьте нажать на МАЛЕНЬКУЮ стрелочку справа снизу Изображение

#8   Necrodamus

Necrodamus

      Рядовой

    • Пользователи
    • Сообщений: 5
    • Регистрация: 29-March 11
    • Откуда: , , Украина

Отправлено 29 March 2011 - 10:20

Quote (Valerka)
тут неправильно, должно быть - ТЗ.НайтиЗначение(Запрос1.Материал, НомСТР, "Материал") = 0

Прошу прощения - у меня так и было.При копировании намудрил.Причина не в этом.
  • 0

#9   Valerka

Valerka

      Генералиссимус

    • Пользователи
    • PipPipPipPipPipPipPipPipPipPip
    • Сообщений: 1305
    • Регистрация: 03-April 08
    • Откуда:Каменец-Подольский

Отправлено 29 March 2011 - 10:25

Quote (Necrodamus)
Пока Запрос.Группировка(1) = 1 Цикл
Таб.ВывестиСекцию("Получатель");
Пока Запрос.Группировка(2) = 1 Цикл

Запрос1 вместо Запрос должно быть по тексту smile

  • 0
Можно ответить на любой вопрос, если вопрос задан правильно.
Если сообщение помогло Вам - не забудьте нажать на МАЛЕНЬКУЮ стрелочку справа снизу Изображение

#10   Necrodamus

Necrodamus

      Рядовой

    • Пользователи
    • Сообщений: 5
    • Регистрация: 29-March 11
    • Откуда: , , Украина

Отправлено 29 March 2011 - 15:32

Всем спасибо. Банально запутался.

Добавлено (29.03.2011, 16:32)
---------------------------------------------
Еще вопрос - как теперь это распечатать в "горизонтальном" виде?
С этим у меня проблема.Может ссылкой кто полелится, где все доходчиво написано?Или примером простым?

  • 0

#11   Valerka

Valerka

      Генералиссимус

    • Пользователи
    • PipPipPipPipPipPipPipPipPipPip
    • Сообщений: 1305
    • Регистрация: 03-April 08
    • Откуда:Каменец-Подольский

Отправлено 29 March 2011 - 15:42

Вместо ВывестиСекцию, используй ПрисоединитьСекцию. Посмотри в синтакс-помощнике.
  • 0
Можно ответить на любой вопрос, если вопрос задан правильно.
Если сообщение помогло Вам - не забудьте нажать на МАЛЕНЬКУЮ стрелочку справа снизу Изображение


Обратно в Программирование и конфигурирование 1С Предприятия 7.7

Похожие темы

  Название темы Автор Статистика Последнее сообщение



Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных