Всё, разобрался. Спасибо за то, что подсказали функцию ОткрытьФорму(). Я про неё незнал, а она вон какая полезная оказалась.
Функция Проверка(ЗНПров)
Пров = Прав(ЗНПров, 1);
Если Пров = "ъ" Тогда
ЗНПров = 1;
ИначеЕсли Пров = "ы" Тогда
ЗНПров = 2;
Иначе
ЗНПров = 0;
КонецЕсли;
Возврат ЗНПров;
КонецФункции
//*******************************************
// Процедура генерации запроса Сформировать.
//
Процедура Сформировать()
Перем Запрос, ТекстЗапроса, Таб;
ФизЛ = Строка("Физическое лицо");
Форма.ид.Видимость(1);
//Создание объекта типа Запрос
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Сформировать)
|с ВыбНачПериода по ВыбНачПериода;
|Наименование = Справочник.Сотрудники.Наименование;
|Должность = Справочник.Сотрудники.Должность;
|Оклад = Справочник.Сотрудники.Оклад;
|Состояние = Справочник.Сотрудники.СостояниеФизлица;
|Группировка Должность;
|Группировка Оклад;
|Группировка Наименование;
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
// Заполнение полей "Заголовок"
Таб.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка(1) = 1 Цикл
ДляСчета = 0;
Пока Запрос.Группировка(2) = 1 Цикл
Пока Запрос.Группировка(3) = 1 Цикл
Если (Строка(Запрос.Состояние) <> "") и (Строка(Запрос.Состояние) <> "Временно не работает") Тогда
ДляСчета = ДляСчета + 1;
КонецЕсли;
КонецЦикла;
Если ДляСчета <> 0 Тогда
Таб.ВывестиСекцию("Оклад");
КонецЕсли;
ДляСчета = 0;
КонецЦикла;
КонецЦикла;
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать("Сформировать", "");
Форма.ид.Видимость(0);
КонецПроцедуры
Процедура ОбработкаЯчейкиТаблицы(ЗН)
ЗН2 = ЗН;
Форма.ид.Видимость(1);
Флаг = Проверка(ЗН2);
Если Флаг = 0 Тогда
Длинна = СтрДлина(ЗН);
Длинна = Длинна - 1;
ЗН = Лев(ЗН, Длинна);
ДелениеСтрок = Найти(ЗН, " ");
ДляПрав = Длинна - ДелениеСтрок;
Окл = Прав(ЗН, ДляПрав);
Долж = Лев(ЗН, ДелениеСтрок);
Окл = СокрЛП(Окл);
Долж = СокрЛП(Долж);
Запрос2 = СоздатьОбъект("Запрос");
ТекстЗапроса =
"//{{ЗАПРОС(Расшифровать)
|с ВыбНачПериода по ВыбНачПериода;
|Наименование = Справочник.Сотрудники.Наименование;
|Должность = Справочник.Сотрудники.Должность;
|Оклад = Справочник.Сотрудники.Оклад;
|Состояние = Справочник.Сотрудники.СостояниеФизлица;
|Группировка Наименование;
|Условие((Строка(Должность) = Долж) и (Строка(Оклад) = Окл));
|"//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос2.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
Таб2 = СоздатьОбъект("Таблица");
Таб2.ИсходнаяТаблица("Таблица");
// Заполнение полей "Заголовок"
Таб2.ВывестиСекцию("Заголовок");
Состояние("Заполнение выходной таблицы...");
Таб2.Опции(0, 0, Таб2.ВысотаТаблицы(), 0);
Пока Запрос2.Группировка(1) = 1 Цикл
Если (Строка(Запрос2.Состояние) <> "") и (Строка(Запрос2.Состояние) <> "Временно не работает") Тогда
Сотр = СоздатьОбъект("Справочник.Сотрудники");
Сотр.ВыбратьЭлементы();
Пока Сотр.ПолучитьЭлемент() = 1 Цикл
Если СокрЛП(Сотр.Наименование) = СокрЛП(Запрос2.Наименование) Тогда
Сот = Сотр.ТекущийЭлемент();
Периодич = СоздатьОбъект("Периодический");
Периодич.ИспользоватьОбъект("Оклад", Сот);
//ЗначениеОклада = Периодич.ЗначениеНаДату(ВыбНачПериода);
//Сообщить(ЗначениеОклада);
Периодич.ВыбратьЗначения(, ВыбНачПериода);
Пока Периодич.ПолучитьЗначение() = 1 Цикл
//Если ЗначениеОклада = Периодич.Значение Тогда
ОкладПериод = Периодич.ТекущийДокумент();
//КонецЕсли;
КонецЦикла;
//Сообщить(ОкладПериод);
КонецЕсли;
КонецЦикла;
//Сот = Сотр.Наименование;
//Периодич = СоздатьОбъект("Периодический");
//Периодич.ИспользоватьОбъект("Оклад");
//ОкладПериод = Периодич.ЗначениеНаДату(ВыбНачПериода);
//Сообщить(ОкладПериод);
Таб2.ВывестиСекцию("Оклад");
ОклСотра = Запрос2.Оклад;
ФИОСотра = Запрос2.Наименование;
//Сообщить(Запрос2.Введ);
КонецЕсли;
КонецЦикла;
// Вывод заполненной формы
Таб2.ТолькоПросмотр(1);
Таб2.Показать("Таблица", "");
ИначеЕсли Флаг = 1 Тогда
Таб3 = СоздатьОбъект("Таблица");
Таб3.ИсходнаяТаблица("История");
Длинна = СтрДлина(ЗН);
Длинна = Длинна - 1;
ЗН = Лев(ЗН, Длинна);
Таб3.ВывестиСекцию("Заголовок");
СпрСотр = СоздатьОбъект("Справочник.Сотрудники");
СпрСотр.ВыбратьЭлементы();
Пока СпрСотр.ПолучитьЭлемент() = 1 Цикл
Если СокрЛП(СпрСотр.Наименование) = СокрЛП(ЗН) Тогда
Сотруд = СпрСотр.ОсновнойЭлемент;
История = СоздатьОбъект("Периодический");
История.ИспользоватьОбъект("Оклад", Сотруд);
История.ВыбратьЗначения(, ВыбНачПериода);
Пока История.ПолучитьЗначение() = 1 Цикл
ТекДок = История.ТекущийДокумент();
Таб3.ВывестиСекцию("Данные");
КонецЦикла;
КонецЕсли;
КонецЦикла;
Таб3.ТолькоПросмотр(1);
Таб3.Показать("История", "");
ИначеЕсли Флаг = 2 Тогда
Длинна = СтрДлина(ЗН);
Длинна = Длинна - 1;
ЗН = Лев(ЗН, Длинна);
Док = СоздатьОбъект("Документ");
Док.ВыбратьДокументы();
Пока Док.ПолучитьДокумент() = 1 Цикл
Если СокрЛП(Док.ТекущийДокумент()) = ЗН Тогда
ОткрытьФорму(Док.ТекущийДокумент());
КонецЕсли;
КонецЦикла;
КонецЕсли;
Форма.ид.Видимость(0);
КонецПроцедуры
Вот весь код, если интересно