egerLESHIK
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Код: Процедура МенюДействия() Если Выбран() = 0 Тогда Возврат; КонецЕсли; СписокМеню = СоздатьОбъект("СписокЗначений"); Стр = "Изменить статус на "; Если ВыбСтатус = глСтатусОтгружено Тогда СписокМеню.ДобавитьЗначение(глСтатусОбработка, Стр + """" + глСтатусОбработка + """"); ИначеЕсли ВыбСтатус = глСтатусОбработка Тогда СписокМеню.ДобавитьЗначение(глСтатусНеДоставлено, Стр + """" + глСтатусНеДоставлено + """"); СписокМеню.ДобавитьЗначение("ПолныйВычеркБой", "Проставить полный вычерк-бой"); Если ЕстьКеги()=1 Тогда СписокМеню.ДобавитьЗначение("ПровестиОтпуск", "Создать Отпуск + Возврат тары"); КонецЕсли; Иначе Возврат; КонецЕсли; Зн = 0; Если СписокМеню.ВыбратьЗначение(Зн,,,, 1) = 1 Тогда Если ТипЗначенияСтр(Зн) = "Перечисление" Тогда Если Вопрос("Статус документа будет изменен на """ + Зн + """! Продолжить?","Да+Нет") = "Нет" Тогда Возврат; КонецЕсли; ВыбСтатус = Зн; Если (ПустоеЗначение(глДатаСхемыСтатусов) = 1) или (ДатаДок < глДатаСхемыСтатусов) или ((ДатаДок >= глДатаНачВыклСхемыСтатусов) и (ДатаДок <= глДатаКонВыклСхемыСтатусов)) Тогда глСменитьСтатус(Контекст, Зн); Иначе Если Зн = глСтатусНеДоставлено Тогда глСменитьСтатус(Контекст, Зн); Иначе глСменаСтатусаРасходной(Контекст,Зн); Спр = СоздатьОбъект("Справочник.Статус"); Если ПустоеЗначение(НовыйСтатус) = 0 Тогда Спр.НайтиЭлемент(НовыйСтатус); КонецЕсли; Если ВыбСтатус <> Спр.Статус Тогда //если не отработала смена статуса ВыбСтатус = Спр.Статус; КонецЕсли; КонецЕсли; КонецЕсли; ВидимостьСтатус(); ИначеЕсли Зн = "ПолныйВычеркБой" Тогда Если Вопрос("Проставить ПОЛНЫЙ вычерк-бой по ВСЕЙ накладной?", "Да+Нет") = "Нет" Тогда Возврат; КонецЕсли; НомСтр = НомерСтроки; ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл КвоБой = Кво; ИзмКво(); КонецЦикла; //ПересчетТаблоРасх(); глШ_РН_ПересчетТабло(Контекст, ИтСуммаТовСНДС); АктивизироватьСтроку(НомСтр); ИначеЕсли Зн = "ПровестиОтпуск" Тогда СоздатьДоки(); КонецЕсли; КонецЕсли; КонецПроцедуры // МенюДействия |
|