7 янв. 2019 г.

Открыть форму списка регистра сведений с множественным отбором

На форме документа есть кнопка по которой нужно открыть форму списка регистра сведений с множественным отбором, значения отборов берем из самого документа

&НаКлиенте Процедура Долги(Команда) Если Объект.Ссылка.Пустая() Тогда Сообщить("Документ не записан"); Возврат; КонецЕсли; Форма = ПолучитьФорму("РегистрСведений.Долги.ФормаСписка"); ГруппаОтбора = Форма.Список.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); ГруппаОтбора.Использование = Истина; ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИЛИ; ЭлементОтбора1 = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора1.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДокументРаботы"); ЭлементОтбора1.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора1.Использование = Истина; ЭлементОтбора1.ПравоеЗначение = Объект.Ссылка; ЭлементОтбора2 = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбора2.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДокументОснование"); ЭлементОтбора2.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно; ЭлементОтбора2.Использование = Истина; ЭлементОтбора2.ПравоеЗначение = Объект.Ссылка; Форма.Открыть(); КонецПроцедуры

Месяц прописью. СКД

Отчет. СКД. Нужно отобразить месяц прописью.


В настройках СКД.
Запрос результативный должен иметь вид

ВЫБРАТЬ
НАЧАЛОПЕРИОДА(ДолгиОстаткиИОбороты.ДокументРаботы.Дата, МЕСЯЦ) КАК Месяц,
...

Далее вкладка НаборыДанных. Напротив Месяц нужно привести формат поля к значению 
ДФ=MMMM.yyyy


При нажатии на измерении открыть документ

Отчет. СКД. При нажатии на измерение должен открыться документ.
Измерением являеться строковое значение из открывающего документа.


В настройках СКД, в полях Выражения нужно проставить в реквизит, который нужно открыть при двойном нажатии, путь через точку к реквизиту, который будет отбражаться в отчете.


А далее вывести в отчет данный реквизит и переименовать его



1 янв. 2019 г.

Сохранить настройки обработки

Сохранение настроек (запоминание значений реквизитов) внешней обработки

&НаСервере Процедура СохранитьЗначенияФормы() Настройки = Новый Структура; Реквизиты = РеквизитФормыВЗначение("Объект").Метаданные().Реквизиты; Для Каждого Эл Из Реквизиты Цикл Настройки.Вставить(Эл.Имя, Объект[Эл.Имя]); КонецЦикла; ТабличныйЧасти = РеквизитФормыВЗначение("Объект").Метаданные().ТабличныеЧасти; Для Каждого Эл Из ТабличныйЧасти Цикл Настройки.Вставить(Эл.Имя, Объект[Эл.Имя].Выгрузить()); КонецЦикла; ХранилищеОбщихНастроек.Сохранить(ПолучитьЗначениеМетаданного("Синоним"), ИмяНастройки ,Настройки, , Пользователи.ТекущийПользователь()); КонецПроцедуры &НаСервере Процедура ВосстановитьЗначенияФормы() Настройки = ХранилищеОбщихНастроек.Загрузить(ПолучитьЗначениеМетаданного("Синоним"), ИмяНастройки); Если Настройки <> Неопределено Тогда Обр = РеквизитФормыВЗначение("Объект"); Реквизиты = Обр.Метаданные().Реквизиты; Для Каждого Эл Из Реквизиты Цикл Если Настройки.Свойство(Эл.Имя) Тогда Если Эл.Тип = Новый ОписаниеТипов("ТаблицаЗначений") Тогда Продолжить; КонецЕсли; Обр[Эл.Имя] = Настройки[Эл.Имя]; КонецЕсли; КонецЦикла; ТабличныеЧасти = Обр.Метаданные().ТабличныеЧасти; Для Каждого Эл Из ТабличныеЧасти Цикл Обр[Эл.Имя].Загрузить(Настройки[Эл.Имя]); КонецЦикла; ЗначениеВРеквизитФормы(Обр, "Объект"); КонецЕсли; КонецПроцедуры

18 нояб. 2018 г.

Получить ярлык программы

win+ r 
а далее
shell:AppsFolder

Получить последнюю запись в итогах СКД

В ресурсах СКД пишем

ВычислитьВыражение("Долг", , , "Последняя")

Позиционироваться на текущую строку при открытии формы выбора

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

CopyPaste Copyright © 2017 - |- Шаблон создан O Pregador - |- Отредактирован myr4ik07