(Шаблонный код)
Оглавление
Формы
Обработка оповещений между формами
Набор шаблонных методов для оповещения формы документа об изменениях. В данном примере оповещается другой экземляр одной и той же формы, т.е. код отправка оповещения и его обработка находятся в одном модуле.
&НаКлиенте
// Предопределенный обработчик. Вызывается во всех созданных формах при вызове метода Оповестить.
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
// Обновить представление связанного документа, если его карточка открыта.
Если(ИмяСобытия = ИмяСобытияОбновлениеСвязиДокумента()) Тогда
Если(ЗначениеЗаполнено(Параметр) И Параметры.Свойство("СвязанныйДокумент")) Тогда
Если (Объект.Ссылка = Параметр.СвязанныйДокумент) Тогда
// некоторый код ...
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОповеститьСвязанныйДокументОбОбновленииСвязи(СвязанныйДокумент)
ИмяСобытия = ИмяСобытияОбновлениеСвязиДокумента();
Парам = Новый Структура("СвязанныйДокумент", СвязанныйДокумент);
Оповестить(ИмяСобытия, Парам, ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Функция ИмяСобытияОбновлениеСвязиДокумента()
Возврат "СвязьДокументовОбновлена";
КонецФункции
&НаКлиенте
Процедура УстановитьОтметку(Элемент, Отметка)
// некоторый код ...
ОповеститьСвязанныйДокументОбОбновленииСвязи(СвязанныйДокумент);
КонецПроцедуры
Запросы
Подсчет количества записей по разным условиям
SELECT
ISNULL(SUM(CASE WHEN (Обр.Принято = FALSE AND Обр.Обработано = FALSE) THEN 1 ELSE 0 END), 0) AS Новые,
ISNULL(SUM(CASE WHEN (Обр.Принято = TRUE AND Обр.Обработано = FALSE) THEN 1 ELSE 0 END), 0) AS ВРаботе,
ISNULL(SUM(CASE WHEN (Обр.Принято = TRUE AND Обр.Обработано = TRUE) THEN 1 ELSE 0 END), 0) AS Выполнено
FROM
РегистрСведений.Обращения AS Обр
Регистры
Изменение записи регистра сведений
Функция ИзменитьЗаписьРегистраСведений(Имя, ЗначенияИзмерений, НовыеЗначения)
// Прочитать запись по установленным значениям ключевых полей
Менеджер = РегистыСведений[Имя].СоздатьМенеджерЗаписи();
ЗаполнитьЗначенияСвойств(Менеджер, ЗначенияИзмерений);
Менеджер.Прочитать();
// Изменить запись если она была прочитана
Если Менеджер.Выбран() Тогда
ЗаполнитьЗначенияСвойств(Менеджер, НовыеЗначения);
Менеджер.Записать();
Возврат Истина;
Конецесли;
Возврат Ложь;
КонецФункции
Бордок