gifts2017

Генерация структуры склада для мест хранения

Опубликовал Александр Гуляев (gavrikprog) в раздел Обработки - Обработка справочников

Обработка обычно используется разово на проекте, поэтому не оформляю соответствующе.
Кому что надо - тот поправит.

А времени немного сэкономить поможет.

Процедура КнопкаВыполнитьНажатие(Кнопка)
// Вставить содержимое обработчика.

СпрТов=Справочники.Номенклатура;
МестаХранения=Справочники.МестаХранения;
КоличествоПомещений=7;
КоличествоСтеллажей=7;
КоличествоЛиний=7;
КоличествоМест=25;
Ячейка=0;

Для
Скл=1 По 2 Цикл
Склады=Скл;
Если
Склады=1 Тогда
СпрСклад=Справочники.Склады.НайтиПоКоду("00002");
Иначе
СпрСклад=Справочники.Склады.НайтиПоКоду("00001");
КонецЕсли;

Для
сч=0 По КоличествоПомещений Цикл
Помещение=сч;
//********Помещения
НовМестоП=МестаХранения.НайтиПоНаименованию("Помещение"+Строка(Помещение),,,СпрСклад);

Если
НовМестоП=МестаХранения.ПустаяСсылка() Тогда

НовМестоП=МестаХранения.СоздатьГруппу();
НовМестоП.Владелец =СпрСклад;
НовМестоП.Наименование="Помещение"+Строка(Помещение);
НовМестоП.Записать();

КонецЕсли;
//*****************

Для Ст=1 По КоличествоСтеллажей Цикл
Стеллаж=Ст;
//********Стеллаж
НовМестоСт=МестаХранения.НайтиПоНаименованию("Стеллаж"+Строка(Стеллаж),,НовМестоП.Ссылка,СпрСклад);

Если
НовМестоСт=МестаХранения.ПустаяСсылка() Тогда

НовМестоСт=МестаХранения.СоздатьГруппу();
НовМестоСт.Владелец =СпрСклад;
НовМестоСт.Родитель =НовМестоП.Ссылка;
НовМестоСт.Наименование="Стеллаж"+Строка(Стеллаж);
НовМестоСт.Записать();

КонецЕсли;
//*****************

Для Л=1 По КоличествоЛиний Цикл
Линия=Л;
//********Линия
НовМестоЛ=МестаХранения.НайтиПоНаименованию("Линия"+Строка(Линия),,НовМестоСт.Ссылка,СпрСклад);

Если
НовМестоЛ=МестаХранения.ПустаяСсылка() Тогда

НовМестоЛ=МестаХранения.СоздатьГруппу();
НовМестоЛ.Владелец=СпрСклад;
НовМестоЛ.Родитель =НовМестоСт.Ссылка;
НовМестоЛ.Наименование="Линия"+Строка(Линия);
НовМестоЛ.Записать();

КонецЕсли;
//*****************

Для М=1 По КоличествоМест Цикл
Место=М;
Состояние("Скл"+Строка(Склады)+"-"+"П"+Строка(Помещение)+"-"+"Ст"+Строка(Стеллаж)+"-"+"Л"+Строка(Линия)+"-"+"М"+Строка(Место)+"-"+"Я0");

СтрокаХранения="П"+Строка(Помещение)+"-Ст"+Строка(Стеллаж)+"-Л"+Строка(Линия)+"-М"+Строка(Место)+"-Я"+Строка(Ячейка) ;


//********Место
НовМестоМ=МестаХранения.НайтиПоНаименованию("Место"+Строка(Место),,НовМестоЛ.Ссылка,СпрСклад);

Если
НовМестоМ=МестаХранения.ПустаяСсылка() Тогда

НовМестоМ=МестаХранения.СоздатьГруппу();
НовМестоМ.Владелец =СпрСклад;
НовМестоМ.Родитель =НовМестоЛ.Ссылка;
НовМестоМ.Наименование="Место"+Строка(Место);
НовМестоМ.Записать();

КонецЕсли;
//*****************
//********Ячейка
НовМестоЯ=МестаХранения.НайтиПоНаименованию("Ячейка"+Строка(Ячейка),,НовМестоМ.Ссылка,СпрСклад);

Если
НовМестоЯ=МестаХранения.ПустаяСсылка() Тогда

НовМестоЯ=МестаХранения.СоздатьГруппу();
НовМестоЯ.Владелец =СпрСклад;
НовМестоЯ.Родитель =НовМестоМ.Ссылка;
НовМестоЯ.Наименование="Ячейка"+Строка(Ячейка);
НовМестоЯ.Записать();

КонецЕсли;
//*****************

НовМесто=МестаХранения.НайтиПоНаименованию(СтрокаХранения,,НовМестоЯ.Ссылка,СпрСклад);

Если
НовМесто=МестаХранения.ПустаяСсылка() Тогда

НовМесто=МестаХранения.СоздатьЭлемент();
НовМесто.Владелец =СпрСклад;
НовМесто.Родитель=НовМестоЯ.Ссылка;
НовМесто.Наименование=СтрокаХранения;
НовМесто.Записать();

КонецЕсли;
//Вырезан нижестоящий фрагмент

КонецЦикла;

КонецЦикла;
КонецЦикла;
КонецЦикла;

КонецЦикла;

Сообщить("Обработка закончена !");
КонецПроцедуры


Иполнитель: 2012 г. www.rt-finance.ru

Скачать файлы

Наименование Файл Версия Размер
Обработка 10
.epf 7,03Kb
09.08.12
10
.epf 7,03Kb Скачать

См. также

Contragent+ 5.0 от 2 500
Подписаться Добавить вознаграждение

Комментарии

1. Вадим Никонов (V.Nikonov) 16.08.12 13:06
А более подробно описать реализуемый сценарий можно?
Предпочтительнее в анотации описать Сценарий генерации, а примечания о черновом характере спустить в текст.

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