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

Хранилище

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

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



> Как должно проходить списание?          
Vofka Подменю пользователя
сообщение 18.09.09, 13:47
Сообщение #1

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

Привет!

В расходной накладной в шапке документа укаывается партия (приходный документ), списание проходит по FIFO или LIFO (в данном случае не суть важно). Сначала товар должен списыватьсь с партии которая указана в шапке (если по ней есть остаток) и если в партии товара меньше, чем требуется списать - списываем по установленному методу.

Как должно проходить списание? Вопрос именно с точки зрения программирования. Как построить запрос? Как это организовать 2 запросами я представляю: сначала сделать запрос по партии, которая указана в шапке и если в ней не достаточно товара, то делаем второй запрос по всем партиям (ведь всеравно по партии которая указана в шапке - остаток будет 0). Можно как-то это сделать одним запросом? Ведь 1 запрос - это лучше чем 2 smile.gif ?

zetovich Подменю пользователя
сообщение 18.09.09, 15:40
Сообщение #2

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 718
Из: Северодонецк
Спасибо сказали: 121 раз
Рейтинг: 0

1 запрос со всеми партиями....(сортированный по нужному методу)
потом найти нужную (в Результате выполненого запроса) (методом "Найти"),
если нету..то списуем то что есть.
вродь 1 запрос.

Zaval Подменю пользователя
сообщение 18.09.09, 16:39
Сообщение #3

Крутой
Иконка группы
Группа: Местный
Сообщений: 1994
Из: Киева и окрестностей
Спасибо сказали: 406 раз
Рейтинг: 0

Построй запрос так, чтобы явно указанная партия была первой. Или перемести ее на первое место в выборке после выполнения запроса.
Дальше - простое "размазывание".
Один запрос - это интерес академический?

Не получится ли, что в дальнейшем пользователи захотят светить в шапке не одну, а список партий? Наиболее универсальным мне представляется именно 2 запроса:
- по списку явно указанных партий в порядке их указания
если не хватило
- по установленному методу за исключением списка

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

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

Цитата
потом найти нужную (в Результате выполненого запроса) (методом "Найти")

Цитата
Построй запрос так, чтобы явно указанная партия была первой. Или перемести ее на первое место в выборке после выполнения запроса.


А можно на пальцах? smile.gif

Цитата
Один запрос - это интерес академический?


Просто слышал, что один сложный запрос - это лучше двух простых. Или это не так?

Цитата
Не получится ли, что в дальнейшем пользователи захотят светить в шапке не одну, а список партий?


Не знаю. Я по сборнику задач все делаю. Может в дальнейшем так и будет, но я до того ещё не дошёл smile.gif

Fynjy Подменю пользователя
сообщение 18.09.09, 22:01
Сообщение #5

Сенсей Чака Норриса
**********
За вредность
Группа: Пользователи
Сообщений: 1994
Из: Ахметов сити
Спасибо сказали: 333 раз
Рейтинг: 0

Что то мудришь ... Если указан документ возврата - берешь данные из него, если не указан, берешь первую отгрузку с таким товаром, данные из нее. Не хватило - следующую.
Один запрос лучше чем 2, вопрос только как он написан ...


Signature

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

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

Цитата
Что то мудришь ... Если указан документ возврата - берешь данные из него, если не указан, берешь первую отгрузку с таким товаром, данные из нее. Не хватило - следующую.


У меня не возврат, а расход (не знаю имеет ли это значение).

Как мне сделать: если в результат запроса попала нужная запись найти её и поставить на первое место?

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

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

Вот условие:


Вот текст запроса:


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


Вот результат запроса:


Что дальше и правильно ли?

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


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

 

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