Помогите решить задачу на 1С.

Гость Гость

Всем привет. Помогите решить задачу на 1С.
Дополнено (1). Товар на складе размещается в ячейках. При поступлении на склад каждый товар помещается в отдельную ячейку, которая однозначно определяется своим рядом и стеллажом. При продаже товара определяется способ отгрузки: сразу или с доставкой. Если товар отгружается сразу, то чтобы быстрее осуществить продажу в первую очередь должен отпускаться ближайший товар. Если производится доставка товара, то тогда должен списываться товар, до которого неудобнее всего добираться.
Критерием удобства отгрузки (расстояние) служит сумма номера ряда и номера стеллажа.
После проведения расходной накладной должна формироваться печатная форма, в которой будет указано, из каких ячеек должен быть получен товар.
Дополнено (2). Я только недавно начал изучать 1С. Реализовал приходную накладную, которая проводит записи в реестр накопления и расходную накладную, аналогично.
Номенклатуру. Не знаю как правильно сделать учет свободных ячеек на складе и помещение нового товара в свободную ячейку, а также изъятие товара
чтобы не делать полный проход по записям реестра накопления. Помогите пожалуйста)
Дополнено (3). а как сделать добавление товаров на склад, в свободные ячейки, автоматически?
Например такая приходная накладная:
---
товар    количество
ручки    3
кружки  5
---
и каждому товару нужно дать пустую ячейку, как это сделать?
Дополнено (4). я бы сделал две глобальные переменные Стеллаж и Ряд в которых хранилась бы следующая свободная ячейка и при поступлении нового товара берем эту ячейку, а потом увеличиваем значения ряда на 1, если это значение больше Кол-ваРядов, то обнуляем Ряд и увеличиваем Стеллаж. Только я не знаю как сделать эти две глобальные переменные, которые бы хранились в базе данных.
Дополнено (5). а может кто-нибудь дать свой скайп кто знает 1С, просто мне нужно сделать это задание. Обсудить пару моментов, пожалста)

Гость Гость

Ну я бы реализовал это следующим образом:
В регистре остатков у меня были бы измерения, к примеру:
- Фирма, - МестоХранения, - Товар, - Ряд, - Стеллаж
далее, ряд и стеллаж - это справочники с кодом типа (Число) или сделать отдельный реквизит, а-ля ПорядковыйНомер
Перед печатью документа делается выборка по нужному нам товару, при этом сортируется по ПорядковыйНомер (ряда, затем стеллажа) и берется первое попавшееся значение.

Ближайший и дальнележащий товар мы получаем простым направлением сортировки в запросе ВОЗР/УБЫВ.

Всё элементарно )

1. На счет "двух глобальных переменных" - это тебе поможет только при первоначальном заполнении склада. Когда товар продастся, ячейка освободится и ее надо будет заполнить.

2. Реализация твоего случая. Создай документ, к примеру "НачальноеЗаполнениеСтруктурыСклада". Создай товар с чисто символическим названием "ПустаяЯчейка".
Прогони циклом

Для р=1 По КоличествоРядов Цикл
     Для с=1 По КоличествоСтеллажей Цикл
             //тут записать в вышеуказанный регистр остатков: фирму, МХ, пустуюЯчейку, р, с, КвоРавно_0;
     КонецЦикла;
КонецЦикла;

Так, представление матрицы ячеек у нас уже есть

При записи приходного документа делаем запрос:

Пока ТаблЧасть. ПолучитьСтроку() Цикл //я сокращенно, только идею
   Для к=1 По ТаблЧасть. КоличествоТовара Цикл // тут мы разбиваем на отдельные штуки
         Выбрать ПЕРВЫЕ 1 товар "ПустаяЯчейка" и упорядочить ПО ПорядковыйНомер (получаем выборку пустых 1 шт ячеек), далее
         пишем в эту ячейку, фирма, МХ, товар, ряд, стеллаж, кво=1… (следующий раз запрос эту ячейку пропустит, так как товар не "ПустаяЯчейка")          
   КонецЦикла;
КонецЦикла;

Параллельно советую вести оборотный регистр какой-то РеализацииТовара и ВзаиморасчетыСКонтрагентами.


Похожие обсуждения↓