def GetFormular(host, api, api_key, surname, uid = 0, firstname = '0', middlename = '0'):
    import json
    import requests 
    url = ''.join([str(host), str(api), 'api_key=', str(api_key)]) 
    response = requests.get(url) 
    data = response.json() 
    if uid == '':
        uid = 0
    else:
        uid = int(uid)
    if firstname == '':
        firstname = '0'
    if middlename == '':
        middlename = '0'
    surname = str(surname)
    assert isinstance(uid, int), 'EmpGUID  should be an int'
    assert isinstance(surname, str) and surname.isspace() != True, 'surname should be a non-space string'
    assert isinstance(surname, str) and surname, 'Введите фамилию сотрудника'
    assert isinstance(firstname, str) and firstname.isspace() != True, 'firstname should be a non-space string'
    assert isinstance(middlename, str) and middlename.isspace() != True, 'middlename should be a non-space string'
    ### Валидация
    formular = [] # пустой список для добавления найденных результатов
    main_cond = "f['SurName'] == surname" # главное условие поиска
    name_params = ["f['EmpGUID']", "f['FirstName']", "f['MiddleName']"] # имена параметров в json
    params = [str(uid), str(firstname), str(middlename)] # список передаваемых параметров
    conditions = [] # пустой список для дополнительный условий поиска
    for i in range(len(params)):
        if params[i] != str(0):
            conditions.append('and str({}) == "{}"'.format(name_params[i], params[i].strip()))
    other_cond = ' '.join([x for x in conditions])
    search = main_cond + ' ' + other_cond
    print(search)
    for f in data: # цикл поиска по каждому элементу списка в data
        if eval(search): # условие поиска
            formular.append(f) # добавляем найденные данные в список
    with open('formular.json', 'w') as write_file: # создание пустого файла для записи
        json.dump(formular, write_file) # запись найденного содержимого в json файл
    if len(formular) == 0: # обработка исключений
        print('Сотрудник не найден') # вывод сообщения в случае отсутствия совпадений
