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

Автор Тема: неправильные и отрицательные остатки через запрос УТ 10.3  (Прочитано 1129 раз)

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

Оффлайн xgladosx

  • *
  • Сообщений: 7
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-02-25
  • Сайт: 
  • Профессия: Программист 8.1
обычный запрос на отображение остатков уже вбитых товаров, выдает рандомное число(не представляю откуда оно берется, но всегда одинковое для отдельно взятой номенклатуры), и сразу же повторно выдает его же отрицательное, т.е. считает каждый запрос за два на каждую строку. Без понятия где проблема, запрос стандартный, код ниже. Подскажите откуда могла взяться проблема, не могу разобраться.

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



Оффлайн Kironten

  • *****
  • Сообщений: 891
  • РЕПУТАЦИЯ: 184
  • КПД: 21%
  • Регистрация: 2013-08-12
  • Сайт: 
  • Профессия: Ученик 1С
обычный запрос на отображение остатков уже вбитых товаров, выдает рандомное число(не представляю откуда оно берется, но всегда одинковое для отдельно взятой номенклатуры), и сразу же повторно выдает его же отрицательное, т.е. считает каждый запрос за два на каждую строку. Без понятия где проблема, запрос стандартный, код ниже. Подскажите откуда могла взяться проблема, не могу разобраться.

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


Стандартный запрос? :xfbnsdfb:
Т.е. то, что вы для каждого элемента номенклатуры делаете свой запрос в цикле, да еще и потом идет запрос к наименованию номенклатуры, но уже через точку - это стандартный запрос? Это не считая того, что не используются параметры виртуальной таблицы.
Это, мягко говоря, очень серьезные ошибки.
А теперь по вопросу - берите отладчик и анализируйте, что у вас попало в выборку.
 Вы накладываете отбор только на элемент номенклатуры. Я конечно не помню навскидку измерения регистра в 10.3, но как минимум еще и по складам есть разрез.

Оффлайн xgladosx

  • *
  • Сообщений: 7
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-02-25
  • Сайт: 
  • Профессия: Программист 8.1
обычный запрос на отображение остатков уже вбитых товаров, выдает рандомное число(не представляю откуда оно берется, но всегда одинковое для отдельно взятой номенклатуры), и сразу же повторно выдает его же отрицательное, т.е. считает каждый запрос за два на каждую строку. Без понятия где проблема, запрос стандартный, код ниже. Подскажите откуда могла взяться проблема, не могу разобраться.

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


Стандартный запрос? :xfbnsdfb:
Т.е. то, что вы для каждого элемента номенклатуры делаете свой запрос в цикле, да еще и потом идет запрос к наименованию номенклатуры, но уже через точку - это стандартный запрос? Это не считая того, что не используются параметры виртуальной таблицы.
Это, мягко говоря, очень серьезные ошибки.
А теперь по вопросу - берите отладчик и анализируйте, что у вас попало в выборку.
 Вы накладываете отбор только на элемент номенклатуры. Я конечно не помню навскидку измерения регистра в 10.3, но как минимум еще и по складам есть разрез.

Да цикл не при чем, это не относится к сути вопроса. при обращении без циклов к одной единственной номенклатуре запрос с уточнением даты и склада выдает вместо пустого ответа 3 и -3, а вместо цифры "2" 9 и -9. откуда вообще могли взяться эти цифры? в остатках их нет ни за один день

p.s. пока отвечал на ум пришло вот что - а запрос учитывает разрез по организациям? в 10.2 точно нет, а в 10.3?

Оффлайн temrmal

  • ***
  • Сообщений: 122
  • РЕПУТАЦИЯ: 15
  • КПД: 12%
  • Регистрация: 2011-11-10
  • Сайт: 
  • Профессия: Программист 8.1
Берем регистр Товары на складах в пользовательском режиме, через все функции, ставим отбор по какой нибудь позиции, и смотрим движения. Скрин можешь выложить, там видно будет

Оффлайн xgladosx

  • *
  • Сообщений: 7
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2014-02-25
  • Сайт: 
  • Профессия: Программист 8.1
Берем регистр Товары на складах в пользовательском режиме, через все функции, ставим отбор по какой нибудь позиции, и смотрим движения. Скрин можешь выложить, там видно будет

это полное движение этого товара и остатки. выдает 3 и -3


Оффлайн DmitriyF

  • *****
  • Сообщений: 727
  • РЕПУТАЦИЯ: 48
  • КПД: 7%
  • Регистрация: 2013-03-18
  • Сайт: 
  • Профессия: Разработчик 1С
обычный запрос на отображение остатков уже вбитых товаров, выдает рандомное число(не представляю откуда оно берется, но всегда одинковое для отдельно взятой номенклатуры), и сразу же повторно выдает его же отрицательное, т.е. считает каждый запрос за два на каждую строку. Без понятия где проблема, запрос стандартный, код ниже. Подскажите откуда могла взяться проблема, не могу разобраться.

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

Запрос в цикле вообще супер. Чем не устраивает запрос по остаткам с группировкой?


Теги:  
 

Как можно подставлять цену из регистра сведений "Цены поставщиков" в документ"ПоступлениеТоваров" на актуальную дату? Необходимо использовать запрос в решении.

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

Ответов: 14
Просмотров: 9184
Последний ответ 24 Окт 2014, 13:30
от cska-fanat-kz
Запрос Параметры для "ИЗ"

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

Ответов: 2
Просмотров: 2942
Последний ответ 15 Май 2013, 23:27
от Березин
Что быстрее: Загрузить табличную часть в запрос и там добавить колонки, или пробежаться циклом по ТЧ и добавить значения в колонки

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

Ответов: 1
Просмотров: 953
Последний ответ 11 Июл 2016, 09:00
от vitasw
Запрос по обработке "Согласование заявок"

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

Ответов: 0
Просмотров: 644
Последний ответ 29 Сен 2016, 02:39
от DenielAkreed
Как объединить объект в реквизите формы с типом "ДокументОбъект" и объект формы, созданной через "ПолучитьФорму()"?

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

Ответов: 3
Просмотров: 229
Последний ответ 06 Авг 2017, 21:22
от alex0402

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

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

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


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

* Реклама

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

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
169 Сообщений
MuI_I_Ika MuI_I_Ika
87 Сообщений
oleg-x
71 Сообщений
ilyay ilyay
68 Сообщений
alex0402
62 Сообщений
Dmitry Qwe Dmitry Qwe
32 Сообщений
Golickoff Golickoff
24 Сообщений
Sy4a
24 Сообщений
Dima Dddd Dima Dddd
20 Сообщений
BuhRust
17 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal