&НаКлиенте
Функция ДокументЗаказНаОтгрузкуОткрыт()
Заказ = ПолучитьЗаказНаОтгрузку(); // Ссылка на заказ
Если Заказ.Пустая() Тогда
Возврат Ложь;
КонецЕсли;
Окна = ПолучитьОкна();
Для Каждого Окно Из Окна Цикл
Если Окно.Заголовок = Строка(Заказ) Тогда
Если Вопрос("Для правильной работы формы контроля, открытый подчиненный документ ""ЗаказНаОтгрузку"" должен быть закрыт. Закрыть документ?", РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Нет Тогда
Предупреждение("Команда не может быть выполнена, если есть открытый подчиненный документ ""ЗаказНаОтгрузку""");
Возврат Истина; //ошибка
Иначе
Если Окно.Содержимое.Количество() = 0 Тогда
Предупреждение("Ошибка при закрытии подчиненной формы ""ЗаказКлиента""");
Возврат Истина; //ошибка
КонецЕсли;
Форма = Окно.ПолучитьСодержимое();
Если Форма <> Неопределено И ТипЗнч(Форма) = Тип("УправляемаяФорма") Тогда
Форма.Закрыть();
КонецЕсли;
Возврат Ложь; //открытая форма закрыта
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат Ложь; //открытая форма не найдена
КонецФункции
7 янв. 2019 г.
Необязательные параметры в запросе
ВЫБРАТЬ
НАЧАЛОПЕРИОДА(Работы.Дата, МЕСЯЦ) КАК Месяц,
Работы.Ссылка КАК Документ,
Работы.Контрагент КАК Контрагент,
СУММА(Работы.СуммаДокумента) КАК СуммаДокумента,
СУММА(ЕСТЬNULL(Оплата.Оплачено, 0)) КАК Оплачено,
СУММА(Работы.СуммаДокумента - ЕСТЬNULL(Оплата.Оплачено, 0)) КАК Долг
ИЗ
Документ.Работы КАК Работы
ЛЕВОЕ СОЕДИНЕНИЕ Документ.Оплата КАК Оплата
ПО (Оплата.Основание = Работы.Ссылка)
И Работы.Проведен = Оплата.Проведен
ГДЕ
Работы.Проведен
{ГДЕ
(Работы.Дата МЕЖДУ &Начало И &Конец)}
СГРУППИРОВАТЬ ПО
Работы.Ссылка,
Работы.Контрагент,
НАЧАЛОПЕРИОДА(Работы.Дата, МЕСЯЦ)
Передать парамтр при закрытии формы
Форма1
&НаКлиенте Процедура ДобавитьПриИзменении(Элемент) ФормаВводаНовойРаботы = ПолучитьФорму("Документ.Работы.Форма.Форма2"); ФормаВводаНовойРаботы.Открыть(); КонецПроцедуры
Форма2
&НаКлиенте Процедура ЗакрытьФорму(Команда) Закрыть(); КонецПроцедуры &НаКлиенте Процедура ПриЗакрытии(ЗавершениеРаботы) Оповестить(Комментарий); //реквизит формы Комментарий КонецПроцедуры
&НаКлиенте Процедура ДобавитьПриИзменении(Элемент) ФормаВводаНовойРаботы = ПолучитьФорму("Документ.Работы.Форма.Форма2"); ФормаВводаНовойРаботы.Открыть(); КонецПроцедуры
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
ПараметрКоторыйПередалиПриЗакрытии = ИмяСобытия; // переданное значения реквизита Комментарий
КонецПроцедуры
Форма2
&НаКлиенте Процедура ЗакрытьФорму(Команда) Закрыть(); КонецПроцедуры &НаКлиенте Процедура ПриЗакрытии(ЗавершениеРаботы) Оповестить(Комментарий); //реквизит формы Комментарий КонецПроцедуры
Открыть форму списка регистра сведений с отбором
На форме документа есть кнопка по которой нужно открыть форму списка регистра сведений с отбором, значения отбора берем из самого документа
&НаКлиенте Процедура ПотраченноеВремя(Команда) Если Объект.Ссылка.Пустая() Тогда Сообщить("Документ не записан"); Возврат; КонецЕсли; Парам = Новый Структура; Отбор = Новый Структура; Отбор.Вставить("Документ", Объект.Ссылка); Парам.Вставить("Отбор", Отбор); ОткрытьФорму("РегистрСведений.ПотраченноеВремя.ФормаСписка", Парам); КонецПроцедуры
Для множественного отбора статья по ссылке
&НаКлиенте Процедура ПотраченноеВремя(Команда) Если Объект.Ссылка.Пустая() Тогда Сообщить("Документ не записан"); Возврат; КонецЕсли; Парам = Новый Структура; Отбор = Новый Структура; Отбор.Вставить("Документ", Объект.Ссылка); Парам.Вставить("Отбор", Отбор); ОткрытьФорму("РегистрСведений.ПотраченноеВремя.ФормаСписка", Парам); КонецПроцедуры
Для множественного отбора статья по ссылке
Открыть форму списка регистра сведений с множественным отбором
На форме документа есть кнопка по которой нужно открыть форму списка регистра сведений с множественным отбором, значения отборов берем из самого документа
&НаКлиенте
Процедура Долги(Команда)
Если Объект.Ссылка.Пустая() Тогда
Сообщить("Документ не записан");
Возврат;
КонецЕсли;
Форма = ПолучитьФорму("РегистрСведений.Долги.ФормаСписка");
ГруппаОтбора = Форма.Список.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора.Использование = Истина;
ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИЛИ;
ЭлементОтбора1 = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора1.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДокументРаботы");
ЭлементОтбора1.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора1.Использование = Истина;
ЭлементОтбора1.ПравоеЗначение = Объект.Ссылка;
ЭлементОтбора2 = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора2.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ДокументОснование");
ЭлементОтбора2.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора2.Использование = Истина;
ЭлементОтбора2.ПравоеЗначение = Объект.Ссылка;
Форма.Открыть();
КонецПроцедуры
При нажатии на измерении открыть документ
Отчет. СКД. При нажатии на измерение должен открыться документ.
Измерением являеться строковое значение из открывающего документа.
В настройках СКД, в полях Выражения нужно проставить в реквизит, который нужно открыть при двойном нажатии, путь через точку к реквизиту, который будет отбражаться в отчете.
Измерением являеться строковое значение из открывающего документа.
В настройках СКД, в полях Выражения нужно проставить в реквизит, который нужно открыть при двойном нажатии, путь через точку к реквизиту, который будет отбражаться в отчете.
А далее вывести в отчет данный реквизит и переименовать его
Подписаться на:
Сообщения (Atom)