Имя: Пароль:
1C
1С v8
Как получить паспортные данные сотрудника в 1с8.2
,
0 VBMADD
 
03.02.15
15:01
Привет братьям по разуму.

Зарплата и кадры бюджетного учреждения, редакция 1.0 (1.0.72.1)

Начальник дал срочное задание...
Подскажите, пытаюсь получить данные по сотруднику организации
запутался, чего не так в коде, как правильно обратиться к регистру сведений:

//===========================
Процедура ПаспортныеДанные()
//===========================
    СпрСотрудники = Справочники.СотрудникиОрганизаций;
    ВыборкаСотрудник = СпрСотрудники.Выбрать();
    i=1;
    Пока ВыборкаСотрудник.Следующий() Цикл
      Если ВыборкаСотрудник.ЭтоГруппа Тогда
          Сообщить(Строка(i) + " ЭтоГруппа " + ВыборкаСотрудник.Наименование);      
      Иначе
          Если ВыборкаСотрудник.Актуальность = Истина Тогда
            Псп = РегистрыСведений.ПаспортныеДанныеФизЛиц.ПолучитьПоследнее(РабочаяДата, Новый Структура("ФизЛицо",ВыборкаСотрудник.ФизЛицо));
          Адрес = Псп.ДатаРегистрацииПоМестуЖительства;
          Сообщить("Адрес = " + Адрес);
          i=i+1;
          КонецЕсли;
      КонецЕсли;
КонецЦикла;

КонецПроцедуры

Спасибо всем, кто откликнулся...
1 mikecool
 
03.02.15
15:02
напиши запрос и выбери все данные из регистра
2 VBMADD
 
03.02.15
15:04
(1) Спасибо, что откликнулся.
К сожалению в запросах не силен, подскажи запрос или если можно как то обойтись без запроса?
3 VBMADD
 
03.02.15
15:06
Я так понимаю, что данные попали в Структуру, но как к этой структуре обратиться?
4 kosts
 
03.02.15
15:07
(3) В отладчике в окне "Табло" переменную положи, оно покажет какие свойства есть
5 kosts
 
03.02.15
15:08
И запросом еще проще делать, чем без запроса.
6 nordbox
 
03.02.15
15:10
А вот как стандартно посмотреть низя?
там уже все написано за тебя в Общие Модули
7 hhhh
 
03.02.15
15:11
(3) там есть отчет Список сотрудников. Через него и смотри. Не надо ничего программировать.
8 VBMADD
 
03.02.15
15:11
(6) Подскажи конкретней где, если не трудно...
9 VBMADD
 
03.02.15
15:15
Я понимаю, что есть список сотрудников, но требуют чтобы в одну таблицу попали данные из разных списков, подумал чем ковырять модули проще свой модуль наваять, осталось только как то адрес прописки получить.
Но что то запутался, вот и обратился к братьям по разуму.
Может кто подскажет как получить ентот проклятый адрес...
10 hhhh
 
03.02.15
15:18
(9) в список сотрудников входит всё. Все списки, мыслимые и немыслимые. Там что-то 100 или 200 полей, галочки ставишь, что тебе нужно и всё.
11 VBMADD
 
03.02.15
15:32
(10) конкретно:
выбираю Список сотрудников-Паспортные данные
в таблице нет адреса прописки сотрудника.

Какую галочку нужно поставить, чтобы в таблице появился еще и адрес прописки?
12 VBMADD
 
03.02.15
15:35
Ну, что же, братцы ни кто не может конкретно подсказать код
для получения адреса прописки сотрудника...

Выручайте, не бросьте крестьянина в беде...!!!
13 anatoly
 
03.02.15
15:35
(2) возьми СрезПоследних (СП в помощь)
зачем по каждому сотруднику регистр дергать??
14 anatoly
 
03.02.15
15:37
(12) в регистре ПаспортныеДанныеФизЛиц нет адреса вообще то!
только ДатаРегистрацииПоМестуЖительства.
ты хоть регистр открывал?...

не трогал бы ты 1С, крестьянин...
15 piter3
 
03.02.15
15:39
ВЫБРАТЬ
    ФизЛица.Ссылка КАК ФизЛицо
ПОМЕСТИТЬ ФизЛица
ИЗ
    Справочник.ФизическиеЛица КАК ФизЛица
ГДЕ
    ФизЛица.Ссылка В(&ФизЛицо)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ФизЛица.ФизЛицо,
    ПаспортныеДанныеФизЛицСрезПоследних.ДокументВид.Наименование КАК ДокументВид,
    ПаспортныеДанныеФизЛицСрезПоследних.ДокументСерия,
    ПаспортныеДанныеФизЛицСрезПоследних.ДокументНомер
ИЗ
    ФизЛица КАК ФизЛица
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПаспортныеДанныеФизЛиц.СрезПоследних(&Дата, ФизЛицо В (&ФизЛицо)) КАК ПаспортныеДанныеФизЛицСрезПоследних
        ПО ФизЛица.ФизЛицо = ПаспортныеДанныеФизЛицСрезПоследних.ФизЛицо
16 piter3
 
03.02.15
15:45
ВЫБРАТЬ
    ФизЛица.Ссылка КАК ФизЛицо
ПОМЕСТИТЬ ФизЛица
ИЗ
    Справочник.ФизическиеЛица КАК ФизЛица
ГДЕ
    ФизЛица.Ссылка В(&ФизЛицо)
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ФизЛица.ФизЛицо,
    АдресПоПропискеФизЛицо.Представление КАК АдресПоПропискеФизЛица
ИЗ
    ФизЛица КАК ФизЛица
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КонтактнаяИнформация КАК АдресПоПропискеФизЛицо
        ПО ФизЛица.ФизЛицо = АдресПоПропискеФизЛицо.Объект
            И (АдресПоПропискеФизЛицо.Тип = ЗНАЧЕНИЕ(Перечисление.ТипыКонтактнойИнформации.Адрес))
            И (АдресПоПропискеФизЛицо.Вид = ЗНАЧЕНИЕ(Справочник.ВидыКонтактнойИнформации.ЮрАдресФизЛица))
17 piter3
 
03.02.15
15:45
(12)а сразу нельзя сказать че надо?
18 piter3
 
03.02.15
16:03
VBMADD че молчим?
19 VBMADD
 
03.02.15
16:25
(17) Я понимаю, что ты гений в 1с,
но мне трудно понять то, что ты написал и как этим воспользоваться, я уже отчаялся...

Вроде бы всего то - выудить адрес прописки сотрудника,
и так все запутано
В организации только что перешли на 1с 8.2 до этого была
1сV77 Зарплата и Кадры, там все привычно и просто.

Тогда уж дай полный код как получить адрес прописки,
не обижайся на неуча, просто переход на 1с8 вынужден срочно делать без подготовки...
Спасибо тебе.
20 piter3
 
03.02.15
16:27
в консоль запросов копируешь последний.в физилицо колотишь список нужных тебе людей.вроде все
21 VBMADD
 
03.02.15
16:32
(20) Мне было бы понятно что то вроде

Фунция ПолучениеАдресаСотрудника(ФизЛицо)
//======================================
  ....
КонецФункции;


Процедура Обработка1()
//=======================
Адрес = ПолучениеАдресаСотрудника(ФизЛицо);

КонецПроцедуры;
22 VBMADD
 
03.02.15
16:36
откопал в интернете такой код:
   //Нужно запросом получить контактные данные(ФИО, Адрес, Телефон) :
// ФизЛицо            Адрес                                Телефон
// Иванов Петр Сергеевич    140943, Московская обл, Дзержинский г, Угрешская ул, дом № 3, кв.21
// Иванова Оксана Александровна    119672, Москва г, Краснобогатырская ул, дом № 2, корпус 4, кв.15        (499) 730-18-02
// Петрова Тамара Алексеевна    141257, Московская обл, Долгопрудный г, Молодежная ул, дом № 7, кв.3    
// Сидорова Юлия Васильевна    107126, Москва г, Академика Анохина ул, дом № 12, кв.54            (495) 963-08-01

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

но как его примастрячить к виду указанному в (21)
никак не пойму
23 piter3
 
03.02.15
16:36
(21)попробуй конструктор запросов
24 anatoly
 
03.02.15
16:57
(22) без знания языка запросов типа SQL в 8ке вообще делать нечего, тут тебе не птичий "недоязык" 7ки...
читай ЖКК.
25 hhhh
 
03.02.15
17:09
26 VBMADD
 
03.02.15
17:16
(25) О, это просто спасение....

Да воздаст всевышний каждому по делам его!!!

Премного благодарен всем вам братья по разуму.
27 MSOliver
 
03.02.15
17:25
... в запросах не силен, стаж на мисте 8 лет
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.