#Если НЕ МобильныйАвтономныйСервер Тогда
#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
Функция ПолучитьБлокируемыеРеквизитыОбъекта() Экспорт
Результат = Новый Массив;
Результат.Добавить("Владелец");
Результат.Добавить("Помещение");
Возврат Результат;
КонецФункции
Функция ЗонаОтгрузкиПоУмолчанию(Склад,Помещение,ЗонаОтгрузки = Неопределено) Экспорт
ТипыЯчеекОтгрузка = СкладыКлиентСервер.ТипыЯчеекОтгрузка();
Если ЗначениеЗаполнено(ЗонаОтгрузки) Тогда
РеквизитыЯчейки = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ЗонаОтгрузки, "Владелец,Помещение,ТипСкладскойЯчейки");
Если РеквизитыЯчейки.Владелец = Склад
И РеквизитыЯчейки.Помещение = Помещение
И ТипыЯчеекОтгрузка.Найти(РеквизитыЯчейки.ТипСкладскойЯчейки) <> Неопределено Тогда
Возврат ЗонаОтгрузки;
КонецЕсли;
КонецЕсли;
Запрос = Новый Запрос(
"ВЫБРАТЬ ПЕРВЫЕ 2
| СпрЯчейки.Ссылка КАК Ячейка
|ИЗ
| Справочник.СкладскиеЯчейки КАК СпрЯчейки
|ГДЕ
| (НЕ СпрЯчейки.ПометкаУдаления)
| И СпрЯчейки.ТипСкладскойЯчейки В (&МассивТиповЯчеек)
| И СпрЯчейки.Владелец = &Склад
| И СпрЯчейки.Помещение = &Помещение");
Запрос.УстановитьПараметр("Склад", Склад);
Запрос.УстановитьПараметр("Помещение", Помещение);
Запрос.УстановитьПараметр("МассивТиповЯчеек", ТипыЯчеекОтгрузка);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Количество() = 1
И Выборка.Следующий()
Тогда
Ячейка = Выборка.Ячейка;
Иначе
Ячейка = ПустаяСсылка();
КонецЕсли;
Возврат Ячейка;
КонецФункции
Функция ЗонаПриемкиПоУмолчанию(Склад,Помещение,ЗонаПриемки = Неопределено) Экспорт
Если ЗначениеЗаполнено(ЗонаПриемки) Тогда
РеквизитыЯчейки = ОбщегоНазначения.ЗначенияРеквизитовОбъекта(ЗонаПриемки, "Владелец,Помещение,ТипСкладскойЯчейки");
Если РеквизитыЯчейки.Владелец = Склад
И РеквизитыЯчейки.Помещение = Помещение
И РеквизитыЯчейки.ТипСкладскойЯчейки = Перечисления.ТипыСкладскихЯчеек.Приемка Тогда
Возврат ЗонаПриемки;
КонецЕсли;
КонецЕсли;
Запрос = Новый Запрос(
"ВЫБРАТЬ ПЕРВЫЕ 2
| СпрЯчейки.Ссылка КАК Ячейка
|ИЗ
| Справочник.СкладскиеЯчейки КАК СпрЯчейки
|ГДЕ
| (НЕ СпрЯчейки.ПометкаУдаления)
| И СпрЯчейки.ТипСкладскойЯчейки = ЗНАЧЕНИЕ(Перечисление.ТипыСкладскихЯчеек.Приемка)
| И СпрЯчейки.Владелец = &Склад
| И СпрЯчейки.Помещение = &Помещение");
Запрос.УстановитьПараметр("Склад", Склад);
Запрос.УстановитьПараметр("Помещение", Помещение);
Выборка = Запрос.Выполнить().Выбрать();
Если Выборка.Количество() = 1
И Выборка.Следующий() Тогда
Ячейка = Выборка.Ячейка;
Иначе
Ячейка = Справочники.СкладскиеЯчейки.ПустаяСсылка();
КонецЕсли;
Возврат Ячейка;
КонецФункции
#Область Команды
Процедура ДобавитьКомандыСозданияНаОсновании(КомандыСозданияНаОсновании, Параметры) Экспорт
БизнесПроцессы.Задание.ДобавитьКомандуСоздатьНаОсновании(КомандыСозданияНаОсновании);
КонецПроцедуры
#КонецОбласти
#Область ДляВызоваИзДругихПодсистем
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ЗначениеРазрешено(Владелец)";
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область Печать
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
Если ПравоДоступа("Просмотр", Метаданные.Обработки.ПечатьЭтикетокИЦенников) Тогда
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Обработчик = "УправлениеПечатьюУТКлиент.ПечатьЭтикетокСкладскиеЯчейки";
КомандаПечати.МенеджерПечати = "";
КомандаПечати.Идентификатор = "ЭтикеткиСкладскиеЯчейки";
КомандаПечати.Представление = НСтр("ru = 'Печать этикеток'");
КонецЕсли;
КонецПроцедуры
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
КонецПроцедуры
#КонецОбласти
#Область Отчеты
Процедура ДобавитьКомандыОтчетов(КомандыОтчетов, Параметры) Экспорт
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецЕсли
#КонецЕсли