Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Запрос остатков номеклатуры , "Управление торговлей для Украины", 2.3.18.1          
Fabri Подменю пользователя
сообщение 29.03.13, 12:38
Сообщение #1

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 188
Спасибо сказали: 55 раз
Рейтинг: 0

Прошу помочь с запросом. Необходимо выводить в табличное поле остатки номенклатуры, остаток которой меньше-равно 1.
Сформировал запрос, прописал в запросе
ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК Остаток

а выводятся записи только с остатком 1 и минусовые - номенклатура с остатком ноль - не выводится.
А меня как-раз больше всего интересует номенклатура с отстатком ноль. Подскажите что в запросе не так? Спасибо.

Запрос = Новый Запрос;
Запрос.Текст =
    "ВЫБРАТЬ
    |    ТоварыНаСкладахОстатки.Номенклатура,
    |    ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК Остаток
    |ИЗ
    |    РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки";

Запрос.УстановитьПараметр("Склад", ЭтотОбъект.Склад);
//Запрос.УстановитьПараметр("КоличествоОстаток", ЭтотОбъект.ОстатокМеньше);

Результат = Запрос.Выполнить();
    
ЭтотОбъект.Товары.Загрузить(Результат.Выгрузить());

Vofka Подменю пользователя
сообщение 29.03.13, 12:45
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4520 раз
Рейтинг: 3642.8

|ВЫБРАТЬ
|    СпрНоменклатура.Ссылка КАК Номенклатура,
|    ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК Остаток
|ИЗ
|    Справочник.Номенклатура КАК СпрНоменклатура
|        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад = &Склад) КАК ТоварыНаСкладахОстатки
|        ПО (ТоварыНаСкладахОстатки.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура.Ссылка)
|ГДЕ
|    ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) = 0

Fabri Подменю пользователя
сообщение 29.03.13, 12:57
Сообщение #3

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 188
Спасибо сказали: 55 раз
Рейтинг: 0

Vofka увы, Ваш вариант вообще ничего не выводит. upset.gif


Vofka Подменю пользователя
сообщение 29.03.13, 13:49
Сообщение #4

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4520 раз
Рейтинг: 3642.8

Ну надо ж хотя бы смотреть на те буковки, которые вам показывают. Опечатка там. Надо так:

|ВЫБРАТЬ
|    СпрНоменклатура.Ссылка КАК Номенклатура,
|    ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК Остаток
|ИЗ
|    Справочник.Номенклатура КАК СпрНоменклатура
|        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад = &Склад) КАК ТоварыНаСкладахОстатки
|        ПО (ТоварыНаСкладахОстатки.Номенклатура = СпрНоменклатура.Ссылка)
|ГДЕ
|    ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) = 0


Сообщение отредактировал Vofka - 29.03.13, 13:50

Fabri Подменю пользователя
сообщение 29.03.13, 14:21
Сообщение #5

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 188
Спасибо сказали: 55 раз
Рейтинг: 0

Цитата(Vofka @ 29.03.13, 13:49) *
Ну надо ж хотя бы смотреть на те буковки, которые вам показывают. Опечатка там. Надо так:

|ВЫБРАТЬ
|    СпрНоменклатура.Ссылка КАК Номенклатура,
|    ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК Остаток
|ИЗ
|    Справочник.Номенклатура КАК СпрНоменклатура
|        ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(, Склад = &Склад) КАК ТоварыНаСкладахОстатки
|        ПО (ТоварыНаСкладахОстатки.Номенклатура = СпрНоменклатура.Ссылка)
|ГДЕ
|    ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) = 0


Дело не в буковках. И данный запрос не дает нужный результат, выводит 8300 элементов номеклатуры, поле остаток - пустое. Хотя по запросу все как-бы правильно. Буду пробовать дальше, результат сообщу.

Если открыть регистр накопления ТоварыНаСкладах, то там нет записей с количеством 0. Т.е. впечетление что при реализации 1 шт. товара остаток которго 1 шт., он тупо удаляется из регистра, а не меняется его ресурс Количество как по логике должно быть.

Хотя нет, это я туплю, в регистре накопления остаток рассчитывается разицой между записями приход и расход.

logist Подменю пользователя
сообщение 29.03.13, 14:27
Сообщение #6

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2536 раз
Рейтинг: 0

Цитата(Fabri @ 29.03.13, 12:38) *
остаток которой меньше-равно 1.

Цитата(Fabri @ 29.03.13, 14:21) *
|ГДЕ
|    ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) = 0

так:
|ГДЕ
|    ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) <= 1


Signature
Личные бесплатные консультации не даю, для этого есть форум!

Ardi Подменю пользователя
сообщение 29.03.13, 14:33
Сообщение #7

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

в музей.


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

Fabri Подменю пользователя
сообщение 29.03.13, 14:42
Сообщение #8

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 188
Спасибо сказали: 55 раз
Рейтинг: 0

logist Не в этом суть. Результата нет.

Почему из регистра накопления ТоварыНаСкладах не выводятся записи с количеством 0. Левое соединение и т.д. это уже лишнее, тем более что у меня к примеру 2 склада, на одном из них небыло и 5 части всей номенклатуры. Тут правильней выводить только то что поступало и продавалось из конкретного склада, эта инфа в регистре накопления ТоварыНаСкладах, а он ..... не выводит номенклатуру с нулевым остатком... faceoff.gif

Vofka Подменю пользователя
сообщение 29.03.13, 14:48
Сообщение #9

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4520 раз
Рейтинг: 3642.8

Цитата(Fabri @ 29.03.13, 12:38) *
А меня как-раз больше всего интересует номенклатура с отстатком ноль.

Цитата(Fabri @ 29.03.13, 14:21) *
И данный запрос не дает нужный результат, выводит 8300 элементов номеклатуры, поле остаток - пустое.

Пустое - это 0, если что. Короче, я пойду отсюда, т.к. вижу, что разговор как-то не клеится.

Цитата(Ardi @ 29.03.13, 14:33) *
в музей.

В корзину, скорее.

Fabri Подменю пользователя
сообщение 29.03.13, 14:51
Сообщение #10

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 188
Спасибо сказали: 55 раз
Рейтинг: 0

И данный запрос не дает нужный результат, выводит 8300 элементов номеклатуры, поле остаток - пустое.
Пустое - это 0, если что. Короче, я пойду отсюда, т.к. вижу, что разговор как-то не клеится.

Тут правильней выводить только то что поступало и продавалось из конкретного склада, эта инфа в регистре накопления ТоварыНаСкладах, а он ..... не выводит номенклатуру с нулевым остатком...

Склад неделю назад создался. Оприходованно около 2500 товаров. Как может быть 8300? Зачем мне весь справочник номенклатура в запросе?

Vofka Подменю пользователя
сообщение 29.03.13, 15:04
Сообщение #11

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4520 раз
Рейтинг: 3642.8

Цитата(Fabri @ 29.03.13, 14:51) *
Зачем мне весь справочник номенклатура в запросе?

А зачем писать
Цитата(Fabri @ 29.03.13, 12:38) *
Необходимо выводить в табличное поле остатки номенклатуры, остаток которой меньше-равно 1.

и
Цитата(Fabri @ 29.03.13, 12:38) *
меня как-раз больше всего интересует номенклатура с отстатком ноль

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

Сообщение отредактировал Vofka - 29.03.13, 15:05

Petre Подменю пользователя
сообщение 29.03.13, 15:17
Сообщение #12

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2905
Из: Київ, Україна
Спасибо сказали: 1147 раз
Рейтинг: 1228.9

Вы определитесь с условиями задачи. Если все ресурсы нулевые - остатки не выводятся.
Здесь необходимо соединять остатки с номенклатурой оборотов по регистру.

Вернее объединять...


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

Fabri Подменю пользователя
сообщение 29.03.13, 15:17
Сообщение #13

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 188
Спасибо сказали: 55 раз
Рейтинг: 0

Ок, начнем сначала, может я неправильно все разьяснил.
Расскажу подробней. В нашем предприятии есть склад и магазин.
Для кажого в 1С есть свой склад. Необходимо чтобы при запуске 1С в магазине выскакивало окошко с номенклатурой остаток которой = 0.
Потом там же создам кнопочку для передачи этого списка в документ Внутренний заказ, тем самым облегчив контроль остатков товаров в магазине.
Выводить нужо только ту номенклатуру, которая поступала на склад магазина. Написал запрос, но он не выводит номенклатуру с остатком 0, все остальные выводятся. Прошу помочь, спасибо.

Запрос = Новый Запрос;
Запрос.Текст =
    "ВЫБРАТЬ
    |    ТоварыНаСкладахОстатки.Номенклатура,
    |    ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК Остаток
    |ИЗ
    |    РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки";

Запрос.УстановитьПараметр("Склад", ЭтотОбъект.Склад);
//Запрос.УстановитьПараметр("КоличествоОстаток", ЭтотОбъект.ОстатокМеньше);

Результат = Запрос.Выполнить();
    
ЭтотОбъект.Товары.Загрузить(Результат.Выгрузить());

Petre Подменю пользователя
сообщение 29.03.13, 15:27
Сообщение #14

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2905
Из: Київ, Україна
Спасибо сказали: 1147 раз
Рейтинг: 1228.9

В таблицу остатков РН не попадают записи с нулевыми ресурсами.
По этому вижу два варианта:
1. выборку из таблицы оборотов РН объединить с выборкой из таблицы остатков РН.
2. выборку из таблицы оборотов РН слева соединить в выборкой из таблицы остатков РН.
Для этой задачи необходимо формализировать Ваше условие "только ту номенклатуру, которая поступала на склад магазина" для выборки из таблицы оборотов.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

pablo Подменю пользователя
сообщение 29.03.13, 15:33
Сообщение #15

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

ВЫБРАТЬ Различные
        ТоварыНаСкладах.Номенклатура
поместить ТоварыМагазина
    ИЗ
        РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
    Где РегистрНакопления.ТоварыНаСкладах.Склад=&Склад;
ВЫБРАТЬ
        ТоварыНаСкладахОстатки.Номенклатура,
        ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК Остаток
    ИЗ
        РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
где
   ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) = 0 И
  ТоварыНаСкладахОстатки.Номенклатура в (Выбрать Номенклатура из ТоварыМагазина)



Но в Вашей постановке задачи заложена серьёзная логическая ошибка. И выльется это в кучу неприятностей через годик-другой...


Signature
Правильно поставленный вопрос содержит до 90% ответа.

Fabri Подменю пользователя
сообщение 29.03.13, 15:37
Сообщение #16

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 188
Спасибо сказали: 55 раз
Рейтинг: 0

Цитата(pablo @ 29.03.13, 15:33) *
Но в Вашей постановке задачи заложена серьёзная логическая ошибка. И выльется это в кучу неприятностей через годик-другой...


Вы про то что через годик уже 30-40% номенклатуры уже не будет покупатся, но в список она будет попадать? Тут тоже планируется сделать отбор товаров, поступивших на склад с даты, которую будут устанавливать работники магазина.

sava1 Подменю пользователя
сообщение 29.03.13, 15:55
Сообщение #17

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2688
Из: Проскуров
Спасибо сказали: 681 раз
Рейтинг: 659.7

Цитата(Petre @ 29.03.13, 15:27) *
выборку из таблицы оборотов РН объединить с выборкой из таблицы остатков РН.


И что получиться?

1. Выбираем из таблицы ОстаткиОбороты все, что имеет остаток 0 и приход Не равный 0 - и все

ВЫБРАТЬ
    ТоварыНаСкладахОстаткиИОбороты.Номенклатура
ИЗ
    РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&Дата1, &Дата2, Период, ДвиженияИГраницыПериода, Склад = &Склад) КАК ТоварыНаСкладахОстаткиИОбороты
ГДЕ
    ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход <> 0
    И ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток = 0

Спасибо сказали: Fabri,

Petre Подменю пользователя
сообщение 29.03.13, 16:14
Сообщение #18

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2905
Из: Київ, Україна
Спасибо сказали: 1147 раз
Рейтинг: 1228.9

Если дата остатков совпадает с конечной датой периода анализа поступлений - можно и так. Но я предполагаю кучу вариантов, т. к. условия не исчерпывающие...


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

sava1 Подменю пользователя
сообщение 29.03.13, 16:51
Сообщение #19

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2688
Из: Проскуров
Спасибо сказали: 681 раз
Рейтинг: 659.7

т.е. мы заказываем товар, которого у нас нет, но мы получали его в августе прошлого года?

Vofka Подменю пользователя
сообщение 29.03.13, 16:57
Сообщение #20

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4520 раз
Рейтинг: 3642.8


Спасибо сказали: sava1,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 25.04.24, 12:19
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!