(Шаблонный код)

Оглавление

Формы

Обработка оповещений между формами

Набор шаблонных методов для оповещения формы документа об изменениях. В данном примере оповещается другой экземляр одной и той же формы, т.е. код отправка оповещения и его обработка находятся в одном модуле.

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

Запросы

Подсчет количества записей по разным условиям

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 Обр

Регистры

Изменение записи регистра сведений

Функция ИзменитьЗаписьРегистраСведений(Имя, ЗначенияИзмерений, НовыеЗначения)  
  // Прочитать запись по установленным значениям ключевых полей
  Менеджер = РегистыСведений[Имя].СоздатьМенеджерЗаписи();
  ЗаполнитьЗначенияСвойств(Менеджер, ЗначенияИзмерений);
  Менеджер.Прочитать();
  
  // Изменить запись если она была прочитана
  Если Менеджер.Выбран() Тогда
    ЗаполнитьЗначенияСвойств(Менеджер, НовыеЗначения); 
    Менеджер.Записать(); 
    Возврат Истина;
  Конецесли;
  
  Возврат Ложь;  
КонецФункции
Последнее обновление 29-го окт. 2025