7 янв. 2019 г.

Проверить открыта ли форма?


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

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

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


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

Форма1

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

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

Форма2

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

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

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

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

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

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

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

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

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

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


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

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

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


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

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


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


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



 

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