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