Автор Тема: Задача 1.4 стр.10  (Прочитано 75084 раз)

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

Serros

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Сергей
Задача 1.4 стр.10
« Ответ #15 : Июль 21, 2010, 06:12:22 pm »
Quote (1C_CoderVamp)
З.Ы. На создание и проверку этого запроса ушло часа 4, так что не надо писать поверхностные комментарии - это неправильно:

 Сорри, мой предыдущий пост адресовался Вере. Ваше решение работает. Я пытался объяснить почему решение такое "большое",по сравнению с приведенным ей запросом.
« Последнее редактирование: Июль 21, 2010, 06:15:35 pm от Сергей »

1C_CoderVamp

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Василий
Задача 1.4 стр.10
« Ответ #16 : Июль 21, 2010, 06:41:12 pm »
Serros, недопонимание вышло)))


Bepa

  • Модератор
  • Новичок
  • *****
  • Сообщений: 0
  • ФИО: Вера
Задача 1.4 стр.10
« Ответ #17 : Июль 23, 2010, 09:39:11 am »
хе!
 получила новый сборник.
 среди решенных задач там есть и эта. Посмотрю на досуге smile

1C_CoderVamp

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Василий
Задача 1.4 стр.10
« Ответ #18 : Июль 23, 2010, 02:55:09 pm »
Там как раз подобный бешеный запрос и описан, правда я не знаю, там подразумевается получение всех данных в одном запросе или в разных? Какие будут варианты?

freefly

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: alex
Задача 1.4 стр.10
« Ответ #19 : Июль 23, 2010, 05:26:00 pm »
Вот как вариант. Делал на 8.1. Ссылка на выгрузку.
 http://forum.chistov.pro/ucoz_attachments/1/_1_04__81.dt

1C_CoderVamp

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Василий
Задача 1.4 стр.10
« Ответ #20 : Август 13, 2010, 05:55:21 pm »
pershinsergei,
 см. мой первый пост.... только так)) но это очень сложно, есть более простой, но менее эффектный вариант:

Делаешь обычный запрос левой привязкой:
 1) слева номенклатура - справа остатки по партиям,
 2) группируешь (через итоги) по номенклатуре
 3) тупо сортируешь по партия.дата
 4) получаешь дерево значений

а дальше! самое интересное:

Code
    
    Дерево = Результат.Выгрузить(ОбходРезультатаЗапроса.ПоГруппировкам);
       
    ТЗ_ТЧ  = СписокНоменклатуры.Выгрузить();
    ТЗ_ТЧ.Свернуть("..., ...","..., ...");    //сворачиваешь по всем полям
       
    //перебираем само дерево по номенклатурам    
    Для каждого СтрокаДЗ ИЗ Дерево.Строки Цикл    
     СписокПартий = ТЗ_ТЧ.НайтиСтроки(Новый Структура("Номенклатура", СтрокаДЗ.Номенклатура));
        
     //перебираем табличную часть документа, где указана нужная нам номенклатура с различными партиями
     Для Каждого СтрокаТЧ из СписокПартий Цикл
      Если Не ЗначениеЗаполнено(СтрокаТЧ.Партия) Тогда    
       Продолжить;
      КонецЕсли;
      //тут уже перебираем строки по выбранной номенклатуре и делаем с ней все, что хотим, при этом записывая списанные суммы и кол-во
      //как в дереве значений, так и в ТЗ_ТЧ
      Для Каждого СтрокаПартийДЗ Из СтрокаДЗ.Строки Цикл  
           Если Не СтрокаПартийДЗ.Партия = СтрокаТЧ.Партия Тогда
                Продолжить;
           КонецЕсли;  
          
      КонецЦикла;
     КонецЦикла;
        
     //на втором проходе спиываем все остальное в обычном порядке
     Для Каждого СтрокаТЧ из СписокПартий Цикл     
      Для Каждого СтрокаПартий Из СтрокаДЗ.Строки Цикл    
      КонецЦикла;
     КонецЦикла;
    КонецЦикла;
 

На мой взгляд описанный выше вариант идеален для данной задачи, кто хочет - можете поспорить cool

« Последнее редактирование: Август 13, 2010, 06:01:53 pm от Василий »

1C_CoderVamp

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Василий
Задача 1.4 стр.10
« Ответ #21 : Август 16, 2010, 02:58:56 pm »
как только окно в работе появится в пару часов, выложу, в ближайшее время не могу обещать, там все просто

User_OKA

  • Новичок
  • *
  • Сообщений: 2
  • ФИО: Валерий
Задача 1.4 стр.10
« Ответ #22 : Август 26, 2010, 06:56:13 pm »
задача копия решенного примера из задачника с веселым запросом

marku

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Марк Козлов
Задача 1.4 стр.10
« Ответ #23 : Сентябрь 06, 2010, 12:34:53 am »
Предлагаю свое решение. Запрос классический, но потом пришлось повозиться
Вложения:
1Cv8.rar
« Последнее редактирование: Сентябрь 06, 2010, 12:35:23 am от Марк Козлов »

Heckfy

  • Пользователь
  • **
  • Сообщений: 13
  • ФИО: Руслан
Задача 1.4 стр.10
« Ответ #24 : Сентябрь 29, 2010, 07:13:24 pm »
В чем вопрос?! Задача решена в учебнике как пример.
Вложения:
1.04.dt

Danan

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Данияр
Задача 1.4 стр.10
« Ответ #25 : Октябрь 13, 2010, 09:27:27 am »
Народ, у возник такой вопрос:
 Какой порядок списания приоритетных партий? Допустим есть 5 партий по одному товару, по 10 единиц в каждой . В табличной части указали 3 и 5 партию, всего хотят списать 45 единиц товара. В первую очередь с какой партии должен списываться товар с 3 или 5?

1C_CoderVamp

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Василий
Задача 1.4 стр.10
« Ответ #26 : Октябрь 13, 2010, 11:42:16 am »
Danan,
 Сначала списывается более ранняя партия. Но, в данном случае, нет совершенно никакой разницы, т.к. они обе полностью спишутся, а в каком порядке будут стоять записи в регистре нет никакого принципиального значения

Danan

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Данияр
Задача 1.4 стр.10
« Ответ #27 : Октябрь 15, 2010, 12:43:32 am »
Задачка действительно интересная. Про решение этой задачи хитро закрученным запросом знал давно. Однако поставил себе цель решить эту задачу опираясь больше средства встроенного языка.
 Алгоритм списания опирается на 2 запроса и достаточно не сложную манипуляцию их результатами.
 В своем решении проверял работоспособность и устойчивость своего решения в 4 ситуациях:

1) В строках ТЧ указаны несколько приоритетных партий из всех возможных;
 2) В строках ТЧ указана одна приоритетная партия из всех возможных;
 3) В строках ТЧ указаны все возможные партии указаны как приоритетные;
 4) В строках ТЧ ни указана ни одна приоритетная партия из всех возможных.

Что из этого получилось судите сами, если конечно есть желание.


Вложения:
Task_1_4..dt
« Последнее редактирование: Октябрь 15, 2010, 12:59:47 am от Данияр »

AndreiPiter

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Андрей
Задача 1.4 стр.10
« Ответ #28 : Декабрь 14, 2010, 04:45:54 pm »
моё решение
Вложения:
4169453.dt

Gyd

  • Новичок
  • *
  • Сообщений: 0
  • ФИО: Олег
Задача 1.4 стр.10
« Ответ #29 : Январь 11, 2011, 05:00:28 pm »
Quote (AndreiPiter)
моё решение

 Ваше решение понравилось больше всего, остальные слишком сложные.

Можно чуть-чуть поправить процедуру СписатьПоПартии, вынести одинаковые строки чтоб не повторялись, но если делали через Ctrl+С/Ctrl+V - то норм, так быстрее.
 Ну и очистку движений по регистру не нашел.

« Последнее редактирование: Январь 11, 2011, 05:03:43 pm от Олег »