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

Автор Тема: Задачка про оптимальный запрос  (Прочитано 2255 раз)

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

Оффлайн skt-roman

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-02-17
  • Сайт: 
  • Профессия: Программист 1С
Мы продаем витую пару, в бабинах по 30 метров и по 70 метров, бабины не разрезаются, продаются целиком. Имеем на складе какое-то произвольное количество тех и других бабин.

Приходит клиент и просит какую-либо длину, произвольную, допустим 150 метров, необходимо написать процедуру которая одним-двумя запросами подберет необходимое количество бабин как можно ближе к этой длине с учетом товаров на складе.

Какие есть решения на запросе?


Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
а если он запросит допустим 110 метров?
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн skt-roman

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-02-17
  • Сайт: 
  • Профессия: Программист 1С
а если он запросит допустим 110 метров?
Запросит сколько угодно

Оффлайн vitasw

  • *****
  • Сообщений: 2575
  • РЕПУТАЦИЯ: 311
  • КПД: 12%
  • Регистрация: 2015-02-10
  • Сайт: 
  • Профессия: Программист 1С
А что значит
как можно ближе к этой длине
Допустим, надо 135 метров, Это 70+70-5 или 70+30+30+30-25. Нужны более четкие критерии правильности резки бабин.


Оффлайн Дмитрий@

  • *****
  • Сообщений: 735
  • РЕПУТАЦИЯ: 134
  • КПД: 18%
  • Ссылка на примеры работ https://yadi.sk/d/ksVluPMB
  • Регистрация: 2015-02-27
    • Skype: ShuplecovDima
  • Сайт: 
  • Профессия: Программист 1С
Есть такая мысль:
-определяете Количество строк = Целое("Необходимая длина бобины / Минимальную длину бобины"), например 2 = 70 / 30
-Составляете таблицу   
                            Кол1 Кол2
                            1    0
                            2    0
                            1    1
                            2    1
                            1    2
                            2    2
-Составляете таблицу    Наименование1    Длина1    Наименование2    Длина2   
-Делаете полное объединение таблиц, добавляем вычисляемое поле "Длина" = "Кол1 * Длина1 + Кол2 * Длина2", отсекаете строки с длиной больше нужной, сортируете таблицу по длине УБЫВ. И выбираем первую строку.
Только вот как сделать оптимально первую таблицу надо подумать.
                       
                       
Ссылка на примеры работ https://yadi.sk/d/ksVluPMB

Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Нужное количество (НК) сперва целочисленно делим на 70. Отнимаем результат от НК. Если разница больше 0, то разницу целочисленно делим на 30...
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн Anion

  • *
  • Сообщений: 13
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2015-03-23
  • Сайт: 
  • Профессия: Ученик 1С
Мы продаем витую пару, в бабинах по 30 метров и по 70 метров, бабины не разрезаются, продаются целиком. Имеем на складе какое-то произвольное количество тех и других бабин.

Приходит клиент и просит какую-либо длину, произвольную, допустим 150 метров, необходимо написать процедуру которая одним-двумя запросами подберет необходимое количество бабин как можно ближе к этой длине с учетом товаров на складе.

Какие есть решения на запросе?
Прикольная задачка , с точки зрения теории , а вот с точки зрения практики и стандартов "витухи" это полный ахтунг .

Оффлайн Дмитрий@

  • *****
  • Сообщений: 735
  • РЕПУТАЦИЯ: 134
  • КПД: 18%
  • Ссылка на примеры работ https://yadi.sk/d/ksVluPMB
  • Регистрация: 2015-02-27
    • Skype: ShuplecovDima
  • Сайт: 
  • Профессия: Программист 1С
Сделал простенькую базу с подбором длины. Может пригодится. Ссылка https://yadi.sk/d/0eCN68xKfX47o
Ссылка на примеры работ https://yadi.sk/d/ksVluPMB

Оффлайн skt-roman

  • *
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2012-02-17
  • Сайт: 
  • Профессия: Программист 1С
Дмитрий@, Да гуд, но нужно чтобы длина была не меньше запрошенной, если превышение запрошенной длины то минимальное

Оффлайн Дмитрий@

  • *****
  • Сообщений: 735
  • РЕПУТАЦИЯ: 134
  • КПД: 18%
  • Ссылка на примеры работ https://yadi.sk/d/ksVluPMB
  • Регистрация: 2015-02-27
    • Skype: ShuplecovDima
  • Сайт: 
  • Профессия: Программист 1С
В коде
|/////////////////////////////////////////////////////////////
      |ВЫБРАТЬ ПЕРВЫЕ 1 *,
      |   "+СтрокаЗапроса+" КАК Длина
      |ИЗ
      |   Матрица КАК Матрица ПОЛНОЕ СОЕДИНЕНИЕ Данные КАК Данные По ИСТИНА
      |ГДЕ
      |   "+СтрокаЗапроса+" <= &Длина
      |УПОРЯДОЧИТЬ ПО
      |   Длина УБЫВ";

Поменяй
    |   "+СтрокаЗапроса+" >= &Длина
      |УПОРЯДОЧИТЬ ПО
      |   Длина";
Должно сработать.
Добавлено: 27 Мар 2015, 20:48

И еще в коде
&НаСервере
Процедура ЗаполнитьНаСервере(Ссылка)
   
   КоличествоДлин = ПолучитьКоличествоДлин(Ссылка.Номенклатура);
   МинимальнаяДлина = ПолучитьМинимальнуюДлину(Ссылка.Номенклатура);
   МаксимальноеКоличество = Цел(Ссылка.Длина / МинимальнаяДлина);

Замени
    МаксимальноеКоличество = Цел(Ссылка.Длина / МинимальнаяДлина)+1;
Ссылка на примеры работ https://yadi.sk/d/ksVluPMB

Последний раз редактировалось: Дмитрий@; 27 Мар 2015, 20:48. Причина: Объединение сообщений


Теги:
 

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

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

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

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

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

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

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

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

Ответов: 0
Просмотров: 687
Последний ответ 29 Сен 2016, 02:39
от DenielAkreed
8.2 Бух. Запрос с условием "комментарий содержит текст"

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

Ответов: 13
Просмотров: 16550
Последний ответ 02 Сен 2011, 01:14
от bolobol

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
180 Сообщений
ilyay ilyay
69 Сообщений
alex0402
54 Сообщений
oleg-x
48 Сообщений
AIFrame
46 Сообщений
andron81_81
44 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
Golickoff Golickoff
31 Сообщений
BuhRust
30 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal