Имя: Пароль:
1C
 
Закрыть документ для редактирования
,
0 stepanov1991
 
10.08.14
20:47
Здравствуйте! есть документ в нем есть статус заявки Утверждена, как сделать, что бы если стоит этот статус, то его нельзя было редактировать?
СпМеню=Новый СписокЗначений;
    СпМеню.Очистить();
    Для каждого Значение из Перечисления.СтатусЗаявкаТМЦ Цикл
        СпМеню.Добавить(Значение,Значение);
    КонецЦикла;
    //Выбераем статус
    Статус=СпМеню.ВыбратьЭлемент("Выберите статус...");
    //статус не выбран...
    Если Статус=Неопределено Тогда
        Возврат;
    КонецЕсли;
    //статус выбран и начинаем изменять
    Для каждого текСтрока из МатериальныеЦенности Цикл
        ТекСтрока.СтатусЗаявкиТМЦ=Статус.Значение;
    КонецЦикла;
    //Изменение выполнено
    //Сообщить("Статус заявки изменен на: "+Статус.Представление);
1 stepanov1991
 
10.08.14
20:48
А вот код самой кнопки с заявками.  сверху
2 vicof
 
10.08.14
20:51
Перед открытием устанавливай только просмотр в зависимости от сатутса
3 stepanov1991
 
10.08.14
20:53
Если Статус = ПредопределенноеЗначение(
        "Перечисление.СтатусЗаявкаТМЦ.Утверждена") Тогда
    
        ЭтаФорма.ТолькоПросмотр = Истина;
        КонецЕсли;
Пишу вот так, выдает
{Документ.ЗаявкаТМЦ.Форма.ФормаДокумента.Форма(268,6)}: Переменная не определена (Статус)
Если <<?>>Статус = ПредопределенноеЗначение( (Проверка: Толстый клиент (обычное приложение))
4 tixis
 
10.08.14
21:03
(3) ну дык статус это что?
5 tixis
 
10.08.14
21:04
ты присваеваешь статус только в этой строке
Статус=СпМеню.ВыбратьЭлемент("Выберите статус...");
    //статус не выбран...
весь код покажи
6 stepanov1991
 
10.08.14
21:06
Процедура КоманднаяПанель1кнИзмСтатусСтрок(Кнопка)
    СпМеню=Новый СписокЗначений;
    СпМеню.Очистить();
    Для каждого Значение из Перечисления.СтатусЗаявкаТМЦ Цикл
        СпМеню.Добавить(Значение,Значение);
    КонецЦикла;
    //Выбераем статус
    Статус=СпМеню.ВыбратьЭлемент("Выберите статус...");
    //статус не выбран...
    Если Статус=Неопределено Тогда
        Возврат;
    КонецЕсли;
    //статус выбран и начинаем изменять
    Для каждого текСтрока из МатериальныеЦенности Цикл
        ТекСтрока.СтатусЗаявкиТМЦ=Статус.Значение;
    КонецЦикла;
    //Изменение выполнено
    //Сообщить("Статус заявки изменен на: "+Статус.Представление);
    
КонецПроцедуры
7 Defender aka LINN
 
10.08.14
21:10
(6) Это типа "найди 10 отличий от (0)"? Извини, но в такие игры сам играй, нам влом.
8 stepanov1991
 
10.08.14
21:12
"весь код покажи"
какой именно код?
9 Defender aka LINN
 
10.08.14
21:15
"Переменная не определена (Статус)"
Какая именно буква требует перевода?
10 stepanov1991
 
10.08.14
21:16
Весь код )

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

КонецПроцедуры

//************************** ШАПКА

//мягкий поиск
Процедура ОборудованиеОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка)
    ФормаВыбора=Справочники.Оборудование.ПолучитьФормуВыбора("ФормаВыбора");
    ФормаВыбора.ОтборНаименованиеСодержит=Текст;
    ФормаВыбора.ОткрытьМодально();
    
    Если ЗначениеЗаполнено(ФормаВыбора.РезультатВыбора) Тогда
        Текст="";
        СтандартнаяОбработка=Ложь;
        Значение=ФормаВыбора.РезультатВыбора.Ссылка;
    КонецЕсли;
КонецПроцедуры

//************************** ТАБЛИЧНАЯ ЧАСТЬ МАТЕРИАЛЬНЫЕ ЦЕННОСТИ

//очистим колонку ИД
Процедура МатериальныеЦенностиПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
    Если Копирование Тогда
        ТекСтрока=ЭлементыФормы.МатериальныеЦенности.ТекущаяСтрока;
        Если ТекСтрока=Неопределено Тогда
            Возврат;
        КонецЕсли;
        //ТекСтрока.ОстСклад=0;
        ТекСтрока.ИДСтроки="";
    КонецЕсли;
КонецПроцедуры

//пересчитывает сумму или цену в строке
Процедура ПересчитатьСтроку(ТекСтрока, ИмяКолонки) Экспорт
    
    ТекСтрока.Количество=?(ТекСтрока.Количество=0, 1, ТекСтрока.Количество);
    
    Если ИмяКолонки="СуммаСНДС" Тогда
        ТекСтрока.Цена=ТекСтрока.СуммаСНДС/ТекСтрока.Количество;
    Иначе
        ТекСтрока.СуммаСНДС=ТекСтрока.Цена*ТекСтрока.Количество;
    КонецЕсли;

    Если НЕ ЗначениеЗаполнено(ТекСтрока.ИДСтроки) Тогда
        ТекСтрока.ИДСтроки=НОвый УникальныйИдентификатор;
    КонецЕсли;

КонецПроцедуры

//обновляет остаки /цены
Процедура ОбновитьОстаткиЦены(Строки) Экспорт
    OLE_PbaseПодключение();
    Если OLE_Pbase=Неопределено Тогда
        Возврат;
    КонецЕсли;
    
    ТЗДляОтправки=Новый ТаблицаЗначений;
    ТЗДляОтправки.Колонки.Добавить("Подразделение");
    ТЗДляОтправки.Колонки.Добавить("Номенклатура");
    Для каждого ТекСтр Из Строки Цикл
        НовСтр=ТЗДляОтправки.Добавить();
        НовСтр.Подразделение=ПодразделениеПолучатель;
        НовСтр.Номенклатура=ТекСтр.Номенклатура;
    КонецЦикла;
    
    ТЗРезультат=глПолучитьТЗЦен(ТЗДляОтправки, ТекущаяДата(), , , Истина, Истина); //Приоритете цен поставщика + остатки и расход
    //ТЗРезультат.ВыбратьСтроку();
    Для каждого ТекСтрока Из Строки Цикл
        ЕстьСтрока=ТЗРезультат.Найти(ТекСтрока.Номенклатура, "Номенклатура");
        Если ЕстьСтрока<>Неопределено Тогда
            ЗаполнитьЗначенияСвойств(ТекСтрока, ЕстьСтрока);
            //сформируем краткую строку Поступления
            ЕстьСтрока.ЦенаПРимечание=СтрЗаменить(ЕстьСтрока.ЦенаПРимечание,"Пост: ","");
            ЕстьСтрока.ЦенаПРимечание=СтрЗаменить(ЕстьСтрока.ЦенаПРимечание,"Поступление ТМЦ","");
            ТекСтрока.ПоступлениеОбщаяБаза=СокрЛП(Окр(ЕстьСтрока.ЦенаСНДС,2,РежимОкругления.Окр15как20))+" / "+СокрЛП(ЕстьСтрока.ЦенаПРимечание);
            ТекСтрока.Цена=ЕстьСтрока.ЦенаСНДС;
            ПересчитатьСтроку(ТекСтрока, "Цена");
        КонецЕсли;
    КонецЦикла;

КонецПроцедуры

//по кнопке обновить остатки цены
Процедура КоманднаяПанель1кнОбновитьОстаткиЦеныВесьДокумент(Кнопка)
    
    ОбновитьОстаткиЦены(МатериальныеЦенности);
    
КонецПроцедуры

//Сумма при изменении количества
Процедура МатериальныеЦенностиКоличествоПриИзменении(Элемент)
    ТекСтрока=ЭлементыФормы.МатериальныеЦенности.ТекущиеДанные;
    Если ТекСтрока=Неопределено Тогда
        Возврат;
    КонецЕсли;
    
    //расчет суммы
    ПересчитатьСтроку(ТекСтрока, "Количество");

КонецПроцедуры

// Сумма при изменении цены
Процедура МатериальныеЦенностиЦенаПриИзменении(Элемент)
    ТекСтрока=ЭлементыФормы.МатериальныеЦенности.ТекущаяСтрока;
    Если ТекСтрока=Неопределено Тогда
        Возврат;
    КонецЕсли;
    
    //расчет суммы  
    ПересчитатьСтроку(ТекСтрока, "Цена");
КонецПроцедуры

//при изменении суммы - пересчитываем цену
Процедура МатериальныеЦенностиСуммаСНДСПриИзменении(Элемент)
    ТекСтрока=ЭлементыФормы.МатериальныеЦенности.ТекущаяСтрока;
    Если ТекСтрока=Неопределено Тогда
        Возврат;
    КонецЕсли;
    
    //расчет цены
    ПересчитатьСтроку(ТекСтрока, "СуммаСНДС");
КонецПроцедуры


// при изменении номенклатуры подставим единицы измерений
Процедура МатериальныеЦенностиНоменклатураПриИзменении(Элемент)
    ТекСтрока=ЭлементыФормы.МатериальныеЦенности.ТекущаяСтрока;
    Если ТекСтрока=Неопределено Тогда
        Возврат;
    КонецЕсли;
    ТекСтрока.ЕдиницаИзмерения=ТекСтрока.Номенклатура.ЕдИзмерения;
    
    МасСтрок=Новый Массив;
    МасСтрок.Добавить(ТекСтрока);
    ОбновитьОстаткиЦены(МасСтрок);
    
КонецПроцедуры


//мягкий поиск по части наименования
Процедура МатериальныеЦенностиОборудованиеОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка)
    
    ФормаВыбора=Справочники.Оборудование.ПолучитьФормуВыбора("ФормаВыбора");
    ФормаВыбора.ОтборНаименованиеСодержит=Текст;
    ФормаВыбора.ОткрытьМодально();
    
    
    Если ЗначениеЗаполнено(ФормаВыбора.РезультатВыбора) Тогда
        Текст="";
        СтандартнаяОбработка=Ложь;
        Значение=ФормаВыбора.РезультатВыбора.Ссылка;
    КонецЕсли;
    
КонецПроцедуры


//подсветим строки по статусу заявки
Процедура МатериальныеЦенностиПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки)
    Если ДанныеСтроки.СтатусЗаявкиТМЦ=Перечисления.СтатусЗаявкаТМЦ.ВРаботеОМТС или ДанныеСтроки.СтатусЗаявкиТМЦ=Перечисления.СтатусЗаявкаТМЦ.Утверждена Тогда
        ОформлениеСтроки.ЦветФона=Новый Цвет(180, 246, 180);
    ИначеЕсли ДанныеСтроки.СтатусЗаявкиТМЦ=Перечисления.СтатусЗаявкаТМЦ.Отложена Тогда
        ОформлениеСтроки.ЦветФона=Новый Цвет(233, 234, 139);
    ИначеЕсли ДанныеСтроки.СтатусЗаявкиТМЦ=Перечисления.СтатусЗаявкаТМЦ.Отклонена Тогда
        ОформлениеСтроки.ЦветФона=Новый Цвет(255, 153, 153);
    Иначе
        ОформлениеСтроки.ЦветФона=WebЦвета.Белый;
    КонецЕсли;
КонецПроцедуры

//подставим ИД
Процедура МатериальныеЦенностиПередОкончаниемРедактирования(Элемент, НоваяСтрока, ОтменаРедактирования, Отказ)
    Если НЕ ЗначениеЗаполнено(Элемент.ТекущиеДанные.ИДСтроки) Тогда
        Элемент.ТекущиеДанные.ИДСтроки=НОвый УникальныйИдентификатор;
    КонецЕсли;
КонецПроцедуры


//************************** ПЕРДОПРЕДЕЛЕННЫЕ ПРОЦЕДУРЫ САМОЙ ФОРМЫ

Процедура ПередЗакрытием(Отказ, СтандартнаяОбработка)
    //Если БазаОбщая<>Неопределено Тогда
    //    СТК.ОтключитьИнформационнуюБазу(БазаОбщая);
    //КонецЕсли;
КонецПроцедуры

//чужие не открываем для некоторых пользовыателей
Процедура ПередОткрытием(Отказ, СтандартнаяОбработка)
    //Если НЕ ЭтоНОвый() Тогда
    //КонецЕсли;
КонецПроцедуры

Процедура ПриОткрытии()
    Если ЭтоНовый() Тогда
        //подставим из настроек пользователя значения по умолчанию
        ПодразделениеПолучатель=ПараметрыСеанса.глПользователь.ТребованиеПолучатель;
        Автор=ПараметрыСеанса.глПользователь.Наименование;
        
        ////в новый документ передана дефектная ведомость - заполним сразу новый документ на основании
        //Если ЗначениеЗаполнено(ДокОснование) Тогда
        //    КнОбновитьДокОснованиеНажатие(Неопределено);        
        //КонецЕсли;
    //недоступные подразделения открываются на просмотр    
    Иначе
        ОтказДоступа=глОтказДоступа(ЭтотОбъект);
        Если ОтказДоступа.Отказ Тогда
            //ЭтаФорма.ТолькоПросмотр=Истина;
            Предупреждение(ОтказДоступа.Описание,3);
        КонецЕсли;
    КонецЕсли;
    
    //в режиме просмотра закрываем лишние кнопки
    ЭлементыФормы.КоманднаяПанель1.Доступность= НЕ ЭтаФорма.ТолькоПросмотр;
//    Если ЭтотОбъект.Проведен Тогда
//ЭтаФорма.ТолькоПросмотр = Истина;
//КонецЕсли;
Статус=ВыбратьЭлемент;

Если Статус=ПредопределенноеЗначение(
        "Перечисление.СтатусЗаявкаТМЦ.Утверждена") Тогда  
        ЭтаФорма.ТолькоПросмотр = Истина;
        КонецЕсли;
    
КонецПроцедуры

Процедура ОбновлениеОтображения()
КонецПроцедуры



//************************* ПОДБОРЫ и ЗАПОЛНЕНИЕ

//режим подбора Остатки / Справочник / СправочникПоиск
Процедура ОткрытьПодборОбщаяБаза(РежимПодбора)
    Если ОткрытаяФормаПодбораНоменклатуры=Неопределено Тогда
        ФормаПодбора=Обработки.ПодборНоменклатураОбщаяБаза.ПолучитьФорму();
        ФормаПодбора.МатериальныеЦенности=МатериальныеЦенности;
        ФормаПодбора.ИмяКолонкиВыбрано="Количество";
        ФормаПодбора.РежимПодбора=РежимПодбора;
        ФормаПодбора.Склад=Справочники.Подразделения.МатериальныйСклад;
        ФормаПодбора.ВладелецФормы=ЭтаФорма;
        ФормаПодбора.Открыть();
        ОткрытаяФормаПодбораНоменклатуры=ФормаПодбора;
        ФормаПодбора.КнОбновитьОстаткиНажатие(Неопределено);
    Иначе
        Если  ОткрытаяФормаПодбораНоменклатуры.ОТкрыта() Тогда
            ОткрытаяФормаПодбораНоменклатуры.Активизировать();
        Иначе
            ОткрытаяФормаПодбораНоменклатуры.Открыть();
        КонецЕсли;
            
    КонецЕсли;

КонецПроцедуры


//подбор из общей базы по справочнику
Процедура КоманднаяПанель1кнПодборИзОбщейБазыСправочник(Кнопка)
    ОткрытьПодборОбщаяБаза("Справочник")
КонецПроцедуры

//подбор из общей базы по остаткам
Процедура КоманднаяПанель1кнПодборИзОбщейБазы(Кнопка)
    ОткрытьПодборОбщаяБаза("Остатки")
КонецПроцедуры

//поиск в общей базе по справочнику
Процедура КоманднаяПанель1кнПоискСправочникОбщаяБаза(Кнопка)
    ОткрытьПодборОбщаяБаза("ПоискСправочник")
КонецПроцедуры

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

Процедура ДокОснованиеПриИзменении(Элемент)
    КнОбновитьДокОснованиеНажатие(Элемент);
КонецПроцедуры

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

КонецПроцедуры

Процедура ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения)
    
    Для каждого ТекСтрокаМатериальныеЦенности Из МатериальныеЦенности Цикл
        
        Если ЗначениеЗаполнено(ТекСтрокаМатериальныеЦенности.СтатусЗаявкиТМЦ) Тогда
            Продолжить;
        КонецЕсли;

        ТекСтрокаМатериальныеЦенности.СтатусЗаявкиТМЦ = Перечисления.СтатусЗаявкаТМЦ.Оформление;
    
    КонецЦикла;     


КонецПроцедуры

Процедура КоманднаяПанель1кнИзмСтатусСтрок(Кнопка)
    СпМеню=Новый СписокЗначений;
    СпМеню.Очистить();
    Для каждого Значение из Перечисления.СтатусЗаявкаТМЦ Цикл
        СпМеню.Добавить(Значение,Значение);
    КонецЦикла;
    //Выбераем статус
    Статус=СпМеню.ВыбратьЭлемент("Выберите статус...");
    //статус не выбран...
    Если Статус=Неопределено Тогда
        Возврат;
    КонецЕсли;
    //статус выбран и начинаем изменять
    Для каждого текСтрока из МатериальныеЦенности Цикл
        ТекСтрока.СтатусЗаявкиТМЦ=Статус.Значение;
    КонецЦикла;
    //Изменение выполнено
    //Сообщить("Статус заявки изменен на: "+Статус.Представление);
    
КонецПроцедуры
11 GreatOne
 
10.08.14
21:16
красавчик
12 GreatOne
 
10.08.14
21:17
(2) кстати, посмотрел СП, а чему конкретно ставить только просмотр? Такого свойства у Док.Объект нету. Всем кнопкам что ли? А командная панель?
13 tixis
 
10.08.14
21:17
(10) ипаааать......
14 tixis
 
10.08.14
21:18
(10) сам пазбирай
15 tixis
 
10.08.14
21:18
*разбирай
16 GreatOne
 
10.08.14
21:18
Я думал делает через Отказ = Истина; Сообщить("Утверждена!");
17 stepanov1991
 
10.08.14
21:21
GreatOne, а через отказ истина как?
18 GreatOne
 
10.08.14
21:27
(17) пардон, никак, я думал запрет проведения, а тут редактирования
19 GreatOne
 
10.08.14
21:28
О, нашел через поиск ЭтаФорма.ТолькоПросмотр = Истина;
20 tixis
 
10.08.14
21:29
да ну вас, нашли ошибку "Пишу вот так, выдает
{Документ.ЗаявкаТМЦ.Форма.ФормаДокумента.Форма(268,6)}: Переменная не определена (Статус)
Если <<?>>Статус = ПредопределенноеЗначение( (Проверка: Толстый клиент (обычное приложение))" ?
21 tixis
 
10.08.14
21:31
где в приоткрытии определяется мать вашу статус????
22 tixis
 
10.08.14
21:33
или это реквизит с типом булево?
23 Сепарь
 
10.08.14
21:49
а если в рлс ? если статус перечисление то какие проблемы ? зачем засорять кодом конфу :)
24 stepanov1991
 
10.08.14
22:27
25 hhhh
 
10.08.14
22:49
(24) юморишь всё?
26 stepanov1991
 
10.08.14
23:08
hhhh , да какой там юмор
27 hhhh
 
10.08.14
23:35
(26) ну сколько можно постить элементарщину. Ну не тянешь увольняйся. Поле не найдено уже сам не можешь исправить. Или ты напился?
28 EvgeniuXP
 
11.08.14
00:06
Объект.Статус
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn