1. Требуются разработчики и тестеры для проекта codebyOS. Требования для участия в проекте: Знание принципов работы ОС на базе Linux; Знание Bash; Крайне желательное знание CPP, Python, Lua; Навыки системного администрирования. Подробнее ...

    Скрыть объявление

Для приема на работу

Тема в разделе "1C и всё что с ней связано", создана пользователем Roman, 28 авг 2010.

  1. Roman

    Roman Гость

    Репутация:
    0
    Всем привет, для приема на работу в должности "Программист-стажер" необходимо сделать задание которое они дают:

    "База данных содержит таблицы Анкета и Места Работы. Таблица Анкета хранит анкетные данные людей - Ф.И.О., дата и место рождения, паспортные данные, личные качества и характеристики, дату занесения. Таблица Места Работы содержит данные о послужном списке людей из таблицы Анкета и содержит информацию о дате поступления на работу, дате увольнения, месте работы и причине увольнения.
    Программа должна автоматически подключиться к базе данных и загрузить в закладки первые буквы фамилий из таблицы Анкета(только тех, которые существуют в таблице, а не весь алфавит). При выборе закладки загружать фамилии с инициалами в какой-нибудь элемент (на Ваше усмотрение, лист, всплывающее меню или что-нибудь ещё). при выборе же фамилии загружать послужной список этого человека. Реализовать возможности добавления, редактирования, удаления данных.
    Разработать отчет о сотрудниках. В отчет должны выводиться сведения о сотрудниках и их местах работы с группировкой по сотруднику. В отчете должны быть предусмотрены фильтры по сотруднику( то есть что бы можно было выбрать или всех кандидатов или кого-то конкретного) и по диапазону даты занесения. В отчет данные должны попадать, используя запрос SQL."


    Помогите как говорится кто чем может(мысли, идеи) за любой вклад буду благодарен.
     
  2. puh14

    puh14 Well-Known Member

    Репутация:
    0
    Регистрация:
    11 июл 2008
    Сообщения:
    1.412
    Симпатии:
    0
    Вопрос - а при чем тут 1с? особенно если учесть слова про скулевый запрос, который 1с официально запретила (в восьмерке)? Среды разработки нет, типа скуля нет. и вообще тема скорее идет в http://codeby.net/forum104.html
     
  3. vbs

    vbs Well-Known Member

    Репутация:
    0
    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Если не можешь сделать сам, то какой же ты программист (хотя и стажер) ?
    Ну, помогут тебе (здесь или в другом месте), а потом-то самому придется. :lovecodeby:
     
  4. Roman

    Roman Гость

    Репутация:
    0
    Уж какой есть. :lovecodeby: И потом именно стажер, а не помощник, а это на мой взгляд разные вещи.

    Так там оклад маленький но с бесплатным обучением, а с обучением я почему-то уверен что справлюсь.




    Добавлено:
    Последнее задание может и не причем, но остальное я думаю можно и через 1с реализовать, разве нет?
     
  5. Roman

    Roman Гость

    Репутация:
    0
    Хотя бы так может кто помочь?
    Я реализовал идею так( может и коряво и длинно но ввиду отсутствия опыта думаю мне простительно)

    Код:
    Процедура ПриОткрытии()
    
    ТЗ = СоздатьОбъект("ТаблицаЗначений");
    
    ИмяФайла="Анкета.xls";
    ИмяПути="c:\newbisness\";
    
    //Если ФС.ВыбратьФайл(0,ИмяФайла,ИмяПути,,"*.xls",,2)=0 Тогда
    //	Возврат
    //КонецЕсли;
    ПутьФ=ИмяПути+ИмяФайла;
    ЭкселФ = СоздатьОбъект("Excel.Application"); //создаем объект
    НашФайл = ЭкселФ.Workbooks.Open(СокрЛП(ПутьФ)); //Открываем файл
    НашЛист = НашФайл.Sheets(1); //Устанавливаем нужный лист
    
    КонечнаяСтрока=2;
    Пока ПустоеЗначение(НашЛист.Cells(КонечнаяСтрока,1).Value)=0 Цикл
    КонечнаяСтрока=КонечнаяСтрока+1;
    КонецЦикла;
    
    ТЗ.НоваяКолонка("ДатаСоздания");
    ТЗ.НоваяКолонка("ФИО");
    ТЗ.НоваяКолонка("ДатаРождения");
    ТЗ.НоваяКолонка("МестоРождения");
    ТЗ.НоваяКолонка("Паспорт");
    ТЗ.НоваяКолонка("Характеристика");
    
    Для i = 1 По КонечнаяСтрока-1 Цикл
    Тз.ДатаСоздания =НашЛист.Cells(i,1).Value; 
    ТЗ.ФИО = НашЛист.Cells(i,2).Value;
    ТЗ.ДатаРождения = НашЛист.Cells(i,3).Value;
    ТЗ.МестоРождения = НашЛист.Cells(i,4).Value;
    ТЗ.Паспорт = НашЛист.Cells(i,5).Value;
    ТЗ.Характеристика =НашЛист.Cells(i,6).Value;
    ТЗ.НоваяСтрока();
    КонецЦикла;
    
    ТЗ.Сортировать("+ ФИО");
    Форма.ИспользоватьЗакладки(1);
    
    ТЗСорт = СоздатьОбъект("ТаблицаЗначений");
    ТЗСорт.НоваяКолонка("ФИО"); 
    ТЗ.ВыбратьСтроки();
    
    Пока ТЗ.ПолучитьСтроку() = 1 Цикл
    Если ТЗ.ФИО <> "" Тогда
    ТЗСорт.ФИО = Лев(ТЗ.ФИО,1);
    ТЗСорт.НоваяСтрока();
    КонецЕсли;
    КонецЦикла;
    
    ТЗСорт.Свернуть("ФИО",);
    
    Форма.ИспользоватьЗакладки(1);
    ТЗСорт.ВыбратьСтроки();
    
    Пока ТЗСорт.ПолучитьСтроку() = 1 Цикл
    Если ТЗСорт <> "" Тогда
    Форма.Закладки.ДобавитьЗначение(ТЗСорт.ФИО);
    КонецЕсли;
    КонецЦикла;
    КонецПроцедуры
    
    Процедура ПриВыбореЗакладки(НомерЗакладки,ЗначениеЗакладки);
    Спис.УдалитьВсе();
    Тз.ВыбратьСтроки();
    Пока ТЗ.ПолучитьСтроку() = 1 Цикл
    Если ЗначениеЗакладки = Лев(ТЗ.ФИО,1) Тогда
    Спис.ДобавитьЗначение(ТЗ.ФИО);
    КонецЕсли;		
    КонецЦикла;		
    КонецПроцедуры
    Да, и сама обработина, внешняя и запускается с глоб.модуля
    Код:
    ПриНачалеРаботыСистемы()
    Как реализовать выбор из списка значений?
    Таблица "ТЗ" выкинута на форму и скрыта.
     
  6. vbs

    vbs Well-Known Member

    Репутация:
    0
    Регистрация:
    18 фев 2007
    Сообщения:
    1.708
    Симпатии:
    3
    Можно примерно так :
    Код:
    T3.Unload(T31); T31.Clear(); // создаем новую T3 той же структуры 
    Procedure ПриВыбореЗакладки(НомерЗакладки,ЗначениеЗакладки)
    FirstLetter = ЗначениеЗакладки;
    T3.SelectLines();
    N = 0; k = 0;
    While T3.GetLine() = 1 do
    N = N + 1;
    if Left(T3.ФИО,1) <> FirstLetter then
    Continue
    endif;
    for i = 1 to T3.ColumnCount() do
    k = k + 1;
    T31.NewLine();
    T31.SetValue(k,i,T3.GetValue(N,i)) // выводим значения реквизитов T3 в T31
    enddo;
    enddo;
    // теперь в T31 будет алфавитный срез T3 в зависимости от нужной буквы
    // если нужно показывать только фамилии, сделай в новой T31 остальные колонки невидимыми и напиши обработку для этой T31,
    // которая будет обрабатывать клик по таблице для разворота всех данных
    EndProcedure
    PS. Прости, что по-английски - привычка :rolleyes:
     
  7. User1C

    User1C Гость

    Репутация:
    0
    Можно и так

    Код:
    Процедура ПриВыбореЗакладки(НомерЗакладки,ЗначениеЗакладки);
    
    ТЗФам.УдалитьСтроки(); // ТЗ- таблица значений на форме
    ТЗФам.НоваяКолонка("ФИО"); 
    
    Позиция = НомерЗакладки;
    Буква = Форма.Закладки.ПолучитьЗначение(Позиция,);
    
    ТЗ.ВыбратьСтроки();	
    Пока ТЗ.ПолучитьСтроку() = 1 Цикл
    Если ТЗ.ФИО <> "" Тогда
    Если Найти(СокрЛП(Лев(ТЗ.ФИО,1)),Буква) >0 Тогда
    ТЗФам.НоваяСтрока();
    ТЗФам.ФИО = ТЗ.ФИО;
    КонецЕсли;
    КонецЕсли;
    КонецЦикла;
    
    КонецПроцедуры
     
  8. Roman

    Roman Гость

    Репутация:
    0
    Уже почти всё реализовал. В прикрепленном файле всё есть надо только расширение поменять на ert
    Вот у меня теперь такой вопрос есть возможность в 1с версии 7.7 при изменении таблицы сделать так чтобы данные обратно в екселевский файл(из которого брал данные) записывались отредактированные( в этой таблице), причем именно так если это полностью новая строка то дописывалась новая строка в текущие данные(т.е добавлялась новая строка в текущие данные) и если это строка есть то если я ее изменил то в файл переносились измененные данные не меняя(удаляя) остальных? Или может мне вообще как-то по другому всё сделать?

    Добавлено:
    Идея конечно неплохая но мне нужно не только разворот данных , мне же ещё нужна возможность редактирования данных с последующим сохранением.
     

    Вложения:

    • ______.txt
      Размер файла:
      8,5 КБ
      Просмотров:
      29
  9. User1C

    User1C Гость

    Репутация:
    0
    Добавь в таблицу ТЗ еще одну калонку "Область" Cells(i,j).Value Когда тебе нужно будет добавлять или изменять данные в Excel, то если таблица содержит адрес ячейки -> найти и отредактировать ячейку. Если пусто -> добавить в конец списка новую строку.
     
Загрузка...
Похожие Темы - Для приема на
  1. PingVinich
    Ответов:
    2
    Просмотров:
    266
  2. Мария Смирнова
    Ответов:
    0
    Просмотров:
    80
  3. Elektrolife
    Ответов:
    11
    Просмотров:
    457
  4. miisha
    Ответов:
    2
    Просмотров:
    50
  5. r0hack
    Ответов:
    9
    Просмотров:
    221

Поделиться этой страницей