1С 8.3 Параметры в навигационных ссылках
Данные > Примеры кода 1С > 1С 8.3 HTTP
Перейти в раздел примеры кода 1С 8.3:
Доп.параметры в навигационных ссылках в 1С 8.3:
// Получения навигационной ссылки - форма который открывается по системной кнопке Получить ссылку (или Ctrl + F11).
// 1С 8.3.19 поддерживает автоматическое формирование и обработку навигационных ссылок с дополнительными параметрами
// для отчетов (настроек) и форм с динамическими списками (настройки и текущая строка). Соответствующие обработчики
// форм: ОбработкаПолученияСпискаНавигационныхСсылок и ОбработкаПолученияНавигационнойСсылки.
Процедура ОбработкаПолученияСпискаНавигационныхСсылок(СписокНавигационыхСсылок, КлючПоУмолчанию)
// Вызывается перед показом системного диалога получения навигационной ссылки
СписокНавигационыхСсылок.Добавить("ВсяВходящаяКорреспонденция", "Вся входящая корреспонденция");
СписокНавигационыхСсылок.Добавить("ИзбраннаяКорреспонденция", "Избранная корреспонденция");
СписокНавигационыхСсылок.Добавить("Спам", "Спам");
КонецПроцедуры
Процедура ОбработкаПолученияНавигационнойСсылки(Ключ, Представление, НавигационнаяСсылка, СтандартнаяОбработка)
// Значение возвращаемой навигационной ссылки в зависимости от ключа
Если Ключ = "ВсяВходящаяКорреспонденция" Тогда
НавигационнаяСсылка = ПолучитьНавигационнуюСсылку(Метаданные.Документы.Письма, НастройкиВходПочты);
СтандартнаяОбработка = Ложь;
ИначеЕсли Ключ = "ИзбраннаяКорреспонденция" Тогда
НавигационнаяСсылка = ПолучитьНавигационнуюСсылку(Метаданные.Документы.Письма, НастройкиПриоритетнойПочты);
СтандартнаяОбработка = Ложь;
ИначеЕсли Ключ = "Спам" Тогда
НавигационнаяСсылка = ПолучитьНавигационнуюСсылку(Метаданные.Документы.Письма, НастройкиДляСпама);
СтандартнаяОбработка = Ложь;
КонецЕсли;
КонецПроцедуры
// 1С 8.3.19 поддерживает автоматическое формирование и обработку навигационных ссылок с дополнительными параметрами
// для отчетов (настроек) и форм с динамическими списками (настройки и текущая строка). Соответствующие обработчики
// форм: ОбработкаПолученияСпискаНавигационныхСсылок и ОбработкаПолученияНавигационнойСсылки.
Процедура ОбработкаПолученияСпискаНавигационныхСсылок(СписокНавигационыхСсылок, КлючПоУмолчанию)
// Вызывается перед показом системного диалога получения навигационной ссылки
СписокНавигационыхСсылок.Добавить("ВсяВходящаяКорреспонденция", "Вся входящая корреспонденция");
СписокНавигационыхСсылок.Добавить("ИзбраннаяКорреспонденция", "Избранная корреспонденция");
СписокНавигационыхСсылок.Добавить("Спам", "Спам");
КонецПроцедуры
Процедура ОбработкаПолученияНавигационнойСсылки(Ключ, Представление, НавигационнаяСсылка, СтандартнаяОбработка)
// Значение возвращаемой навигационной ссылки в зависимости от ключа
Если Ключ = "ВсяВходящаяКорреспонденция" Тогда
НавигационнаяСсылка = ПолучитьНавигационнуюСсылку(Метаданные.Документы.Письма, НастройкиВходПочты);
СтандартнаяОбработка = Ложь;
ИначеЕсли Ключ = "ИзбраннаяКорреспонденция" Тогда
НавигационнаяСсылка = ПолучитьНавигационнуюСсылку(Метаданные.Документы.Письма, НастройкиПриоритетнойПочты);
СтандартнаяОбработка = Ложь;
ИначеЕсли Ключ = "Спам" Тогда
НавигационнаяСсылка = ПолучитьНавигационнуюСсылку(Метаданные.Документы.Письма, НастройкиДляСпама);
СтандартнаяОбработка = Ложь;
КонецЕсли;
КонецПроцедуры
Пример (1) использования доп.параметров в навиг.ссылках в 1С 8.3:
//Методы для формирования навигационных ссылок с дополнительными параметрами в расширениях соотвествующих типов:
// ПолучитьНавигационнуюСсылкуОтчета
// ПолучитьНавигационнуюСсылкуТекущегоВариантаОтчета
// ПолучитьНавигационнуюСсылкуТекущихНастроекОтчета
// ПолучитьНавигационнуюСсылкуОбработки
// ПолучитьНавигационнуюСсылкуСписка
// ПолучитьНавигационнуюСсылкуТекущихНастроекСписка
// ПолучитьНавигационнуюСсылкуОбъекта
// ПолучитьНавигационнуюСсылкуЗаписи
//Параметры метода (необ.):
// ПредставлениеНавигационнойСсылки (строка). Представление, кот.будет помещено в хранилище внешних данных навиг.ссылок
// ВнешниеДанныеНавигационнойСсылки (структура). Сюда можно поместить любые необходимые данные.
// Главный бухгалтер отправляет бухгалтеру ссылку на документ "Амортизация ОС"
// с ссылкой на определенное основное средство:
Процедура ОбработкаПолученияСпискаНавигационныхСсылок(СписокНавигационыхСсылок, КлючПоУмолчанию)
СписокНавигационыхСсылок.Добавить("СсылкаОсновноеСредство", "Ссылка на основное средство");
КонецПроцедуры
Процедура ОбработкаПолученияНавигационнойСсылки(Ключ, Представление, НавигационнаяСсылка, СтандартнаяОбработка)
Если Ключ = "СсылкаОсновноеСредство" Тогда
СтандартнаяОбработка = Ложь;
ОтборОС = Новый Структура("СсылкаОС", Элементы.ОсновныеСредства.ТекущаяСтрока);
НавигационнаяСсылка = ПолучитьНавигационнуюСсылкуОбъекта(Представление, ОтборОС);
КонецЕсли;
КонецПроцедуры
// ПолучитьНавигационнуюСсылкуОтчета
// ПолучитьНавигационнуюСсылкуТекущегоВариантаОтчета
// ПолучитьНавигационнуюСсылкуТекущихНастроекОтчета
// ПолучитьНавигационнуюСсылкуОбработки
// ПолучитьНавигационнуюСсылкуСписка
// ПолучитьНавигационнуюСсылкуТекущихНастроекСписка
// ПолучитьНавигационнуюСсылкуОбъекта
// ПолучитьНавигационнуюСсылкуЗаписи
//Параметры метода (необ.):
// ПредставлениеНавигационнойСсылки (строка). Представление, кот.будет помещено в хранилище внешних данных навиг.ссылок
// ВнешниеДанныеНавигационнойСсылки (структура). Сюда можно поместить любые необходимые данные.
// Главный бухгалтер отправляет бухгалтеру ссылку на документ "Амортизация ОС"
// с ссылкой на определенное основное средство:
Процедура ОбработкаПолученияСпискаНавигационныхСсылок(СписокНавигационыхСсылок, КлючПоУмолчанию)
СписокНавигационыхСсылок.Добавить("СсылкаОсновноеСредство", "Ссылка на основное средство");
КонецПроцедуры
Процедура ОбработкаПолученияНавигационнойСсылки(Ключ, Представление, НавигационнаяСсылка, СтандартнаяОбработка)
Если Ключ = "СсылкаОсновноеСредство" Тогда
СтандартнаяОбработка = Ложь;
ОтборОС = Новый Структура("СсылкаОС", Элементы.ОсновныеСредства.ТекущаяСтрока);
НавигационнаяСсылка = ПолучитьНавигационнуюСсылкуОбъекта(Представление, ОтборОС);
КонецЕсли;
КонецПроцедуры
Пример (2) использования доп.параметров в навиг.ссылках с форума в 1С 8.3:
//Код на стороне вызывающей системы
&НаКлиенте
Процедура НажатиеКнопкиВоВнешнейСистеме(Ссылка, ПараметрыВыполнения) Экспорт
НавигСсылка = "e1c://server/srv1s/MDM#e1cib/command/ОбщаяКоманда.ОткрытьЗаявкуПоНавигационнойСсылке?cmdprm=";
&НаКлиенте
Процедура НажатиеКнопкиВоВнешнейСистеме(Ссылка, ПараметрыВыполнения) Экспорт
НавигСсылка = "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];
Параметры = Новый Структура;
Параметры.Вставить("нсиВидЗаявки", нсиВидЗаявки);
Параметры.Вставить("нсиВидОперации", нсиВидОперации);
Параметры.Вставить("нсиКонтрагент", нсиКонтрагент);
ОткрытьФорму("БизнесПроцесс.нсиЗаявкаНаИзменение.ФормаОбъекта", Параметры);
КонецЕсли;
КонецПроцедуры
нсиВидОперацииИзменение = ",ПеречислениеСсылка.нсиВидыОперацийОбработкиДанных:af0e9a0def0bab9894eb3e1deba54be4";
UUID = GUIDToUUID(Строка(Ссылка.УникальныйИдентификатор()));
нсиКонтрагент = ",СправочникСсылка.нсиКонтрагенты:" + UUID;
НавигСсылка = НавигСсылка + нсиВидЗаявки + нсиВидОперацииИзменение + нсиКонтрагент;
ФайловаяСистемаКлиент.ОткрытьНавигационнуюСсылку(НавигСсылка);
КонецПроцедуры
&НаКлиенте
Функция GUIDToUUID(БуферСтрока) Экспорт
GUID = Прав(БуферСтрока, 8) + "-" +
Сред(БуферСтрока, 21, 4) + "-" +
Сред(БуферСтрока, 17, 4) + "-" +
Лев(БуферСтрока, 4) + "-" +
Сред(БуферСтрока, 5, 12);
Возврат GUID;
КонецФункции
//код на стороне принимающей системы. Модуль общей команды "ОткрытьЗаявкуПоНавигационнойСсылке"
&НаКлиенте
Процедура ОбработкаКоманды(ПараметрКоманды, ПараметрыВыполненияКоманды)
Если ПараметрКоманды.Количество() Тогда
нсиВидЗаявки = ПараметрКоманды[0];
нсиВидОперации = ПараметрКоманды[1];
нсиКонтрагент = ПараметрКоманды[2];
Параметры = Новый Структура;
Параметры.Вставить("нсиВидЗаявки", нсиВидЗаявки);
Параметры.Вставить("нсиВидОперации", нсиВидОперации);
Параметры.Вставить("нсиКонтрагент", нсиКонтрагент);
ОткрытьФорму("БизнесПроцесс.нсиЗаявкаНаИзменение.ФормаОбъекта", Параметры);
КонецЕсли;
КонецПроцедуры
0
комментарии
____________________
Перепечатка текста и фотографий разрешена при наличии прямой ссылки на источник