Автор Тема: Задача 1.24  (Прочитано 18568 раз)

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

Demy

  • Пользователь
  • **
  • Сообщений: 21
  • ФИО: Demy
Задача 1.24
« Ответ #45 : Май 16, 2014, 10:32:02 am »
YFred, посмотрел твое решение, все равно списывается неправильно. Тут вся соль в том чтобы разделить остатки, затребованные напрямую с расходника, с остатками, которые покрывают недостаток на складе. Посмотри выгрузку.

Добавлено (16.05.2014, 10:32)
---------------------------------------------

Цитата YFred ()
Разобрал твой запрос, это жесть.
Я когда в примере этот запрос разбирал тоже сначала ужаснулся, но на самом деле в нем нет ничего сложного.
Цитата YFred ()
Ну не уверен, что правильнее с точки зрения экзаменаторов.
Эта задача очень похожа на задачу 1.4, решение которой в качестве примера дается с задачником. На основании запроса написанного там я и сделал свой. Не будут же экзаменаторы критиковать свое же решение?!! smile
Вложения:
YFred_1.24_E3.dt

YFred

  • Новичок
  • *
  • Сообщений: 5
  • ФИО: YFred
Задача 1.24
« Ответ #46 : Май 16, 2014, 12:18:32 pm »
Demy
 я сдался smile . Переделаю как в задачнике, через ОГРОМНЫЙ запрос.


Odines

  • Проверенный
  • ***
  • Сообщений: 112
  • ФИО: Odines
Re: Задача 1.24
« Ответ #47 : Февраль 06, 2015, 08:53:38 pm »
Без подготовки на экзамене не решил бы

Сеня

  • Новичок
  • *
  • Сообщений: 6
Re: Задача 1.24
« Ответ #48 : Февраль 23, 2015, 11:49:23 am »
Только начал готовиться. Написал запрос для расходной накладной, учитываю приоритеты складов, все работает - списывает с учетом приоритетов, но не знаю как учесть ситуацию, когда у нас в табличной части фигурирует одинаковый товар, но при этом указаны разные склады? У меня запрос обрабатывает только первую строку в ТЧ, списывает, а все что ниже игнорирует.
Запрос = Новый Запрос;
   Запрос.Текст =
    "ВЫБРАТЬ
    |   СписокНоменклатуры.Номенклатура КАК Номенклатура,
    |   СУММА(СписокНоменклатуры.Количество) КАК Количество,
    |   СписокНоменклатуры.Склад КАК Склад,
    |   СУММА(СписокНоменклатуры.Сумма) КАК Сумма
    |ПОМЕСТИТЬ ТЧСписание
    |ИЗ
    |   Документ.РасходнаяНакладная.СписокНоменклатуры КАК СписокНоменклатуры
    |ГДЕ
    |   СписокНоменклатуры.Ссылка = &Ссылка
    |
    |СГРУППИРОВАТЬ ПО
    |   СписокНоменклатуры.Номенклатура,
    |   СписокНоменклатуры.Склад
    |
    |ИНДЕКСИРОВАТЬ ПО
    |   Номенклатура
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |   ТЧСписание.Номенклатура КАК Номенклатура,
    |   ТЧСписание.Количество КАК ДокументКоличество,
    |   ТЧСписание.Сумма КАК ДокументСумма,
    |   ОстаткиНоменклатурыОстатки.Склад,
    |   ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК КоличествоОстаток,
    |   ЕСТЬNULL(ОстаткиНоменклатурыОстатки.СтоимостьОстаток, 0) КАК СтоимостьОстаток,
    |   ВЫБОР
    |      КОГДА ОстаткиНоменклатурыОстатки.Склад = ТЧСписание.Склад
    |         ТОГДА 0
    |      ИНАЧЕ 1
    |   КОНЕЦ КАК ПорядокСортировки
    |ИЗ
    |   ТЧСписание КАК ТЧСписание
    |      ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки(
    |            &МоментВремени,
    |            Номенклатура В
    |               (ВЫБРАТЬ
    |                  РасходнаяНакладная.Номенклатура
    |               ИЗ
    |                  ТЧСписание КАК РасходнаяНакладная)) КАК ОстаткиНоменклатурыОстатки
    |         ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПриоритетыСкладов.СрезПоследних(&МоментВремени) КАК ПриоритетыСкладовСрезПоследних
    |         ПО ОстаткиНоменклатурыОстатки.Склад = ПриоритетыСкладовСрезПоследних.Склад
    |      ПО ТЧСписание.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура
    |
    |УПОРЯДОЧИТЬ ПО
    |   ПорядокСортировки,
    |   ПриоритетыСкладовСрезПоследних.Приоритет
    |ИТОГИ
    |   МАКСИМУМ(ДокументКоличество),
    |   СУММА(ДокументСумма),
    |   СУММА(КоличествоОстаток),
    |   СУММА(СтоимостьОстаток)
    |ПО
    |   Номенклатура";
   
   Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
   Запрос.УстановитьПараметр("Ссылка"       , Ссылка);


Odines

  • Проверенный
  • ***
  • Сообщений: 112
  • ФИО: Odines
Re: Задача 1.24
« Ответ #49 : Февраль 23, 2015, 12:11:12 pm »
Только начал готовиться. Написал запрос для расходной накладной, учитываю приоритеты складов, все работает - списывает с учетом приоритетов, но не знаю как учесть ситуацию, когда у нас в табличной части фигурирует одинаковый товар, но при этом указаны разные склады? У меня запрос обрабатывает только первую строку в ТЧ, списывает, а все что ниже игнорирует.

Посмотри мое решение, или в сборнике задач пример решения задачи по оперативному учету (в конце). Там для партий пример но он аналогичен и складам.

Сеня

  • Новичок
  • *
  • Сообщений: 6
Re: Задача 1.24
« Ответ #50 : Февраль 23, 2015, 01:15:34 pm »
спасибо, уже увидел, смотрю)

Сеня

  • Новичок
  • *
  • Сообщений: 6
Re: Задача 1.24
« Ответ #51 : Февраль 23, 2015, 01:59:33 pm »
Только начал готовиться. Написал запрос для расходной накладной, учитываю приоритеты складов, все работает - списывает с учетом приоритетов, но не знаю как учесть ситуацию, когда у нас в табличной части фигурирует одинаковый товар, но при этом указаны разные склады? У меня запрос обрабатывает только первую строку в ТЧ, списывает, а все что ниже игнорирует.

Посмотри мое решение, или в сборнике задач пример решения задачи по оперативному учету (в конце). Там для партий пример но он аналогичен и складам.
Посмотрел решение, не мог бы ты дать комментарий, почему именно так определяются количество и сумма? зачем два запроса в ВТ_ВсеОстатки?
Запрос1
Количество:

ВЫБОР
   КОГДА ВТ_ВсеОстатки.КолОст > ВТ_Товары.КолДок
      ТОГДА ВТ_Товары.КолДок
   ИНАЧЕ ВТ_ВсеОстатки.КолОст
КОНЕЦ

Сумма:

ВЫБОР
   КОГДА ВТ_ВсеОстатки.КолОст > ВТ_Товары.КолДок
      ТОГДА ВТ_Товары.КолДок / ВТ_ВсеОстатки.КолОст * ВТ_ВсеОстатки.СуммаОст
   ИНАЧЕ ВТ_ВсеОстатки.СуммаОст
КОНЕЦ

Запрос2
Количество:

ВЫБОР
   КОГДА ВТ_ВсеОстатки.КолОст > ВТ_Товары.КолДок
      ТОГДА ВТ_ВсеОстатки.КолОст - ВТ_Товары.КолДок
   ИНАЧЕ 0
КОНЕЦ

Сумма:

ВЫБОР
   КОГДА ВТ_ВсеОстатки.КолОст > ВТ_Товары.КолДок
      ТОГДА ВТ_ВсеОстатки.СуммаОст - ВТ_Товары.КолДок / ВТ_ВсеОстатки.КолОст * ВТ_ВсеОстатки.СуммаОст
   ИНАЧЕ 0
КОНЕЦ


Odines

  • Проверенный
  • ***
  • Сообщений: 112
  • ФИО: Odines
Re: Задача 1.24
« Ответ #52 : Февраль 23, 2015, 02:21:25 pm »
Только начал готовиться. Написал запрос для расходной накладной, учитываю приоритеты складов, все работает - списывает с учетом приоритетов, но не знаю как учесть ситуацию, когда у нас в табличной части фигурирует одинаковый товар, но при этом указаны разные склады? У меня запрос обрабатывает только первую строку в ТЧ, списывает, а все что ниже игнорирует.

Посмотри мое решение, или в сборнике задач пример решения задачи по оперативному учету (в конце). Там для партий пример но он аналогичен и складам.
Посмотрел решение, не мог бы ты дать комментарий, почему именно так определяются количество и сумма? зачем два запроса в ВТ_ВсеОстатки?

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

Albert

  • Пользователь
  • **
  • Сообщений: 29
  • ФИО: Альберт
Re: Задача 1.24
« Ответ #53 : Апрель 22, 2015, 06:39:07 pm »
Без подготовки на экзамене не решил бы
Посмотрел решение - вопросов нет,хорошее. Как по времени , долго?

SvitlaChek1c

  • Новичок
  • *
  • Сообщений: 1
Re: Задача 1.24
« Ответ #54 : Июль 31, 2015, 02:09:17 pm »
Здравствуйте!
Делюсь версией решения.
//У справочника "Склад" есть реквизит "Приоритет", обратите внимание на его свойства (по моему приоритет не может быть отрицательным и начинаться с нуля).
Также, жду критику по модулю "Расходной накладной", а именно интересует запрос.

rusmosav

  • Проверенный
  • ***
  • Сообщений: 137
Re: Задача 1.24
« Ответ #55 : Август 19, 2015, 09:56:31 am »
Прощу оценить.

alex_1980

  • Новичок
  • *
  • Сообщений: 4
  • ФИО: Алексей
Re: Задача 1.24
« Ответ #56 : Июнь 09, 2016, 03:16:08 pm »
Попытался написать свой запрос, получилось попроще, 4 выборки. Меньше вроде не видел

alfalume

  • Проверенный
  • ***
  • Сообщений: 103
Re: Задача 1.24
« Ответ #57 : Июль 19, 2016, 02:43:56 pm »
покртикуйте пожалуйста

Wal

  • Пользователь
  • **
  • Сообщений: 12
Re: Задача 1.24
« Ответ #58 : Сентябрь 26, 2016, 12:30:25 am »
Если в расходной указать две строки с одинаковой номенклатурой и разными складами, то не правильно списывает.

jonik

  • Проверенный
  • ***
  • Сообщений: 135
Re: Задача 1.24
« Ответ #59 : Июль 20, 2017, 05:12:50 pm »
Мда, задача и вправду непростая :-\ В принципе можно сделать 2-мя запросами по пустому складу и нет, но это двойное обращение к БД, а это не приветствуется. 9-ти этажный запрос конечно поражает, но без него никак. Единственное - делал по новой методике с сайта Чистова(задача 1.6), т.е. сначала записывал, поэтому код "вырос", но это правильно.

П.С. Как в отчет убрать имена колонок для ресурсов(чтобы было как в книжке)?
« Последнее редактирование: Июль 20, 2017, 05:24:18 pm от jonik »