1С 8.3 Параметры в навигационных ссылках - Программист 1С Минск. Автоматизация бизнеса.

Перейти к контенту

1С 8.3 Параметры в навигационных ссылках

Доп.параметры в навигационных ссылках в 1С 8.3:
// Получения навигационной ссылки - форма который открывается по системной кнопке Получить ссылку (или Ctrl + F11).
// 1С 8.3.19 поддерживает автоматическое формирование и обработку навигационных ссылок с дополнительными параметрами
// для отчетов (настроек) и форм с динамическими списками (настройки и текущая строка). Соответствующие обработчики
// форм: ОбработкаПолученияСпискаНавигационныхСсылок и ОбработкаПолученияНавигационнойСсылки.

Процедура ОбработкаПолученияСпискаНавигационныхСсылок(СписокНавигационыхСсылок, КлючПоУмолчанию)

   
// Вызывается перед показом системного диалога получения навигационной ссылки
   
СписокНавигационыхСсылок.Добавить("ВсяВходящаяКорреспонденция", "Вся входящая корреспонденция");
   
СписокНавигационыхСсылок.Добавить("ИзбраннаяКорреспонденция", "Избранная корреспонденция");
   
СписокНавигационыхСсылок.Добавить("Спам", "Спам");

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

Процедура
ОбработкаПолученияНавигационнойСсылки(Ключ, Представление, НавигационнаяСсылка, СтандартнаяОбработка)

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

КонецПроцедуры
Пример (1) использования доп.параметров в навиг.ссылках в 1С 8.3:
//Методы для формирования навигационных ссылок с дополнительными параметрами в расширениях соотвествующих типов:
//   ПолучитьНавигационнуюСсылкуОтчета
//   ПолучитьНавигационнуюСсылкуТекущегоВариантаОтчета
//   ПолучитьНавигационнуюСсылкуТекущихНастроекОтчета
//   ПолучитьНавигационнуюСсылкуОбработки
//   ПолучитьНавигационнуюСсылкуСписка
//   ПолучитьНавигационнуюСсылкуТекущихНастроекСписка
//   ПолучитьНавигационнуюСсылкуОбъекта
//   ПолучитьНавигационнуюСсылкуЗаписи

//Параметры метода (необ.):
//   ПредставлениеНавигационнойСсылки (строка). Представление, кот.будет помещено в хранилище внешних данных навиг.ссылок
//   ВнешниеДанныеНавигационнойСсылки (структура). Сюда можно поместить любые необходимые данные.


// Главный бухгалтер отправляет бухгалтеру ссылку на документ "Амортизация ОС"
// с ссылкой на определенное основное средство:
Процедура ОбработкаПолученияСпискаНавигационныхСсылок(СписокНавигационыхСсылокКлючПоУмолчанию)

   
СписокНавигационыхСсылок.Добавить("СсылкаОсновноеСредство", "Ссылка на основное средство");

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

Процедура
ОбработкаПолученияНавигационнойСсылки(Ключ, Представление, НавигационнаяСсылка, СтандартнаяОбработка)

    Если
Ключ = "СсылкаОсновноеСредство" Тогда

       
СтандартнаяОбработка = Ложь;
       
ОтборОС = Новый Структура("СсылкаОС", Элементы.ОсновныеСредства.ТекущаяСтрока);
       
НавигационнаяСсылка = ПолучитьНавигационнуюСсылкуОбъекта(Представление, ОтборОС);

    КонецЕсли;

КонецПроцедуры
Пример (2) использования доп.параметров в навиг.ссылках с форума в 1С 8.3:
//Код на стороне вызывающей системы
&НаКлиенте
Процедура НажатиеКнопкиВоВнешнейСистеме(Ссылка, ПараметрыВыполнения) Экспорт

   НавигСсылка = "e1c://server/srv1s/MDM#e1cib/command/ОбщаяКоманда.ОткрытьЗаявкуПоНавигационнойСсылке?cmdprm=";
   нсиВидЗаявки = "СправочникСсылка.нсиВидыЗаявок:93403ec188f4a4402b1c9e686539bd2";
   нсиВидОперацииИзменение = ",ПеречислениеСсылка.нсиВидыОперацийОбработкиДанных:af0e9a0def0bab9894eb3e1deba54be4";
   UUID = GUIDToUUID(Строка(Ссылка.УникальныйИдентификатор()));
   нсиКонтрагент = ",СправочникСсылка.нсиКонтрагенты:" + UUID;

   НавигСсылка = НавигСсылка + нсиВидЗаявки + нсиВидОперацииИзменение + нсиКонтрагент;
   ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку(НавигСсылка);

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

&НаКлиенте
Функция GUIDToUUID(БуферСтрока) Экспорт

   GUID = Прав(БуферСтрока, 8) + "-" +
   Сред(БуферСтрока, 21, 4) + "-" +
   Сред(БуферСтрока, 17, 4) + "-" +
   Лев(БуферСтрока, 4) + "-" +
   Сред(БуферСтрока, 5, 12);

   Возврат GUID;

КонецФункции

//код на стороне принимающей системы. Модуль общей команды "ОткрытьЗаявкуПоНавигационнойСсылке"
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)

   Если ПараметрКоманды.Количество() Тогда

       нсиВидЗаявки = ПараметрКоманды[0];
       нсиВидОперации = ПараметрКоманды[1];
       нсиКонтрагент = ПараметрКоманды[2];

       Параметры = Новый Структура;
       Параметры.Вставить("нсиВидЗаявки", нсиВидЗаявки);
       Параметры.Вставить("нсиВидОперации", нсиВидОперации);
       Параметры.Вставить("нсиКонтрагент", нсиКонтрагент);

       ОткрытьФорму("БизнесПроцесс.нсиЗаявкаНаИзменение.ФормаОбъекта", Параметры);

   КонецЕсли;

КонецПроцедуры
0
комментарии
____________________
Copyright©, «Программист 1С в г.Минске», 04.11.2020
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник
Яндекс.Метрика
Защищенное соединение ssl
visa
mastercard
Maestro
Яндекс деньги
Назад к содержимому