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

Автор Тема: результат запроса  (Прочитано 2970 раз)

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

Оффлайн joystas

  • *
  • Сообщений: 21
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-07-13
  • Сайт: 
  • Профессия: Программист 1С
здравствуйте, подскажите пожалуйста. Не давно начал программировать в 1с 8.3, до этого никогда этим не занимался, разве что в делфях при учебе....
У меня такой вопрос: Запрос формирует список организаций, по которым были налоговые начисления соответственно с суммами по определенному периоду, так вот мне надо от туда только 3 организации и вывести по ним сумму. понимаю, что нужно выложить в массив и пройтись по нему с циклом, но организации 3 шт. да и немного не догоню как это сделать. Вот исходник:

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


до этого без сортировки по покупателю она выводила общюу сумму, а сейчас выводит только первую строку. догоняю что тут вопрос в выборка.следующий() , но не догоняю как туда загнать эти 3 организации....


Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1346
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
какие 3 нужно выбрать? любые 3? 3 первых результата запроса?
напишите прямо в запросе ВЫБРАТЬ ПЕРВЫЕ 3
это так сказать первая часть ответа.
и вторая: чтобы выводились все результаты запроса, надо использовать цикл, а не условие. примерно так будет в вашем случае:
Пока Выборка.Следующий() Цикл
      возврат выборка.СуммаБезНДС;
КонецЦикла;

Оффлайн joystas

  • *
  • Сообщений: 21
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-07-13
  • Сайт: 
  • Профессия: Программист 1С
какие 3 нужно выбрать? любые 3? 3 первых результата запроса?
напишите прямо в запросе ВЫБРАТЬ ПЕРВЫЕ 3
это так сказать первая часть ответа.
и вторая: чтобы выводились все результаты запроса, надо использовать цикл, а не условие. примерно так будет в вашем случае:
Пока Выборка.Следующий() Цикл
      возврат выборка.СуммаБезНДС;
КонецЦикла;




Организации идут не по по порядку, известно только название, инн и тд.
ну так при таком цикле выводится общая сумма всех организаций? разве не так?
наверно их надо искать по названию?

Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1346
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
ну так при таком цикле выводится общая сумма всех организаций? разве не так?
в цикле выводиться будет ровно то, что вы получили в запросе, я в детали запроса не вникал пока. суть в том, что разница между вашим способом - с инструкцией Если - и предложенным мной - с циклом только в том, что вы получили первую запись и все, а я в запросе получу все записи последовательно.
надеюсь, понятно написал....

Оффлайн joystas

  • *
  • Сообщений: 21
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-07-13
  • Сайт: 
  • Профессия: Программист 1С
ну так при таком цикле выводится общая сумма всех организаций? разве не так?
в цикле выводиться будет ровно то, что вы получили в запросе, я в детали запроса не вникал пока. суть в том, что разница между вашим способом - с инструкцией Если - и предложенным мной - с циклом только в том, что вы получили первую запись и все, а я в запросе получу все записи последовательно.
надеюсь, понятно написал....

С этим то понятно, значит тут получается 2 варианта: 1) из результата запроса взять только нужные строки и сложить их и
2) При создании запроса сделать ограничение именно по  этим 3 нужным организациям??

Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1346
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
я первым делом и обратил внимание на то, что непонятно, какие конкретно 3 организации нужны.
если не произвольные, а какие-то конкретные, то их есть смысл передать как параметры запроса - под ГДЕ указать эти организации (ну например через ИЛИ)

про сложить строки не понял вас. вам что нужно сложить сумму по 3-м организациям? если да, то это так же можно сделать в запросе. убрать поля группировки, оставить только сумму, агрегатная функция СУММА

Оффлайн joystas

  • *
  • Сообщений: 21
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-07-13
  • Сайт: 
  • Профессия: Программист 1С
я первым делом и обратил внимание на то, что непонятно, какие конкретно 3 организации нужны.
если не произвольные, а какие-то конкретные, то их есть смысл передать как параметры запроса - под ГДЕ указать эти организации (ну например через ИЛИ)

про сложить строки не понял вас. вам что нужно сложить сумму по 3-м организациям? если да, то это так же можно сделать в запросе. убрать поля группировки, оставить только сумму, агрегатная функция СУММА

Да нужно выбрать конкретные организации и вывести по ним общую сумму.



попробовал сделать вот так, выдает ошибку переменная не определена, вот текст полного запроса

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

Оффлайн mixqn

  • Администратор
  • *****
  • Сообщений: 1346
  • РЕПУТАЦИЯ: 166
  • КПД: 12%
  • Who is John Galt?
  • Регистрация: 2012-08-15
  • Сайт: 3gmaster.net
  • Профессия: Программист 1С
Во-первых, у вас ошибка в запросе. Части условия под ГДЕ должны соединяться либо И либо ИЛИ, у вас они просто перечислены.
Во-вторых, непонятно что это за конструкция: "НДСЗаписиКнигиПродаж.Покупатель()". Конкретные организации - это конкретные элементы справочника, их и надо указывать. Либо выведите параметры в форму, чтобы интерактивно можно было указать эти параметры, либо на худой конец используйте поиск по коду (см. метод НайтиПоКоду).
ну и в-третьих: есть смысл указывать полный текст сообщения об ошибке, а не просто
выдает ошибку переменная не определена


Оффлайн BotMan

  • *
  • Сообщений: 45
  • РЕПУТАЦИЯ: 1
  • КПД: 2%
  • Регистрация: 2014-06-05
  • Сайт: 
  • Профессия: Ученик 1С
рекомендуя для начала натаскаться на каком-нибудь простеньком запросе, результат которого вам хорошо известен!
например:

выбрать наименование организации где наименование организации = "Рога и копыта";

и потом уже апгрейдить!
Жми спасибо, если подсказал 8)

Оффлайн joystas

  • *
  • Сообщений: 21
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-07-13
  • Сайт: 
  • Профессия: Программист 1С
Во-первых, у вас ошибка в запросе. Части условия под ГДЕ должны соединяться либо И либо ИЛИ, у вас они просто перечислены.
Во-вторых, непонятно что это за конструкция: "НДСЗаписиКнигиПродаж.Покупатель()". Конкретные организации - это конкретные элементы справочника, их и надо указывать. Либо выведите параметры в форму, чтобы интерактивно можно было указать эти параметры, либо на худой конец используйте поиск по коду (см. метод НайтиПоКоду).
ну и в-третьих: есть смысл указывать полный текст сообщения об ошибке, а не просто
выдает ошибку переменная не определена

Разные варианты пробовал ошибка выходит переменная не определена и найти по коду, и НДСЗаписиКнигиПродаж.Покупатель() и отчет.покупатель и тд. не пойму я этот синтаксис.


Теги:
 

Из запроса не выводятся значения полей - выводятся пустые значения

Автор Alex1111Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 24
Просмотров: 12186
Последний ответ 14 Июн 2012, 17:44
от Alex1111
"ПОДОБНО" в условие связи запроса

Автор Станиславъ ЗверевъРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 8
Просмотров: 3231
Последний ответ 11 Май 2016, 15:29
от LexaK
"Таблица значений" в результате запроса - 1С

Автор mvk843Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 8
Просмотров: 723
Последний ответ 15 Июн 2017, 07:53
от mvk843
Возможно ли языком запросов без конкатенации текста запроса и без СКД преобразовать строки таблицы в столбцы (колонки) выходной таблицы?

Автор acces969Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 438
Последний ответ 29 Май 2017, 15:29
от alex0402
Ошибка при выполнении запроса - "неоднозначное поле"

Автор Marta_LiРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 14
Просмотров: 11912
Последний ответ 21 Апр 2011, 16:00
от Marta_Li

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
166 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
56 Сообщений
alex0402
46 Сообщений
andron81_81
44 Сообщений
AIFrame
36 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
BuhRust
28 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal