#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
Функция УстановитьСтатус(НовыйСтатус, ДополнительныеПараметры) Экспорт
ЗначениеНовогоСтатуса = Перечисления.СтатусыЗаказовМатериаловВПроизводство[НовыйСтатус];
Если ДополнительныеПараметры <> Неопределено Тогда
ЗаказыСервер.СкорректироватьСтрокиЗаказа(ЭтотОбъект, ДополнительныеПараметры);
КонецЕсли;
Статус = ЗначениеНовогоСтатуса;
ПараметрыУказанияСерий = НоменклатураСервер.ПараметрыУказанияСерий(ЭтотОбъект, Документы.ЗаказМатериаловВПроизводство);
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(ЭтотОбъект, ПараметрыУказанияСерий);
Возврат ПроверитьЗаполнение();
КонецФункции
Функция СкорректироватьСтрокиЗаказа(СтруктураПараметров) Экспорт
Если Не СтруктураПараметров.ОтменитьНеотработанныеСтроки И Не СтруктураПараметров.СкорректироватьМерныеТовары Тогда
Возврат ЗаказыСервер.РезультатОтменыНеотработанныхСтрок(Неопределено)
КонецЕсли;
КоличествоСкорректированныхСтрок = 0;
Если Не СтруктураПараметров.ПроверятьОстатки Тогда
СвойстваОтмененнойСтроки = Новый Структура("Отменено, СтатусУказанияСерий", Истина, 0);
Для каждого СтрокаТовары Из Товары Цикл
Если Не СтрокаТовары.Отменено Тогда
ЗаполнитьЗначенияСвойств(СтрокаТовары, СвойстваОтмененнойСтроки);
КоличествоСкорректированныхСтрок = КоличествоСкорректированныхСтрок + 1;
КонецЕсли;
КонецЦикла;
Возврат ЗаказыСервер.РезультатОтменыНеотработанныхСтрок(КоличествоСкорректированныхСтрок);
КонецЕсли;
ПараметрыЗаполнения = ЗаказыСервер.ПараметрыЗаполненияДляОтменыСтрок();
ПараметрыЗаполнения.МенеджерРегистра = РегистрыНакопления.ЗаказыМатериаловВПроизводство;
ПараметрыЗаполнения.ИмяТабличнойЧасти = "Товары";
ПараметрыЗаполнения.ПутиКДанным.Вставить("Склад", "Склад");
Если ОбосабливатьПоНазначениюЗаказа Тогда
ПараметрыЗаполнения.ТаблицаЗамен = Товары.Выгрузить(,"НомерСтроки, Назначение");
Справочники.Назначения.ЗаполнитьНазначениеОбеспечения(ПараметрыЗаполнения.ТаблицаЗамен, Назначение, "Назначение");
КонецЕсли;
ПараметрыОтмены = ЗаказыСервер.ПараметрыОтменыСтрокЗаказов();
ПараметрыОтмены.ОтменятьТолькоМерныеТовары = НЕ СтруктураПараметров.ОтменитьНеотработанныеСтроки
И СтруктураПараметров.СкорректироватьМерныеТовары;
ПараметрыОтмены.СкорректироватьМерныеТовары = СтруктураПараметров.СкорректироватьМерныеТовары;
РезультатОтмены = ЗаказыСервер.ОтменитьНеотработанныеСтрокиПоОтгрузке(ЭтотОбъект, ПараметрыЗаполнения, ПараметрыОтмены);
ПараметрыУказанияСерий = Новый ФиксированнаяСтруктура(НоменклатураСервер.ПараметрыУказанияСерий(ЭтотОбъект, Документы.ЗаказМатериаловВПроизводство));
НоменклатураСервер.ЗаполнитьСтатусыУказанияСерий(ЭтотОбъект, ПараметрыУказанияСерий);
Возврат РезультатОтмены;
КонецФункции
#КонецОбласти
#Область ОбработчикиСобытий
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)
Автор = Пользователи.ТекущийПользователь();
Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура") Тогда
ЗаполнитьДокументПоОтбору(ДанныеЗаполнения);
КонецЕсли;
ТаблицаТоваров = Неопределено;
Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура")
И ДанныеЗаполнения.Свойство("Товары")
И ТипЗнч(ДанныеЗаполнения.Товары) = Тип("ТаблицаЗначений") Тогда
ТаблицаТоваров = ДанныеЗаполнения.Товары;
КонецЕсли;
ЕстьВариантОбеспечения =
Не ТаблицаТоваров = Неопределено
И ТаблицаТоваров.Колонки.Найти("ВариантОбеспечения") <> Неопределено
Или ТипЗнч(ДанныеЗаполнения) = Тип("Структура")
И ДанныеЗаполнения.Свойство("РеквизитыШапки")
И ДанныеЗаполнения.РеквизитыШапки.Свойство("НеЗаполнятьВариантОбеспеченияПоУмолчанию");
ИнициализироватьДокумент(ДанныеЗаполнения, Не ЕстьВариантОбеспечения);
ЗаполнениеОбъектовПоСтатистике.ЗаполнитьРеквизитыОбъекта(ЭтотОбъект, ДанныеЗаполнения);
КонецПроцедуры
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
МассивНепроверяемыхРеквизитов = Новый Массив;
МассивНепроверяемыхРеквизитов.Добавить("Товары.НачалоОтгрузки");
МассивНепроверяемыхРеквизитов.Добавить("Товары.ОкончаниеПоступления");
МассивНепроверяемыхРеквизитов.Добавить("Склад");
МассивНепроверяемыхРеквизитов.Добавить("ДатаОтгрузки");
Если УправлениеПроизводством2_2 Тогда
МассивНепроверяемыхРеквизитов.Добавить("Подразделение");
Иначе
МассивНепроверяемыхРеквизитов.Добавить("ЦеховаяКладовая");
КонецЕсли;
ПроверитьРеквизитыШапки(Отказ);
НоменклатураСервер.ПроверитьЗаполнениеКоличества(ЭтотОбъект, ПроверяемыеРеквизиты, Отказ);
Если Не УправлениеПроизводством2_2
И НеОтгружатьЧастями И
ЗначениеЗаполнено(ДатаОтгрузки) И
ДатаОтгрузки < НачалоДня(Дата) Тогда
ТекстОшибки = НСтр("ru='Дата отгрузки должна быть не меньше даты документа %Дата%'");
ТекстОшибки = СтрЗаменить(ТекстОшибки, "%Дата%", Формат(Дата,"ДЛФ=DD"));
ОбщегоНазначения.СообщитьПользователю(
ТекстОшибки,
ЭтотОбъект,
"ДатаОтгрузки",
,
Отказ);
КонецЕсли;
ПараметрыВстраивания = Документы.ЗаказМатериаловВПроизводство.ДоступныеОстаткиПараметрыВстраивания();
ТаблицаОшибок = ОбеспечениеВДокументахСервер.ТаблицаОшибокЗаполнения(ЭтотОбъект, ПараметрыВстраивания);
ДатаОтгрузкиОбязательна = Ложь;
СкладОбязателен = Ложь;
ШаблонТекста = ?(ИспользоватьДлительностьПеремещения,
НСтр("ru='Не заполнена колонка ""Начало отгрузки"" в строке %НомерСтроки% списка ""Материалы""'"),
НСтр("ru='Не заполнена колонка ""Дата отгрузки"" в строке %НомерСтроки% списка ""Материалы""'"));
Для ТекИндекс = 0 По ТаблицаОшибок.Количество() - 1 Цикл
СтрокаОшибки = ТаблицаОшибок[ТекИндекс];
Если СтрокаОшибки.ДатаОтгрузкиОбязательна И Не НеОтгружатьЧастями И СтрокаОшибки.ДатаОтгрузкиНеЗаполнена Тогда
ТекстОшибки = СтрЗаменить(ШаблонТекста, "%НомерСтроки%", СтрокаОшибки.НомерСтроки);
ПутьКТабЧасти = ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("Товары", СтрокаОшибки.НомерСтроки, "НачалоОтгрузки");
ОбщегоНазначения.СообщитьПользователю(ТекстОшибки, ЭтотОбъект, ПутьКТабЧасти, , Отказ);
КонецЕсли;
СкладОбязателен = СкладОбязателен Или СтрокаОшибки.СкладОбязателен;
ДатаОтгрузкиОбязательна = ДатаОтгрузкиОбязательна Или СтрокаОшибки.ДатаОтгрузкиОбязательна;
КонецЦикла;
Если НеОтгружатьЧастями И ДатаОтгрузкиОбязательна И Не ЗначениеЗаполнено(ДатаОтгрузки) Тогда
ТекстОшибки = НСтр("ru='Поле ""Дата отгрузки"" не заполнено'");
ОбщегоНазначения.СообщитьПользователю(ТекстОшибки, ЭтотОбъект, "ДатаОтгрузки", , Отказ);
КонецЕсли;
Если СкладОбязателен И Не ЗначениеЗаполнено(Склад) Тогда
ТекстОшибки = НСтр("ru='Поле ""Склад"" не заполнено'");
ОбщегоНазначения.СообщитьПользователю(ТекстОшибки, ЭтотОбъект, "Склад", , Отказ);
КонецЕсли;
Для каждого СтрокаТЧ Из Товары Цикл
АдресОшибки = " " + НСтр("ru='в строке %НомерСтроки% списка ""Товары""'");
АдресОшибки = СтрЗаменить(АдресОшибки,"%НомерСтроки%", СтрокаТЧ.НомерСтроки);
Если (Не НеОтгружатьЧастями Или УправлениеПроизводством2_2)
И ЗначениеЗаполнено(СтрокаТЧ.НачалоОтгрузки)
И СтрокаТЧ.НачалоОтгрузки < НачалоДня(Дата) Тогда
ТекстОшибки = НСтр("ru='Дата отгрузки должна быть не меньше даты документа ""%Дата%"" в строке %НомерСтроки% списка ""Товары""'");
ТекстОшибки = СтрЗаменить(ТекстОшибки,"%Дата%", Формат(Дата, "ДЛФ=DD"));
ТекстОшибки = СтрЗаменить(ТекстОшибки,"%НомерСтроки%", СтрокаТЧ.НомерСтроки);
ОбщегоНазначения.СообщитьПользователю(
ТекстОшибки,
ЭтотОбъект,
ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("Товары", СтрокаТЧ.НомерСтроки, "НачалоОтгрузки"),
,
Отказ);
КонецЕсли;
Если УправлениеПроизводством2_2
И ИспользоватьДлительностьПеремещения
И НЕ СтрокаТЧ.Отменено
И НЕ ЗначениеЗаполнено(СтрокаТЧ.ОкончаниеПоступления)
И СтрокаТЧ.ВариантОбеспечения = Перечисления.ВариантыОбеспечения.Отгрузить Тогда
ТекстОшибки = НСтр("ru='Не заполнена колонка ""Окончание поступления""'");
ОбщегоНазначения.СообщитьПользователю(
ТекстОшибки + АдресОшибки,
ЭтотОбъект,
ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("Товары", СтрокаТЧ.НомерСтроки, "ОкончаниеПоступления"),
,
Отказ);
КонецЕсли;
Если УправлениеПроизводством2_2 И ИспользоватьДлительностьПеремещения И ЗначениеЗаполнено(СтрокаТЧ.НачалоОтгрузки) И ЗначениеЗаполнено(СтрокаТЧ.ОкончаниеПоступления) И СтрокаТЧ.НачалоОтгрузки > СтрокаТЧ.ОкончаниеПоступления Тогда
ТекстОшибки = НСтр("ru='Дата окончания поступления меньше даты начала отгрузки'");
ОбщегоНазначения.СообщитьПользователю(
ТекстОшибки + АдресОшибки,
ЭтотОбъект,
ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("Товары", СтрокаТЧ.НомерСтроки, "ОкончаниеПоступления"),
,
Отказ);
КонецЕсли;
Если УправлениеПроизводством2_2 И ИспользоватьДлительностьПеремещения И ЗначениеЗаполнено(СтрокаТЧ.ОкончаниеПоступления) И СтрокаТЧ.ОкончаниеПоступления < НачалоДня(Дата) Тогда
ТекстОшибки = НСтр("ru='Дата окончания поступления должна быть не меньше даты документа ""%Дата%""'");
ТекстОшибки = СтрЗаменить(ТекстОшибки,"%Дата%", Формат(Дата, "ДЛФ=DD"));
ОбщегоНазначения.СообщитьПользователю(
ТекстОшибки + АдресОшибки,
ЭтотОбъект,
ОбщегоНазначенияКлиентСервер.ПутьКТабличнойЧасти("Товары", СтрокаТЧ.НомерСтроки, "ОкончаниеПоступления"),
,
Отказ);
КонецЕсли;
КонецЦикла;
НоменклатураСервер.ПроверитьЗаполнениеХарактеристик(ЭтотОбъект, МассивНепроверяемыхРеквизитов, Отказ);
НоменклатураСервер.ПроверитьЗаполнениеСерий(
ЭтотОбъект,
НоменклатураСервер.ПараметрыУказанияСерий(ЭтотОбъект, Документы.ЗаказМатериаловВПроизводство),
Отказ,
МассивНепроверяемыхРеквизитов);
Если ХозяйственнаяОперация <> Перечисления.ХозяйственныеОперации.ПередачаВПроизводство Тогда
МассивНепроверяемыхРеквизитов.Добавить("Подразделение");
КонецЕсли;
ОбщегоНазначения.УдалитьНепроверяемыеРеквизитыИзМассива(ПроверяемыеРеквизиты, МассивНепроверяемыхРеквизитов);
КонецПроцедуры
Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
ОбновлениеИнформационнойБазы.ПроверитьОбъектОбработан(ЭтотОбъект);
ПроведениеДокументов.ПередЗаписьюДокумента(ЭтотОбъект, РежимЗаписи, РежимПроведения);
ЗаказыСервер.УстановитьКлючВСтрокахТабличнойЧасти(ЭтотОбъект, "Товары");
Если УправлениеПроизводством2_2 И Не ИспользоватьДлительностьПеремещения Тогда
Товары.ЗагрузитьКолонку(Товары.ВыгрузитьКолонку("НачалоОтгрузки"), "ОкончаниеПоступления");
КонецЕсли;
НоменклатураСервер.ОкруглитьКоличествоШтучныхТоваров(ЭтотОбъект, РежимЗаписи);
Если УправлениеПроизводством2_2 И ЗначениеЗаполнено(ЦеховаяКладовая) Тогда
Подразделение = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(ЦеховаяКладовая, "Подразделение");
КонецЕсли;
Если УправлениеПроизводством2_2 Тогда
НеОтгружатьЧастями = Ложь;
Иначе
Если Не НеОтгружатьЧастями Тогда
НоваяДатаОтгрузки = Дата(1, 1, 1);
Если Товары.Количество() > 0 Тогда
СтрокиКОбеспечению = Товары.НайтиСтроки(Новый Структура("Отменено", Ложь));
Если СтрокиКОбеспечению.Количество() > 0 Тогда
ТаблицаСтрокКОбеспечению = Товары.Выгрузить(СтрокиКОбеспечению, "НачалоОтгрузки");
ТаблицаСтрокКОбеспечению.Сортировать("НачалоОтгрузки Возр");
НоваяДатаОтгрузки = ТаблицаСтрокКОбеспечению[0].НачалоОтгрузки;
КонецЕсли;
КонецЕсли;
ДатаОтгрузки = НоваяДатаОтгрузки;
Иначе
ОбеспечениеВДокументахСервер.ЗаполнитьДатыОтгрузкиВТаблице(ДатаОтгрузки, Товары, "НачалоОтгрузки");
КонецЕсли;
КонецЕсли;
ШаблонНазначения = Документы.ЗаказМатериаловВПроизводство.ШаблонНазначения(ЭтотОбъект);
ПерегенерацияНазначения = Справочники.Назначения.ПроверитьЗаполнитьПередЗаписью(Назначение, ШаблонНазначения,
ЭтотОбъект, "НаправлениеДеятельности", Отказ);
Если ПерегенерацияНазначения Тогда
ОбосабливатьПоНазначениюЗаказа = Константы.ВариантОбособленияМатериаловПриПередачеВПроизводство.Получить()
<> Перечисления.ВариантыОбособленияМатериаловПриПередачеВПроизводство.НазначениеПолучателя;
КонецЕсли;
Если Не ЗначениеЗаполнено(Автор) И ЭтоНовый() Тогда
Автор = Пользователи.ТекущийПользователь();
КонецЕсли;
КонецПроцедуры
Процедура ПриЗаписи(Отказ)
Если ОбменДанными.Загрузка Тогда
Возврат;
КонецЕсли;
ПроведениеДокументов.ПриЗаписиДокумента(ЭтотОбъект, Отказ);
ШаблонНазначения = Документы.ЗаказМатериаловВПроизводство.ШаблонНазначения(ЭтотОбъект);
Справочники.Назначения.ПриЗаписиДокумента(Назначение, ШаблонНазначения, ЭтотОбъект, Подразделение, ПотреблениеДляДеятельности);
КонецПроцедуры
Процедура ПриКопировании(ОбъектКопирования)
ЖелаемаяДатаПоступления = Дата(1, 1, 1);
Статус = Перечисления.СтатусыЗаказовМатериаловВПроизводство.КВыполнению;
МаксимальныйКодСтроки = 0;
Назначение = Неопределено;
ДокументОснование = Неопределено;
СостояниеЗаполненияМногооборотнойТары = Перечисления.СостоянияЗаполненияМногооборотнойТары.ПустаяСсылка();
Для каждого СтрокаТовары Из Товары Цикл
СтрокаТовары.НачалоОтгрузки = Дата(1, 1, 1);
СтрокаТовары.Отменено = Ложь;
СтрокаТовары.КодСтроки = 0;
СтрокаТовары.Назначение = Неопределено;
КонецЦикла;
ИнициализироватьДокумент();
Автор = Пользователи.ТекущийПользователь();
КонецПроцедуры
Процедура ОбработкаПроведения(Отказ, РежимПроведения)
ПроведениеДокументов.ОбработкаПроведенияДокумента(ЭтотОбъект, Отказ);
КонецПроцедуры
Процедура ОбработкаУдаленияПроведения(Отказ)
ПроведениеДокументов.ОбработкаУдаленияПроведенияДокумента(ЭтотОбъект, Отказ);
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область ИнициализацияИЗаполнение
Процедура ИнициализироватьДокумент(ДанныеЗаполнения = Неопределено, ЗаполнятьВариантОбеспечения = Истина)
Ответственный = Пользователи.ТекущийПользователь();
Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура") И НЕ ДанныеЗаполнения.Свойство("Организация") Тогда
Организация = ЗначениеНастроекПовтИсп.ПолучитьОрганизациюПоУмолчанию(Организация);
КонецЕсли;
Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура") И НЕ ДанныеЗаполнения.Свойство("Склад") Тогда
Склад = ЗначениеНастроекПовтИсп.ПолучитьСкладПоУмолчанию(Склад);
КонецЕсли;
Если ТипЗнч(ДанныеЗаполнения) = Тип("Структура") И НЕ ДанныеЗаполнения.Свойство("Подразделение") Тогда
Подразделение = ЗначениеНастроекПовтИсп.ПодразделениеПользователя(Ответственный, Подразделение);
КонецЕсли;
Если ЗаполнятьВариантОбеспечения Тогда
ОбеспечениеВДокументахСервер.ЗаполнитьВариантОбеспеченияПоУмолчанию(Товары);
КонецЕсли;
ОбосабливатьПоНазначениюЗаказа = Константы.ВариантОбособленияМатериаловПриПередачеВПроизводство.Получить()
<> Перечисления.ВариантыОбособленияМатериаловПриПередачеВПроизводство.НазначениеПолучателя;
Если ТипЗнч(ДанныеЗаполнения) <> Тип("Структура")
ИЛИ НЕ ДанныеЗаполнения.Свойство("РеквизитыШапки")
ИЛИ НЕ ДанныеЗаполнения.РеквизитыШапки.Свойство("УправлениеПроизводством2_2") Тогда
УправлениеПроизводством2_2 = ПолучитьФункциональнуюОпцию("ИспользоватьУправлениеПроизводством2_2");
КонецЕсли;
Если УправлениеПроизводством2_2 Тогда
ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.ПередачаМатериаловВКладовую;
КонецЕсли;
Если УправлениеПроизводством2_2 Тогда
ЦеховаяКладовая = ЗначениеНастроекПовтИсп.ПолучитьЦеховуюКладовуюПоУмолчанию(Подразделение, ЦеховаяКладовая);
КонецЕсли;
ПараметрыЗаполнения = Документы.ЗаказМатериаловВПроизводство.ПараметрыЗаполненияВидаДеятельностиНДС(ЭтотОбъект);
УчетНДСУП.ЗаполнитьВидДеятельностиНДС(ПотреблениеДляДеятельности, ПараметрыЗаполнения);
Приоритет = ЗначениеНастроекПовтИсп.ПолучитьПриоритетПоУмолчанию(Приоритет);
КонецПроцедуры
#КонецОбласти
#Область Прочее
Процедура ЗаполнитьДокументПоОтбору(Знач ДанныеЗаполнения)
ЗаполнитьЗначенияСвойств(ЭтотОбъект, ДанныеЗаполнения);
Если ДанныеЗаполнения.Свойство("РеквизитыШапки") Тогда
ЗаполнитьЗначенияСвойств(ЭтотОбъект, ДанныеЗаполнения.РеквизитыШапки);
КонецЕсли;
Если ДанныеЗаполнения.Свойство("Товары") Тогда
ЗаполнитьТоварыПоТаблице(ДанныеЗаполнения.Товары);
КонецЕсли;
КонецПроцедуры
Процедура ЗаполнитьТоварыПоТаблице(ДанныеЗаполнения)
Если ДанныеЗаполнения.Количество() = 0 Тогда
Возврат;
КонецЕсли;
ПерваяСтрока = Истина;
НачалоОтгрузки = Дата(1, 1, 1, 0, 0, 0);
ОкончаниеПоступления = Дата(1, 1, 1, 0, 0, 0);
Длительность = 0;
ОбщаяДлительность = Истина;
ОтгрузкаИПоступлениеОднойДатой = Истина;
Для Каждого СтрокаДанныхЗаполнения Из ДанныеЗаполнения Цикл
Строка = Товары.Добавить();
ЗаполнитьЗначенияСвойств(Строка, СтрокаДанныхЗаполнения);
Если ПерваяСтрока Тогда
ПерваяСтрока = Ложь;
НачалоОтгрузки = НачалоДня(Строка.НачалоОтгрузки);
ОкончаниеПоступления = НачалоДня(Строка.ОкончаниеПоступления);
Длительность = Цел((ОкончаниеПоступления - НачалоОтгрузки) / 86400);
ОбщаяДлительность = Истина;
ОтгрузкаИПоступлениеОднойДатой = (НачалоОтгрузки = ОкончаниеПоступления);
Иначе
Если ОтгрузкаИПоступлениеОднойДатой
И (НачалоДня(Строка.НачалоОтгрузки) <> НачалоДня(Строка.ОкончаниеПоступления)) Тогда
ОтгрузкаИПоступлениеОднойДатой = Ложь;
КонецЕсли;
Если ОбщаяДлительность
И Длительность <> Цел((НачалоДня(Строка.ОкончаниеПоступления) - НачалоДня(Строка.НачалоОтгрузки)) / 86400) Тогда
ОбщаяДлительность = Ложь;
КонецЕсли;
КонецЕсли;
КонецЦикла;
ИспользоватьДлительностьПеремещения = Не ОтгрузкаИПоступлениеОднойДатой;
Если ИспользоватьДлительностьПеремещения И ОбщаяДлительность Тогда
ДлительностьПеремещения = Длительность;
Иначе
ДлительностьПеремещения = 0;
КонецЕсли;
КонецПроцедуры
Процедура ПроверитьРеквизитыШапки(Отказ)
Если УправлениеПроизводством2_2 Тогда
Если Склад = ЦеховаяКладовая И ЗначениеЗаполнено(Склад) Тогда
ТекстСообщения = НСтр("ru = 'Склад и цеховая кладовая должны быть разными'");
ОбщегоНазначения.СообщитьПользователю(ТекстСообщения, ЭтотОбъект, "Склад",, Отказ);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецЕсли