Top.Mail.Ru
Ответы

Исправить код запроса 1С ЗУП

Исправьте пожалуйста код чтобы он правильно выводил дату изменения фамилии сотрудника и напиши те вывод этой функции

Функция ПериодФамилии(Период)
Фамилия= "";
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ ПЕРВЫЕ 1
| ФИОФизическихЛиц.Период КАК Период
| РегистрСведений. ФИОФизическихЛиц КАК ФИОФизическихЛиц
| ФИОФизическихЛиц.Период= &Период
| И НЕ ФИОФизическихЛиц.Фамилия = ФИОФизическихЛиц. ФИОФизическихЛиц.ФизическоеЛицо.Фамилия";

Запрос.УстановитьПараметр("Период",Период);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();

Если Выборка.Количество () > 0 Тогда
Выборка.Следующий();
ФамилияПериод = Выборка.Период;
КонецЕсли;
Возврат ФамилияПериод

КонецФункции

По дате
По рейтингу
Аватар пользователя
Искусственный Интеллект

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

Аватар пользователя
Оракул
12345678910111213141516171819202122
 Функция ПериодФамилии(Период) 
    ФамилияПериод = Неопределено; // Инициализация переменной 
    Запрос = Новый Запрос; 
    Запрос.Текст = 
    "ВЫБРАТЬ ПЕРВЫЕ 1 
    |  ФИОФизическихЛиц.Период КАК Период, 
    |  ФИОФизическихЛиц.Фамилия КАК Фамилия 
    |ИЗ 
    |  РегистрСведений.ФИОФизическихЛиц КАК ФИОФизическихЛиц 
    |ГДЕ 
    |  ФИОФизическихЛиц.Период = &Период 
    |  И НЕ ФИОФизическихЛиц.Фамилия = ФИОФизическихЛиц.ФизическоеЛицо.Фамилия"; 
     
    Запрос.УстановитьПараметр("Период", Период); 
    Результат = Запрос.Выполнить(); 
    Выборка = Результат.Выбрать(); 
     
    Если Выборка.Следующий() Тогда 
        ФамилияПериод = Выборка.Период; 
    КонецЕсли; 
    Возврат ФамилияПериод; 
КонецФункции 
Аватар пользователя
Просветленный
123456789101112131415161718192021222324252627
 Функция ПериодФамилии(Период) 
     
    Запрос = Новый Запрос; 
    Запрос.Текст =  
        "ВЫБРАТЬ ПЕРВЫЕ 1 
        |   ФИОФизическихЛиц.Период КАК Период 
        |ИЗ 
        |   РегистрСведений.ФИОФизическихЛиц КАК ФИОФизическихЛиц 
        |ГДЕ 
        |   ФИОФизическихЛиц.Период <= &Период 
        |   И ФИОФизическихЛиц.Фамилия <> ФИОФизическихЛиц.ФизическоеЛицо.Фамилия 
        |УПОРЯДОЧИТЬ ПО 
        |   Период УБЫВ"; 
     
    Запрос.УстановитьПараметр("Период", Период); 
    Результат = Запрос.Выполнить(); 
    Выборка = Результат.Выбрать(); 
     
    Если Выборка.Следующий() Тогда 
        ФамилияПериод = Выборка.Период; 
    Иначе 
        ФамилияПериод = '00010101'; 
    КонецЕсли; 
     
    Возврат ФамилияПериод; 
     
КонецФункции