Справочный адресный склад

01.04.23

Разработка - Инструментарий разработчика

Простейшая конфигурация для ведения складского учета на адресном складе - праздничная разработка для начинающих.

Скачать исходный код

Наименование Файл Версия Размер
Справочный адресный склад:
.cfe 87,09Kb
6
.cfe 87,09Kb 6 Скачать

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

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

Я буду делать справочный адресный склад на демо-версии конфигурации Библиотека Стандартных Подсистем (Демонстрационная конфигурация "Библиотека стандартных подсистем", редакция 3.1 (3.1.8.250)), платформа 1С:Предприятие 8.3 (8.3.23.1596) Версия для разработчиков.

На самом деле, никаких требований ни к конфигурации ни к платформе нет, то же самое можно гораздо проще делать, например, в 1С: Бухгалтерии 3. Но конечно, будет лучше, если в конфигурации уже есть справочник товаров.

В демо-конфигурации БСП есть справочники товаров, организаций, складов и контрагентов, чего более чем достаточно для реализации простейшей складской функциональности.

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

 

Итак, первым делом добавляем собственно расширение. Отнеситесь серьезно к заполнению префикса - с него будут начинаться названия всех ваших объектов!

 

 

Чтобы не ходить два раза, сразу заимствуем в расширение необходимые объекты:

 

 

Самое важное - это справочники складов (здесь это _ДемоМестаХранения) и товаров (_ДемоНоменклатура). Справочник организаций может и не понадобится - это зависит от потребностей. Также я взял справочник Пользователи для того, чтобы заполнять ответственных за складские операции.

Добавим нужные подсистемы и роли. Я ограничусь одной подсистемой (у меня очень ограниченная функциональность) и одной ролью:

 

 

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

Адресный склад по сравнению с неадресным имеет, по сути, ровно одну особенность: адреса. Адреса на адресном складе - это способ быстрой навигации при поиске товаров. Все остальные плюсы и минусы адресных складов проистекают именно из этой особенности.

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

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

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

Ряд-стеллаж-полка-ячейка, например, А-1-1-1, X-15-3-6

 

 

Пусть у справочника ячеек будет владелец - справочник складов.

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

Прежде всего, товар на склад должен поступить, поэтому создаем Поступление товара:

 

 

Так как у меня будет справочный адресный склад, то поступление товаров - это справочник.

Основные реквизиты поступления - это Организация, Склад, Контрагент, Договор и список товаров с количеством и суммой. Ячейки будем вводить в табличной части Товары. Если окажется, что один товар нужно разместить в нескольких ячейках - будем просто разбивать строки. Вопросы с НДС, скидками и тому подобным пропустим - эти реквизиты нужны не всем, ведь некоторые организации работают без НДС.

Также в шапку нужно добавить дату, когда произошла хозяйственная операция и признак, что элемент справочника проведен:

 

 

Добавляем простейшую форму с обработчиками необходимых событий. Раз уж у нас есть в документе цена и сумма, нужно добавить пересчет одного в другое,  и можно перейти в режим 1С: Предприятия, чтобы попробовать заполнить какие-то тестовые данные.

 

 

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

Добавим регистр Движения по ячейкам (платформа 8.3.23.1596 позволяет выбирать типом измерений регистра справочники, добавленные в расширении, ура!):

 

 

Пишем обработку проведения и обработку удаления движений.

Процедура ПриЗаписи(Отказ)
	Если ПометкаУдаления Тогда
		ОбработкаУдаленияПроведения()
	Иначе
		ОбработкаПроведения()
	КонецЕсли;
КонецПроцедуры

Процедура ОбработкаПроведения()
	УдалитьДвижения();
	
	НаборЗаписей = РегистрыСведений.КАЕ_ДвиженияПоЯчейкам.СоздатьНаборЗаписей();
	НаборЗаписей.Отбор.Операция.Установить(Ссылка);
	
	Для Каждого СтрокаТовары Из Товары Цикл
		Запись = НаборЗаписей.Добавить();
		Запись.Склад = Склад;
		Запись.Номенклатура = СтрокаТовары.Номенклатура;
		Запись.Строка = СтрокаТовары.НомерСтроки;
		Запись.Операция = Ссылка;
		Запись.Ячейка = СтрокаТовары.Ячейка;
		Запись.Количество = СтрокаТовары.Количество;
	КонецЦикла;
	
	НаборЗаписей.Записать(Истина);
	
КонецПроцедуры

Процедура ОбработкаУдаленияПроведения()
	УдалитьДвижения()
КонецПроцедуры

Процедура ПередЗаписью(Отказ)
	Если Не ЗначениеЗаполнено(Дата) Тогда
		Дата = ТекущаяДата();
	КонецЕсли;
	Если Не ЗначениеЗаполнено(Ответственный) Тогда
		Ответственный = Пользователи.ТекущийПользователь();
	КонецЕсли;
КонецПроцедуры

Процедура УдалитьДвижения()
	НаборЗаписей = РегистрыСведений.КАЕ_ДвиженияПоЯчейкам.СоздатьНаборЗаписей();
	НаборЗаписей.Отбор.Операция.Установить(Ссылка);
	НаборЗаписей.Записать(Истина);
КонецПроцедуры

 

Пробуем провести справочник - движения получились!

 

 

Конечно, нам понадобятся остатки. Остатки должны храниться в регистре остатков, создадим и его:

 

 

Было бы глупо, если бы мы в 21 веке при проведении справочника отдельно записывали остатки в регистр. Поэтому просто добавим событие ПередЗаписью регистра движений: будем прибавлять к остатку ровно столько, сколько записалось в движениях:


Процедура ПередЗаписью(Отказ, Замещение)
	
	Запрос = Новый Запрос;
	Запрос.Текст =
	"ВЫБРАТЬ
	|	КАЕ_ДвиженияПоЯчейкам.Склад КАК Склад,
	|	КАЕ_ДвиженияПоЯчейкам.Номенклатура КАК Номенклатура,
	|	КАЕ_ДвиженияПоЯчейкам.Ячейка КАК Ячейка,
	|	СУММА(КАЕ_ДвиженияПоЯчейкам.Количество) КАК Количество
	|ИЗ
	|	РегистрСведений.КАЕ_ДвиженияПоЯчейкам КАК КАЕ_ДвиженияПоЯчейкам
	|ГДЕ
	|	&Условия
	|
	|СГРУППИРОВАТЬ ПО
	|	КАЕ_ДвиженияПоЯчейкам.Склад,
	|	КАЕ_ДвиженияПоЯчейкам.Номенклатура,
	|	КАЕ_ДвиженияПоЯчейкам.Ячейка";
	
	Условия = "";
	Для Каждого ЭлементОтбора Из Отбор Цикл
		Если ЭлементОтбора.Использование Тогда
			Условия = Условия + "
			| И " + ЭлементОтбора.Имя + " = &" + ЭлементОтбора.Имя;
			Запрос.УстановитьПараметр(ЭлементОтбора.Имя, ЭлементОтбора.Значение);
		КонецЕсли;
	КонецЦикла;
	
	Запрос.Текст = СтрЗаменить(Запрос.Текст, "&Условия", "ИСТИНА " + Условия);
	
	Выборка = Запрос.Выполнить().Выбрать();
	Пока Выборка.Следующий() Цикл
		НаборЗаписей = РегистрыСведений.КАЕ_ОстаткиВЯчейках.СоздатьНаборЗаписей();
		НаборЗаписей.Отбор.Склад.Установить(Выборка.Склад);
		НаборЗаписей.Отбор.Номенклатура.Установить(Выборка.Номенклатура);
		НаборЗаписей.Отбор.Ячейка.Установить(Выборка.Ячейка);
		НаборЗаписей.Прочитать();
		Для Каждого Запись Из НаборЗаписей Цикл
			Запись.Количество = Запись.Количество - Выборка.Количество;
		КонецЦикла;                                                    
		НаборЗаписей.Записать(Истина);
	КонецЦикла;
	
	Для Каждого ТекущаяЗапись Из ЭтотОбъект Цикл
		НаборЗаписей = РегистрыСведений.КАЕ_ОстаткиВЯчейках.СоздатьНаборЗаписей();
		НаборЗаписей.Отбор.Склад.Установить(ТекущаяЗапись.Склад);
		НаборЗаписей.Отбор.Номенклатура.Установить(ТекущаяЗапись.Номенклатура);
		НаборЗаписей.Отбор.Ячейка.Установить(ТекущаяЗапись.Ячейка);
		НаборЗаписей.Прочитать();
		Если НаборЗаписей.Количество() = 0 Тогда
			Запись = НаборЗаписей.Добавить();
			Запись.Склад = ТекущаяЗапись.Склад;
			Запись.Номенклатура = ТекущаяЗапись.Номенклатура;
			Запись.Ячейка = ТекущаяЗапись.Ячейка;
		Иначе
			Запись = НаборЗаписей[0];
		КонецЕсли;
		Запись.Количество = Запись.Количество + ТекущаяЗапись.Количество;                                                   
		НаборЗаписей.Записать(Истина);
	КонецЦикла;

КонецПроцедуры

 

Для теста проводим второй элемент справочника, пробуем пометить на удаление, опять провести и так далее:

 

 

Видно, что остатки меняются:

 

 

Аналогично добавляем расходные документы и перемещения. Расход можно представить в виде отрицательного количества в регристре.

Реализацию товара на первых порах можно сделать просто копированием поступления, а с перемещением, конечно, придётся потрудиться.

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

 

 

Не забываем удалить лишние реквизиты и обработчики!

Далее, для удобства принято помещать однородные операции в журналы, создаем его:

 

 

Запись в этот журнал можно делать в обработчике ПриЗаписи, если разрабатываем в основной конфигурации, или позволяет версия платформы, то лучше делать это в подписке (платформа 8.3.23.1596 позволяет добавлять подписки в расширении, наконец-то!).

Процедура КАЕ_СкладскаяОперацияПриЗаписиПриЗаписи(Источник, Отказ) Экспорт
	
	НаборЗаписей = РегистрыСведений.КАЕ_СправочныйСклад.СоздатьНаборЗаписей();
	НаборЗаписей.Отбор.Операция.Установить(Ссылка);
	
	Запись = НаборЗаписей.Добавить();
	Запись.Операция = Источник.Ссылка;
	Запись.Дата = Источник.Дата;
	Запись.Организация = Источник.Организация;
	
	НаборЗаписей.Записать(Истина);

КонецПроцедуры

В регистре нужно заполнить поля Отправитель и Получатель, но в разных видах операций это разные поля, что делать? Воспользуемся, скажем так, полиморфизмом, и сделаем в модуле каждого справочника функцию для получения этих полей:

// в Перемещении:
Функция Отправитель() Экспорт
	Возврат Склад;
КонецФункции

Функция Получатель() Экспорт
	Возврат СкладПолучатель;
КонецФункции

// в Реализации:
Функция Отправитель() Экспорт
	Возврат Склад;
КонецФункции

Функция Получатель() Экспорт
	Возврат Контрагент;
КонецФункции

// в Поступлении
Функция Отправитель() Экспорт
	Возврат Контрагент;
КонецФункции

Функция Получатель() Экспорт
	Возврат Склад;
КонецФункции

 

И теперь можно единообразно получать эти поля. Языки разные, принципы везде одни:

Процедура КАЕ_СкладскаяОперацияПриЗаписиПриЗаписи(Источник, Отказ) Экспорт
	
	НаборЗаписей = РегистрыСведений.КАЕ_СправочныйСклад.СоздатьНаборЗаписей();
	НаборЗаписей.Отбор.Операция.Установить(Источник.Ссылка);
	
	Запись = НаборЗаписей.Добавить();
	Запись.Операция = Источник.Ссылка;
	Запись.Дата = Источник.Дата;
	Запись.Организация = Источник.Организация;
	Запись.Получатель = Источник.Получатель();
	Запись.Отправитель = Источник.Отправитель();
	
	НаборЗаписей.Записать(Истина);

КонецПроцедуры

Конечно, не забываем добавлять объекты в подсистемы и в командный интерфейс.

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

Перепроводим справочники, журнал выглядит идеально:

 

 

Но вот незадача - вместо наших складских операций из журнала открываются его записи:

 

 

Чтобы это исправить, нужно создать форму списка и назначить обработчик. Я буду использовать ПоказатьЗначение(), можно использовать ОткрытьФорму().

Ну и, конечно, нужен отчет, ведь данные в учетную систему вводятся не просто так, а для того, чтобы получать их оттуда в консолидированном виде. Создам простейшую оборотку на СКД. Остатки и обороты лежат в разных регистрах, поэтому в голову приходят три варианта:

1. два набора данных

2. один набор данных с запросом - полным соединением

3. один набор данных с запросом - объединением

Попробуем первый вариант:

 

 

В принципе, всё работает (я забыл указать ячейку-получатель в перемещении).

Что тут ещё нужно доработать:

1. Видно, что регистр остатков хранит только текущий остаток. Чтобы получить остаток на произвольный момент, придётся или отнять от этого остатка все движения от текущего момента до выбранного, либо вообще не использовать этот регистр, а просто складывать все движения от сотворения мира до текущего момента.

2. Нужно добавить печатные формы

3. В форму списка ячеек нужно добавить отбор по складу

В остальном получается, что за пару часов в 1С можно соорудить из подручных средств почти идеальную систему для адресного склада!

Приложенное расширение на платформе старше 8.3.23, вероятно, не заработает.

 

P.S. Всех с первым апреля, если вышло позже - извините.

конфигурация склад первое апреля 8.3.23

См. также

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    126425    683    389    

737

Автоматический заказ поставщику в 1С: загрузка прайсов и анализ цен поставщиков для УТ 10.3, УТ 11, КА2, УНФ, УПП, ERP, Розница 2

Бюджетирование и планирование Оптовая торговля Розничная торговля Логистика, склад и ТМЦ Анализ продаж Платформа 1С v7.7 Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Оптовая торговля, дистрибуция, логистика Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Система управления запасами для 1С помогает работать с запасами правильно: автоматически рассчитывает потребность и делает заказ поставщику, загружает прайсы, перемещает товары по филиалам, анализирует продажи и позволяет управлять ассортиментом.

28500 руб.

21.04.2017    91141    111    40    

199

Загрузка номенклатуры из Excel в УТ11, КА 2, ERP 2, Розница 2. Дополнительные реквизиты и сведения, характеристики, картинки, цены, остатки

Загрузка и выгрузка в Excel Розничная торговля Логистика, склад и ТМЦ Ценообразование, анализ цен Прайсы Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Розница 2 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Загрузка из файлов xls, xlsx, ods, csv, mxl в УТ11, КА 2, ERP 2, Розница 2. Задействованы все возможности конфигурации - заполнение реквизитов номенклатуры, дополнительных реквизитов и сведений, характеристики, доп.реквизиты и сведения характеристик. Дополнительные обработки для расширения возможностей.

10560 руб.

29.10.2014    211492    630    526    

446

AS WMS: автоматизация склада с адресным хранением с помощью ТСД

Логистика, склад и ТМЦ Платформа 1С v8.3 Россия Платные (руб)

Подсистема управления складом AS WMS для конфигураций на платформе 1С 8. AS WMS – готовое решение для эффективного управления адресным складом. Внедрение системы AS WMS способствует быстрому отбору товара, ускорению инвентаризации, снижению зависимости от персонала, исключению пересорта. AS WMS встраивается в любую конфигурацию на платформе 1С 8 и работает как единая система без обменов. В учетной системе нет необходимости менять процессы под AS WMS (например, вводить ордерную схему), AS WMS использует стандартные документы по товародвижению вашей учетной системы.

40000 руб.

26.07.2023    3716    14    0    

11

Модуль "Ответственное хранение" или фулфилмент (FBS / FBO) для 1С:УТ 11.5, КА 2.5, ERP 2.5

Логистика, склад и ТМЦ Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Модуль "Ответственное хранение" для 1С (УТ 11.5, КА 2.5, ERP 2.5) позволяет организовать учет ответственного хранения товаров с весовыми характеристиками, в том числе со сроком годности и личным кабинетом Поклажедателя. Модуль реализован в виде расширения конфигурации, устанавливается в режиме 1С:Предприятие 8 за 5 минут по инструкции, что позволяет оставить конфигурацию 1С на стандартной поддержке и продолжать получать стандартные обновления от фирмы "1С".

60000 руб.

09.06.2020    35031    27    57    

54

Infostart PrintWizard - создание и редактирование печатных форм в 1С 8.3

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

18000 руб.

06.10.2023    8284    24    6    

45

Загрузка номенклатуры c картинками (несколько потоков одновременно) и сопутствующими данными в базу и любые документы из yml, xls, xlsx, xlsm, ods, ots, csv для УТ 10.3, УТ 11 (все), БП 3, КА 2, ERP 2, УНФ 1.6/3.0, Розница 2

Загрузка и выгрузка в Excel Логистика, склад и ТМЦ Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Платные (руб)

Эволюция не стоит на месте - новая удобная версия функциональной обработки для Вашего бизнеса! Что же Вы получаете? Удобный и интуитивно понятный интерфейс с 3-мя этапами работы. 2 режима - автоматический и ручной. Чтение XLSX, XLSM, CSV, XML/YML форматов без офиса, на любом сервере! Визуальное связывание колонок файла и реквизитов простым перетаскиванием колонок. Создание или обновление номенклатуры с иерархией, характеристик, доп. реквизитов, упаковок, загрузка практически неограниченного количества картинок на одну номенклатуру (с возможностью загрузки в несколько потоков одновременно), с хранением в томах или в базе. Загрузка номенклатуры поставщиков или поиск по их данным номенклатуры. Загрузка доп. реквизитов в характеристики. Загрузка штрихкодов с генерацией новых. Создание элементов справочников и ПВХ "на лету" для выбранных реквизитов. (Обновление от 09.04.2024, версия 9.9 - 9.10)

14400 руб.

20.11.2015    151616    367    376    

503
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. CheBurator 3119 02.04.23 20:30 Сейчас в теме
Одобряю!
у меня на 7.7 еще проще было (можно посмотреть "Практические вопросы работы склада....")
вся учетная часть без изменений. вообще.
три справочника (ячейки-товары и ячейкиполучатели-ячейкиотправители для заданий на подпитку и полуформальный протокол выполняемых операций на ТСД, потому что в какую ячейку что положили абсолютно неинтересно, главное что "сейчас" все правильно лежит и всё) + куча обработок для ТСД для размещения, сборки, инвентаризации. Успешно работало лет пять на большом складе).
2. svsrus 178 09.04.23 16:52 Сейчас в теме
(1) Неинтересно, если не начинают исправлять что-то задним числом ) Совсем недавно занимался адресным складом и как-раз пошел по пути РС, т.к. логика такая же была изначально. А потом столкнулся с суровой действительностью. А если добавить еще ресурсы (к отбору, к размещению) то на РС станет совсем грустно. В итоге пришлось переделывать все на регистр накопления и теперь проблем нет.
4. CheBurator 3119 10.04.23 21:58 Сейчас в теме
(2) складские движения - то есть ЗАРЕГИСТРИРОВАННЫЕ по складу движения не могут быть изменены задним xnckjv/ вообще. как факт. как данность. ПЛАН "исполнения" - может быть изменен задним числом. А если в проге зарегано что из ячейки А2 в ячейку А5 перемещено 5шт товар или из ячейки В4 сделан отбор 25шт товар - какие тут могут быть изменения? как?! все изменения состояния ячеек на складе (а в адресном складе - товар хранится и двигается исключительно и только из ячейки в ячейку (исключая приход извне и отгрузку вовне)) изменяются только и исключительно либо другими ЗАРЕГИСТРИРОЛВАННЫМИ складскими операциями которые мы всегда делаем в "сейчас" либо инвентаризацией ячеек (инвент ячейки по сути если делать правильно тоже есть перемещение из ячейки в ячейку). НА СКЛАДЕ - про учетные прибабахи типа изменений задним числом -> забыть вообще как класс.
6. svsrus 178 11.04.23 09:22 Сейчас в теме
(4) Это все понтяно. Поэтому я так же и выбрал РС для первоначального решения, т.к. ячейки и движения есть здесь и сейчас. Ни в прошлом, ни в будущем ) У меня вообще условие, что в одну ячейку можно только одну паллету. Соответственно, при проведении документа нельзя указать занятую ячейку + проверка занятости в настоящий(текущий) момент. А потом началось... Ой, а нам количество изменить, ой неправильно указали серию, ой еще что-то. Распроводят документ, исправлют - а он их посылает, говорит а ячейка то уже занята в настоящем ) Ну короче потыкался-потыкался, с РС еще поиграл, но понял что это бесполезно. В итоге вместо РС сделал РН, хотя абсолютно согласен, что никаких изменений задним числом быть не должно. И в любом случае, даже при РН будут косяки при исправлении задним числом. Но РН позволил некоторые моменты нивелировать.
7. CheBurator 3119 14.04.23 22:35 Сейчас в теме
(6)
Ой, а нам количество изменить, ой неправильно указали серию,

- инвентаризация ячейки только в "сейчас". и никак иначе. в противном случае складская система регистрации фактов превратиться в учетную систему регистрации "посмертных" документов, которые с фактами на складе соотносяттся весьма опосредствованно.
ну и должны привыкнуть И ПОНЯТЬ (через руки, если не доходит через голову), что любой косяк в персоначальной регистрации приводит к увеличенному головняку по исправлению, причем по исправлению только в "сейчас", тогда работать будут вдумчиво.
.
конечно, если нет ТСД - все сложнее с бумаги забивать. с ТСД все проще. У меня на складе - так как у тебя "1ячейка=1 паллета" (1паллета = 1 артикул и = 1срок) - вообще влет работало. мини-WMS на 77 написал, два или три года от полутора до трех с половиной тфсяч паллет хрнилось, в день приход-расход ~200 паллет. Приемка фуры с 30 паллет (или сколько там в стандартную фура влазит? 35-37?) - больше времени выгрузка занимала, чем сам факт приемки. Ну и система сама раскидывала по ячейкам (по весу на ярусах, итд), на кубани можно посмотреть, я там минибложек кропал/кропаю для ЧСВ
5. CheBurator 3119 10.04.23 22:00 Сейчас в теме
(2) ну так тут говорится про простейший вариант, который вполне имеет право на жизнь, но к работе/отслеживанию состояния реального работающего склада мало применим. Как первый шаг к наведению хоть какого-то "порядка" хоть в чем-то на складе (ползучая автоматизация) - вполне приемлем и работает.
3. svsrus 178 09.04.23 16:58 Сейчас в теме
В регистрах движения и остатков измерение склад избыточно, имхо. Т.к. справочник Ячейки подчинен справочнику Склады.
За статью +.
8. CheBurator 3119 14.04.23 22:38 Сейчас в теме
(3) ну, тут как посмотреть... все зависит что и как обсчитывается на складе. а когда всякие ячейки-таблицы пересчитываются-умножаются-вычитаются постоянно в тысячных количествах - скорость исполнения запросов/выборок может быть критичная.
Оставьте свое сообщение