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

Автор Тема: Выборка из регистра накопления остатков  (Прочитано 2150 раз)

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

Оффлайн getman

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-05-02
  • Сайт: 
  • Профессия: Ученик 1С
Здравствуйте. Я только учусь поэтому сильно не пинайте если вопросы глупые. Есть задание - в Документе заполнена колонка Номенклатура (справочник.ссылка.номенклатура) надо по нажатию кнопки в соседнюю колонку заполнить остатками по каждой позиции на складе. я пишу


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

 

А на выходе ноль. запрос просто не работает.
Результат.ВНаличии - не определено.
Результат.Следующий() - ложь.
то есть ни одного совпадения? но если я делаю отчет с запросом через конструктор запросов то точно такой же текст мне выдает правильное количество. где косяк то?((


Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
Ссылка - это что? какой тип данных?
+ запрос построен некорректно. Отбор нужно устанавливать через параметры виртуальной таблицы
|ИЗ
|   РегистрНакопления.СвободныеОстатки.Остатки(,Номенклатура=&Номенклатура) КАК СвободныеОстатки

Оффлайн getman

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-05-02
  • Сайт: 
  • Профессия: Ученик 1С
Ссылка - это что? какой тип данных?
+ запрос построен некорректно. Отбор нужно устанавливать через параметры виртуальной таблицы
|ИЗ
|   РегистрНакопления.СвободныеОстатки.Остатки(,Номенклатура=&Номенклатура) КАК СвободныеОстатки

Ссылка - Справочник. ссылка. номенклатура

Оффлайн Hedinnk

  • **
  • Сообщений: 84
  • РЕПУТАЦИЯ: 14
  • КПД: 17%
  • Регистрация: 2016-03-04
  • Сайт: 
  • Профессия: Программист 1С
Первая грубая ошибка, Вы выполняете запрос в цикле. Это неправильно. Вам необходимо получить остатки сразу для всей номенклатуры из табличной части и этими данными заполнить необходимую колонку
На форуме есть волшебная кнопка "Сказать СПАСИБО"

Оффлайн getman

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-05-02
  • Сайт: 
  • Профессия: Ученик 1С
В итоге все заработало когда заменил конец на
Результат = Запрос.Выполнить().Выбрать();
рез = 0;
пока Результат.Следующий() цикл
рез = рез + Результат.ВНаличии;
конеццикла;
Возврат рез;
выходит что запрос все таки формировался но просто не позиционировался на самом результате так что ли?
Добавлено: 02 Май 2016, 13:22

Первая грубая ошибка, Вы выполняете запрос в цикле. Это неправильно. Вам необходимо получить остатки сразу для всей номенклатуры из табличной части и этими данными заполнить необходимую колонку

А как это можно провернуть? ведь номенклатура может быть совершенно разная заполненная случайным образом. как ее отправить в запрос кроме цикла? и чем плох запрос в цикле?

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
и чем плох запрос в цикле?

всем. В первую очередь скоростью выполнения конечного кода.

Оффлайн getman

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2016-05-02
  • Сайт: 
  • Профессия: Ученик 1С
и чем плох запрос в цикле?

всем. В первую очередь скоростью выполнения конечного кода.

И как в таком случае от цикла избавиться? :dfbsdfbsdf:

Оффлайн Hedinnk

  • **
  • Сообщений: 84
  • РЕПУТАЦИЯ: 14
  • КПД: 17%
  • Регистрация: 2016-03-04
  • Сайт: 
  • Профессия: Программист 1С
Выгружаете колонку номенклатура в массив и подставляете его в качестве параметра виртуальной таблицы
На форуме есть волшебная кнопка "Сказать СПАСИБО"


Теги:
 

Отчеты "Ведомость ОС, НМА" и "Ведомость остатков материалов"

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

Ответов: 0
Просмотров: 2513
Последний ответ 04 Апр 2015, 06:15
от OlegatorOG
Как можно подставлять цену из регистра сведений "Цены поставщиков" в документ"ПоступлениеТоваров" на актуальную дату? Необходимо использовать запрос в решении.

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

Ответов: 14
Просмотров: 8903
Последний ответ 24 Окт 2014, 13:30
от cska-fanat-kz
«Единица для отчетов» и «Единица хранения остатков»

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

Ответов: 2
Просмотров: 7347
Последний ответ 14 Фев 2012, 02:29
от Dethmontt
Отличие проводки по регистру сведений от проводки по регистру накопления?

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

Ответов: 2
Просмотров: 4737
Последний ответ 18 Апр 2012, 02:19
от Dethmontt
Можно ли програмно изменить одну из колонок таблицы формы регистра сведений при создании формы

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

Ответов: 4
Просмотров: 1185
Последний ответ 21 Фев 2016, 17:00
от vitasw

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

oleg-x
90 Сообщений
alex0402
54 Сообщений
AIFrame
42 Сообщений
Геннадий ОбьГЭС Геннадий ОбьГЭС
38 Сообщений
Oldman06
31 Сообщений
Golickoff Golickoff
30 Сообщений
vitasw
29 Сообщений
MuI_I_Ika MuI_I_Ika
19 Сообщений
DmitriyF DmitriyF
14 Сообщений
BuhRust
14 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal