Pull to refresh

Comments 20

А Вы не робкий. На Хабре выложить 1С-листинги лично я бы, наверное, не осмелился.

Главное это преумножение опыта, прочитав одну статью я сделал вывод, поделился этим выводом, и узнал из комментариев еще варианты решения этой проблемы, и этому очень рад.

Скажите, почему выбрано такое название переменной (константы)? Что вы имели в виду?

Эдиал = 1; //=1 метру кубическому

Это в начале первого листинга.

Доброго дня, спасибо за вопрос, есть неполный паллет или есть переполненый паллет, а "Эдиал = 1" это оптимальное значение заполнения.

Вы, наверное, имели в виду "Идеал"? В 1С "Идеал" занято ключевым словом, или это какой-то специальный термин?

UFO just landed and posted this here

Доброго дня, по Вашему профилю предполагаю что Вы критик, спасибо за комментарий, он мне поможет в будущем, так как я начинающий специалист и у меня все впереди.

Уточите, там есть оптимизация укладки по ячейкам? или ручное распределение по ячейкам?

Из интернета: Ячеистый или Адресный склад – это склад, который разделяют на зоны хранения, каждая из которых предназначена для хранения определенной номенклатурной позиции.

Но у нас не для определенной номенклатуры же.

UFO just landed and posted this here

Спасибо за информацию для размышления.

Но у нас не для определенной номенклатуры же.

А для чего? Вы же пишите в коде «Движение.Номенклатура = ТекСтрокаПродукция.Номенклатура;»

Я имел ввиду, что можно ли разные номенклатуры хранить в одной ячейке, так как паллеты складываются из разносортного товара, Ваш метод считаем по габаритам "высота - ширина - длина", а у меня вычисляется коэффициент объема.

Из интернета: Ячеистый или Адресный склад – это склад, который разделяют на зоны хранения, каждая из которых предназначена для хранения определенной номенклатурной позиции.

Из вышеуказанного определения нет.

UFO just landed and posted this here
Я чего-то не понимаю. Но что выдаст «рабочий и отлаженный код» если будут вот такие входные данные:
{ 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9 }?
1C у меня нет, поэтому попробую на lua описать:
Псевдокод
function main(tab)
    one=1 n=#tab
    dsp=0.1 dsm=0.1 dso=one so=0 opt={}
    for i=1,n do
        j=i wrk={} cs=0.0
        for k=1,n do 
            if j==n then j=1 end
            table.insert(wrk,j)
            cs=cs+tab[j]
            j1=j+1 if j1>n then j1=1 end
            while j1~=i do 
                if cs>one+dsp then break end
                sv=cs+tab[j1]
                if sv>=one-dsm and sv<=one+dsp then
                    ds=sv-one
                    if ds<0 then ds=-ds end
                    if ds<dso then
                        dso=ds so=sv
                        for _,j2 in pairs(wrk) do 
                            table.insert(opt,j2) 
                        end
                        table.insert(opt,j1)
                        print(so)
                    end
                end
                j1=j1+1 if j1>n then j1=1 end
            end
            if cs>one+dsp then break end
            j=j+1
        end
    end
    print "---"
    for k,v in pairs(opt) do print(v,tab[v]) end
end


main { 0.1, 0.2, 0.3, 0.4, 0.5, 0.5, 0.6, 0.7, 0.8, 0.9 }
На выходе:
0.9
1.0
---
1 0.1
9 0.8
1 0.1
10 0.9

Может я чего накосячил, но вроде соответствует вашему коду?

Сколько это всё выполняться будет при скажем номенклатуре 10к позиций и складских остатках более 1млн записей?

Мне кажеться даже алгоритм с википедии реализованный на любом компилируемом языке покажет большую производительность.

Так причем тут весь склад, если Вам нужно понять сколько паллет нужно отгрузить в машину к примеру на определенный заказ.

Первая строка:

Таблица000//(Таблица Значений с товаром),

Работать не будет, ошибка, или это формальный параметр?

//добавление колонок и очистка данных
ОднаТаблица = Новый ТаблицаЗначений;
ОднаТаблица = Таблица000.Скопировать();

Это простите что? Создаете коллекцию конструктором, потом следующей строкой создаете клон прототипом из Таблица000 в ту же переменную.

Первая строка:000//(Таблица Значений с товаром),

Имментся ввиду что данная таблица у Вас уже есть в наличии

Работать не будет, ошибка, или это формальный параметр?

//добавление колонок и очистка данных
ОднаТаблица = Новый ТаблицаЗначений;
ОднаТаблица = Таблица000.Скопировать();

Это простите что? Создаете коллекцию конструктором, потом следующей строкой создаете клон прототипом из Таблица000 в ту же переменную.

Создаю пустую таблицу и туда копирую колонки потом очищаю, можно в целом скопировать только колонки)

Это не копия колонок. Это прототип коллекции как прикладного объекта. Конструктор Новый ТаблицаЗначений не нужен. Закомментируйте конструктор, результат будет тот же

dandykry07.01.2022 в 21:54

Блокироки при списании в минус? Да нахрен, у нас всё равно 1 человек работает)))

Не совсем понял, о чем имеете ввиду

Sign up to leave a comment.

Articles