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

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

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

Оффлайн Geenko

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-01-08
  • Сайт: 
  • Профессия: Программист 8.1
Мне необходимо сформировать запрос из виртуальной таблицы регистра накопления. Нужно выудить данные только по одному виду номенклатуры, попытался сделать следующим образом:

-----------------------------------------------------
ЗапросПоставок = Новый Запрос;
   ЗапросПоставок.Текст="
   |Выбрать
   |КоличествоОстаток Как ОстатокПериода,
   |Партия
   |ИЗ
   |РегистрНакопления.ОстаткиНоменклатура.Остатки(&ДатаДок,&ПарОтбор)
   |
   |Упорядочить По Партия Возр
   |";
   Отбор = Новый структура;
   Отбор.Вставить("Номенклатура",ВыборкаТоваров.Номенклатура);
   ЗапросПоставок.УстановитьПараметр("ДатаДок",Дата);
   ЗапросПоставок.УстановитьПараметр("ПарОтбор",Отбор);
   РезультатПоПартиям = ЗапросПоставок.Выполнить();
----------------------------------------------------------
Параметры для РегистрНакопления.ОстаткиНоменклатура.Остатки() подсмотрел в синтаксис-помощнике, но при исполнении кода 1с ругается следующим образом :

Ошибка при выполнении обработчика - '{Документ.Расходная(52)}: Ошибка при вызове метода контекста (Выполнить): {(6, 56)}: Неверные параметры "РегистрНакопления.ОстаткиНоменклатура.Остатки, 1"
РегистрНакопления.ОстаткиНоменклатура.Остатки(&ДатаДок,<<?>>&ПарОтбор)'
по причине:
{Документ.Расходная(52)}: Ошибка при вызове метода контекста (Выполнить): {(6, 56)}: Неверные параметры "РегистрНакопления.ОстаткиНоменклатура.Остатки, 1"
РегистрНакопления.ОстаткиНоменклатура.Остатки(&ДатаДок,<<?>>&ПарОтбор)

по причине:
{(6, 56)}: Неверные параметры "РегистрНакопления.ОстаткиНоменклатура.Остатки, 1"
РегистрНакопления.ОстаткиНоменклатура.Остатки(&ДатаДок,<<?>>&ПарОтбор)
---------------------------------------------------------------------------------

Как так то?? что же тут не правильно, никак понять не могу!


Оффлайн Geenko

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-01-08
  • Сайт: 
  • Профессия: Программист 8.1
Люди добрые, помогите, пожалуйста, весь мозг сломал уже.

Оффлайн progmikon

  • *****
  • Сообщений: 2090
  • РЕПУТАЦИЯ: 371
  • КПД: 18%
  • Регистрация: 2010-10-09
  • Компания: http://progmikon.blogspot.com/
  • Профессия: Программист 1С
Мне необходимо сформировать запрос из виртуальной таблицы регистра накопления. Нужно выудить данные только по одному виду номенклатуры, попытался сделать следующим образом:

-----------------------------------------------------
ЗапросПоставок = Новый Запрос;
   ЗапросПоставок.Текст="
   |Выбрать
   |КоличествоОстаток Как ОстатокПериода,
   |Партия
   |ИЗ
   |РегистрНакопления.ОстаткиНоменклатура.Остатки(&ДатаДок,&ПарОтбор)
   |
   |Упорядочить По Партия Возр
   |";
   Отбор = Новый структура;
   Отбор.Вставить("Номенклатура",ВыборкаТоваров.Номенклатура);
   ЗапросПоставок.УстановитьПараметр("ДатаДок",Дата);
   ЗапросПоставок.УстановитьПараметр("ПарОтбор",Отбор);
   РезультатПоПартиям = ЗапросПоставок.Выполнить();
----------------------------------------------------------
Параметры для РегистрНакопления.ОстаткиНоменклатура.Остатки() подсмотрел в синтаксис-помощнике, но при исполнении кода 1с ругается следующим образом :

Ошибка при выполнении обработчика - '{Документ.Расходная(52)}: Ошибка при вызове метода контекста (Выполнить): {(6, 56)}: Неверные параметры "РегистрНакопления.ОстаткиНоменклатура.Остатки, 1"
РегистрНакопления.ОстаткиНоменклатура.Остатки(&ДатаДок,<<?>>&ПарОтбор)'
по причине:
{Документ.Расходная(52)}: Ошибка при вызове метода контекста (Выполнить): {(6, 56)}: Неверные параметры "РегистрНакопления.ОстаткиНоменклатура.Остатки, 1"
РегистрНакопления.ОстаткиНоменклатура.Остатки(&ДатаДок,<<?>>&ПарОтбор)

по причине:
{(6, 56)}: Неверные параметры "РегистрНакопления.ОстаткиНоменклатура.Остатки, 1"
РегистрНакопления.ОстаткиНоменклатура.Остатки(&ДатаДок,<<?>>&ПарОтбор)
---------------------------------------------------------------------------------

Как так то?? что же тут не правильно, никак понять не могу!

А если запрос написать так:
 ЗапросПоставок.Текст="
   |Выбрать
   |КоличествоОстаток Как ОстатокПериода,
   |Партия
   |ИЗ
   |РегистрНакопления.ОстаткиНоменклатура.Остатки(&ДатаДок, Номенклатура В (&МассивНоменклатуры))
   |
   |Упорядочить По Партия Возр
   |";
...
Запрос.УстановитьПараметр("МассивНоменклатуры", ВыборкаТоваров.ВыгрузитьКолонку("Номенклатура")); //если номенклатура не одна - можно передать массив, например из ТЗ

Оффлайн Geenko

  • *
  • Сообщений: 8
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-01-08
  • Сайт: 
  • Профессия: Программист 8.1
progmikon, спасибо, но не помогло. Выборка из запроса не имеет функцию ВыгрузитьКолонку(). Решил проблему проще. Добавил в запрос условие ГДЕ.

Оффлайн progmikon

  • *****
  • Сообщений: 2090
  • РЕПУТАЦИЯ: 371
  • КПД: 18%
  • Регистрация: 2010-10-09
  • Компания: http://progmikon.blogspot.com/
  • Профессия: Программист 1С
progmikon, спасибо, но не помогло. Выборка из запроса не имеет функцию ВыгрузитьКолонку(). Решил проблему проще. Добавил в запрос условие ГДЕ.
МассивНоменклатуры = Запрос.Выполнить.Выгрузить().ВыгрузитьКолонку("номенклатура");

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

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

Если запрос к виртуальной таблице, то надо задавать параметры виртуальной таблицы вместо конструкции ГДЕ. Результат не спорю один и тот же, но в первом случае - быстрее работает.

|ИЗ
|РегистрНакопления.ОстаткиНоменклатура.Остатки(&ДатаДок, Номенклатура В (&МассивНоменклатуры))

вместо

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

Оффлайн progmikon

  • *****
  • Сообщений: 2090
  • РЕПУТАЦИЯ: 371
  • КПД: 18%
  • Регистрация: 2010-10-09
  • Компания: http://progmikon.blogspot.com/
  • Профессия: Программист 1С
progmikon, спасибо, но не помогло. Выборка из запроса не имеет функцию ВыгрузитьКолонку(). Решил проблему проще. Добавил в запрос условие ГДЕ.



Если запрос к виртуальной таблице, то надо задавать параметры виртуальной таблицы вместо конструкции ГДЕ. Результат не спорю один и тот же, но в первом случае - быстрее работает.

|ИЗ
|РегистрНакопления.ОстаткиНоменклатура.Остатки(&ДатаДок, Номенклатура В (&МассивНоменклатуры))

вместо

|ИЗ
|РегистрНакопления.ОстаткиНоменклатура.Остатки(&ДатаДок) КАК Остатки
|ГДЕ Остатки.Номенклатура В (&МассивНоменклатуры)

Абсолютно верное дополнение. Именно так я и рекомендовал написать запрос во втором ответе.


Теги:
 

Проблема с выгрузкой НН в "Звит" Не найдено соответствие для схемы "J1201008"

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

Ответов: 3
Просмотров: 1175
Последний ответ 06 Июл 2016, 09:19
от AldemaH
проблема с "ЗагрузкаДанныхИзТабличногоДокумента"

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

Ответов: 4
Просмотров: 4690
Последний ответ 08 Янв 2014, 14:30
от LordWizard
Проблема с развертыванием окон и сохранением окон

Автор SokresРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 2420
Последний ответ 09 Дек 2015, 14:09
от pavl_vs
Проблема с отчетом "Перемещение товаров"

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

Ответов: 3
Просмотров: 3319
Последний ответ 14 Дек 2010, 20:27
от progmikon
1C 8.2 УПП проблема с отчетом "Задолженость по контрагентам"

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

Ответов: 2
Просмотров: 3574
Последний ответ 26 Сен 2011, 20:42
от Dethmontt

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
170 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
55 Сообщений
alex0402
49 Сообщений
andron81_81
42 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal