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