7 янв. 2019 г.

Необязательные параметры в запросе

ВЫБРАТЬ НАЧАЛОПЕРИОДА(Работы.Дата, МЕСЯЦ) КАК Месяц, Работы.Ссылка КАК Документ, Работы.Контрагент КАК Контрагент, СУММА(Работы.СуммаДокумента) КАК СуммаДокумента, СУММА(ЕСТЬNULL(Оплата.Оплачено, 0)) КАК Оплачено, СУММА(Работы.СуммаДокумента - ЕСТЬNULL(Оплата.Оплачено, 0)) КАК Долг ИЗ Документ.Работы КАК Работы ЛЕВОЕ СОЕДИНЕНИЕ Документ.Оплата КАК Оплата ПО (Оплата.Основание = Работы.Ссылка) И Работы.Проведен = Оплата.Проведен ГДЕ Работы.Проведен {ГДЕ (Работы.Дата МЕЖДУ &Начало И &Конец)} СГРУППИРОВАТЬ ПО Работы.Ссылка, Работы.Контрагент, НАЧАЛОПЕРИОДА(Работы.Дата, МЕСЯЦ)


Передать парамтр при закрытии формы

Форма1

&НаКлиенте Процедура ДобавитьПриИзменении(Элемент) ФормаВводаНовойРаботы = ПолучитьФорму("Документ.Работы.Форма.Форма2"); ФормаВводаНовойРаботы.Открыть(); КонецПроцедуры

&НаКлиенте Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник) ПараметрКоторыйПередалиПриЗакрытии = ИмяСобытия; // переданное значения реквизита Комментарий КонецПроцедуры

Форма2

&НаКлиенте Процедура ЗакрытьФорму(Команда) Закрыть(); КонецПроцедуры &НаКлиенте Процедура ПриЗакрытии(ЗавершениеРаботы) Оповестить(Комментарий); //реквизит формы Комментарий КонецПроцедуры

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

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

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

Для множественного отбора статья по ссылке

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

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

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

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

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


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

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

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


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

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


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


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



1 янв. 2019 г.

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

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

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

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